vv-iiko-pp-parser 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/CHANGELOG.md +151 -0
  2. package/README.md +582 -0
  3. package/dist/clients/clients.fetcher.d.ts +102 -0
  4. package/dist/clients/clients.fetcher.d.ts.map +1 -0
  5. package/dist/clients/clients.fetcher.js +196 -0
  6. package/dist/clients/clients.fetcher.js.map +1 -0
  7. package/dist/clients/clients.parser.d.ts +144 -0
  8. package/dist/clients/clients.parser.d.ts.map +1 -0
  9. package/dist/clients/clients.parser.js +473 -0
  10. package/dist/clients/clients.parser.js.map +1 -0
  11. package/dist/clients/clients.service.d.ts +90 -0
  12. package/dist/clients/clients.service.d.ts.map +1 -0
  13. package/dist/clients/clients.service.js +277 -0
  14. package/dist/clients/clients.service.js.map +1 -0
  15. package/dist/clients/clients.types.d.ts +127 -0
  16. package/dist/clients/clients.types.d.ts.map +1 -0
  17. package/dist/clients/clients.types.js +6 -0
  18. package/dist/clients/clients.types.js.map +1 -0
  19. package/dist/clients/index.d.ts +5 -0
  20. package/dist/clients/index.d.ts.map +1 -0
  21. package/dist/clients/index.js +25 -0
  22. package/dist/clients/index.js.map +1 -0
  23. package/dist/core/auth/iiko-auth.service.d.ts +52 -0
  24. package/dist/core/auth/iiko-auth.service.d.ts.map +1 -0
  25. package/dist/core/auth/iiko-auth.service.js +302 -0
  26. package/dist/core/auth/iiko-auth.service.js.map +1 -0
  27. package/dist/core/http/iiko-http.client.d.ts +13 -0
  28. package/dist/core/http/iiko-http.client.d.ts.map +1 -0
  29. package/dist/core/http/iiko-http.client.js +55 -0
  30. package/dist/core/http/iiko-http.client.js.map +1 -0
  31. package/dist/core/iiko-parser.config.d.ts +28 -0
  32. package/dist/core/iiko-parser.config.d.ts.map +1 -0
  33. package/dist/core/iiko-parser.config.js +76 -0
  34. package/dist/core/iiko-parser.config.js.map +1 -0
  35. package/dist/core/parser/iiko-parser.service.d.ts +15 -0
  36. package/dist/core/parser/iiko-parser.service.d.ts.map +1 -0
  37. package/dist/core/parser/iiko-parser.service.js +156 -0
  38. package/dist/core/parser/iiko-parser.service.js.map +1 -0
  39. package/dist/core/session/iiko-session.service.d.ts +68 -0
  40. package/dist/core/session/iiko-session.service.d.ts.map +1 -0
  41. package/dist/core/session/iiko-session.service.js +209 -0
  42. package/dist/core/session/iiko-session.service.js.map +1 -0
  43. package/dist/iiko-parser.d.ts +149 -0
  44. package/dist/iiko-parser.d.ts.map +1 -0
  45. package/dist/iiko-parser.js +209 -0
  46. package/dist/iiko-parser.js.map +1 -0
  47. package/dist/index.d.ts +4 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +7 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/interfaces/company-profile.interface.d.ts +12 -0
  52. package/dist/interfaces/company-profile.interface.d.ts.map +1 -0
  53. package/dist/interfaces/company-profile.interface.js +3 -0
  54. package/dist/interfaces/company-profile.interface.js.map +1 -0
  55. package/dist/invoices/index.d.ts +6 -0
  56. package/dist/invoices/index.d.ts.map +1 -0
  57. package/dist/invoices/index.js +22 -0
  58. package/dist/invoices/index.js.map +1 -0
  59. package/dist/invoices/invoices.fetcher.d.ts +49 -0
  60. package/dist/invoices/invoices.fetcher.d.ts.map +1 -0
  61. package/dist/invoices/invoices.fetcher.js +141 -0
  62. package/dist/invoices/invoices.fetcher.js.map +1 -0
  63. package/dist/invoices/invoices.filters.d.ts +40 -0
  64. package/dist/invoices/invoices.filters.d.ts.map +1 -0
  65. package/dist/invoices/invoices.filters.js +81 -0
  66. package/dist/invoices/invoices.filters.js.map +1 -0
  67. package/dist/invoices/invoices.parser.d.ts +101 -0
  68. package/dist/invoices/invoices.parser.d.ts.map +1 -0
  69. package/dist/invoices/invoices.parser.js +540 -0
  70. package/dist/invoices/invoices.parser.js.map +1 -0
  71. package/dist/invoices/invoices.service.d.ts +82 -0
  72. package/dist/invoices/invoices.service.d.ts.map +1 -0
  73. package/dist/invoices/invoices.service.js +361 -0
  74. package/dist/invoices/invoices.service.js.map +1 -0
  75. package/dist/invoices/invoices.storage.service.d.ts +30 -0
  76. package/dist/invoices/invoices.storage.service.d.ts.map +1 -0
  77. package/dist/invoices/invoices.storage.service.js +135 -0
  78. package/dist/invoices/invoices.storage.service.js.map +1 -0
  79. package/dist/invoices/invoices.types.d.ts +94 -0
  80. package/dist/invoices/invoices.types.d.ts.map +1 -0
  81. package/dist/invoices/invoices.types.js +3 -0
  82. package/dist/invoices/invoices.types.js.map +1 -0
  83. package/dist/types.d.ts +138 -0
  84. package/dist/types.d.ts.map +1 -0
  85. package/dist/types.js +4 -0
  86. package/dist/types.js.map +1 -0
  87. package/package.json +52 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,151 @@
1
+ # Changelog
2
+
3
+ ## [1.0.6] - 2026-01-18
4
+
5
+ ### ✨ Added
6
+ - **Chain support**: Полная поддержка групп компаний (Chain)
7
+ - Новые поля в `ClientData`: `isChain: boolean`, `members: ClientMember[]`
8
+ - Интерфейс `ClientMember` с полями: uuid, name, clientId, iikoVersion, email, phone, legalEntity, tin, address, cloudAllocation, saasAllocation
9
+ - Автоматическое определение Chain через наличие ссылок на Cloud/SaaS allocation
10
+ - Загрузка членов группы из `/client-area/licenses/cloud-mapping.html` и `/client-area/licenses/saas-mapping.html`
11
+ - Парсинг JSON из атрибута `data-template-params` с декодированием HTML entities
12
+ - Агрегация лицензий: `cloudAllocation` и `saasAllocation` для каждого члена
13
+ - Дедупликация клиентов через `Map<clientId, ClientData>`
14
+ - Исключение членов Chain из корневого списка через `Set<memberClientIds>`
15
+ - Новые стадии прогресса: `detect_chain`, `load_chain_members`
16
+
17
+ ### 📚 Documentation
18
+ - **INTEGRATION_GUIDE.md**: Полное руководство для разработчиков с примерами использования Chain API
19
+ - **CHAIN_IMPLEMENTATION.md**: Техническая документация реализации Chain логики
20
+
21
+ ### 🔧 Technical
22
+ - Новые методы в `ClientsFetcher`: `fetchCloudAllocationHtml()`, `fetchSaasAllocationHtml()`
23
+ - Новые методы в `ClientsParser`: `detectIsChain()`, `parseAllocationPage()`, `parseAllocationPageLegacy()`
24
+ - Полная переработка `ClientsService.enrichWithDetails()` с Map/Set алгоритмами
25
+ - Метод `loadChainMembers()` для загрузки и обогащения данных членов группы
26
+
27
+ ---
28
+
29
+ ## [1.0.5] - 2026-01-18
30
+
31
+ ### ✨ Added
32
+ - **Address field**: Добавлено поле `address` в интерфейс `ClientData`
33
+ - Парсинг адреса из таблицы профиля клиента (строка "Address")
34
+ - Автоматическая нормализация адреса (удаление лишних пробелов, переносов строк и HTML тегов)
35
+ - Замена `<br>` тегов на пробелы для читаемости
36
+ - Обновлена документация и примеры использования
37
+
38
+ ### 🔧 Technical
39
+ - Нормализация адреса: `replace(/<br\s*\/?>/gi, ' ')` → `replace(/\s+/g, ' ')` → `trim()`
40
+ - Поддержка многострочных адресов из HTML
41
+
42
+ ---
43
+
44
+ ## [1.0.4] - 2026-01-18
45
+
46
+ ### ✨ Added
47
+ - **getClients() functionality**: Новая функция для получения списка клиентов с полной информацией
48
+ - Модуль `clients/` с архитектурой: fetcher, parser, service, types
49
+ - Парсинг списка клиентов из `/en/cabinet/ajax/clients-list.html`
50
+ - Парсинг профилей клиентов из `/en/cabinet/client-area/index.html`
51
+ - Извлечение данных: UUID, name, clientId, iikoVersion, email, phone, legalEntity, tin
52
+ - Нормализация: TIN (только цифры), Legal Entity (удаление кавычек «»)
53
+
54
+ - **totalPages support**: Автоматическое определение общего количества страниц
55
+ - Парсинг из `.pagination a.page-link[data-page]`
56
+ - Fallback через `.pagination-total` с расчетом `ceil(totalEntries / perPage)`
57
+ - Корректное отображение прогресса: `[1/14]`, `[2/14]` вместо `[1/?]`
58
+
59
+ - **Progress tracking для клиентов**: Новые стадии прогресса
60
+ - `fetch_clients`: загрузка страниц списка клиентов
61
+ - `parse_clients`: парсинг списка клиентов
62
+ - `fetch_client_details`: загрузка профилей клиентов
63
+
64
+ ### 🔧 Technical
65
+ - Правильные селекторы: `#clientsTable_ajax tbody.ajax tr` с fallback на `tbody.ajax tr`
66
+ - Поддержка полного HTML и AJAX фрагментов
67
+ - Подробная JSDoc документация для всех методов
68
+ - 87 файлов в пакете, размер: 65.8 kB
69
+
70
+ ### 📝 Documentation
71
+ - Добавлен раздел "Получение списка клиентов" в README
72
+ - Примеры фильтрации и обработки данных клиентов
73
+ - Обновлена таблица событий прогресса
74
+
75
+ ---
76
+
77
+ ## [1.0.3] - 2026-01-16
78
+
79
+ ### ✨ Added
80
+ - **Progress Tracking (Stage 8)**: Механизм отслеживания прогресса выполнения
81
+ - Новый интерфейс `ParserProgressEvent` с этапами: `session`, `auth`, `fetch_invoices`, `parse_invoices`, `fetch_invoice_details`, `done`
82
+ - Опциональный callback `onProgress` в `IikoParserOptions`
83
+ - События прогресса во всех ключевых точках: сессия, авторизация, пагинация, парсинг, загрузка деталей
84
+ - Поддержка счетчиков для операций с прогрессом (`current`/`total`)
85
+ - Информация о текущем инвойсе при загрузке деталей (`invoiceNumber`)
86
+
87
+ ### 📝 Documentation
88
+ - Добавлен раздел "Progress Tracking" в README
89
+ - Примеры интеграции с WebSocket и SSE
90
+ - Новый example `progress-tracking.js` с 4 сценариями использования
91
+ - Таблица событий прогресса с описанием полей
92
+
93
+ ### 🔧 Technical
94
+ - Callback передается через конструкторы всех сервисов
95
+ - Безопасная реализация без side-effects при отсутствии callback
96
+ - WebSocket-ready архитектура (без привязки к конкретной реализации)
97
+ - Экспорт `ParserProgressEvent` и `ParserProgressCallback` типов
98
+
99
+ ---
100
+
101
+ ## [1.0.2] - 2026-01-14
102
+
103
+ ### 🐛 Fixed
104
+ - **README**: Исправлена опечатка в import statement (двойной `@mirzaev/`)
105
+
106
+ ---
107
+
108
+ ## [1.0.1] - 2026-01-14
109
+
110
+ ### 🐛 Fixed
111
+ - **Фильтрация по датам**: Исправлена ошибка, когда параметры `dateFrom` и `dateTo` игнорировались
112
+ - Добавлена конвертация формата даты из `YYYY-MM-DD` в `dd.mm.yyyy` (формат iiko API)
113
+ - Параметры `invoice_created_from` и `invoice_created_to` теперь корректно передаются в HTTP запрос
114
+ - Фильтрация теперь возвращает инвойсы только за указанный период
115
+
116
+ ### ✨ Added
117
+ - Новый пример `examples/date-filtering.js` с 5 сценариями использования фильтрации по датам
118
+ - Метод `InvoicesFilters.convertDateFormat()` для конвертации дат
119
+
120
+ ### 📝 Documentation
121
+ - Обновлена документация с пояснением формата дат
122
+ - Добавлено примечание об автоматической конвертации формата
123
+
124
+ ---
125
+
126
+ ## [1.0.0] - 2026-01-14
127
+
128
+ ### 🎉 Initial Release
129
+
130
+ #### Core Features
131
+ - ✅ Авторизация через форму (email + password)
132
+ - ✅ Автоматическое сохранение и переиспользование cookies
133
+ - ✅ Парсинг таблицы инвойсов с полями (номер, дата, клиент, tax_id, сумма и т.д.)
134
+ - ✅ Парсинг модальных окон (items и subscriptions)
135
+ - ✅ Пагинация с контролем (pageSize, maxPages)
136
+ - ✅ Фильтрация по параметрам (searchBy, searchValue, dateFrom, dateTo)
137
+ - ✅ Нормализация tax_id (удаление пробелов)
138
+
139
+ #### Documentation
140
+ - 📖 Comprehensive README с примерами
141
+ - 📖 6 рабочих примеров в папке `examples/`
142
+ - 📖 JSDoc для всех публичных API
143
+ - 📖 TypeScript definitions с полным export
144
+
145
+ #### Package Configuration
146
+ - 📦 Scoped package: `@mirzaev/vv-iiko-pp-parser`
147
+ - 🔒 Private access (restricted)
148
+ - 📝 UNLICENSED license
149
+ - 🏗️ TypeScript source → JavaScript dist
150
+ - 🎯 Node.js >= 16.0.0
151
+