szdl-utils-kit 0.2.30 → 0.3.5

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.
@@ -1,177 +1,132 @@
1
- type TAppConst = {
2
- appName: string,
3
- appNameEng: string,
4
- pathApp: string,
5
- zip: string,
6
- chatBotLogo: string,
7
- entity: { key: string, name: string }[],
8
- }
9
- type UserOptionReturnType<T> = T extends undefined ? string | number : void;
10
-
11
- type TCommandParams = Record<string, unknown> | {
12
- select?: string[],
13
- filter?: Record<string, string | string[]>,
14
- } | {
15
- id?: string,
16
- params?: Record<string, string>,
17
- fields?: Record<string, unknown>,
1
+ import type {
2
+ TCommand,
3
+ TCommandList,
4
+ TBatchResult,
5
+ TBatchProgressCallback,
6
+ TBatchLimitCallback,
7
+ } from './batch';
8
+ import type BxLogger from './bx-logger';
9
+
10
+ type BxAppEntity = {
11
+ key: string;
12
+ name: string;
13
+ };
14
+
15
+ type BxAppConst = {
16
+ appName: string;
17
+ pathApp: string;
18
+ appNameEng?: string;
19
+ zip?: string;
20
+ chatBotLogo?: string;
21
+ entity?: BxAppEntity[];
18
22
  };
19
23
 
20
- type TUpdateList = {
21
- method: string,
22
- name: string,
23
- list: {
24
- id: string | number,
25
- fields: {
26
- [key: string]: {
27
- oldValue: string | number | string[] | number[],
28
- newValue: string | number | string[] | number[],
29
- }
24
+ type BxUserOptionReturn<T> = T extends undefined ? string | number | undefined : void;
25
+
26
+ type UpdateListChange = {
27
+ id: string | number;
28
+ fields: Record<
29
+ string,
30
+ {
31
+ oldValue: string | number | string[] | number[];
32
+ newValue: string | number | string[] | number[];
30
33
  }
31
- }[]
32
- }[];
34
+ >;
35
+ };
33
36
 
34
- type TCommand = {
35
- method: string,
36
- params:TCommandParams,
37
- }
37
+ type UpdateListItem = {
38
+ method: string;
39
+ name: string;
40
+ list: UpdateListChange[];
41
+ };
38
42
 
39
- declare class BxBoot{
40
- /** В конструктор передаются константы приложения appConst */
41
- constructor(appConst: {
42
- appName: string,
43
- appNameEng: string,
44
- pathApp: string,
45
- zip: string,
46
- chatBotLogo: string,
47
- entity: { key: string, name: string }[],
48
- }): void;
43
+ type UpdateList = UpdateListItem[];
44
+
45
+ type BatchOptions = {
46
+ updateList?: UpdateList;
47
+ errorCall?: (errors: Record<string, string>) => void;
48
+ limitCommandSerial?: number;
49
+ limitCall?: TBatchLimitCallback;
50
+ };
51
+
52
+ type LoggerStub = {
53
+ start: (...args: unknown[]) => void;
54
+ stop: (...args: unknown[]) => void;
55
+ getEntityList: (...args: unknown[]) => void;
56
+ };
57
+
58
+ declare class BxBoot {
59
+ constructor(appConst: BxAppConst);
49
60
 
50
61
  /** Доменное имя портала */
51
62
  domain: string;
63
+ /** Флаг администратора для текущего пользователя */
52
64
  isAdmin: boolean;
53
-
54
- /** Информация о приложении */
55
- appInfo: {
56
- ID: number,
57
- CODE: string,
58
- VERSION: number,
59
- STATUS: string,
60
- INSTALLED: boolean,
61
- PAYMENT_EXPIRED: string,
62
- DAYS: null | number,
63
- LANGUAGE_ID: string,
64
- LICENSE: string,
65
- LICENSE_TYPE: string,
66
- LICENSE_FAMILY: string
67
- };
68
-
69
- /** Параметры приложения */
70
- appConst: {
71
- appName: string,
72
- appNameEng: string,
73
- pathApp: string,
74
- zip: string,
75
- chatBotLogo: string,
76
- entity: { key: string, name: string }[],
77
- };
78
-
65
+ /** Информация о приложении, предоставленная Bitrix24 */
66
+ appInfo: Record<string, unknown> | null;
67
+ /** Константы приложения, переданные в конструктор */
68
+ appConst: BxAppConst;
79
69
  /** Информация о текущем пользователе */
80
- userInfo: Record<string, unknown>;
81
-
82
- /** Информация о встройках */
83
- placeData: Record<string, unknown>[];
84
-
70
+ userInfo: Record<string, unknown> | null;
71
+ /** Список существующих встройкок приложения */
72
+ placeData: Array<Record<string, unknown>> | null;
85
73
  /** Информация о текущем месте встройки */
86
- placeInfo: {
87
- placement: string;
88
- options: Record<string, string>;
89
- };
74
+ placeInfo: { placement: string; options: Record<string, string> } | null;
75
+ /** Экземпляр логгера или заглушка, если логирование отключено */
76
+ logger: false | BxLogger | LoggerStub;
90
77
 
78
+ /** Инициализация SDK BX24 */
79
+ init(): Promise<boolean>;
91
80
 
81
+ /** Получение или установка пользовательской опции */
82
+ userOption<T extends string | number | undefined>(key: string, value?: T): BxUserOptionReturn<T>;
92
83
 
93
- /** Метод инициализации библиотеки rest api BX24 */
94
- init(): Promise<boolean>;
84
+ /** Вызов REST-метода Bitrix24 */
85
+ call(params: {
86
+ method: string;
87
+ params?: Record<string, unknown>;
88
+ updateList?: UpdateList;
89
+ }): Promise<unknown | false>;
95
90
 
96
- /** Получение\изменение опций юзера.
97
- *
98
- * Если передан 'key', то возвращает опцию по ключу. <br>
99
- * Если передан 'key' и 'value', то функция изменяет ключ по переданному значению.
100
- */
101
- userOption<T extends string | number | undefined>(key: string, value?: T): UserOptionReturnType<T>
102
-
103
-
104
- /** Вызывает указанный метод REST-сервиса с указанными параметрам */
105
- call({ method, params, updateList}: {
106
- method: string,
107
- params: TCommandParams,
108
- updateList: TUpdateList,
109
- }): Promise<unknown[] | boolean>;
110
-
111
- /**
112
- * Пакетный запрос данных
113
- * @param commandList - лист команд можно передавать как в виде объекта, так и в виде массива команд
114
- * @param progressCall - принимает callback, в котором возвращается передается статус загрузки данных в процентах
115
- * @param updateList - лист update данных, которые нужно записать в сессию логгера,
116
- * для возможности отката к старым значениям
117
- * @param errorCall - принимает callback, в котором возвращается объект ошибок
118
- * @param limitCommandSerial - лимит команд при котором происходит переключение батча в последовательный режим по дефолту 50
119
- */
91
+ /** Выполнение пакетного списка запросов */
120
92
  batch(
121
- commandList: Record<string, TCommand>,
122
- progressCall?: (data:{ percent: number })=>void,
123
- param:{
124
- updateList: TUpdateList,
125
- errorCall: (errors)=>void,
126
- limitCommandSerial: number,
127
- }
128
- ): Promise<Record<string, unknown[]> | boolean>;
129
-
130
- /**
131
- * Пакетный запрос количества элементов по запрошенным сущностям
132
- * @param commandList - лист команд можно передавать как в виде объекта, так и в виде массива команд
133
- * @param progressCall - принимает callback в который передается статус загрузки данных в процентах
134
- */
93
+ commandList: TCommandList,
94
+ progressCall?: TBatchProgressCallback,
95
+ options?: BatchOptions
96
+ ): Promise<TBatchResult | false>;
97
+
98
+ /** Получение количества элементов по списку запросов */
135
99
  batchTotalCount(
136
- commandList: Record<string, TCommand>,
137
- progressCall?: (data:{ percent: number })=>void
138
- ): Promise<Record<string, number> | boolean>;
139
-
140
- /** Запрос данных о местах встройки приложения */
141
- getPlacement(): Promise<unknown[] | boolean>;
142
-
143
- /** Встройка приложения в place
144
- *
145
- * @param place - индификатор места встройки
146
- */
147
- placementBind(place: string): void;
148
-
149
- /** Отвязка встройки из place
150
- *
151
- * @param place - индификатор места встройки
152
- */
153
- placementUnBind(place: string): Promise<boolean>;
154
-
155
- /** Получение списка чат-ботов */
156
- getBotList(): Promise<unknown[] | boolean>;
157
-
158
- /** Регистрация чат-бота
159
- * @param code - Строковой идентификатор бота, уникальный в рамках вашего приложения
160
- * @param type - Тип бота, B - чат-бот, ответы поступают сразу, H - человек, ответы поступают с задержкой от 2-х до 10 секунд, O - чат-бот для Открытых линий, S - чат-бот с повышенными привилегиями (supervisor)
161
- * @param name - Имя чат-бота
162
- */
163
- regBot({ code, type, name }:{
164
- code: string, type: string, name: string
165
- }): Promise<unknown | boolean>;
100
+ commandList: TCommandList,
101
+ progressCall?: TBatchProgressCallback,
102
+ options?: BatchOptions
103
+ ): Promise<TBatchResult | false>;
104
+
105
+ /** Получение информации о местах встройки приложения */
106
+ getPlacement(): Promise<unknown[] | false>;
107
+
108
+ /** Привязка приложения к указанному месту встройки */
109
+ placementBind(place: string | string[], userId?: number | string): Promise<void>;
110
+
111
+ /** Отвязка приложения от места встройки */
112
+ placementUnBind(place: string | string[], handlerUrl?: string): Promise<void>;
113
+
114
+ /** Проверка и актуализация существующих встройкок приложения */
115
+ placementCheck(): Promise<void>;
116
+
117
+ /** Получение списка зарегистрированных чат-ботов */
118
+ getBotList(): Promise<unknown[] | false>;
119
+
120
+ /** Регистрация чат-бота */
121
+ regBot(params: { code?: string; type?: string; name?: string }): Promise<unknown | false>;
166
122
 
167
123
  /** Удаление чат-бота */
168
- unRegBot(id: number|string): Promise<unknown | boolean>;
124
+ unRegBot(id: number | string): Promise<unknown | false>;
169
125
 
170
- /**
171
- * Получение списка логирования
172
- * @param progressCall - коллбэк
173
- */
174
- async getLoggerList(progressCall: (data:{ percent: number })=>void): Promise<{[key]: any}[]>
126
+ /** Получение списка записей логгера */
127
+ getLoggerList(progressCall?: TBatchProgressCallback): Promise<unknown>;
175
128
  }
176
129
 
130
+ export type { BxAppConst, UpdateList, UpdateListItem };
131
+
177
132
  export default BxBoot;
@@ -1,28 +1,22 @@
1
- declare class BxHelper{
1
+ declare class BxHelper {
2
2
  /** Уникальная 8-символьная хэш-строка */
3
- get hash(): string
3
+ get hash(): string;
4
4
 
5
- /** Генератор хеш-кода
6
- * @param length - длина хэш строки
7
- */
8
- createHash(length:number):string
5
+ /** Генератор хеша указанной длины */
6
+ createHash(length?: number): string;
9
7
 
10
- /** Фильтр часто запускаемых действий
11
- * @param keyTimer - уникальный ключ таймера
12
- * @param duration - время задержки для срабатывания action
13
- * @param action - действие которое должно отработать
14
- */
15
- actionFilter({ keyTimer, duration=10, action }:{
8
+ /** Debounce-фильтр для часто запускаемых действий */
9
+ actionFilter(params: {
16
10
  keyTimer: string;
17
- duration: number;
18
- action: ()=>void;
19
- }):void
11
+ duration?: number;
12
+ action?: () => void;
13
+ }): void;
20
14
 
21
- /** Включение режима NO-SLEEP */
22
- noSleep(): void
15
+ /** Активация режима NO-SLEEP через скрытое видео */
16
+ noSleep(): Promise<void>;
23
17
 
24
- /** Скачать данные в JSON-файл */
25
- downloadFileJson(data, filename:string ): void
18
+ /** Выгрузка данных в JSON-файл */
19
+ downloadFileJson(data: unknown, filename: string): void;
26
20
  }
27
21
 
28
- export default BxHelper
22
+ export default BxHelper;
@@ -1,44 +1,41 @@
1
+ type LoggerType = 'call' | 'batch' | 'batch-total-count';
2
+
3
+ type LoggerData =
4
+ | {
5
+ method: string;
6
+ params: Record<string, unknown>;
7
+ }
8
+ | {
9
+ commandList: Record<string, unknown>;
10
+ };
11
+
12
+ type LoggerStopStatus = 'success' | 'fail' | 'fail-runtime';
13
+
1
14
  declare class BxLogger {
2
15
  /** Очистка хранилища элементов старше 'N' месяцев */
3
16
  periodClear: number;
4
17
 
5
18
  /** Инициализация логгера */
6
- async init(): Promise<boolean>;
7
-
8
- /** Старт сессии логгера
9
- * @param type - тип логирования
10
- * @param data - данные для сохранения сессии логирования
11
- * @return - генерирует уникальный ключ сессии логирования в виде строки
12
- */
13
- start({ type, data }:{
14
- type: 'call'|'batch'|'batch-total-count';
15
- data: {
16
- method: string,
17
- params: { [key]: any }
18
- }|{ commandList: { [key]: any } };
19
- }):string;
20
-
21
- /** Конец сессии логирования
22
- * @param key - уникальный ключ сессии
23
- * @param errorList - массив ошибок
24
- * @param status - статус сессии
25
- * @param answer - служебная информация
26
- */
27
- stop({ key, errorList, status, answer }:{
19
+ init(): Promise<boolean>;
20
+
21
+ /** Старт новой сессии логирования */
22
+ start(params: { type: LoggerType; data: LoggerData }): string | null;
23
+
24
+ /** Остановка сессии логирования */
25
+ stop(params: {
28
26
  key: string;
29
- errorList: any[];
30
- status: 'success'|'fail'|'fail-runtime';
31
- answer: { [key]: unknown };
32
- }):void
33
-
34
- /**
35
- * Получение списка логирования
36
- * @param progressCall - коллбэк
37
- */
38
- async getEntityList(progressCall: (data:{ percent: number })=>void): Promise<{[key]: any}[]>
39
-
40
- /** Выгрузка всех данных из хранилища в JSON-файл */
41
- downAllEntityJson(): void
27
+ errorList?: Record<string, unknown>;
28
+ status?: LoggerStopStatus;
29
+ answer?: Record<string, unknown> | null;
30
+ }): Promise<void>;
31
+
32
+ /** Получение списка записей логгера */
33
+ getEntityList(progressCall?: (data: { percent: number }) => void): Promise<Record<string, unknown>[]>;
34
+
35
+ /** Выгрузка всех записей логгера в JSON */
36
+ downAllEntityJson(): Promise<boolean>;
42
37
  }
43
38
 
39
+ export type { LoggerType, LoggerData, LoggerStopStatus };
40
+
44
41
  export default BxLogger;
@@ -1,7 +1,8 @@
1
1
  import Batch from "./batch";
2
2
  import BxBoot from "./bx-boot";
3
3
  import BxHelper from "./bx-helper";
4
- import BxLogger from './bx-logger';
4
+ import BxLogger from "./bx-logger";
5
+ import BackgroundWorker from "./background-worker";
5
6
 
6
7
  declare function tempus():{
7
8
  format();
@@ -12,4 +13,4 @@ declare function tempus():{
12
13
  generate();
13
14
  };
14
15
 
15
- export { Batch, BxBoot, BxHelper, BxLogger, tempus }
16
+ export { Batch, BxBoot, BxHelper, BxLogger, BackgroundWorker, tempus }
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "szdl-utils-kit",
3
3
  "description": "utils-kit library",
4
4
  "private": false,
5
- "version": "0.2.30",
5
+ "version": "0.3.5",
6
6
  "type": "module",
7
7
  "author": "Stanislav Ovv",
8
8
  "license": "BSD",