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.
- package/CHANGELOG.md +151 -0
- package/README.md +582 -0
- package/dist/clients/clients.fetcher.d.ts +102 -0
- package/dist/clients/clients.fetcher.d.ts.map +1 -0
- package/dist/clients/clients.fetcher.js +196 -0
- package/dist/clients/clients.fetcher.js.map +1 -0
- package/dist/clients/clients.parser.d.ts +144 -0
- package/dist/clients/clients.parser.d.ts.map +1 -0
- package/dist/clients/clients.parser.js +473 -0
- package/dist/clients/clients.parser.js.map +1 -0
- package/dist/clients/clients.service.d.ts +90 -0
- package/dist/clients/clients.service.d.ts.map +1 -0
- package/dist/clients/clients.service.js +277 -0
- package/dist/clients/clients.service.js.map +1 -0
- package/dist/clients/clients.types.d.ts +127 -0
- package/dist/clients/clients.types.d.ts.map +1 -0
- package/dist/clients/clients.types.js +6 -0
- package/dist/clients/clients.types.js.map +1 -0
- package/dist/clients/index.d.ts +5 -0
- package/dist/clients/index.d.ts.map +1 -0
- package/dist/clients/index.js +25 -0
- package/dist/clients/index.js.map +1 -0
- package/dist/core/auth/iiko-auth.service.d.ts +52 -0
- package/dist/core/auth/iiko-auth.service.d.ts.map +1 -0
- package/dist/core/auth/iiko-auth.service.js +302 -0
- package/dist/core/auth/iiko-auth.service.js.map +1 -0
- package/dist/core/http/iiko-http.client.d.ts +13 -0
- package/dist/core/http/iiko-http.client.d.ts.map +1 -0
- package/dist/core/http/iiko-http.client.js +55 -0
- package/dist/core/http/iiko-http.client.js.map +1 -0
- package/dist/core/iiko-parser.config.d.ts +28 -0
- package/dist/core/iiko-parser.config.d.ts.map +1 -0
- package/dist/core/iiko-parser.config.js +76 -0
- package/dist/core/iiko-parser.config.js.map +1 -0
- package/dist/core/parser/iiko-parser.service.d.ts +15 -0
- package/dist/core/parser/iiko-parser.service.d.ts.map +1 -0
- package/dist/core/parser/iiko-parser.service.js +156 -0
- package/dist/core/parser/iiko-parser.service.js.map +1 -0
- package/dist/core/session/iiko-session.service.d.ts +68 -0
- package/dist/core/session/iiko-session.service.d.ts.map +1 -0
- package/dist/core/session/iiko-session.service.js +209 -0
- package/dist/core/session/iiko-session.service.js.map +1 -0
- package/dist/iiko-parser.d.ts +149 -0
- package/dist/iiko-parser.d.ts.map +1 -0
- package/dist/iiko-parser.js +209 -0
- package/dist/iiko-parser.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/company-profile.interface.d.ts +12 -0
- package/dist/interfaces/company-profile.interface.d.ts.map +1 -0
- package/dist/interfaces/company-profile.interface.js +3 -0
- package/dist/interfaces/company-profile.interface.js.map +1 -0
- package/dist/invoices/index.d.ts +6 -0
- package/dist/invoices/index.d.ts.map +1 -0
- package/dist/invoices/index.js +22 -0
- package/dist/invoices/index.js.map +1 -0
- package/dist/invoices/invoices.fetcher.d.ts +49 -0
- package/dist/invoices/invoices.fetcher.d.ts.map +1 -0
- package/dist/invoices/invoices.fetcher.js +141 -0
- package/dist/invoices/invoices.fetcher.js.map +1 -0
- package/dist/invoices/invoices.filters.d.ts +40 -0
- package/dist/invoices/invoices.filters.d.ts.map +1 -0
- package/dist/invoices/invoices.filters.js +81 -0
- package/dist/invoices/invoices.filters.js.map +1 -0
- package/dist/invoices/invoices.parser.d.ts +101 -0
- package/dist/invoices/invoices.parser.d.ts.map +1 -0
- package/dist/invoices/invoices.parser.js +540 -0
- package/dist/invoices/invoices.parser.js.map +1 -0
- package/dist/invoices/invoices.service.d.ts +82 -0
- package/dist/invoices/invoices.service.d.ts.map +1 -0
- package/dist/invoices/invoices.service.js +361 -0
- package/dist/invoices/invoices.service.js.map +1 -0
- package/dist/invoices/invoices.storage.service.d.ts +30 -0
- package/dist/invoices/invoices.storage.service.d.ts.map +1 -0
- package/dist/invoices/invoices.storage.service.js +135 -0
- package/dist/invoices/invoices.storage.service.js.map +1 -0
- package/dist/invoices/invoices.types.d.ts +94 -0
- package/dist/invoices/invoices.types.d.ts.map +1 -0
- package/dist/invoices/invoices.types.js +3 -0
- package/dist/invoices/invoices.types.js.map +1 -0
- package/dist/types.d.ts +138 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +4 -0
- package/dist/types.js.map +1 -0
- 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
|
+
|