Пример локального конвейера PDF-выписка → нормализованные операции → финансовая книга XLSX.
Проект использует только синтетические данные. В репозитории нет настоящих выписок, имён владельцев, номеров счетов, банковских идентификаторов или правил, связанных с конкретной компанией.
- адаптер для простого табличного PDF-формата;
- нормализация дат, сумм и направлений операций;
- обнаружение полных дублей;
- исключение парных переводов между собственными счетами;
- категоризация по редактируемым регулярным выражениям;
- создание XLSX с итогами, операциями и правилами;
- формулы итогов и переносимый OOXML без зависимости от установленного Excel.
PDF-выписки разных банков устроены по-разному. Файл src/parsePdf.mjs является демонстрационным адаптером для
формата из src/sampleStatement.mjs, а не универсальным распознавателем любых выписок.
npm install
npm run sampleКоманда создаёт синтетический PDF и книгу в каталоге outputs/.
Для собственной выписки добавьте отдельный адаптер, возвращающий записи вида:
{
date: new Date("2026-01-05"),
description: "Grocery store",
amount: -84.20,
currency: "USD",
sourceId: "statement-001"
}npm test- Исходные PDF и
outputs/исключены из Git. - Для демонстраций используйте только синтетические данные.
- Перед публикацией проверьте историю Git: удаление файла из текущей версии не удаляет его из старых коммитов.
MIT.