solver-sdk 1.0.1
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 +248 -0
- package/dist/cjs/api/agents-api.js +94 -0
- package/dist/cjs/api/agents-api.js.map +1 -0
- package/dist/cjs/api/code-modification-api.js +60 -0
- package/dist/cjs/api/code-modification-api.js.map +1 -0
- package/dist/cjs/api/context-api.js +58 -0
- package/dist/cjs/api/context-api.js.map +1 -0
- package/dist/cjs/api/projects-api.js +82 -0
- package/dist/cjs/api/projects-api.js.map +1 -0
- package/dist/cjs/api/reasoning-api.js +73 -0
- package/dist/cjs/api/reasoning-api.js.map +1 -0
- package/dist/cjs/api/search-api.js +54 -0
- package/dist/cjs/api/search-api.js.map +1 -0
- package/dist/cjs/code-solver-sdk.js +327 -0
- package/dist/cjs/code-solver-sdk.js.map +1 -0
- package/dist/cjs/index.js +118 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/interfaces/http-client.js +3 -0
- package/dist/cjs/interfaces/http-client.js.map +1 -0
- package/dist/cjs/interfaces/sdk-options.js +3 -0
- package/dist/cjs/interfaces/sdk-options.js.map +1 -0
- package/dist/cjs/models/types.js +17 -0
- package/dist/cjs/models/types.js.map +1 -0
- package/dist/cjs/utils/code-solver-websocket-client.js +267 -0
- package/dist/cjs/utils/code-solver-websocket-client.js.map +1 -0
- package/dist/cjs/utils/http-client.js +234 -0
- package/dist/cjs/utils/http-client.js.map +1 -0
- package/dist/cjs/utils/indexing-websocket-client.js +107 -0
- package/dist/cjs/utils/indexing-websocket-client.js.map +1 -0
- package/dist/cjs/utils/sse-client.js +233 -0
- package/dist/cjs/utils/sse-client.js.map +1 -0
- package/dist/cjs/utils/websocket-client.js +268 -0
- package/dist/cjs/utils/websocket-client.js.map +1 -0
- package/dist/esm/api/agents-api.js +90 -0
- package/dist/esm/api/agents-api.js.map +1 -0
- package/dist/esm/api/code-modification-api.js +56 -0
- package/dist/esm/api/code-modification-api.js.map +1 -0
- package/dist/esm/api/context-api.js +54 -0
- package/dist/esm/api/context-api.js.map +1 -0
- package/dist/esm/api/projects-api.js +78 -0
- package/dist/esm/api/projects-api.js.map +1 -0
- package/dist/esm/api/reasoning-api.js +69 -0
- package/dist/esm/api/reasoning-api.js.map +1 -0
- package/dist/esm/api/search-api.js +50 -0
- package/dist/esm/api/search-api.js.map +1 -0
- package/dist/esm/code-solver-sdk.js +323 -0
- package/dist/esm/code-solver-sdk.js.map +1 -0
- package/dist/esm/index.js +1882 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/interfaces/http-client.js +2 -0
- package/dist/esm/interfaces/http-client.js.map +1 -0
- package/dist/esm/interfaces/sdk-options.js +2 -0
- package/dist/esm/interfaces/sdk-options.js.map +1 -0
- package/dist/esm/models/types.js +14 -0
- package/dist/esm/models/types.js.map +1 -0
- package/dist/esm/types/api/agents-api.d.ts +141 -0
- package/dist/esm/types/api/agents-api.d.ts.map +1 -0
- package/dist/esm/types/api/code-modification-api.d.ts +104 -0
- package/dist/esm/types/api/code-modification-api.d.ts.map +1 -0
- package/dist/esm/types/api/context-api.d.ts +86 -0
- package/dist/esm/types/api/context-api.d.ts.map +1 -0
- package/dist/esm/types/api/projects-api.d.ts +89 -0
- package/dist/esm/types/api/projects-api.d.ts.map +1 -0
- package/dist/esm/types/api/reasoning-api.d.ts +130 -0
- package/dist/esm/types/api/reasoning-api.d.ts.map +1 -0
- package/dist/esm/types/api/search-api.d.ts +92 -0
- package/dist/esm/types/api/search-api.d.ts.map +1 -0
- package/dist/esm/types/code-solver-sdk.d.ts +145 -0
- package/dist/esm/types/code-solver-sdk.d.ts.map +1 -0
- package/dist/esm/types/index.d.ts +81 -0
- package/dist/esm/types/index.d.ts.map +1 -0
- package/dist/esm/types/interfaces/http-client.d.ts +110 -0
- package/dist/esm/types/interfaces/http-client.d.ts.map +1 -0
- package/dist/esm/types/interfaces/sdk-options.d.ts +34 -0
- package/dist/esm/types/interfaces/sdk-options.d.ts.map +1 -0
- package/dist/esm/types/models/types.d.ts +139 -0
- package/dist/esm/types/models/types.d.ts.map +1 -0
- package/dist/esm/types/utils/code-solver-websocket-client.d.ts +138 -0
- package/dist/esm/types/utils/code-solver-websocket-client.d.ts.map +1 -0
- package/dist/esm/types/utils/http-client.d.ts +85 -0
- package/dist/esm/types/utils/http-client.d.ts.map +1 -0
- package/dist/esm/types/utils/indexing-websocket-client.d.ts +123 -0
- package/dist/esm/types/utils/indexing-websocket-client.d.ts.map +1 -0
- package/dist/esm/types/utils/sse-client.d.ts +92 -0
- package/dist/esm/types/utils/sse-client.d.ts.map +1 -0
- package/dist/esm/types/utils/websocket-client.d.ts +118 -0
- package/dist/esm/types/utils/websocket-client.d.ts.map +1 -0
- package/dist/esm/utils/code-solver-websocket-client.js +263 -0
- package/dist/esm/utils/code-solver-websocket-client.js.map +1 -0
- package/dist/esm/utils/http-client.js +227 -0
- package/dist/esm/utils/http-client.js.map +1 -0
- package/dist/esm/utils/indexing-websocket-client.js +103 -0
- package/dist/esm/utils/indexing-websocket-client.js.map +1 -0
- package/dist/esm/utils/sse-client.js +229 -0
- package/dist/esm/utils/sse-client.js.map +1 -0
- package/dist/esm/utils/websocket-client.js +264 -0
- package/dist/esm/utils/websocket-client.js.map +1 -0
- package/dist/index.d.ts +1599 -0
- package/dist/types/api/agents-api.d.ts +141 -0
- package/dist/types/api/agents-api.d.ts.map +1 -0
- package/dist/types/api/code-modification-api.d.ts +104 -0
- package/dist/types/api/code-modification-api.d.ts.map +1 -0
- package/dist/types/api/context-api.d.ts +86 -0
- package/dist/types/api/context-api.d.ts.map +1 -0
- package/dist/types/api/projects-api.d.ts +89 -0
- package/dist/types/api/projects-api.d.ts.map +1 -0
- package/dist/types/api/reasoning-api.d.ts +130 -0
- package/dist/types/api/reasoning-api.d.ts.map +1 -0
- package/dist/types/api/search-api.d.ts +92 -0
- package/dist/types/api/search-api.d.ts.map +1 -0
- package/dist/types/code-solver-sdk.d.ts +145 -0
- package/dist/types/code-solver-sdk.d.ts.map +1 -0
- package/dist/types/index.d.ts +81 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/interfaces/http-client.d.ts +110 -0
- package/dist/types/interfaces/http-client.d.ts.map +1 -0
- package/dist/types/interfaces/sdk-options.d.ts +34 -0
- package/dist/types/interfaces/sdk-options.d.ts.map +1 -0
- package/dist/types/models/types.d.ts +139 -0
- package/dist/types/models/types.d.ts.map +1 -0
- package/dist/types/utils/code-solver-websocket-client.d.ts +138 -0
- package/dist/types/utils/code-solver-websocket-client.d.ts.map +1 -0
- package/dist/types/utils/http-client.d.ts +85 -0
- package/dist/types/utils/http-client.d.ts.map +1 -0
- package/dist/types/utils/indexing-websocket-client.d.ts +123 -0
- package/dist/types/utils/indexing-websocket-client.d.ts.map +1 -0
- package/dist/types/utils/sse-client.d.ts +92 -0
- package/dist/types/utils/sse-client.d.ts.map +1 -0
- package/dist/types/utils/websocket-client.d.ts +118 -0
- package/dist/types/utils/websocket-client.d.ts.map +1 -0
- package/dist/umd/code-solver-sdk.js +1902 -0
- package/dist/umd/code-solver-sdk.js.map +1 -0
- package/dist/umd/code-solver-sdk.min.js +2 -0
- package/dist/umd/code-solver-sdk.min.js.map +1 -0
- package/dist/umd/types/api/agents-api.d.ts +141 -0
- package/dist/umd/types/api/agents-api.d.ts.map +1 -0
- package/dist/umd/types/api/code-modification-api.d.ts +104 -0
- package/dist/umd/types/api/code-modification-api.d.ts.map +1 -0
- package/dist/umd/types/api/context-api.d.ts +86 -0
- package/dist/umd/types/api/context-api.d.ts.map +1 -0
- package/dist/umd/types/api/projects-api.d.ts +89 -0
- package/dist/umd/types/api/projects-api.d.ts.map +1 -0
- package/dist/umd/types/api/reasoning-api.d.ts +130 -0
- package/dist/umd/types/api/reasoning-api.d.ts.map +1 -0
- package/dist/umd/types/api/search-api.d.ts +92 -0
- package/dist/umd/types/api/search-api.d.ts.map +1 -0
- package/dist/umd/types/code-solver-sdk.d.ts +145 -0
- package/dist/umd/types/code-solver-sdk.d.ts.map +1 -0
- package/dist/umd/types/index.d.ts +81 -0
- package/dist/umd/types/index.d.ts.map +1 -0
- package/dist/umd/types/interfaces/http-client.d.ts +110 -0
- package/dist/umd/types/interfaces/http-client.d.ts.map +1 -0
- package/dist/umd/types/interfaces/sdk-options.d.ts +34 -0
- package/dist/umd/types/interfaces/sdk-options.d.ts.map +1 -0
- package/dist/umd/types/models/types.d.ts +139 -0
- package/dist/umd/types/models/types.d.ts.map +1 -0
- package/dist/umd/types/utils/code-solver-websocket-client.d.ts +138 -0
- package/dist/umd/types/utils/code-solver-websocket-client.d.ts.map +1 -0
- package/dist/umd/types/utils/http-client.d.ts +85 -0
- package/dist/umd/types/utils/http-client.d.ts.map +1 -0
- package/dist/umd/types/utils/indexing-websocket-client.d.ts +123 -0
- package/dist/umd/types/utils/indexing-websocket-client.d.ts.map +1 -0
- package/dist/umd/types/utils/sse-client.d.ts +92 -0
- package/dist/umd/types/utils/sse-client.d.ts.map +1 -0
- package/dist/umd/types/utils/websocket-client.d.ts +118 -0
- package/dist/umd/types/utils/websocket-client.d.ts.map +1 -0
- package/package.json +98 -0
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { WebSocketClientOptions } from './websocket-client.js';
|
|
2
|
+
/**
|
|
3
|
+
* Пространства имен для WebSocket
|
|
4
|
+
*/
|
|
5
|
+
export declare enum WebSocketNamespace {
|
|
6
|
+
/** Пространство имен для рассуждений */
|
|
7
|
+
REASONING = "reasoning",
|
|
8
|
+
/** Пространство имен для индексации */
|
|
9
|
+
INDEXING = "indexing",
|
|
10
|
+
/** Пространство имен для уведомлений */
|
|
11
|
+
NOTIFICATIONS = "notifications"
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Опции для Code Solver WebSocket клиента
|
|
15
|
+
*/
|
|
16
|
+
export interface CodeSolverWebSocketOptions extends WebSocketClientOptions {
|
|
17
|
+
/** API ключ для авторизации */
|
|
18
|
+
apiKey?: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* WebSocket клиент для работы с Code Solver API
|
|
22
|
+
*/
|
|
23
|
+
export declare class CodeSolverWebSocketClient {
|
|
24
|
+
/** Базовый URL API */
|
|
25
|
+
private readonly baseURL;
|
|
26
|
+
/** Опции клиента */
|
|
27
|
+
private readonly options;
|
|
28
|
+
/** WebSocket клиенты для разных пространств имен */
|
|
29
|
+
private clients;
|
|
30
|
+
/** Активная сессия рассуждения */
|
|
31
|
+
private activeReasoningId;
|
|
32
|
+
/** Активная сессия индексации */
|
|
33
|
+
private activeProjectId;
|
|
34
|
+
/**
|
|
35
|
+
* Создает новый WebSocket клиент для Code Solver API
|
|
36
|
+
* @param {string} baseURL Базовый URL API
|
|
37
|
+
* @param {CodeSolverWebSocketOptions} [options] Опции клиента
|
|
38
|
+
*/
|
|
39
|
+
constructor(baseURL: string, options?: CodeSolverWebSocketOptions);
|
|
40
|
+
/**
|
|
41
|
+
* Подключается к пространству имен WebSocket
|
|
42
|
+
* @param {WebSocketNamespace} namespace Пространство имен
|
|
43
|
+
* @param {Record<string, any>} [params] Параметры подключения
|
|
44
|
+
* @returns {Promise<WebSocketClient>} WebSocket клиент
|
|
45
|
+
*/
|
|
46
|
+
private connect;
|
|
47
|
+
/**
|
|
48
|
+
* Подключается к сессии рассуждения
|
|
49
|
+
* @param {string} [reasoningId] Идентификатор рассуждения
|
|
50
|
+
* @returns {Promise<void>}
|
|
51
|
+
*/
|
|
52
|
+
connectToReasoning(reasoningId?: string): Promise<void>;
|
|
53
|
+
/**
|
|
54
|
+
* Подключается к сессии индексации проекта
|
|
55
|
+
* @param {string} [projectId] Идентификатор проекта
|
|
56
|
+
* @returns {Promise<void>}
|
|
57
|
+
*/
|
|
58
|
+
connectToIndexing(projectId?: string): Promise<void>;
|
|
59
|
+
/**
|
|
60
|
+
* Подключается к уведомлениям
|
|
61
|
+
* @returns {Promise<void>}
|
|
62
|
+
*/
|
|
63
|
+
connectToNotifications(): Promise<void>;
|
|
64
|
+
/**
|
|
65
|
+
* Отключается от пространства имен
|
|
66
|
+
* @param {WebSocketNamespace} namespace Пространство имен
|
|
67
|
+
*/
|
|
68
|
+
disconnect(namespace: WebSocketNamespace): void;
|
|
69
|
+
/**
|
|
70
|
+
* Отключается от всех пространств имен
|
|
71
|
+
*/
|
|
72
|
+
disconnectAll(): void;
|
|
73
|
+
/**
|
|
74
|
+
* Добавляет обработчик события для пространства имен
|
|
75
|
+
* @param {string} eventType Тип события
|
|
76
|
+
* @param {Function} handler Обработчик события
|
|
77
|
+
* @param {WebSocketNamespace} [namespace] Пространство имен (если не указано, добавляется ко всем активным)
|
|
78
|
+
*/
|
|
79
|
+
on(eventType: string, handler: (data: any) => void, namespace?: WebSocketNamespace): void;
|
|
80
|
+
/**
|
|
81
|
+
* Удаляет обработчик события для пространства имен
|
|
82
|
+
* @param {string} eventType Тип события
|
|
83
|
+
* @param {Function} [handler] Обработчик события (если не указан, удаляются все обработчики)
|
|
84
|
+
* @param {WebSocketNamespace} [namespace] Пространство имен (если не указано, удаляется из всех активных)
|
|
85
|
+
*/
|
|
86
|
+
off(eventType: string, handler?: (data: any) => void, namespace?: WebSocketNamespace): void;
|
|
87
|
+
/**
|
|
88
|
+
* Отправляет сообщение в пространство имен
|
|
89
|
+
* @param {WebSocketNamespace} namespace Пространство имен
|
|
90
|
+
* @param {string} eventType Тип события
|
|
91
|
+
* @param {any} [data] Данные сообщения
|
|
92
|
+
* @returns {boolean} Успешно ли отправлено сообщение
|
|
93
|
+
*/
|
|
94
|
+
send(namespace: WebSocketNamespace, eventType: string, data?: any): boolean;
|
|
95
|
+
/**
|
|
96
|
+
* Отправляет сообщение в активную сессию рассуждения
|
|
97
|
+
* @param {string} eventType Тип события
|
|
98
|
+
* @param {any} [data] Данные сообщения
|
|
99
|
+
* @returns {boolean} Успешно ли отправлено сообщение
|
|
100
|
+
*/
|
|
101
|
+
sendToReasoning(eventType: string, data?: any): boolean;
|
|
102
|
+
/**
|
|
103
|
+
* Отправляет сообщение в активную сессию индексации
|
|
104
|
+
* @param {string} eventType Тип события
|
|
105
|
+
* @param {any} [data] Данные сообщения
|
|
106
|
+
* @returns {boolean} Успешно ли отправлено сообщение
|
|
107
|
+
*/
|
|
108
|
+
sendToIndexing(eventType: string, data?: any): boolean;
|
|
109
|
+
/**
|
|
110
|
+
* Отправляет сообщение в уведомления
|
|
111
|
+
* @param {string} eventType Тип события
|
|
112
|
+
* @param {any} [data] Данные сообщения
|
|
113
|
+
* @returns {boolean} Успешно ли отправлено сообщение
|
|
114
|
+
*/
|
|
115
|
+
sendToNotifications(eventType: string, data?: any): boolean;
|
|
116
|
+
/**
|
|
117
|
+
* Проверяет, подключен ли клиент к указанному пространству имен
|
|
118
|
+
* @param {WebSocketNamespace} namespace Пространство имен
|
|
119
|
+
* @returns {boolean} Статус подключения
|
|
120
|
+
*/
|
|
121
|
+
isConnected(namespace: WebSocketNamespace): boolean;
|
|
122
|
+
/**
|
|
123
|
+
* Проверяет, подключен ли клиент к пространству имен рассуждений
|
|
124
|
+
* @returns {boolean} Статус подключения
|
|
125
|
+
*/
|
|
126
|
+
isConnectedToReasoning(): boolean;
|
|
127
|
+
/**
|
|
128
|
+
* Проверяет, подключен ли клиент к пространству имен индексации
|
|
129
|
+
* @returns {boolean} Статус подключения
|
|
130
|
+
*/
|
|
131
|
+
isConnectedToIndexing(): boolean;
|
|
132
|
+
/**
|
|
133
|
+
* Проверяет, подключен ли клиент к пространству имен уведомлений
|
|
134
|
+
* @returns {boolean} Статус подключения
|
|
135
|
+
*/
|
|
136
|
+
isConnectedToNotifications(): boolean;
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=code-solver-websocket-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-solver-websocket-client.d.ts","sourceRoot":"","sources":["../../../src/utils/code-solver-websocket-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEhF;;GAEG;AACH,oBAAY,kBAAkB;IAC5B,wCAAwC;IACxC,SAAS,cAAc;IAEvB,uCAAuC;IACvC,QAAQ,aAAa;IAErB,wCAAwC;IACxC,aAAa,kBAAkB;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,0BAA2B,SAAQ,sBAAsB;IACxE,+BAA+B;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,yBAAyB;IACpC,sBAAsB;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC,oBAAoB;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IAErD,oDAAoD;IACpD,OAAO,CAAC,OAAO,CAAuD;IAEtE,kCAAkC;IAClC,OAAO,CAAC,iBAAiB,CAAuB;IAEhD,iCAAiC;IACjC,OAAO,CAAC,eAAe,CAAuB;IAE9C;;;;OAIG;gBACS,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,0BAA+B;IAWrE;;;;;OAKG;YACW,OAAO;IAkCrB;;;;OAIG;IACU,kBAAkB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAepE;;;;OAIG;IACU,iBAAiB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAejE;;;OAGG;IACU,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAKpD;;;OAGG;IACI,UAAU,CAAC,SAAS,EAAE,kBAAkB,GAAG,IAAI;IAgBtD;;OAEG;IACI,aAAa,IAAI,IAAI;IAW5B;;;;;OAKG;IACI,EAAE,CACP,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,EAC5B,SAAS,CAAC,EAAE,kBAAkB,GAC7B,IAAI;IAkBP;;;;;OAKG;IACI,GAAG,CACR,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,EAC7B,SAAS,CAAC,EAAE,kBAAkB,GAC7B,IAAI;IAkBP;;;;;;OAMG;IACI,IAAI,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO;IAalF;;;;;OAKG;IACI,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO;IAQ9D;;;;;OAKG;IACI,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO;IAQ7D;;;;;OAKG;IACI,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO;IAIlE;;;;OAIG;IACI,WAAW,CAAC,SAAS,EAAE,kBAAkB,GAAG,OAAO;IAK1D;;;OAGG;IACI,sBAAsB,IAAI,OAAO;IAIxC;;;OAGG;IACI,qBAAqB,IAAI,OAAO;IAIvC;;;OAGG;IACI,0BAA0B,IAAI,OAAO;CAG7C"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { IHttpClient, HttpClientOptions, RequestOptions } from '../interfaces/http-client.js';
|
|
2
|
+
declare module 'axios' {
|
|
3
|
+
interface AxiosRequestConfig {
|
|
4
|
+
skipRetry?: boolean;
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* HTTP клиент для выполнения запросов к API
|
|
9
|
+
*
|
|
10
|
+
* Предоставляет методы для работы с REST API, включая обработку ошибок,
|
|
11
|
+
* повторные попытки и таймауты.
|
|
12
|
+
*/
|
|
13
|
+
export declare class HttpClient implements IHttpClient {
|
|
14
|
+
/** Базовый URL для запросов */
|
|
15
|
+
private readonly baseURL;
|
|
16
|
+
/** Опции HTTP клиента */
|
|
17
|
+
private readonly options;
|
|
18
|
+
/** Axios инстанс */
|
|
19
|
+
private readonly axiosInstance;
|
|
20
|
+
/** Среда выполнения */
|
|
21
|
+
private readonly environment;
|
|
22
|
+
/**
|
|
23
|
+
* Создает новый HTTP клиент
|
|
24
|
+
* @param {string} baseURL Базовый URL для запросов
|
|
25
|
+
* @param {HttpClientOptions} [options] Опции для HTTP клиента
|
|
26
|
+
*/
|
|
27
|
+
constructor(baseURL: string, options?: HttpClientOptions);
|
|
28
|
+
/**
|
|
29
|
+
* Настраивает интерцепторы Axios
|
|
30
|
+
*/
|
|
31
|
+
private setupInterceptors;
|
|
32
|
+
/**
|
|
33
|
+
* Выполняет HTTP запрос
|
|
34
|
+
* @param {RequestOptions} options Опции запроса
|
|
35
|
+
* @returns {Promise<T>} Ответ от API
|
|
36
|
+
*/
|
|
37
|
+
request<T = any>(options: RequestOptions): Promise<T>;
|
|
38
|
+
/**
|
|
39
|
+
* Выполняет GET запрос
|
|
40
|
+
* @param {string} url URL для запроса
|
|
41
|
+
* @param {Record<string, any>} [params] Query параметры
|
|
42
|
+
* @param {Record<string, string>} [headers] HTTP заголовки
|
|
43
|
+
* @returns {Promise<T>} Ответ от API
|
|
44
|
+
*/
|
|
45
|
+
get<T = any>(url: string, params?: Record<string, any>, headers?: Record<string, string>): Promise<T>;
|
|
46
|
+
/**
|
|
47
|
+
* Выполняет POST запрос
|
|
48
|
+
* @param {string} url URL для запроса
|
|
49
|
+
* @param {any} [data] Данные для отправки
|
|
50
|
+
* @param {Record<string, string>} [headers] HTTP заголовки
|
|
51
|
+
* @returns {Promise<T>} Ответ от API
|
|
52
|
+
*/
|
|
53
|
+
post<T = any>(url: string, data?: any, headers?: Record<string, string>): Promise<T>;
|
|
54
|
+
/**
|
|
55
|
+
* Выполняет PUT запрос
|
|
56
|
+
* @param {string} url URL для запроса
|
|
57
|
+
* @param {any} [data] Данные для отправки
|
|
58
|
+
* @param {Record<string, string>} [headers] HTTP заголовки
|
|
59
|
+
* @returns {Promise<T>} Ответ от API
|
|
60
|
+
*/
|
|
61
|
+
put<T = any>(url: string, data?: any, headers?: Record<string, string>): Promise<T>;
|
|
62
|
+
/**
|
|
63
|
+
* Выполняет DELETE запрос
|
|
64
|
+
* @param {string} url URL для запроса
|
|
65
|
+
* @param {Record<string, any>} [params] Query параметры
|
|
66
|
+
* @param {Record<string, string>} [headers] HTTP заголовки
|
|
67
|
+
* @returns {Promise<T>} Ответ от API
|
|
68
|
+
*/
|
|
69
|
+
delete<T = any>(url: string, params?: Record<string, any>, headers?: Record<string, string>): Promise<T>;
|
|
70
|
+
/**
|
|
71
|
+
* Выполняет PATCH запрос
|
|
72
|
+
* @param {string} url URL для запроса
|
|
73
|
+
* @param {any} [data] Данные для отправки
|
|
74
|
+
* @param {Record<string, string>} [headers] HTTP заголовки
|
|
75
|
+
* @returns {Promise<T>} Ответ от API
|
|
76
|
+
*/
|
|
77
|
+
patch<T = any>(url: string, data?: any, headers?: Record<string, string>): Promise<T>;
|
|
78
|
+
/**
|
|
79
|
+
* Обрабатывает ошибки от Axios
|
|
80
|
+
* @param {any} error Ошибка от Axios
|
|
81
|
+
* @returns {Error} Обработанная ошибка
|
|
82
|
+
*/
|
|
83
|
+
private handleError;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=http-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../../src/utils/http-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,EAAgB,MAAM,8BAA8B,CAAC;AAG5G,OAAO,QAAQ,OAAO,CAAC;IACrB,UAAiB,kBAAkB;QACjC,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB;CACF;AAYD;;;;;GAKG;AACH,qBAAa,UAAW,YAAW,WAAW;IAC5C,+BAA+B;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC,yBAAyB;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAE5C,oBAAoB;IACpB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAE9C,uBAAuB;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IAEjD;;;;OAIG;gBACS,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB;IAgC5D;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA2CzB;;;;OAIG;IACU,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IAyBlE;;;;;;OAMG;IACU,GAAG,CAAC,CAAC,GAAG,GAAG,EACtB,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;IASb;;;;;;OAMG;IACU,IAAI,CAAC,CAAC,GAAG,GAAG,EACvB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,GAAG,EACV,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;IASb;;;;;;OAMG;IACU,GAAG,CAAC,CAAC,GAAG,GAAG,EACtB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,GAAG,EACV,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;IASb;;;;;;OAMG;IACU,MAAM,CAAC,CAAC,GAAG,GAAG,EACzB,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;IASb;;;;;;OAMG;IACU,KAAK,CAAC,CAAC,GAAG,GAAG,EACxB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,GAAG,EACV,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;IASb;;;;OAIG;IACH,OAAO,CAAC,WAAW;CAuCpB"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { WebSocketClient, WebSocketClientOptions } from './websocket-client.js';
|
|
2
|
+
/**
|
|
3
|
+
* События индексации
|
|
4
|
+
*/
|
|
5
|
+
export declare enum IndexingEvent {
|
|
6
|
+
/** Начало индексации */
|
|
7
|
+
START = "indexing_start",
|
|
8
|
+
/** Прогресс индексации */
|
|
9
|
+
PROGRESS = "indexing_progress",
|
|
10
|
+
/** Завершение индексации */
|
|
11
|
+
COMPLETE = "indexing_complete",
|
|
12
|
+
/** Ошибка индексации */
|
|
13
|
+
ERROR = "indexing_error"
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Данные о прогрессе индексации
|
|
17
|
+
*/
|
|
18
|
+
export interface IndexingProgressData {
|
|
19
|
+
/** Идентификатор проекта */
|
|
20
|
+
projectId: string;
|
|
21
|
+
/** Общее количество файлов */
|
|
22
|
+
totalFiles: number;
|
|
23
|
+
/** Количество проиндексированных файлов */
|
|
24
|
+
indexedFiles: number;
|
|
25
|
+
/** Процент завершения индексации */
|
|
26
|
+
progress: number;
|
|
27
|
+
/** Время начала индексации */
|
|
28
|
+
startTime: string;
|
|
29
|
+
/** Прошедшее время в секундах */
|
|
30
|
+
elapsedTime: number;
|
|
31
|
+
/** Оставшееся время в секундах (приблизительно) */
|
|
32
|
+
estimatedTimeRemaining?: number;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Данные о завершении индексации
|
|
36
|
+
*/
|
|
37
|
+
export interface IndexingCompleteData {
|
|
38
|
+
/** Идентификатор проекта */
|
|
39
|
+
projectId: string;
|
|
40
|
+
/** Общее количество файлов */
|
|
41
|
+
totalFiles: number;
|
|
42
|
+
/** Количество проиндексированных файлов */
|
|
43
|
+
indexedFiles: number;
|
|
44
|
+
/** Количество пропущенных файлов */
|
|
45
|
+
skippedFiles: number;
|
|
46
|
+
/** Время начала индексации */
|
|
47
|
+
startTime: string;
|
|
48
|
+
/** Время завершения индексации */
|
|
49
|
+
endTime: string;
|
|
50
|
+
/** Общее время индексации в секундах */
|
|
51
|
+
totalTime: number;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Данные об ошибке индексации
|
|
55
|
+
*/
|
|
56
|
+
export interface IndexingErrorData {
|
|
57
|
+
/** Идентификатор проекта */
|
|
58
|
+
projectId: string;
|
|
59
|
+
/** Сообщение об ошибке */
|
|
60
|
+
message: string;
|
|
61
|
+
/** Код ошибки */
|
|
62
|
+
code?: string;
|
|
63
|
+
/** Детали ошибки */
|
|
64
|
+
details?: any;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Опции для WebSocket клиента индексации
|
|
68
|
+
*/
|
|
69
|
+
export interface IndexingWebSocketOptions extends WebSocketClientOptions {
|
|
70
|
+
/** Идентификатор проекта */
|
|
71
|
+
projectId?: string;
|
|
72
|
+
/** API ключ для авторизации */
|
|
73
|
+
apiKey?: string;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* WebSocket клиент для работы с индексацией
|
|
77
|
+
*/
|
|
78
|
+
export declare class IndexingWebSocketClient extends WebSocketClient {
|
|
79
|
+
/** Идентификатор проекта */
|
|
80
|
+
private projectId;
|
|
81
|
+
/** Базовый URL без параметров */
|
|
82
|
+
private baseUrl;
|
|
83
|
+
/**
|
|
84
|
+
* Создает новый WebSocket клиент для индексации
|
|
85
|
+
* @param {string} url URL для подключения
|
|
86
|
+
* @param {IndexingWebSocketOptions} [options] Опции клиента
|
|
87
|
+
*/
|
|
88
|
+
constructor(url: string, options?: IndexingWebSocketOptions);
|
|
89
|
+
/**
|
|
90
|
+
* Устанавливает идентификатор проекта
|
|
91
|
+
* @param {string} projectId Идентификатор проекта
|
|
92
|
+
*/
|
|
93
|
+
setProjectId(projectId: string): void;
|
|
94
|
+
/**
|
|
95
|
+
* Подключается к WebSocket для отслеживания индексации
|
|
96
|
+
* @param {string} [projectId] Идентификатор проекта (если не был указан в конструкторе)
|
|
97
|
+
* @returns {Promise<void>}
|
|
98
|
+
*/
|
|
99
|
+
connect(projectId?: string): Promise<void>;
|
|
100
|
+
/**
|
|
101
|
+
* Подписывается на события начала индексации
|
|
102
|
+
* @param {(data: {projectId: string}) => void} handler Обработчик события
|
|
103
|
+
*/
|
|
104
|
+
onStart(handler: (data: {
|
|
105
|
+
projectId: string;
|
|
106
|
+
}) => void): void;
|
|
107
|
+
/**
|
|
108
|
+
* Подписывается на события прогресса индексации
|
|
109
|
+
* @param {(data: IndexingProgressData) => void} handler Обработчик события
|
|
110
|
+
*/
|
|
111
|
+
onProgress(handler: (data: IndexingProgressData) => void): void;
|
|
112
|
+
/**
|
|
113
|
+
* Подписывается на события завершения индексации
|
|
114
|
+
* @param {(data: IndexingCompleteData) => void} handler Обработчик события
|
|
115
|
+
*/
|
|
116
|
+
onComplete(handler: (data: IndexingCompleteData) => void): void;
|
|
117
|
+
/**
|
|
118
|
+
* Подписывается на события ошибок индексации
|
|
119
|
+
* @param {(data: IndexingErrorData) => void} handler Обработчик события
|
|
120
|
+
*/
|
|
121
|
+
onError(handler: (data: IndexingErrorData) => void): void;
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=indexing-websocket-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexing-websocket-client.d.ts","sourceRoot":"","sources":["../../../src/utils/indexing-websocket-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEhF;;GAEG;AACH,oBAAY,aAAa;IACvB,wBAAwB;IACxB,KAAK,mBAAmB;IAExB,0BAA0B;IAC1B,QAAQ,sBAAsB;IAE9B,4BAA4B;IAC5B,QAAQ,sBAAsB;IAE9B,wBAAwB;IACxB,KAAK,mBAAmB;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;IAElB,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;IAEnB,2CAA2C;IAC3C,YAAY,EAAE,MAAM,CAAC;IAErB,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IAEjB,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAElB,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IAEpB,mDAAmD;IACnD,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;IAElB,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;IAEnB,2CAA2C;IAC3C,YAAY,EAAE,MAAM,CAAC;IAErB,oCAAoC;IACpC,YAAY,EAAE,MAAM,CAAC;IAErB,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAElB,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAEhB,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;IAElB,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;IAEhB,iBAAiB;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,oBAAoB;IACpB,OAAO,CAAC,EAAE,GAAG,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,wBAAyB,SAAQ,sBAAsB;IACtE,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,+BAA+B;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,eAAe;IAC1D,4BAA4B;IAC5B,OAAO,CAAC,SAAS,CAAuB;IAExC,iCAAiC;IACjC,OAAO,CAAC,OAAO,CAAS;IAExB;;;;OAIG;gBACS,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,wBAA6B;IAyB/D;;;OAGG;IACI,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI5C;;;;OAIG;IACU,OAAO,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBvD;;;OAGG;IACI,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE;QAAC,SAAS,EAAE,MAAM,CAAA;KAAC,KAAK,IAAI,GAAG,IAAI;IAIlE;;;OAGG;IACI,UAAU,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,IAAI,GAAG,IAAI;IAItE;;;OAGG;IACI,UAAU,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,IAAI,GAAG,IAAI;IAItE;;;OAGG;IACI,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,GAAG,IAAI;CAGjE"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Опции для SSE клиента
|
|
3
|
+
*/
|
|
4
|
+
export interface SseClientOptions {
|
|
5
|
+
/**
|
|
6
|
+
* HTTP заголовки для SSE соединения
|
|
7
|
+
*/
|
|
8
|
+
headers?: Record<string, string>;
|
|
9
|
+
/**
|
|
10
|
+
* Таймаут подключения в миллисекундах
|
|
11
|
+
*/
|
|
12
|
+
connectionTimeout?: number;
|
|
13
|
+
/**
|
|
14
|
+
* Максимальное количество попыток переподключения
|
|
15
|
+
*/
|
|
16
|
+
maxRetries?: number;
|
|
17
|
+
/**
|
|
18
|
+
* Задержка перед попыткой переподключения в миллисекундах
|
|
19
|
+
*/
|
|
20
|
+
retryDelay?: number;
|
|
21
|
+
/**
|
|
22
|
+
* Максимальная задержка перед попыткой переподключения
|
|
23
|
+
*/
|
|
24
|
+
maxRetryDelay?: number;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Интерфейс для обработчика события SSE
|
|
28
|
+
*/
|
|
29
|
+
export interface SseEventHandler {
|
|
30
|
+
(event: any): void;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Клиент для работы с Server-Sent Events (SSE)
|
|
34
|
+
* Поддерживает работу как в браузере, так и в Node.js
|
|
35
|
+
*/
|
|
36
|
+
export declare class SseClient {
|
|
37
|
+
/** URL для подключения */
|
|
38
|
+
private readonly url;
|
|
39
|
+
/** Опции клиента */
|
|
40
|
+
private readonly options;
|
|
41
|
+
/** Экземпляр EventSource */
|
|
42
|
+
private eventSource;
|
|
43
|
+
/** Счетчик попыток переподключения */
|
|
44
|
+
private retryCount;
|
|
45
|
+
/** Флаг, указывающий, что соединение было закрыто намеренно */
|
|
46
|
+
private intentionallyClosed;
|
|
47
|
+
/** Таймер переподключения */
|
|
48
|
+
private reconnectTimer;
|
|
49
|
+
/** Таймер таймаута соединения */
|
|
50
|
+
private connectionTimeoutTimer;
|
|
51
|
+
/** Обработчики событий */
|
|
52
|
+
private eventHandlers;
|
|
53
|
+
/**
|
|
54
|
+
* Создает новый SSE клиент
|
|
55
|
+
* @param {string} url URL для подключения
|
|
56
|
+
* @param {SseClientOptions} [options] Опции клиента
|
|
57
|
+
*/
|
|
58
|
+
constructor(url: string, options?: SseClientOptions);
|
|
59
|
+
/**
|
|
60
|
+
* Подключается к SSE эндпоинту
|
|
61
|
+
* @returns {Promise<void>}
|
|
62
|
+
*/
|
|
63
|
+
connect(): Promise<void>;
|
|
64
|
+
/**
|
|
65
|
+
* Закрывает SSE соединение
|
|
66
|
+
*/
|
|
67
|
+
close(): void;
|
|
68
|
+
/**
|
|
69
|
+
* Добавляет обработчик события
|
|
70
|
+
* @param {string} eventType Тип события
|
|
71
|
+
* @param {SseEventHandler} handler Обработчик события
|
|
72
|
+
*/
|
|
73
|
+
on(eventType: string, handler: SseEventHandler): void;
|
|
74
|
+
/**
|
|
75
|
+
* Удаляет обработчик события
|
|
76
|
+
* @param {string} eventType Тип события
|
|
77
|
+
* @param {SseEventHandler} [handler] Обработчик события (если не указан, удаляются все обработчики)
|
|
78
|
+
*/
|
|
79
|
+
off(eventType: string, handler?: SseEventHandler): void;
|
|
80
|
+
/**
|
|
81
|
+
* Вызывает обработчики для указанного события
|
|
82
|
+
* @param {string} eventType Тип события
|
|
83
|
+
* @param {any} data Данные события
|
|
84
|
+
*/
|
|
85
|
+
private dispatchEvent;
|
|
86
|
+
/**
|
|
87
|
+
* Переподключается к SSE эндпоинту с экспоненциальной задержкой
|
|
88
|
+
* @private
|
|
89
|
+
*/
|
|
90
|
+
private reconnect;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=sse-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sse-client.d.ts","sourceRoot":"","sources":["../../../src/utils/sse-client.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;CACpB;AAED;;;GAGG;AACH,qBAAa,SAAS;IACpB,0BAA0B;IAC1B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAE7B,oBAAoB;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAE3C,4BAA4B;IAC5B,OAAO,CAAC,WAAW,CAAkD;IAErE,sCAAsC;IACtC,OAAO,CAAC,UAAU,CAAK;IAEvB,+DAA+D;IAC/D,OAAO,CAAC,mBAAmB,CAAS;IAEpC,6BAA6B;IAC7B,OAAO,CAAC,cAAc,CAAa;IAEnC,iCAAiC;IACjC,OAAO,CAAC,sBAAsB,CAAa;IAE3C,0BAA0B;IAC1B,OAAO,CAAC,aAAa,CAAyC;IAE9D;;;;OAIG;gBACS,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB;IAWvD;;;OAGG;IACI,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAmG/B;;OAEG;IACI,KAAK,IAAI,IAAI;IAgBpB;;;;OAIG;IACI,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,IAAI;IAqB5D;;;;OAIG;IACI,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI;IAmB9D;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAcrB;;;OAGG;IACH,OAAO,CAAC,SAAS;CAsBlB"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Опции для WebSocket клиента
|
|
3
|
+
*/
|
|
4
|
+
export interface WebSocketClientOptions {
|
|
5
|
+
/**
|
|
6
|
+
* HTTP заголовки для WebSocket соединения
|
|
7
|
+
*/
|
|
8
|
+
headers?: Record<string, string>;
|
|
9
|
+
/**
|
|
10
|
+
* Таймаут подключения в миллисекундах
|
|
11
|
+
*/
|
|
12
|
+
connectionTimeout?: number;
|
|
13
|
+
/**
|
|
14
|
+
* Протоколы WebSocket
|
|
15
|
+
*/
|
|
16
|
+
protocols?: string | string[];
|
|
17
|
+
/**
|
|
18
|
+
* Максимальное количество попыток переподключения
|
|
19
|
+
*/
|
|
20
|
+
maxRetries?: number;
|
|
21
|
+
/**
|
|
22
|
+
* Задержка перед попыткой переподключения в миллисекундах
|
|
23
|
+
*/
|
|
24
|
+
retryDelay?: number;
|
|
25
|
+
/**
|
|
26
|
+
* Максимальная задержка перед попыткой переподключения
|
|
27
|
+
*/
|
|
28
|
+
maxRetryDelay?: number;
|
|
29
|
+
/**
|
|
30
|
+
* Автоматически переподключаться при потере соединения
|
|
31
|
+
*/
|
|
32
|
+
autoReconnect?: boolean;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Интерфейс для обработчика события WebSocket
|
|
36
|
+
*/
|
|
37
|
+
export interface WebSocketEventHandler {
|
|
38
|
+
(event: any): void;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Базовый класс для WebSocket клиентов
|
|
42
|
+
*/
|
|
43
|
+
export declare class WebSocketClient {
|
|
44
|
+
/** URL для подключения */
|
|
45
|
+
protected readonly url: string;
|
|
46
|
+
/** Опции клиента */
|
|
47
|
+
protected readonly options: WebSocketClientOptions;
|
|
48
|
+
/** Экземпляр WebSocket */
|
|
49
|
+
protected webSocket: WebSocket | null;
|
|
50
|
+
/** Счетчик попыток переподключения */
|
|
51
|
+
protected retryCount: number;
|
|
52
|
+
/** Флаг, указывающий, что соединение было закрыто намеренно */
|
|
53
|
+
protected intentionallyClosed: boolean;
|
|
54
|
+
/** Таймер переподключения */
|
|
55
|
+
protected reconnectTimer: any;
|
|
56
|
+
/** Таймер таймаута соединения */
|
|
57
|
+
protected connectionTimeoutTimer: any;
|
|
58
|
+
/** Обработчики событий */
|
|
59
|
+
protected eventHandlers: Record<string, WebSocketEventHandler[]>;
|
|
60
|
+
/** Очередь сообщений для отправки после подключения */
|
|
61
|
+
protected messageQueue: Array<string | ArrayBufferLike | Blob | ArrayBufferView>;
|
|
62
|
+
/** Состояние соединения */
|
|
63
|
+
protected connected: boolean;
|
|
64
|
+
/** Среда выполнения */
|
|
65
|
+
protected readonly isBrowser: boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Создает новый WebSocket клиент
|
|
68
|
+
* @param {string} url URL для подключения
|
|
69
|
+
* @param {WebSocketClientOptions} [options] Опции клиента
|
|
70
|
+
*/
|
|
71
|
+
constructor(url: string, options?: WebSocketClientOptions);
|
|
72
|
+
/**
|
|
73
|
+
* Подключается к WebSocket серверу
|
|
74
|
+
* @returns {Promise<void>}
|
|
75
|
+
*/
|
|
76
|
+
connect(): Promise<void>;
|
|
77
|
+
/**
|
|
78
|
+
* Переподключается к WebSocket серверу
|
|
79
|
+
* @private
|
|
80
|
+
*/
|
|
81
|
+
private reconnect;
|
|
82
|
+
/**
|
|
83
|
+
* Закрывает WebSocket соединение
|
|
84
|
+
* @param {number} [code=1000] Код закрытия
|
|
85
|
+
* @param {string} [reason] Причина закрытия
|
|
86
|
+
*/
|
|
87
|
+
close(code?: number, reason?: string): void;
|
|
88
|
+
/**
|
|
89
|
+
* Отправляет сообщение через WebSocket
|
|
90
|
+
* @param {string | object} message Сообщение для отправки
|
|
91
|
+
* @returns {boolean} Успешно ли отправлено сообщение
|
|
92
|
+
*/
|
|
93
|
+
send(message: string | object): boolean;
|
|
94
|
+
/**
|
|
95
|
+
* Проверяет, установлено ли соединение
|
|
96
|
+
* @returns {boolean} Установлено ли соединение
|
|
97
|
+
*/
|
|
98
|
+
isConnected(): boolean;
|
|
99
|
+
/**
|
|
100
|
+
* Добавляет обработчик события
|
|
101
|
+
* @param {string} eventType Тип события
|
|
102
|
+
* @param {WebSocketEventHandler} handler Обработчик события
|
|
103
|
+
*/
|
|
104
|
+
on(eventType: string, handler: WebSocketEventHandler): void;
|
|
105
|
+
/**
|
|
106
|
+
* Удаляет обработчик события
|
|
107
|
+
* @param {string} eventType Тип события
|
|
108
|
+
* @param {WebSocketEventHandler} [handler] Обработчик события (если не указан, удаляются все обработчики)
|
|
109
|
+
*/
|
|
110
|
+
off(eventType: string, handler?: WebSocketEventHandler): void;
|
|
111
|
+
/**
|
|
112
|
+
* Вызывает обработчики для указанного события
|
|
113
|
+
* @param {string} eventType Тип события
|
|
114
|
+
* @param {any} data Данные события
|
|
115
|
+
*/
|
|
116
|
+
protected dispatchEvent(eventType: string, data: any): void;
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=websocket-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket-client.d.ts","sourceRoot":"","sources":["../../../src/utils/websocket-client.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAE9B;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B,0BAA0B;IAC1B,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAE/B,oBAAoB;IACpB,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;IAEnD,0BAA0B;IAC1B,SAAS,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAQ;IAE7C,sCAAsC;IACtC,SAAS,CAAC,UAAU,SAAK;IAEzB,+DAA+D;IAC/D,SAAS,CAAC,mBAAmB,UAAS;IAEtC,6BAA6B;IAC7B,SAAS,CAAC,cAAc,EAAE,GAAG,CAAQ;IAErC,iCAAiC;IACjC,SAAS,CAAC,sBAAsB,EAAE,GAAG,CAAQ;IAE7C,0BAA0B;IAC1B,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,EAAE,CAAC,CAAM;IAEtE,uDAAuD;IACvD,SAAS,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,GAAG,eAAe,GAAG,IAAI,GAAG,eAAe,CAAC,CAAM;IAEtF,2BAA2B;IAC3B,SAAS,CAAC,SAAS,UAAS;IAE5B,uBAAuB;IACvB,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAEtC;;;;OAIG;gBACS,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B;IAgB7D;;;OAGG;IACI,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA4G/B;;;OAGG;IACH,OAAO,CAAC,SAAS;IAuBjB;;;;OAIG;IACI,KAAK,CAAC,IAAI,GAAE,MAAa,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAqBxD;;;;OAIG;IACI,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;IAmB9C;;;OAGG;IACI,WAAW,IAAI,OAAO;IAI7B;;;;OAIG;IACI,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAQlE;;;;OAIG;IACI,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,IAAI;IAmBpE;;;;OAIG;IACH,SAAS,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI;CAa5D"}
|