solver-sdk 10.0.0 → 10.1.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/index.js +4 -3
- package/dist/cjs/api/chat-api/index.js.map +1 -1
- 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/code-solver-sdk.js +3 -1
- package/dist/cjs/code-solver-sdk.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/cjs/utils/thinking-block-manager.js +6 -9
- package/dist/cjs/utils/thinking-block-manager.js.map +1 -1
- package/dist/esm/api/chat-api/index.js +4 -3
- package/dist/esm/api/chat-api/index.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/code-solver-sdk.js +3 -1
- package/dist/esm/code-solver-sdk.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/esm/utils/thinking-block-manager.js +6 -9
- package/dist/esm/utils/thinking-block-manager.js.map +1 -1
- package/dist/types/api/chat-api/index.d.ts.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/code-solver-sdk.d.ts +0 -1
- package/dist/types/code-solver-sdk.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/utils/project-sync-client.d.ts +70 -3
- package/dist/types/utils/project-sync-client.d.ts.map +1 -1
- package/dist/types/utils/thinking-block-manager.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
|
@@ -62,7 +62,49 @@ export interface ErrorEvent {
|
|
|
62
62
|
recoverable: boolean;
|
|
63
63
|
}
|
|
64
64
|
export type SyncEventHandler<T> = (data: T) => void;
|
|
65
|
-
|
|
65
|
+
/**
|
|
66
|
+
* Типы событий WebSocket (синхронизированы с backend ProjectSyncGateway)
|
|
67
|
+
*
|
|
68
|
+
* Backend → Client:
|
|
69
|
+
* - 'connected' - успешное подключение к gateway
|
|
70
|
+
* - 'disconnected' - отключение от gateway (SDK-only, внутреннее)
|
|
71
|
+
* - 'project-sync-joined' - успешная подписка на проект
|
|
72
|
+
* - 'project-sync-left' - успешная отписка от проекта
|
|
73
|
+
* - 'sync-status-update' - обновление статуса синхронизации
|
|
74
|
+
* - 'sync-progress' - прогресс синхронизации
|
|
75
|
+
* - 'sync-completed' - завершение синхронизации
|
|
76
|
+
* - 'error' - ошибки (IP_CONNECTIONS_EXCEEDED, INVALID_PROJECT_ID, etc.)
|
|
77
|
+
* - 'disconnect-idle' - принудительное отключение по idle timeout
|
|
78
|
+
* - 'reconnect_exhausted' - SDK-only: исчерпаны попытки reconnect
|
|
79
|
+
*/
|
|
80
|
+
export type EventType = 'sync-status-update' | 'sync-progress' | 'sync-completed' | 'error' | 'connected' | 'disconnected' | 'project-sync-joined' | 'project-sync-left' | 'disconnect-idle' | 'reconnect_exhausted';
|
|
81
|
+
/** Событие при успешном join на проект (от backend) */
|
|
82
|
+
export interface ProjectSyncJoinedEvent {
|
|
83
|
+
projectId: string;
|
|
84
|
+
message: string;
|
|
85
|
+
connectedClients: number;
|
|
86
|
+
timestamp: Date;
|
|
87
|
+
}
|
|
88
|
+
/** Событие при leave проекта (от backend) */
|
|
89
|
+
export interface ProjectSyncLeftEvent {
|
|
90
|
+
projectId: string;
|
|
91
|
+
message: string;
|
|
92
|
+
timestamp: Date;
|
|
93
|
+
}
|
|
94
|
+
/** Событие при принудительном отключении по idle timeout */
|
|
95
|
+
export interface DisconnectIdleEvent {
|
|
96
|
+
reason: string;
|
|
97
|
+
idleTime: number;
|
|
98
|
+
maxIdleTime: number;
|
|
99
|
+
timestamp: Date;
|
|
100
|
+
}
|
|
101
|
+
/** Событие при исчерпании попыток reconnect (SDK-only) */
|
|
102
|
+
export interface ReconnectExhaustedEvent {
|
|
103
|
+
attempts: number;
|
|
104
|
+
maxAttempts: number;
|
|
105
|
+
lastError?: string;
|
|
106
|
+
timestamp: Date;
|
|
107
|
+
}
|
|
66
108
|
/**
|
|
67
109
|
* Опции для ProjectSyncClient
|
|
68
110
|
*/
|
|
@@ -77,8 +119,22 @@ export interface ProjectSyncClientOptions {
|
|
|
77
119
|
maxRetries?: number;
|
|
78
120
|
/** Задержка между попытками переподключения (мс) */
|
|
79
121
|
retryDelay?: number;
|
|
80
|
-
/** Включить отладочные логи */
|
|
122
|
+
/** Включить отладочные логи (deprecated: используйте logLevel) */
|
|
81
123
|
debug?: boolean;
|
|
124
|
+
/**
|
|
125
|
+
* 🔄 Полностью отключить auto-reconnect в SDK
|
|
126
|
+
* Рекомендуется при использовании собственного координатора reconnect на клиенте
|
|
127
|
+
*/
|
|
128
|
+
disableAutoReconnect?: boolean;
|
|
129
|
+
/**
|
|
130
|
+
* 📝 Уровень логирования для WebSocket
|
|
131
|
+
* - 'silent' - полностью отключает логирование
|
|
132
|
+
* - 'error' - только ошибки (по умолчанию)
|
|
133
|
+
* - 'warn' - предупреждения и ошибки
|
|
134
|
+
* - 'info' - информация, предупреждения и ошибки
|
|
135
|
+
* - 'debug' - полная отладочная информация
|
|
136
|
+
*/
|
|
137
|
+
logLevel?: 'silent' | 'error' | 'warn' | 'info' | 'debug';
|
|
82
138
|
}
|
|
83
139
|
/**
|
|
84
140
|
* 🔌 WebSocket клиент для project sync уведомлений
|
|
@@ -93,12 +149,23 @@ export declare class ProjectSyncClient {
|
|
|
93
149
|
private subscribedProjects;
|
|
94
150
|
private idleWarningTimer;
|
|
95
151
|
private readonly IDLE_WARNING_DELAY;
|
|
152
|
+
private errorDebounce;
|
|
153
|
+
private readonly ERROR_DEBOUNCE_MS;
|
|
154
|
+
private lastConnectionError;
|
|
96
155
|
private eventHandlers;
|
|
97
156
|
/**
|
|
98
|
-
* Logger для отладки
|
|
157
|
+
* Logger для отладки с поддержкой logLevel и debounce
|
|
99
158
|
*/
|
|
100
159
|
private logger;
|
|
101
160
|
constructor(options: ProjectSyncClientOptions);
|
|
161
|
+
/**
|
|
162
|
+
* 📝 Проверка уровня логирования
|
|
163
|
+
*/
|
|
164
|
+
private shouldLog;
|
|
165
|
+
/**
|
|
166
|
+
* 🔄 Логирование ошибок с debounce для снижения спама
|
|
167
|
+
*/
|
|
168
|
+
private logErrorWithDebounce;
|
|
102
169
|
/**
|
|
103
170
|
* 🔌 Подключение к WebSocket
|
|
104
171
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-sync-client.d.ts","sourceRoot":"","sources":["../../../src/utils/project-sync-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,cAAc,GAAG,YAAY,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,IAAI,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,kBAAkB,GAAG,mBAAmB,GAAG,qBAAqB,GAAG,eAAe,GAAG,YAAY,CAAC;IACzG,QAAQ,EAAE,MAAM,CAAC;IAGjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;IAC3C,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE;QACX,YAAY,EAAE,MAAM,CAAC;QACrB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,eAAe,EAAE,MAAM,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;CACtB;AAGD,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"project-sync-client.d.ts","sourceRoot":"","sources":["../../../src/utils/project-sync-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thinking-block-manager.d.ts","sourceRoot":"","sources":["../../../src/utils/thinking-block-manager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,aAAa,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,oBAAoB;IAE/B;;OAEG;IACH,MAAM,CAAC,2BAA2B,CAAC,KAAK,EAAE,GAAG,GAAG,6BAA6B;
|
|
1
|
+
{"version":3,"file":"thinking-block-manager.d.ts","sourceRoot":"","sources":["../../../src/utils/thinking-block-manager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,aAAa,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,oBAAoB;IAE/B;;OAEG;IACH,MAAM,CAAC,2BAA2B,CAAC,KAAK,EAAE,GAAG,GAAG,6BAA6B;IA2C7E;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAKnC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAIlC;;OAEG;IACH,MAAM,CAAC,2BAA2B,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG;QAClD,WAAW,EAAE,GAAG,EAAE,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;KACtB;IA8BD;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,aAAa;IAe/E;;OAEG;IACH,MAAM,CAAC,0BAA0B,CAAC,OAAO,EAAE,GAAG,GAAG,aAAa,EAAE;CAWjE"}
|
package/package.json
CHANGED
package/dist/cjs/utils/logger.js
DELETED
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.LogLevel = void 0;
|
|
4
|
-
exports.createHttpLogger = createHttpLogger;
|
|
5
|
-
exports.createNullLogger = createNullLogger;
|
|
6
|
-
/**
|
|
7
|
-
* Уровни логирования
|
|
8
|
-
*/
|
|
9
|
-
var LogLevel;
|
|
10
|
-
(function (LogLevel) {
|
|
11
|
-
LogLevel["DEBUG"] = "debug";
|
|
12
|
-
LogLevel["INFO"] = "info";
|
|
13
|
-
LogLevel["WARN"] = "warn";
|
|
14
|
-
LogLevel["ERROR"] = "error";
|
|
15
|
-
})(LogLevel || (exports.LogLevel = LogLevel = {}));
|
|
16
|
-
/**
|
|
17
|
-
* Реализация логгера
|
|
18
|
-
*/
|
|
19
|
-
class LoggerImpl {
|
|
20
|
-
/**
|
|
21
|
-
* Создает новый логгер
|
|
22
|
-
* @param component Название компонента
|
|
23
|
-
* @param logFn Функция логирования
|
|
24
|
-
*/
|
|
25
|
-
constructor(component, logFn) {
|
|
26
|
-
this.component = component;
|
|
27
|
-
this.logFn = logFn;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Логирует отладочное сообщение
|
|
31
|
-
* @param message Сообщение для логирования
|
|
32
|
-
* @param data Дополнительные данные
|
|
33
|
-
*/
|
|
34
|
-
debug(message, data) {
|
|
35
|
-
this.logFn(LogLevel.DEBUG, `[${this.component}] ${message}`, data);
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Логирует информационное сообщение
|
|
39
|
-
* @param message Сообщение для логирования
|
|
40
|
-
* @param data Дополнительные данные
|
|
41
|
-
*/
|
|
42
|
-
info(message, data) {
|
|
43
|
-
this.logFn(LogLevel.INFO, `[${this.component}] ${message}`, data);
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Логирует предупреждение
|
|
47
|
-
* @param message Сообщение для логирования
|
|
48
|
-
* @param data Дополнительные данные
|
|
49
|
-
*/
|
|
50
|
-
warn(message, data) {
|
|
51
|
-
this.logFn(LogLevel.WARN, `[${this.component}] ${message}`, data);
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Логирует ошибку
|
|
55
|
-
* @param message Сообщение для логирования
|
|
56
|
-
* @param data Дополнительные данные
|
|
57
|
-
*/
|
|
58
|
-
error(message, data) {
|
|
59
|
-
this.logFn(LogLevel.ERROR, `[${this.component}] ${message}`, data);
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Создает новый логгер с указанным префиксом
|
|
63
|
-
* @param prefix Префикс для нового логгера
|
|
64
|
-
* @returns Новый логгер с префиксом
|
|
65
|
-
*/
|
|
66
|
-
withPrefix(prefix) {
|
|
67
|
-
return new LoggerImpl(`${this.component}:${prefix}`, this.logFn);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Функция логирования по умолчанию
|
|
72
|
-
*/
|
|
73
|
-
const defaultLogFunction = (level, message, data) => {
|
|
74
|
-
if (level === LogLevel.ERROR) {
|
|
75
|
-
console.error(message, data);
|
|
76
|
-
}
|
|
77
|
-
else if (level === LogLevel.WARN) {
|
|
78
|
-
console.warn(message, data);
|
|
79
|
-
}
|
|
80
|
-
else if (level === LogLevel.INFO) {
|
|
81
|
-
console.info(message, data);
|
|
82
|
-
}
|
|
83
|
-
else if (level === LogLevel.DEBUG) {
|
|
84
|
-
if (process.env.NODE_ENV === 'development') {
|
|
85
|
-
console.debug(message, data);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
};
|
|
89
|
-
/**
|
|
90
|
-
* Создает новый логгер для HTTP клиента
|
|
91
|
-
* @param component Название компонента
|
|
92
|
-
* @param logFn Функция логирования
|
|
93
|
-
* @returns Логгер
|
|
94
|
-
*/
|
|
95
|
-
function createHttpLogger(component, logFn = defaultLogFunction) {
|
|
96
|
-
return new LoggerImpl(component, logFn);
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Создает новый логгер с пустой функцией логирования
|
|
100
|
-
* @param component Название компонента
|
|
101
|
-
* @returns Новый логгер
|
|
102
|
-
*/
|
|
103
|
-
function createNullLogger(component) {
|
|
104
|
-
return new LoggerImpl(component, () => { });
|
|
105
|
-
}
|
|
106
|
-
//# sourceMappingURL=logger.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/utils/logger.ts"],"names":[],"mappings":";;;AAgJA,4CAEC;AAOD,4CAEC;AA3JD;;GAEG;AACH,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,yBAAa,CAAA;IACb,yBAAa,CAAA;IACb,2BAAe,CAAA;AACjB,CAAC,EALW,QAAQ,wBAAR,QAAQ,QAKnB;AA+CD;;GAEG;AACH,MAAM,UAAU;IAOd;;;;OAIG;IACH,YAAY,SAAiB,EAAE,KAAkB;QAC/C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,OAAe,EAAE,IAAU;QACtC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;IAED;;;;OAIG;IACI,IAAI,CAAC,OAAe,EAAE,IAAU;QACrC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC;IAED;;;;OAIG;IACI,IAAI,CAAC,OAAe,EAAE,IAAU;QACrC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,OAAe,EAAE,IAAU;QACtC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;IAED;;;;OAIG;IACI,UAAU,CAAC,MAAc;QAC9B,OAAO,IAAI,UAAU,CAAC,GAAG,IAAI,CAAC,SAAS,IAAI,MAAM,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACnE,CAAC;CACF;AAED;;GAEG;AACH,MAAM,kBAAkB,GAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IAC/D,IAAI,KAAK,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;SAAM,IAAI,KAAK,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;SAAM,IAAI,KAAK,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;SAAM,IAAI,KAAK,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;QACpC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;YAC3C,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,SAAiB,EAAE,QAAqB,kBAAkB;IACzF,OAAO,IAAI,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AAC1C,CAAC;AAED;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,SAAiB;IAChD,OAAO,IAAI,UAAU,CAAC,SAAS,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AAC7C,CAAC"}
|
|
@@ -1,233 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SseClient = void 0;
|
|
4
|
-
const event_source_polyfill_1 = require("event-source-polyfill");
|
|
5
|
-
// В браузере будем использовать нативный EventSource или полифилл
|
|
6
|
-
const BrowserEventSource = typeof EventSource !== 'undefined' ? EventSource : event_source_polyfill_1.EventSourcePolyfill;
|
|
7
|
-
// Проверяем, находимся ли мы в браузере
|
|
8
|
-
const isBrowser = typeof window !== 'undefined' && typeof window.document !== 'undefined';
|
|
9
|
-
/**
|
|
10
|
-
* Клиент для работы с Server-Sent Events (SSE)
|
|
11
|
-
* Поддерживает работу как в браузере, так и в Node.js
|
|
12
|
-
*/
|
|
13
|
-
class SseClient {
|
|
14
|
-
/**
|
|
15
|
-
* Создает новый SSE клиент
|
|
16
|
-
* @param {string} url URL для подключения
|
|
17
|
-
* @param {SseClientOptions} [options] Опции клиента
|
|
18
|
-
*/
|
|
19
|
-
constructor(url, options = {}) {
|
|
20
|
-
/** Экземпляр EventSource */
|
|
21
|
-
this.eventSource = null;
|
|
22
|
-
/** Счетчик попыток переподключения */
|
|
23
|
-
this.retryCount = 0;
|
|
24
|
-
/** Флаг, указывающий, что соединение было закрыто намеренно */
|
|
25
|
-
this.intentionallyClosed = false;
|
|
26
|
-
/** Таймер переподключения */
|
|
27
|
-
this.reconnectTimer = null;
|
|
28
|
-
/** Таймер таймаута соединения */
|
|
29
|
-
this.connectionTimeoutTimer = null;
|
|
30
|
-
/** Обработчики событий */
|
|
31
|
-
this.eventHandlers = {};
|
|
32
|
-
this.url = url;
|
|
33
|
-
this.options = {
|
|
34
|
-
headers: options.headers || {},
|
|
35
|
-
connectionTimeout: options.connectionTimeout || 30000,
|
|
36
|
-
maxRetries: options.maxRetries || 5,
|
|
37
|
-
retryDelay: options.retryDelay || 1000,
|
|
38
|
-
maxRetryDelay: options.maxRetryDelay || 30000
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Подключается к SSE эндпоинту
|
|
43
|
-
* @returns {Promise<void>}
|
|
44
|
-
*/
|
|
45
|
-
connect() {
|
|
46
|
-
// Если соединение уже установлено, возвращаем Promise.resolve
|
|
47
|
-
if (this.eventSource && this.eventSource.readyState === 1) {
|
|
48
|
-
return Promise.resolve();
|
|
49
|
-
}
|
|
50
|
-
// Сбрасываем флаг намеренного закрытия
|
|
51
|
-
this.intentionallyClosed = false;
|
|
52
|
-
return new Promise((resolve, reject) => {
|
|
53
|
-
try {
|
|
54
|
-
// Создаем новый экземпляр EventSource
|
|
55
|
-
const EventSourceImpl = isBrowser ? BrowserEventSource : require('eventsource');
|
|
56
|
-
this.eventSource = new EventSourceImpl(this.url, {
|
|
57
|
-
headers: this.options.headers,
|
|
58
|
-
withCredentials: true
|
|
59
|
-
});
|
|
60
|
-
// Устанавливаем таймаут соединения
|
|
61
|
-
this.connectionTimeoutTimer = setTimeout(() => {
|
|
62
|
-
if (this.eventSource && this.eventSource.readyState !== 1) {
|
|
63
|
-
reject(new Error('Таймаут подключения SSE'));
|
|
64
|
-
this.close();
|
|
65
|
-
}
|
|
66
|
-
}, this.options.connectionTimeout);
|
|
67
|
-
// Проверяем, что this.eventSource не null
|
|
68
|
-
if (!this.eventSource) {
|
|
69
|
-
reject(new Error('Не удалось создать EventSource'));
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
// Обработчик открытия соединения
|
|
73
|
-
this.eventSource.onopen = () => {
|
|
74
|
-
clearTimeout(this.connectionTimeoutTimer);
|
|
75
|
-
this.retryCount = 0;
|
|
76
|
-
resolve();
|
|
77
|
-
this.dispatchEvent('open', {});
|
|
78
|
-
};
|
|
79
|
-
// Обработчик сообщений
|
|
80
|
-
this.eventSource.onmessage = (event) => {
|
|
81
|
-
try {
|
|
82
|
-
const data = JSON.parse(event.data);
|
|
83
|
-
this.dispatchEvent('message', data);
|
|
84
|
-
// Также вызываем специальный обработчик для конкретного типа события,
|
|
85
|
-
// если такой тип указан в данных
|
|
86
|
-
if (data && data.type) {
|
|
87
|
-
this.dispatchEvent(data.type, data);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
catch (error) {
|
|
91
|
-
this.dispatchEvent('error', { error, message: 'Ошибка при обработке сообщения SSE' });
|
|
92
|
-
}
|
|
93
|
-
};
|
|
94
|
-
// Обработчик ошибок
|
|
95
|
-
this.eventSource.onerror = (error) => {
|
|
96
|
-
clearTimeout(this.connectionTimeoutTimer);
|
|
97
|
-
if (this.intentionallyClosed) {
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
// Если соединение уже установлено и произошла ошибка, просто сообщаем об ошибке
|
|
101
|
-
if (this.eventSource && this.eventSource.readyState === 1) {
|
|
102
|
-
this.dispatchEvent('error', { error, message: 'Ошибка SSE соединения' });
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
|
-
// Если это первая попытка подключения, отклоняем Promise
|
|
106
|
-
if (this.retryCount === 0) {
|
|
107
|
-
reject(new Error('Ошибка подключения SSE'));
|
|
108
|
-
}
|
|
109
|
-
// Запускаем процесс переподключения
|
|
110
|
-
this.reconnect();
|
|
111
|
-
};
|
|
112
|
-
// Настраиваем обработчики для всех добавленных событий
|
|
113
|
-
for (const eventType in this.eventHandlers) {
|
|
114
|
-
if (eventType !== 'message' && eventType !== 'open' && eventType !== 'error') {
|
|
115
|
-
this.eventSource.addEventListener(eventType, (event) => {
|
|
116
|
-
try {
|
|
117
|
-
const data = JSON.parse(event.data);
|
|
118
|
-
this.dispatchEvent(eventType, data);
|
|
119
|
-
}
|
|
120
|
-
catch (e) {
|
|
121
|
-
this.dispatchEvent(eventType, event.data);
|
|
122
|
-
}
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
catch (error) {
|
|
128
|
-
reject(error);
|
|
129
|
-
}
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* Закрывает SSE соединение
|
|
134
|
-
*/
|
|
135
|
-
close() {
|
|
136
|
-
this.intentionallyClosed = true;
|
|
137
|
-
// Очищаем таймеры
|
|
138
|
-
clearTimeout(this.reconnectTimer);
|
|
139
|
-
clearTimeout(this.connectionTimeoutTimer);
|
|
140
|
-
// Закрываем соединение
|
|
141
|
-
if (this.eventSource) {
|
|
142
|
-
this.eventSource.close();
|
|
143
|
-
this.eventSource = null;
|
|
144
|
-
}
|
|
145
|
-
this.dispatchEvent('close', {});
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* Добавляет обработчик события
|
|
149
|
-
* @param {string} eventType Тип события
|
|
150
|
-
* @param {SseEventHandler} handler Обработчик события
|
|
151
|
-
*/
|
|
152
|
-
on(eventType, handler) {
|
|
153
|
-
if (!this.eventHandlers[eventType]) {
|
|
154
|
-
this.eventHandlers[eventType] = [];
|
|
155
|
-
// Если соединение уже установлено, добавляем обработчик события
|
|
156
|
-
if (this.eventSource && this.eventSource.readyState === 1 &&
|
|
157
|
-
eventType !== 'message' && eventType !== 'open' && eventType !== 'error') {
|
|
158
|
-
this.eventSource.addEventListener(eventType, (event) => {
|
|
159
|
-
try {
|
|
160
|
-
const data = JSON.parse(event.data);
|
|
161
|
-
this.dispatchEvent(eventType, data);
|
|
162
|
-
}
|
|
163
|
-
catch (e) {
|
|
164
|
-
this.dispatchEvent(eventType, event.data);
|
|
165
|
-
}
|
|
166
|
-
});
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
this.eventHandlers[eventType].push(handler);
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* Удаляет обработчик события
|
|
173
|
-
* @param {string} eventType Тип события
|
|
174
|
-
* @param {SseEventHandler} [handler] Обработчик события (если не указан, удаляются все обработчики)
|
|
175
|
-
*/
|
|
176
|
-
off(eventType, handler) {
|
|
177
|
-
if (!this.eventHandlers[eventType]) {
|
|
178
|
-
return;
|
|
179
|
-
}
|
|
180
|
-
if (!handler) {
|
|
181
|
-
// Если обработчик не указан, удаляем все обработчики для данного события
|
|
182
|
-
delete this.eventHandlers[eventType];
|
|
183
|
-
}
|
|
184
|
-
else {
|
|
185
|
-
// Если обработчик указан, удаляем только его
|
|
186
|
-
this.eventHandlers[eventType] = this.eventHandlers[eventType].filter(h => h !== handler);
|
|
187
|
-
// Если обработчиков больше нет, удаляем массив
|
|
188
|
-
if (this.eventHandlers[eventType].length === 0) {
|
|
189
|
-
delete this.eventHandlers[eventType];
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
/**
|
|
194
|
-
* Вызывает обработчики для указанного события
|
|
195
|
-
* @param {string} eventType Тип события
|
|
196
|
-
* @param {any} data Данные события
|
|
197
|
-
*/
|
|
198
|
-
dispatchEvent(eventType, data) {
|
|
199
|
-
if (!this.eventHandlers[eventType]) {
|
|
200
|
-
return;
|
|
201
|
-
}
|
|
202
|
-
for (const handler of this.eventHandlers[eventType]) {
|
|
203
|
-
try {
|
|
204
|
-
handler(data);
|
|
205
|
-
}
|
|
206
|
-
catch (e) {
|
|
207
|
-
console.error(`Ошибка в обработчике события ${eventType}:`, e);
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* Переподключается к SSE эндпоинту с экспоненциальной задержкой
|
|
213
|
-
* @private
|
|
214
|
-
*/
|
|
215
|
-
reconnect() {
|
|
216
|
-
// Увеличиваем счетчик попыток
|
|
217
|
-
this.retryCount++;
|
|
218
|
-
// Если превышено максимальное количество попыток, прекращаем
|
|
219
|
-
if (this.retryCount > (this.options.maxRetries || 5)) {
|
|
220
|
-
this.dispatchEvent('maxRetries', { retries: this.retryCount });
|
|
221
|
-
return;
|
|
222
|
-
}
|
|
223
|
-
// Вычисляем задержку перед переподключением с экспоненциальным ростом
|
|
224
|
-
const delay = Math.min((this.options.retryDelay || 1000) * Math.pow(2, this.retryCount - 1), this.options.maxRetryDelay || 30000);
|
|
225
|
-
// Пытаемся переподключиться после задержки
|
|
226
|
-
this.reconnectTimer = setTimeout(() => {
|
|
227
|
-
this.dispatchEvent('reconnect', { attempt: this.retryCount });
|
|
228
|
-
this.connect().catch(() => { });
|
|
229
|
-
}, delay);
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
exports.SseClient = SseClient;
|
|
233
|
-
//# 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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"}
|
package/dist/esm/utils/logger.js
DELETED
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Уровни логирования
|
|
3
|
-
*/
|
|
4
|
-
export var LogLevel;
|
|
5
|
-
(function (LogLevel) {
|
|
6
|
-
LogLevel["DEBUG"] = "debug";
|
|
7
|
-
LogLevel["INFO"] = "info";
|
|
8
|
-
LogLevel["WARN"] = "warn";
|
|
9
|
-
LogLevel["ERROR"] = "error";
|
|
10
|
-
})(LogLevel || (LogLevel = {}));
|
|
11
|
-
/**
|
|
12
|
-
* Реализация логгера
|
|
13
|
-
*/
|
|
14
|
-
class LoggerImpl {
|
|
15
|
-
/**
|
|
16
|
-
* Создает новый логгер
|
|
17
|
-
* @param component Название компонента
|
|
18
|
-
* @param logFn Функция логирования
|
|
19
|
-
*/
|
|
20
|
-
constructor(component, logFn) {
|
|
21
|
-
this.component = component;
|
|
22
|
-
this.logFn = logFn;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Логирует отладочное сообщение
|
|
26
|
-
* @param message Сообщение для логирования
|
|
27
|
-
* @param data Дополнительные данные
|
|
28
|
-
*/
|
|
29
|
-
debug(message, data) {
|
|
30
|
-
this.logFn(LogLevel.DEBUG, `[${this.component}] ${message}`, data);
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Логирует информационное сообщение
|
|
34
|
-
* @param message Сообщение для логирования
|
|
35
|
-
* @param data Дополнительные данные
|
|
36
|
-
*/
|
|
37
|
-
info(message, data) {
|
|
38
|
-
this.logFn(LogLevel.INFO, `[${this.component}] ${message}`, data);
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Логирует предупреждение
|
|
42
|
-
* @param message Сообщение для логирования
|
|
43
|
-
* @param data Дополнительные данные
|
|
44
|
-
*/
|
|
45
|
-
warn(message, data) {
|
|
46
|
-
this.logFn(LogLevel.WARN, `[${this.component}] ${message}`, data);
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Логирует ошибку
|
|
50
|
-
* @param message Сообщение для логирования
|
|
51
|
-
* @param data Дополнительные данные
|
|
52
|
-
*/
|
|
53
|
-
error(message, data) {
|
|
54
|
-
this.logFn(LogLevel.ERROR, `[${this.component}] ${message}`, data);
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Создает новый логгер с указанным префиксом
|
|
58
|
-
* @param prefix Префикс для нового логгера
|
|
59
|
-
* @returns Новый логгер с префиксом
|
|
60
|
-
*/
|
|
61
|
-
withPrefix(prefix) {
|
|
62
|
-
return new LoggerImpl(`${this.component}:${prefix}`, this.logFn);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Функция логирования по умолчанию
|
|
67
|
-
*/
|
|
68
|
-
const defaultLogFunction = (level, message, data) => {
|
|
69
|
-
if (level === LogLevel.ERROR) {
|
|
70
|
-
console.error(message, data);
|
|
71
|
-
}
|
|
72
|
-
else if (level === LogLevel.WARN) {
|
|
73
|
-
console.warn(message, data);
|
|
74
|
-
}
|
|
75
|
-
else if (level === LogLevel.INFO) {
|
|
76
|
-
console.info(message, data);
|
|
77
|
-
}
|
|
78
|
-
else if (level === LogLevel.DEBUG) {
|
|
79
|
-
if (process.env.NODE_ENV === 'development') {
|
|
80
|
-
console.debug(message, data);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
};
|
|
84
|
-
/**
|
|
85
|
-
* Создает новый логгер для HTTP клиента
|
|
86
|
-
* @param component Название компонента
|
|
87
|
-
* @param logFn Функция логирования
|
|
88
|
-
* @returns Логгер
|
|
89
|
-
*/
|
|
90
|
-
export function createHttpLogger(component, logFn = defaultLogFunction) {
|
|
91
|
-
return new LoggerImpl(component, logFn);
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Создает новый логгер с пустой функцией логирования
|
|
95
|
-
* @param component Название компонента
|
|
96
|
-
* @returns Новый логгер
|
|
97
|
-
*/
|
|
98
|
-
export function createNullLogger(component) {
|
|
99
|
-
return new LoggerImpl(component, () => { });
|
|
100
|
-
}
|
|
101
|
-
//# sourceMappingURL=logger.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,yBAAa,CAAA;IACb,yBAAa,CAAA;IACb,2BAAe,CAAA;AACjB,CAAC,EALW,QAAQ,KAAR,QAAQ,QAKnB;AA+CD;;GAEG;AACH,MAAM,UAAU;IAOd;;;;OAIG;IACH,YAAY,SAAiB,EAAE,KAAkB;QAC/C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,OAAe,EAAE,IAAU;QACtC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;IAED;;;;OAIG;IACI,IAAI,CAAC,OAAe,EAAE,IAAU;QACrC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC;IAED;;;;OAIG;IACI,IAAI,CAAC,OAAe,EAAE,IAAU;QACrC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,OAAe,EAAE,IAAU;QACtC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;IAED;;;;OAIG;IACI,UAAU,CAAC,MAAc;QAC9B,OAAO,IAAI,UAAU,CAAC,GAAG,IAAI,CAAC,SAAS,IAAI,MAAM,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACnE,CAAC;CACF;AAED;;GAEG;AACH,MAAM,kBAAkB,GAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IAC/D,IAAI,KAAK,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;SAAM,IAAI,KAAK,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;SAAM,IAAI,KAAK,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;SAAM,IAAI,KAAK,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;QACpC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;YAC3C,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAiB,EAAE,QAAqB,kBAAkB;IACzF,OAAO,IAAI,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AAC1C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,OAAO,IAAI,UAAU,CAAC,SAAS,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AAC7C,CAAC"}
|