@advayta108/uplati-sdk 1.0.0

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/README.md ADDED
@@ -0,0 +1,92 @@
1
+ # @advayta108/uplati-sdk
2
+
3
+ TypeScript SDK для работы с API Uplati (Система Город).
4
+
5
+ ## Установка
6
+
7
+ ```bash
8
+ npm install @advayta108/uplati-sdk
9
+ ```
10
+
11
+ ## Быстрый старт
12
+
13
+ ```typescript
14
+ import { UplatiClient } from '@advayta108/uplati-sdk';
15
+
16
+ const client = new UplatiClient({
17
+ sendDataEnabled: true,
18
+ logger: (message) => console.log('[uplati-sdk]', message),
19
+ });
20
+
21
+ await client.authenticate('email@example.com', 'password');
22
+
23
+ const meters = await client.getMeters();
24
+ await client.sendMeterValue(meters[0].id, 123.45);
25
+ ```
26
+
27
+ ## Возможности
28
+
29
+ - Авторизация и управление токеном сессии
30
+ - Получение списка счетчиков
31
+ - Отправка показаний счетчиков
32
+ - Получение квитанций
33
+ - Получение истории транзакций
34
+ - Получение/настройка/удаление автоплатежей
35
+
36
+ ## API клиента
37
+
38
+ `UplatiClient`:
39
+
40
+ - `authenticate(email: string, password: string): Promise<string>`
41
+ - `setToken(token: string): void`
42
+ - `getToken(): string | null`
43
+ - `getMeters(): Promise<Sensor[]>`
44
+ - `sendMeterValue(sensorId: number, sensorValue: number | string): Promise<boolean>`
45
+ - `getReceipts(): Promise<Receipt[]>`
46
+ - `getTransactions(limit?: number): Promise<Transaction[]>`
47
+ - `getAutopayments(): Promise<Autopayment[]>`
48
+ - `setAutopayment(settings: AutopaymentSettings): Promise<boolean>`
49
+ - `deleteAutopayment(autopaymentId: number): Promise<boolean>`
50
+
51
+ ## Экспортируемые типы
52
+
53
+ ```typescript
54
+ import {
55
+ Sensor,
56
+ Receipt,
57
+ Transaction,
58
+ Autopayment,
59
+ AutopaymentSettings,
60
+ } from '@advayta108/uplati-sdk';
61
+ ```
62
+
63
+ ## Настройки клиента
64
+
65
+ ```typescript
66
+ new UplatiClient({
67
+ sendDataEnabled: true, // false -> тестовый режим без отправки
68
+ baseUrl: 'https://gw3-online.uplati.ru/api',
69
+ logger: console.log,
70
+ });
71
+ ```
72
+
73
+ ## Разработка в монорепозитории
74
+
75
+ Если вы работаете внутри `UPLATI-BOT-SDK-MONOREPO`:
76
+
77
+ ```bash
78
+ npm install
79
+ npm run build:lib
80
+ ```
81
+
82
+ Для публикации из монорепозитория:
83
+
84
+ ```bash
85
+ npm run publish:lib
86
+ ```
87
+
88
+ ## Документация проекта
89
+
90
+ - Основной репозиторий (EN): `../../README.md`
91
+ - Основной репозиторий (RU): `../../README.RU.md`
92
+
package/dist/api.d.ts ADDED
@@ -0,0 +1,15 @@
1
+ import { Sensor, Receipt, Transaction, Autopayment, AutopaymentSettings } from './types';
2
+ export interface UplatiClientOptions {
3
+ sendDataEnabled?: boolean;
4
+ baseUrl?: string;
5
+ logger?: (message: string) => void;
6
+ }
7
+ export declare const authenticate: (email: string, password: string, options?: UplatiClientOptions) => Promise<string>;
8
+ export declare const getMetersData: (token: string, options?: UplatiClientOptions) => Promise<Sensor[]>;
9
+ export declare const sendSensorValue: (token: string, sensorId: number, sensorValue: number | string, options?: UplatiClientOptions) => Promise<boolean>;
10
+ export declare const getReceipts: (token: string, options?: UplatiClientOptions) => Promise<Receipt[]>;
11
+ export declare const getTransactions: (token: string, limit?: number, options?: UplatiClientOptions) => Promise<Transaction[]>;
12
+ export declare const getAutopayments: (token: string, options?: UplatiClientOptions) => Promise<Autopayment[]>;
13
+ export declare const setAutopayment: (token: string, settings: AutopaymentSettings, options?: UplatiClientOptions) => Promise<boolean>;
14
+ export declare const deleteAutopayment: (token: string, autopaymentId: number, options?: UplatiClientOptions) => Promise<boolean>;
15
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,MAAM,EACN,OAAO,EACP,WAAW,EACX,WAAW,EACX,mBAAmB,EAMpB,MAAM,SAAS,CAAC;AAOjB,MAAM,WAAW,mBAAmB;IAClC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAGD,eAAO,MAAM,YAAY,GACvB,OAAO,MAAM,EACb,UAAU,MAAM,EAChB,UAAU,mBAAmB,KAC5B,OAAO,CAAC,MAAM,CAgChB,CAAC;AAGF,eAAO,MAAM,aAAa,GACxB,OAAO,MAAM,EACb,UAAU,mBAAmB,KAC5B,OAAO,CAAC,MAAM,EAAE,CA6BlB,CAAC;AAGF,eAAO,MAAM,eAAe,GAC1B,OAAO,MAAM,EACb,UAAU,MAAM,EAChB,aAAa,MAAM,GAAG,MAAM,EAC5B,UAAU,mBAAmB,KAC5B,OAAO,CAAC,OAAO,CAgCjB,CAAC;AAGF,eAAO,MAAM,WAAW,GACtB,OAAO,MAAM,EACb,UAAU,mBAAmB,KAC5B,OAAO,CAAC,OAAO,EAAE,CAkBnB,CAAC;AAGF,eAAO,MAAM,eAAe,GAC1B,OAAO,MAAM,EACb,QAAQ,MAAM,EACd,UAAU,mBAAmB,KAC5B,OAAO,CAAC,WAAW,EAAE,CAoBvB,CAAC;AAGF,eAAO,MAAM,eAAe,GAC1B,OAAO,MAAM,EACb,UAAU,mBAAmB,KAC5B,OAAO,CAAC,WAAW,EAAE,CAkBvB,CAAC;AAGF,eAAO,MAAM,cAAc,GACzB,OAAO,MAAM,EACb,UAAU,mBAAmB,EAC7B,UAAU,mBAAmB,KAC5B,OAAO,CAAC,OAAO,CA4BjB,CAAC;AAGF,eAAO,MAAM,iBAAiB,GAC5B,OAAO,MAAM,EACb,eAAe,MAAM,EACrB,UAAU,mBAAmB,KAC5B,OAAO,CAAC,OAAO,CAwBjB,CAAC"}
package/dist/api.js ADDED
@@ -0,0 +1,264 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.deleteAutopayment = exports.setAutopayment = exports.getAutopayments = exports.getTransactions = exports.getReceipts = exports.sendSensorValue = exports.getMetersData = exports.authenticate = void 0;
40
+ // API функции для работы с сервисом Uplati
41
+ const axios_1 = __importStar(require("axios"));
42
+ const form_data_1 = __importDefault(require("form-data"));
43
+ const headers_1 = require("./headers");
44
+ // Базовый URL API
45
+ const BASE_URL = 'https://gw3-online.uplati.ru/api';
46
+ const AUTH_URL = `${BASE_URL}/auth`;
47
+ // Функция для аутентификации
48
+ const authenticate = async (email, password, options) => {
49
+ const logger = options?.logger || console.log;
50
+ try {
51
+ const response = await axios_1.default.post(AUTH_URL, {
52
+ email_or_phone: email,
53
+ password: password,
54
+ weboper_token: 'null',
55
+ }, {
56
+ headers: {
57
+ ...(0, headers_1.getHeaders)(),
58
+ 'content-type': 'multipart/form-data',
59
+ },
60
+ });
61
+ if (response.data.session.token) {
62
+ return response.data.session.token;
63
+ }
64
+ else {
65
+ throw new Error('Authentication failed');
66
+ }
67
+ }
68
+ catch (error) {
69
+ if (error instanceof axios_1.AxiosError) {
70
+ logger('Error during authentication: ' + (error.response?.data || error.message));
71
+ }
72
+ else {
73
+ logger('Unexpected error during authentication: ' + String(error));
74
+ }
75
+ throw error;
76
+ }
77
+ };
78
+ exports.authenticate = authenticate;
79
+ // Функция для получения данных по счётчикам
80
+ const getMetersData = async (token, options) => {
81
+ const logger = options?.logger || console.log;
82
+ const baseUrl = options?.baseUrl || BASE_URL;
83
+ const sendDataEnabled = options?.sendDataEnabled !== false;
84
+ const metersUrl = sendDataEnabled
85
+ ? `${baseUrl}/sensors`
86
+ : 'http://localhost:3000/test';
87
+ try {
88
+ const response = await axios_1.default.get(metersUrl, {
89
+ headers: (0, headers_1.getHeaders)(token),
90
+ });
91
+ const sensors = response.data.sensors.map((sensor) => ({
92
+ id: sensor.id,
93
+ last_sensor_value: sensor.last_sensor_value,
94
+ last_sensor_date: sensor.last_sensor_date,
95
+ display_name: sensor.display_name,
96
+ }));
97
+ return sensors;
98
+ }
99
+ catch (error) {
100
+ if (error instanceof axios_1.AxiosError) {
101
+ logger('Error fetching meters data: ' + (error.response?.data || error.message));
102
+ }
103
+ else {
104
+ logger('Unexpected error fetching meters data: ' + String(error));
105
+ }
106
+ return [];
107
+ }
108
+ };
109
+ exports.getMetersData = getMetersData;
110
+ // Функция для отправки значений счётчиков
111
+ const sendSensorValue = async (token, sensorId, sensorValue, options) => {
112
+ const logger = options?.logger || console.log;
113
+ const baseUrl = options?.baseUrl || BASE_URL;
114
+ try {
115
+ const formData = new form_data_1.default();
116
+ formData.append('sensor_value', sensorValue.toString());
117
+ const headersWithFormData = {
118
+ ...(0, headers_1.getHeaders)(token),
119
+ ...formData.getHeaders(),
120
+ };
121
+ const url = `${baseUrl}/sensor/${sensorId}/value`;
122
+ const response = await axios_1.default.post(url, formData, { headers: headersWithFormData });
123
+ if (response.data.status === 201) {
124
+ logger('Данные успешно отправлены на сервер');
125
+ return true;
126
+ }
127
+ else {
128
+ logger('Ошибка при отправке данных: ' + JSON.stringify(response.data));
129
+ return false;
130
+ }
131
+ }
132
+ catch (error) {
133
+ if (error instanceof axios_1.AxiosError) {
134
+ logger('Ошибка при отправке данных: ' + (error.response?.data || error.message));
135
+ }
136
+ else {
137
+ logger('Unexpected error while sending data: ' + String(error));
138
+ }
139
+ return false;
140
+ }
141
+ };
142
+ exports.sendSensorValue = sendSensorValue;
143
+ // Функция для получения списка квитанций
144
+ const getReceipts = async (token, options) => {
145
+ const logger = options?.logger || console.log;
146
+ const baseUrl = options?.baseUrl || BASE_URL;
147
+ try {
148
+ const response = await axios_1.default.get(`${baseUrl}/receipts`, {
149
+ headers: (0, headers_1.getHeaders)(token),
150
+ });
151
+ return response.data.receipts || [];
152
+ }
153
+ catch (error) {
154
+ if (error instanceof axios_1.AxiosError) {
155
+ logger('Error fetching receipts: ' + (error.response?.data || error.message));
156
+ }
157
+ else {
158
+ logger('Unexpected error fetching receipts: ' + String(error));
159
+ }
160
+ return [];
161
+ }
162
+ };
163
+ exports.getReceipts = getReceipts;
164
+ // Функция для получения последних транзакций
165
+ const getTransactions = async (token, limit, options) => {
166
+ const logger = options?.logger || console.log;
167
+ const baseUrl = options?.baseUrl || BASE_URL;
168
+ try {
169
+ const params = limit ? { limit } : {};
170
+ const response = await axios_1.default.get(`${baseUrl}/transactions`, {
171
+ headers: (0, headers_1.getHeaders)(token),
172
+ params,
173
+ });
174
+ return response.data.transactions || [];
175
+ }
176
+ catch (error) {
177
+ if (error instanceof axios_1.AxiosError) {
178
+ logger('Error fetching transactions: ' + (error.response?.data || error.message));
179
+ }
180
+ else {
181
+ logger('Unexpected error fetching transactions: ' + String(error));
182
+ }
183
+ return [];
184
+ }
185
+ };
186
+ exports.getTransactions = getTransactions;
187
+ // Функция для получения списка автоплатежей
188
+ const getAutopayments = async (token, options) => {
189
+ const logger = options?.logger || console.log;
190
+ const baseUrl = options?.baseUrl || BASE_URL;
191
+ try {
192
+ const response = await axios_1.default.get(`${baseUrl}/autopayments`, {
193
+ headers: (0, headers_1.getHeaders)(token),
194
+ });
195
+ return response.data.autopayments || [];
196
+ }
197
+ catch (error) {
198
+ if (error instanceof axios_1.AxiosError) {
199
+ logger('Error fetching autopayments: ' + (error.response?.data || error.message));
200
+ }
201
+ else {
202
+ logger('Unexpected error fetching autopayments: ' + String(error));
203
+ }
204
+ return [];
205
+ }
206
+ };
207
+ exports.getAutopayments = getAutopayments;
208
+ // Функция для создания/настройки автоплатежа
209
+ const setAutopayment = async (token, settings, options) => {
210
+ const logger = options?.logger || console.log;
211
+ const baseUrl = options?.baseUrl || BASE_URL;
212
+ try {
213
+ const response = await axios_1.default.post(`${baseUrl}/autopayments`, settings, {
214
+ headers: (0, headers_1.getHeaders)(token),
215
+ });
216
+ if (response.status === 200 || response.status === 201) {
217
+ logger('Автоплатеж успешно настроен');
218
+ return true;
219
+ }
220
+ else {
221
+ logger('Ошибка при настройке автоплатежа: ' + JSON.stringify(response.data));
222
+ return false;
223
+ }
224
+ }
225
+ catch (error) {
226
+ if (error instanceof axios_1.AxiosError) {
227
+ logger('Ошибка при настройке автоплатежа: ' + (error.response?.data || error.message));
228
+ }
229
+ else {
230
+ logger('Unexpected error while setting autopayment: ' + String(error));
231
+ }
232
+ return false;
233
+ }
234
+ };
235
+ exports.setAutopayment = setAutopayment;
236
+ // Функция для удаления автоплатежа
237
+ const deleteAutopayment = async (token, autopaymentId, options) => {
238
+ const logger = options?.logger || console.log;
239
+ const baseUrl = options?.baseUrl || BASE_URL;
240
+ try {
241
+ const response = await axios_1.default.delete(`${baseUrl}/autopayments/${autopaymentId}`, {
242
+ headers: (0, headers_1.getHeaders)(token),
243
+ });
244
+ if (response.status === 200 || response.status === 204) {
245
+ logger('Автоплатеж успешно удалён');
246
+ return true;
247
+ }
248
+ else {
249
+ logger('Ошибка при удалении автоплатежа: ' + JSON.stringify(response.data));
250
+ return false;
251
+ }
252
+ }
253
+ catch (error) {
254
+ if (error instanceof axios_1.AxiosError) {
255
+ logger('Ошибка при удалении автоплатежа: ' + (error.response?.data || error.message));
256
+ }
257
+ else {
258
+ logger('Unexpected error while deleting autopayment: ' + String(error));
259
+ }
260
+ return false;
261
+ }
262
+ };
263
+ exports.deleteAutopayment = deleteAutopayment;
264
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { UplatiClientOptions } from './api';
2
+ import { Sensor, Receipt, Transaction, Autopayment, AutopaymentSettings } from './types';
3
+ export declare class UplatiClient {
4
+ private token;
5
+ private options;
6
+ constructor(options?: UplatiClientOptions);
7
+ authenticate(email: string, password: string): Promise<string>;
8
+ setToken(token: string): void;
9
+ getToken(): string | null;
10
+ getMeters(): Promise<Sensor[]>;
11
+ sendMeterValue(sensorId: number, sensorValue: number | string): Promise<boolean>;
12
+ getReceipts(): Promise<Receipt[]>;
13
+ getTransactions(limit?: number): Promise<Transaction[]>;
14
+ getAutopayments(): Promise<Autopayment[]>;
15
+ setAutopayment(settings: AutopaymentSettings): Promise<boolean>;
16
+ deleteAutopayment(autopaymentId: number): Promise<boolean>;
17
+ }
18
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,OAAO,EASL,mBAAmB,EACpB,MAAM,OAAO,CAAC;AACf,OAAO,EACL,MAAM,EACN,OAAO,EACP,WAAW,EACX,WAAW,EACX,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAEjB,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,OAAO,CAAsB;gBAEzB,OAAO,CAAC,EAAE,mBAAmB;IAKnC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMpE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7B,QAAQ,IAAI,MAAM,GAAG,IAAI;IAKnB,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAQ9B,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQhF,WAAW,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAQjC,eAAe,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAQvD,eAAe,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAQzC,cAAc,CAAC,QAAQ,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ/D,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAMjE"}
package/dist/client.js ADDED
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UplatiClient = void 0;
4
+ // Основной клиент для работы с API Uplati
5
+ const api_1 = require("./api");
6
+ class UplatiClient {
7
+ token = null;
8
+ options;
9
+ constructor(options) {
10
+ this.options = options || {};
11
+ }
12
+ // Авторизация
13
+ async authenticate(email, password) {
14
+ this.token = await (0, api_1.authenticate)(email, password, this.options);
15
+ return this.token;
16
+ }
17
+ // Установка токена напрямую
18
+ setToken(token) {
19
+ this.token = token;
20
+ }
21
+ // Получить текущий токен
22
+ getToken() {
23
+ return this.token;
24
+ }
25
+ // Получить данные по счётчикам
26
+ async getMeters() {
27
+ if (!this.token) {
28
+ throw new Error('Token is required. Please authenticate first.');
29
+ }
30
+ return (0, api_1.getMetersData)(this.token, this.options);
31
+ }
32
+ // Отправить показания счётчика
33
+ async sendMeterValue(sensorId, sensorValue) {
34
+ if (!this.token) {
35
+ throw new Error('Token is required. Please authenticate first.');
36
+ }
37
+ return (0, api_1.sendSensorValue)(this.token, sensorId, sensorValue, this.options);
38
+ }
39
+ // Получить список квитанций
40
+ async getReceipts() {
41
+ if (!this.token) {
42
+ throw new Error('Token is required. Please authenticate first.');
43
+ }
44
+ return (0, api_1.getReceipts)(this.token, this.options);
45
+ }
46
+ // Получить последние транзакции
47
+ async getTransactions(limit) {
48
+ if (!this.token) {
49
+ throw new Error('Token is required. Please authenticate first.');
50
+ }
51
+ return (0, api_1.getTransactions)(this.token, limit, this.options);
52
+ }
53
+ // Получить список автоплатежей
54
+ async getAutopayments() {
55
+ if (!this.token) {
56
+ throw new Error('Token is required. Please authenticate first.');
57
+ }
58
+ return (0, api_1.getAutopayments)(this.token, this.options);
59
+ }
60
+ // Настроить автоплатеж
61
+ async setAutopayment(settings) {
62
+ if (!this.token) {
63
+ throw new Error('Token is required. Please authenticate first.');
64
+ }
65
+ return (0, api_1.setAutopayment)(this.token, settings, this.options);
66
+ }
67
+ // Удалить автоплатеж
68
+ async deleteAutopayment(autopaymentId) {
69
+ if (!this.token) {
70
+ throw new Error('Token is required. Please authenticate first.');
71
+ }
72
+ return (0, api_1.deleteAutopayment)(this.token, autopaymentId, this.options);
73
+ }
74
+ }
75
+ exports.UplatiClient = UplatiClient;
76
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export declare const getHeaders: (token?: string) => {
2
+ accept: string;
3
+ 'accept-language': string;
4
+ authorization: string;
5
+ 'sec-ch-ua': string;
6
+ 'sec-ch-ua-mobile': string;
7
+ 'sec-ch-ua-platform': string;
8
+ 'sec-fetch-dest': string;
9
+ 'sec-fetch-mode': string;
10
+ 'sec-fetch-site': string;
11
+ 'sec-gpc': string;
12
+ 'x-client': string;
13
+ Referer: string;
14
+ 'Referrer-Policy': string;
15
+ 'User-Agent': string;
16
+ };
17
+ //# sourceMappingURL=headers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headers.d.ts","sourceRoot":"","sources":["../src/headers.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,UAAU,GAAI,QAAQ,MAAM;;;;;;;;;;;;;;;CAevC,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getHeaders = void 0;
4
+ // Функция для генерации заголовков запросов
5
+ const getHeaders = (token) => ({
6
+ 'accept': 'application/json',
7
+ 'accept-language': 'ru-RU,ru;q=0.5',
8
+ 'authorization': token ? `Bearer ${token}` : '',
9
+ 'sec-ch-ua': '"Not_A Brand";v="99", "Brave";v="109", "Chromium";v="109"',
10
+ 'sec-ch-ua-mobile': '?1',
11
+ 'sec-ch-ua-platform': '"Android"',
12
+ 'sec-fetch-dest': 'empty',
13
+ 'sec-fetch-mode': 'cors',
14
+ 'sec-fetch-site': 'same-site',
15
+ 'sec-gpc': '1',
16
+ 'x-client': 'web;2.4.27;desktop',
17
+ 'Referer': 'https://lk.uplati.ru/',
18
+ 'Referrer-Policy': 'strict-origin-when-cross-origin',
19
+ 'User-Agent': 'Uplati-SDK',
20
+ });
21
+ exports.getHeaders = getHeaders;
22
+ //# sourceMappingURL=headers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headers.js","sourceRoot":"","sources":["../src/headers.ts"],"names":[],"mappings":";;;AAAA,4CAA4C;AACrC,MAAM,UAAU,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,CAAC;IAC7C,QAAQ,EAAE,kBAAkB;IAC5B,iBAAiB,EAAE,gBAAgB;IACnC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;IAC/C,WAAW,EAAE,2DAA2D;IACxE,kBAAkB,EAAE,IAAI;IACxB,oBAAoB,EAAE,WAAW;IACjC,gBAAgB,EAAE,OAAO;IACzB,gBAAgB,EAAE,MAAM;IACxB,gBAAgB,EAAE,WAAW;IAC7B,SAAS,EAAE,GAAG;IACd,UAAU,EAAE,oBAAoB;IAChC,SAAS,EAAE,uBAAuB;IAClC,iBAAiB,EAAE,iCAAiC;IACpD,YAAY,EAAE,YAAY;CAC3B,CAAC,CAAC;AAfU,QAAA,UAAU,cAepB"}
@@ -0,0 +1,4 @@
1
+ export * from './client';
2
+ export * from './types';
3
+ export * from './api';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ // Главный экспорт библиотеки
18
+ __exportStar(require("./client"), exports);
19
+ __exportStar(require("./types"), exports);
20
+ __exportStar(require("./api"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6BAA6B;AAC7B,2CAAyB;AACzB,0CAAwB;AACxB,wCAAsB"}
@@ -0,0 +1,59 @@
1
+ export interface Sensor {
2
+ id: number;
3
+ last_sensor_value: number;
4
+ last_sensor_date: string;
5
+ display_name: string;
6
+ }
7
+ export interface Receipt {
8
+ id: number;
9
+ number: string;
10
+ date: string;
11
+ amount: number;
12
+ status: string;
13
+ service_name?: string;
14
+ period?: string;
15
+ }
16
+ export interface Transaction {
17
+ id: number;
18
+ date: string;
19
+ amount: number;
20
+ status: string;
21
+ type: string;
22
+ description?: string;
23
+ receipt_id?: number;
24
+ }
25
+ export interface Autopayment {
26
+ id: number;
27
+ name: string;
28
+ service_id: number;
29
+ service_name: string;
30
+ amount?: number;
31
+ enabled: boolean;
32
+ next_payment_date?: string;
33
+ payment_method?: string;
34
+ }
35
+ export interface AutopaymentSettings {
36
+ service_id: number;
37
+ amount?: number;
38
+ enabled: boolean;
39
+ payment_method?: string;
40
+ threshold?: number;
41
+ }
42
+ export interface AuthResponse {
43
+ session: {
44
+ token: string;
45
+ };
46
+ }
47
+ export interface SensorsResponse {
48
+ sensors: Sensor[];
49
+ }
50
+ export interface ReceiptsResponse {
51
+ receipts: Receipt[];
52
+ }
53
+ export interface TransactionsResponse {
54
+ transactions: Transaction[];
55
+ }
56
+ export interface AutopaymentsResponse {
57
+ autopayments: Autopayment[];
58
+ }
59
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;CACtB;AAGD,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAGD,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAGD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAGD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAGD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAGD,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B;AAGD,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B"}
package/dist/types.js ADDED
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ // Типы для библиотеки Uplati SDK
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA,iCAAiC"}
package/package.json ADDED
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "@advayta108/uplati-sdk",
3
+ "version": "1.0.0",
4
+ "description": "SDK для работы с API сервиса Система Город (Uplati)",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "default": "./dist/index.js"
11
+ }
12
+ },
13
+ "publishConfig": {
14
+ "access": "public"
15
+ },
16
+ "files": [
17
+ "dist",
18
+ "README.md",
19
+ "LICENSE"
20
+ ],
21
+ "scripts": {
22
+ "build": "tsc",
23
+ "clean": "tsc --build --clean",
24
+ "prepublishOnly": "npm run build"
25
+ },
26
+ "keywords": [
27
+ "uplati",
28
+ "sdk",
29
+ "api",
30
+ "система город",
31
+ "uplati-api",
32
+ "typescript"
33
+ ],
34
+ "author": "advayta108",
35
+ "license": "MIT",
36
+ "repository": {
37
+ "type": "git",
38
+ "url": "https://github.com/advayta108/uptati-sdk.git"
39
+ },
40
+ "bugs": {
41
+ "url": "https://github.com/advayta108/uptati-sdk/issues"
42
+ },
43
+ "homepage": "https://github.com/advayta108/uptati-sdk#readme",
44
+ "engines": {
45
+ "node": ">=18.0.0"
46
+ },
47
+ "dependencies": {
48
+ "axios": "^1.7.9",
49
+ "form-data": "^4.0.1"
50
+ },
51
+ "devDependencies": {
52
+ "@types/node": "^22.10.5",
53
+ "typescript": "^5.7.2"
54
+ }
55
+ }
56
+