solver-sdk 10.0.1 → 10.2.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 +214 -39
- package/dist/cjs/api/chat-api/stream-utils.js +103 -0
- package/dist/cjs/api/chat-api/stream-utils.js.map +1 -1
- package/dist/cjs/api/delta-chunking-api.js +5 -2
- package/dist/cjs/api/delta-chunking-api.js.map +1 -1
- package/dist/cjs/code-solver-sdk.js +6 -3
- package/dist/cjs/code-solver-sdk.js.map +1 -1
- package/dist/cjs/delta-chunking/delta-chunking-manager.js +12 -3
- package/dist/cjs/delta-chunking/delta-chunking-manager.js.map +1 -1
- package/dist/cjs/index.js +11 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/utils/project-sync-client.js +116 -11
- package/dist/cjs/utils/project-sync-client.js.map +1 -1
- package/dist/esm/api/chat-api/stream-utils.js +100 -0
- package/dist/esm/api/chat-api/stream-utils.js.map +1 -1
- package/dist/esm/api/delta-chunking-api.js +5 -2
- package/dist/esm/api/delta-chunking-api.js.map +1 -1
- package/dist/esm/code-solver-sdk.js +6 -3
- package/dist/esm/code-solver-sdk.js.map +1 -1
- package/dist/esm/delta-chunking/delta-chunking-manager.js +12 -3
- package/dist/esm/delta-chunking/delta-chunking-manager.js.map +1 -1
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/utils/project-sync-client.js +116 -11
- package/dist/esm/utils/project-sync-client.js.map +1 -1
- package/dist/types/api/chat-api/stream-utils.d.ts +34 -0
- package/dist/types/api/chat-api/stream-utils.d.ts.map +1 -1
- package/dist/types/api/delta-chunking-api.d.ts +4 -1
- package/dist/types/api/delta-chunking-api.d.ts.map +1 -1
- package/dist/types/code-solver-sdk.d.ts +2 -2
- package/dist/types/code-solver-sdk.d.ts.map +1 -1
- package/dist/types/delta-chunking/delta-chunking-manager.d.ts +4 -1
- package/dist/types/delta-chunking/delta-chunking-manager.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/interfaces/sdk-options.d.ts +15 -0
- package/dist/types/interfaces/sdk-options.d.ts.map +1 -1
- package/dist/types/types/delta-chunking.d.ts +5 -0
- package/dist/types/types/delta-chunking.d.ts.map +1 -1
- package/dist/types/utils/project-sync-client.d.ts +70 -3
- package/dist/types/utils/project-sync-client.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/cjs/utils/logger.js +0 -106
- package/dist/cjs/utils/logger.js.map +0 -1
- package/dist/cjs/utils/sse-client.js +0 -233
- package/dist/cjs/utils/sse-client.js.map +0 -1
- package/dist/esm/utils/logger.js +0 -101
- package/dist/esm/utils/logger.js.map +0 -1
- package/dist/esm/utils/sse-client.js +0 -229
- package/dist/esm/utils/sse-client.js.map +0 -1
- package/dist/types/utils/logger.d.ts +0 -62
- package/dist/types/utils/logger.d.ts.map +0 -1
- package/dist/types/utils/sse-client.d.ts +0 -92
- package/dist/types/utils/sse-client.d.ts.map +0 -1
|
@@ -1,229 +0,0 @@
|
|
|
1
|
-
import { EventSourcePolyfill } from 'event-source-polyfill';
|
|
2
|
-
// В браузере будем использовать нативный EventSource или полифилл
|
|
3
|
-
const BrowserEventSource = typeof EventSource !== 'undefined' ? EventSource : EventSourcePolyfill;
|
|
4
|
-
// Проверяем, находимся ли мы в браузере
|
|
5
|
-
const isBrowser = typeof window !== 'undefined' && typeof window.document !== 'undefined';
|
|
6
|
-
/**
|
|
7
|
-
* Клиент для работы с Server-Sent Events (SSE)
|
|
8
|
-
* Поддерживает работу как в браузере, так и в Node.js
|
|
9
|
-
*/
|
|
10
|
-
export class SseClient {
|
|
11
|
-
/**
|
|
12
|
-
* Создает новый SSE клиент
|
|
13
|
-
* @param {string} url URL для подключения
|
|
14
|
-
* @param {SseClientOptions} [options] Опции клиента
|
|
15
|
-
*/
|
|
16
|
-
constructor(url, options = {}) {
|
|
17
|
-
/** Экземпляр EventSource */
|
|
18
|
-
this.eventSource = null;
|
|
19
|
-
/** Счетчик попыток переподключения */
|
|
20
|
-
this.retryCount = 0;
|
|
21
|
-
/** Флаг, указывающий, что соединение было закрыто намеренно */
|
|
22
|
-
this.intentionallyClosed = false;
|
|
23
|
-
/** Таймер переподключения */
|
|
24
|
-
this.reconnectTimer = null;
|
|
25
|
-
/** Таймер таймаута соединения */
|
|
26
|
-
this.connectionTimeoutTimer = null;
|
|
27
|
-
/** Обработчики событий */
|
|
28
|
-
this.eventHandlers = {};
|
|
29
|
-
this.url = url;
|
|
30
|
-
this.options = {
|
|
31
|
-
headers: options.headers || {},
|
|
32
|
-
connectionTimeout: options.connectionTimeout || 30000,
|
|
33
|
-
maxRetries: options.maxRetries || 5,
|
|
34
|
-
retryDelay: options.retryDelay || 1000,
|
|
35
|
-
maxRetryDelay: options.maxRetryDelay || 30000
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Подключается к SSE эндпоинту
|
|
40
|
-
* @returns {Promise<void>}
|
|
41
|
-
*/
|
|
42
|
-
connect() {
|
|
43
|
-
// Если соединение уже установлено, возвращаем Promise.resolve
|
|
44
|
-
if (this.eventSource && this.eventSource.readyState === 1) {
|
|
45
|
-
return Promise.resolve();
|
|
46
|
-
}
|
|
47
|
-
// Сбрасываем флаг намеренного закрытия
|
|
48
|
-
this.intentionallyClosed = false;
|
|
49
|
-
return new Promise((resolve, reject) => {
|
|
50
|
-
try {
|
|
51
|
-
// Создаем новый экземпляр EventSource
|
|
52
|
-
const EventSourceImpl = isBrowser ? BrowserEventSource : require('eventsource');
|
|
53
|
-
this.eventSource = new EventSourceImpl(this.url, {
|
|
54
|
-
headers: this.options.headers,
|
|
55
|
-
withCredentials: true
|
|
56
|
-
});
|
|
57
|
-
// Устанавливаем таймаут соединения
|
|
58
|
-
this.connectionTimeoutTimer = setTimeout(() => {
|
|
59
|
-
if (this.eventSource && this.eventSource.readyState !== 1) {
|
|
60
|
-
reject(new Error('Таймаут подключения SSE'));
|
|
61
|
-
this.close();
|
|
62
|
-
}
|
|
63
|
-
}, this.options.connectionTimeout);
|
|
64
|
-
// Проверяем, что this.eventSource не null
|
|
65
|
-
if (!this.eventSource) {
|
|
66
|
-
reject(new Error('Не удалось создать EventSource'));
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
// Обработчик открытия соединения
|
|
70
|
-
this.eventSource.onopen = () => {
|
|
71
|
-
clearTimeout(this.connectionTimeoutTimer);
|
|
72
|
-
this.retryCount = 0;
|
|
73
|
-
resolve();
|
|
74
|
-
this.dispatchEvent('open', {});
|
|
75
|
-
};
|
|
76
|
-
// Обработчик сообщений
|
|
77
|
-
this.eventSource.onmessage = (event) => {
|
|
78
|
-
try {
|
|
79
|
-
const data = JSON.parse(event.data);
|
|
80
|
-
this.dispatchEvent('message', data);
|
|
81
|
-
// Также вызываем специальный обработчик для конкретного типа события,
|
|
82
|
-
// если такой тип указан в данных
|
|
83
|
-
if (data && data.type) {
|
|
84
|
-
this.dispatchEvent(data.type, data);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
catch (error) {
|
|
88
|
-
this.dispatchEvent('error', { error, message: 'Ошибка при обработке сообщения SSE' });
|
|
89
|
-
}
|
|
90
|
-
};
|
|
91
|
-
// Обработчик ошибок
|
|
92
|
-
this.eventSource.onerror = (error) => {
|
|
93
|
-
clearTimeout(this.connectionTimeoutTimer);
|
|
94
|
-
if (this.intentionallyClosed) {
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
|
-
// Если соединение уже установлено и произошла ошибка, просто сообщаем об ошибке
|
|
98
|
-
if (this.eventSource && this.eventSource.readyState === 1) {
|
|
99
|
-
this.dispatchEvent('error', { error, message: 'Ошибка SSE соединения' });
|
|
100
|
-
return;
|
|
101
|
-
}
|
|
102
|
-
// Если это первая попытка подключения, отклоняем Promise
|
|
103
|
-
if (this.retryCount === 0) {
|
|
104
|
-
reject(new Error('Ошибка подключения SSE'));
|
|
105
|
-
}
|
|
106
|
-
// Запускаем процесс переподключения
|
|
107
|
-
this.reconnect();
|
|
108
|
-
};
|
|
109
|
-
// Настраиваем обработчики для всех добавленных событий
|
|
110
|
-
for (const eventType in this.eventHandlers) {
|
|
111
|
-
if (eventType !== 'message' && eventType !== 'open' && eventType !== 'error') {
|
|
112
|
-
this.eventSource.addEventListener(eventType, (event) => {
|
|
113
|
-
try {
|
|
114
|
-
const data = JSON.parse(event.data);
|
|
115
|
-
this.dispatchEvent(eventType, data);
|
|
116
|
-
}
|
|
117
|
-
catch (e) {
|
|
118
|
-
this.dispatchEvent(eventType, event.data);
|
|
119
|
-
}
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
catch (error) {
|
|
125
|
-
reject(error);
|
|
126
|
-
}
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Закрывает SSE соединение
|
|
131
|
-
*/
|
|
132
|
-
close() {
|
|
133
|
-
this.intentionallyClosed = true;
|
|
134
|
-
// Очищаем таймеры
|
|
135
|
-
clearTimeout(this.reconnectTimer);
|
|
136
|
-
clearTimeout(this.connectionTimeoutTimer);
|
|
137
|
-
// Закрываем соединение
|
|
138
|
-
if (this.eventSource) {
|
|
139
|
-
this.eventSource.close();
|
|
140
|
-
this.eventSource = null;
|
|
141
|
-
}
|
|
142
|
-
this.dispatchEvent('close', {});
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Добавляет обработчик события
|
|
146
|
-
* @param {string} eventType Тип события
|
|
147
|
-
* @param {SseEventHandler} handler Обработчик события
|
|
148
|
-
*/
|
|
149
|
-
on(eventType, handler) {
|
|
150
|
-
if (!this.eventHandlers[eventType]) {
|
|
151
|
-
this.eventHandlers[eventType] = [];
|
|
152
|
-
// Если соединение уже установлено, добавляем обработчик события
|
|
153
|
-
if (this.eventSource && this.eventSource.readyState === 1 &&
|
|
154
|
-
eventType !== 'message' && eventType !== 'open' && eventType !== 'error') {
|
|
155
|
-
this.eventSource.addEventListener(eventType, (event) => {
|
|
156
|
-
try {
|
|
157
|
-
const data = JSON.parse(event.data);
|
|
158
|
-
this.dispatchEvent(eventType, data);
|
|
159
|
-
}
|
|
160
|
-
catch (e) {
|
|
161
|
-
this.dispatchEvent(eventType, event.data);
|
|
162
|
-
}
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
this.eventHandlers[eventType].push(handler);
|
|
167
|
-
}
|
|
168
|
-
/**
|
|
169
|
-
* Удаляет обработчик события
|
|
170
|
-
* @param {string} eventType Тип события
|
|
171
|
-
* @param {SseEventHandler} [handler] Обработчик события (если не указан, удаляются все обработчики)
|
|
172
|
-
*/
|
|
173
|
-
off(eventType, handler) {
|
|
174
|
-
if (!this.eventHandlers[eventType]) {
|
|
175
|
-
return;
|
|
176
|
-
}
|
|
177
|
-
if (!handler) {
|
|
178
|
-
// Если обработчик не указан, удаляем все обработчики для данного события
|
|
179
|
-
delete this.eventHandlers[eventType];
|
|
180
|
-
}
|
|
181
|
-
else {
|
|
182
|
-
// Если обработчик указан, удаляем только его
|
|
183
|
-
this.eventHandlers[eventType] = this.eventHandlers[eventType].filter(h => h !== handler);
|
|
184
|
-
// Если обработчиков больше нет, удаляем массив
|
|
185
|
-
if (this.eventHandlers[eventType].length === 0) {
|
|
186
|
-
delete this.eventHandlers[eventType];
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
/**
|
|
191
|
-
* Вызывает обработчики для указанного события
|
|
192
|
-
* @param {string} eventType Тип события
|
|
193
|
-
* @param {any} data Данные события
|
|
194
|
-
*/
|
|
195
|
-
dispatchEvent(eventType, data) {
|
|
196
|
-
if (!this.eventHandlers[eventType]) {
|
|
197
|
-
return;
|
|
198
|
-
}
|
|
199
|
-
for (const handler of this.eventHandlers[eventType]) {
|
|
200
|
-
try {
|
|
201
|
-
handler(data);
|
|
202
|
-
}
|
|
203
|
-
catch (e) {
|
|
204
|
-
console.error(`Ошибка в обработчике события ${eventType}:`, e);
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
/**
|
|
209
|
-
* Переподключается к SSE эндпоинту с экспоненциальной задержкой
|
|
210
|
-
* @private
|
|
211
|
-
*/
|
|
212
|
-
reconnect() {
|
|
213
|
-
// Увеличиваем счетчик попыток
|
|
214
|
-
this.retryCount++;
|
|
215
|
-
// Если превышено максимальное количество попыток, прекращаем
|
|
216
|
-
if (this.retryCount > (this.options.maxRetries || 5)) {
|
|
217
|
-
this.dispatchEvent('maxRetries', { retries: this.retryCount });
|
|
218
|
-
return;
|
|
219
|
-
}
|
|
220
|
-
// Вычисляем задержку перед переподключением с экспоненциальным ростом
|
|
221
|
-
const delay = Math.min((this.options.retryDelay || 1000) * Math.pow(2, this.retryCount - 1), this.options.maxRetryDelay || 30000);
|
|
222
|
-
// Пытаемся переподключиться после задержки
|
|
223
|
-
this.reconnectTimer = setTimeout(() => {
|
|
224
|
-
this.dispatchEvent('reconnect', { attempt: this.retryCount });
|
|
225
|
-
this.connect().catch(() => { });
|
|
226
|
-
}, delay);
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
//# sourceMappingURL=sse-client.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sse-client.js","sourceRoot":"","sources":["../../../src/utils/sse-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Уровни логирования
|
|
3
|
-
*/
|
|
4
|
-
export declare enum LogLevel {
|
|
5
|
-
DEBUG = "debug",
|
|
6
|
-
INFO = "info",
|
|
7
|
-
WARN = "warn",
|
|
8
|
-
ERROR = "error"
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Интерфейс логгера
|
|
12
|
-
*/
|
|
13
|
-
export interface Logger {
|
|
14
|
-
/**
|
|
15
|
-
* Логирует отладочное сообщение
|
|
16
|
-
* @param message Сообщение для логирования
|
|
17
|
-
* @param data Дополнительные данные
|
|
18
|
-
*/
|
|
19
|
-
debug(message: string, data?: any): void;
|
|
20
|
-
/**
|
|
21
|
-
* Логирует информационное сообщение
|
|
22
|
-
* @param message Сообщение для логирования
|
|
23
|
-
* @param data Дополнительные данные
|
|
24
|
-
*/
|
|
25
|
-
info(message: string, data?: any): void;
|
|
26
|
-
/**
|
|
27
|
-
* Логирует предупреждение
|
|
28
|
-
* @param message Сообщение для логирования
|
|
29
|
-
* @param data Дополнительные данные
|
|
30
|
-
*/
|
|
31
|
-
warn(message: string, data?: any): void;
|
|
32
|
-
/**
|
|
33
|
-
* Логирует ошибку
|
|
34
|
-
* @param message Сообщение для логирования
|
|
35
|
-
* @param data Дополнительные данные
|
|
36
|
-
*/
|
|
37
|
-
error(message: string, data?: any): void;
|
|
38
|
-
/**
|
|
39
|
-
* Создает новый логгер с указанным префиксом
|
|
40
|
-
* @param prefix Префикс для нового логгера
|
|
41
|
-
* @returns Новый логгер с префиксом
|
|
42
|
-
*/
|
|
43
|
-
withPrefix(prefix: string): Logger;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Тип для функции логирования
|
|
47
|
-
*/
|
|
48
|
-
export type LogFunction = (level: string, message: string, data?: any) => void;
|
|
49
|
-
/**
|
|
50
|
-
* Создает новый логгер для HTTP клиента
|
|
51
|
-
* @param component Название компонента
|
|
52
|
-
* @param logFn Функция логирования
|
|
53
|
-
* @returns Логгер
|
|
54
|
-
*/
|
|
55
|
-
export declare function createHttpLogger(component: string, logFn?: LogFunction): Logger;
|
|
56
|
-
/**
|
|
57
|
-
* Создает новый логгер с пустой функцией логирования
|
|
58
|
-
* @param component Название компонента
|
|
59
|
-
* @returns Новый логгер
|
|
60
|
-
*/
|
|
61
|
-
export declare function createNullLogger(component: string): Logger;
|
|
62
|
-
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,QAAQ;IAClB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB;;;;OAIG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IAEzC;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IAExC;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IAExC;;;;OAIG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IAEzC;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;AAqF/E;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,GAAE,WAAgC,GAAG,MAAM,CAEnG;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE1D"}
|
|
@@ -1,92 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|