solver-sdk 1.4.0 → 1.4.2

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.
@@ -27,6 +27,8 @@ class WebSocketClient {
27
27
  this.messageQueue = [];
28
28
  /** Состояние соединения */
29
29
  this.connected = false;
30
+ /** Аутентифицировано ли соединение */
31
+ this.authenticated = false;
30
32
  this.url = url;
31
33
  this.options = {
32
34
  headers: options.headers || {},
@@ -35,10 +37,45 @@ class WebSocketClient {
35
37
  maxRetries: options.maxRetries || 5,
36
38
  retryDelay: options.retryDelay || 1000,
37
39
  maxRetryDelay: options.maxRetryDelay || 30000,
38
- autoReconnect: options.autoReconnect !== undefined ? options.autoReconnect : true
40
+ autoReconnect: options.autoReconnect !== undefined ? options.autoReconnect : true,
41
+ rejectUnauthorized: options.rejectUnauthorized !== undefined ? options.rejectUnauthorized : true,
42
+ apiKey: options.apiKey || '',
43
+ namespace: options.namespace || '',
44
+ logger: options.logger
39
45
  };
40
46
  // Определяем среду выполнения
41
47
  this.isBrowser = typeof window !== 'undefined' && typeof window.document !== 'undefined';
48
+ // Инициализируем пространство имен
49
+ this.namespace = this.options.namespace || '';
50
+ // Если namespace не начинается с /, добавляем его
51
+ if (this.namespace && !this.namespace.startsWith('/')) {
52
+ this.namespace = '/' + this.namespace;
53
+ }
54
+ // Инициализируем логгер
55
+ this.logger = this.options.logger || ((level, message, data) => {
56
+ if (level === 'error') {
57
+ console.error(`[WebSocketClient] ${message}`, data);
58
+ }
59
+ else if (level === 'warn') {
60
+ console.warn(`[WebSocketClient] ${message}`, data);
61
+ }
62
+ else if (level === 'info') {
63
+ console.info(`[WebSocketClient] ${message}`, data);
64
+ }
65
+ else if (level === 'debug' && process.env.NODE_ENV === 'development') {
66
+ console.debug(`[WebSocketClient] ${message}`, data);
67
+ }
68
+ });
69
+ // Логирование конфигурации при создании клиента
70
+ this.logger('info', 'Создан WebSocket клиент', {
71
+ url: this.url,
72
+ namespace: this.namespace,
73
+ hasApiKey: !!this.options.apiKey,
74
+ apiKeyLength: this.options.apiKey ? this.options.apiKey.length : 0,
75
+ connectionTimeout: this.options.connectionTimeout,
76
+ autoReconnect: this.options.autoReconnect,
77
+ maxRetries: this.options.maxRetries
78
+ });
42
79
  }
43
80
  /**
44
81
  * Подключается к WebSocket серверу
@@ -47,29 +84,50 @@ class WebSocketClient {
47
84
  connect() {
48
85
  // Если соединение уже установлено, возвращаем Promise.resolve
49
86
  if (this.webSocket && this.webSocket.readyState === WebSocket.OPEN) {
87
+ this.logger('info', 'Соединение уже установлено');
50
88
  return Promise.resolve();
51
89
  }
52
90
  // Сбрасываем флаг намеренного закрытия
53
91
  this.intentionallyClosed = false;
54
92
  return new Promise((resolve, reject) => {
55
93
  try {
94
+ // Проверяем, содержит ли URL параметры Socket.IO
95
+ let wsUrl = this.url;
96
+ // Проверяем, является ли это Socket.IO подключением
97
+ if (wsUrl.includes('/socket.io/') || wsUrl.includes('?EIO=')) {
98
+ // Убедимся, что в URL есть параметры для Socket.IO версии 4
99
+ if (!wsUrl.includes('EIO=')) {
100
+ // Добавляем разделитель: ? или &
101
+ const separator = wsUrl.includes('?') ? '&' : '?';
102
+ wsUrl += `${separator}EIO=4&transport=websocket`;
103
+ }
104
+ // Добавляем timestamp для предотвращения кеширования
105
+ if (!wsUrl.includes('t=')) {
106
+ const separator = wsUrl.includes('?') ? '&' : '?';
107
+ wsUrl += `${separator}t=${Date.now()}`;
108
+ }
109
+ }
110
+ this.logger('info', 'Выполняется подключение', { url: wsUrl });
56
111
  // Создаем новый экземпляр WebSocket
57
112
  if (this.isBrowser) {
58
113
  // Браузерное окружение
59
- this.webSocket = new WebSocket(this.url, this.options.protocols);
114
+ this.webSocket = new WebSocket(wsUrl, this.options.protocols);
60
115
  }
61
116
  else {
62
117
  // Node.js окружение
63
118
  try {
64
119
  // Динамически импортируем ws модуль в Node.js
65
120
  const WebSocketImpl = require('ws');
66
- this.webSocket = new WebSocketImpl(this.url, {
121
+ this.webSocket = new WebSocketImpl(wsUrl, {
67
122
  headers: this.options.headers,
68
- protocol: this.options.protocols
123
+ protocol: this.options.protocols,
124
+ rejectUnauthorized: this.options.rejectUnauthorized !== false
69
125
  });
70
126
  }
71
127
  catch (error) {
72
- reject(new Error('Не удалось загрузить модуль ws в Node.js: ' + error.message));
128
+ const errorMsg = `Не удалось загрузить модуль ws в Node.js: ${error.message}`;
129
+ this.logger('error', errorMsg);
130
+ reject(new Error(errorMsg));
73
131
  return;
74
132
  }
75
133
  }
@@ -85,6 +143,7 @@ class WebSocketClient {
85
143
  clearTimeout(this.connectionTimeoutTimer);
86
144
  this.retryCount = 0;
87
145
  this.connected = true;
146
+ this.logger('info', 'WebSocket соединение установлено');
88
147
  // Отправляем сообщения из очереди
89
148
  while (this.messageQueue.length > 0) {
90
149
  const message = this.messageQueue.shift();
@@ -92,6 +151,8 @@ class WebSocketClient {
92
151
  this.webSocket.send(message);
93
152
  }
94
153
  }
154
+ // Запускаем таймер для ping в Socket.IO
155
+ this.setupPingPongTimer();
95
156
  resolve();
96
157
  this.dispatchEvent('open', {});
97
158
  };
@@ -100,18 +161,139 @@ class WebSocketClient {
100
161
  try {
101
162
  // Пытаемся распарсить сообщение как JSON
102
163
  let data = event.data;
164
+ // Обработка сообщений Socket.IO
103
165
  if (typeof data === 'string') {
104
- try {
105
- data = JSON.parse(data);
166
+ // Обработка Engine.IO - Ping/Pong (2/3)
167
+ if (data === '2') {
168
+ // Engine.IO ping, отправляем понг
169
+ if (this.webSocket && this.webSocket.readyState === WebSocket.OPEN) {
170
+ this.webSocket.send('3');
171
+ }
172
+ this.dispatchEvent('ping', {});
173
+ return;
106
174
  }
107
- catch (e) {
108
- // Если не удалось распарсить, оставляем как есть
175
+ else if (data === '3') {
176
+ // Engine.IO pong
177
+ this.dispatchEvent('pong', {});
178
+ return;
109
179
  }
180
+ // Обработка открытия соединения Socket.IO
181
+ if (data.startsWith('0')) {
182
+ try {
183
+ const authData = JSON.parse(data.substring(1));
184
+ this.dispatchEvent('socket.io_open', authData);
185
+ // Вызываем обработчик открытия соединения Socket.IO
186
+ this.handleSocketIOOpen(authData);
187
+ return;
188
+ }
189
+ catch (e) {
190
+ // Игнорируем ошибки парсинга
191
+ }
192
+ }
193
+ // Обработка Socket.IO событий (42)
194
+ if (data.startsWith('42')) {
195
+ // Формат: 42/namespace,[event,data]
196
+ let namespace = '';
197
+ let eventData = data.substring(2);
198
+ // Извлекаем namespace, если есть
199
+ if (eventData.startsWith('/')) {
200
+ const namespaceEnd = eventData.indexOf(',');
201
+ if (namespaceEnd !== -1) {
202
+ namespace = eventData.substring(0, namespaceEnd);
203
+ eventData = eventData.substring(namespaceEnd + 1);
204
+ }
205
+ }
206
+ try {
207
+ const parsedData = JSON.parse(eventData);
208
+ if (Array.isArray(parsedData) && parsedData.length >= 1) {
209
+ const event = parsedData[0];
210
+ const eventPayload = parsedData.length > 1 ? parsedData[1] : null;
211
+ // Запускаем обработчик для данного события
212
+ this.dispatchEvent(event, eventPayload);
213
+ // Также отправляем общее событие socket.io с информацией о полученном событии
214
+ this.dispatchEvent('socket.io_event', {
215
+ event,
216
+ data: eventPayload,
217
+ namespace
218
+ });
219
+ // Обработка специальных событий для стриминга
220
+ if (event === 'text_delta' && eventPayload?.delta?.text) {
221
+ this.dispatchEvent('streaming_delta', { type: 'text', content: eventPayload.delta.text });
222
+ }
223
+ else if (event === 'thinking_delta' && eventPayload?.delta?.thinking) {
224
+ this.dispatchEvent('streaming_delta', { type: 'thinking', content: eventPayload.delta.thinking });
225
+ }
226
+ else if (event === 'message_stop') {
227
+ this.dispatchEvent('streaming_complete', {});
228
+ }
229
+ }
230
+ }
231
+ catch (e) {
232
+ this.dispatchEvent('error', { message: `Ошибка парсинга Socket.IO данных: ${e instanceof Error ? e.message : 'Неизвестная ошибка'}` });
233
+ }
234
+ return;
235
+ }
236
+ // Определяем тип пакета Socket.IO по первому символу
237
+ const packetType = data.charAt(0);
238
+ // Если это пакет данных (тип 0-6)
239
+ if (packetType >= '0' && packetType <= '6') {
240
+ // Отправляем особое событие для Socket.IO пакетов
241
+ this.dispatchEvent('socket.io_raw', {
242
+ type: packetType,
243
+ data: data.substring(1)
244
+ });
245
+ // Пытаемся обработать содержимое
246
+ if (data.length > 1) {
247
+ try {
248
+ // Обработка пакета с namespace
249
+ let jsonStart = 1;
250
+ let namespace = '';
251
+ // Если есть namespace, извлекаем его
252
+ if (data.charAt(1) === '/') {
253
+ const namespaceEnd = data.indexOf('{', 1);
254
+ if (namespaceEnd !== -1) {
255
+ namespace = data.substring(1, namespaceEnd);
256
+ jsonStart = namespaceEnd;
257
+ }
258
+ }
259
+ // Пытаемся преобразовать оставшуюся часть в JSON
260
+ const jsonStr = data.substring(jsonStart);
261
+ if (jsonStr) {
262
+ try {
263
+ const parsedData = JSON.parse(jsonStr);
264
+ this.dispatchEvent('message', parsedData);
265
+ }
266
+ catch (e) {
267
+ // Если не можем преобразовать в JSON, отправляем как есть
268
+ this.dispatchEvent('message', jsonStr);
269
+ }
270
+ }
271
+ }
272
+ catch (e) {
273
+ // Игнорируем ошибки парсинга
274
+ }
275
+ }
276
+ }
277
+ else {
278
+ // Если это не Socket.IO пакет, пытаемся обработать как обычное сообщение
279
+ try {
280
+ const parsedData = JSON.parse(data);
281
+ this.dispatchEvent('message', parsedData);
282
+ }
283
+ catch (e) {
284
+ // Если не можем преобразовать в JSON, отправляем как есть
285
+ this.dispatchEvent('message', data);
286
+ }
287
+ }
288
+ }
289
+ else {
290
+ // Если данные не строка (например, ArrayBuffer), отправляем как есть
291
+ this.dispatchEvent('message', data);
110
292
  }
111
- this.dispatchEvent('message', data);
112
293
  }
113
294
  catch (e) {
114
295
  console.error('Ошибка при обработке сообщения WebSocket:', e);
296
+ this.dispatchEvent('error', { message: `Ошибка при обработке сообщения: ${e instanceof Error ? e.message : 'Неизвестная ошибка'}` });
115
297
  }
116
298
  };
117
299
  // Обработчик закрытия соединения
@@ -143,6 +325,29 @@ class WebSocketClient {
143
325
  }
144
326
  });
145
327
  }
328
+ /**
329
+ * Настраивает таймер для ping/pong сообщений Socket.IO
330
+ */
331
+ setupPingPongTimer() {
332
+ // Если URL содержит параметры Socket.IO, настраиваем автоматический ping/pong
333
+ if (this.url.includes('EIO=4') && this.url.includes('transport=websocket')) {
334
+ // Типичный интервал ping для Socket.IO - 25 секунд
335
+ const pingInterval = 25000;
336
+ // Периодически отправляем ping
337
+ const pingTimer = setInterval(() => {
338
+ if (this.webSocket && this.webSocket.readyState === WebSocket.OPEN) {
339
+ // Socket.IO ping - это просто строка "2"
340
+ this.webSocket.send('2');
341
+ }
342
+ else {
343
+ // Если соединение закрыто, останавливаем таймер
344
+ clearInterval(pingTimer);
345
+ }
346
+ }, pingInterval);
347
+ // Останавливаем таймер при закрытии соединения
348
+ this.on('close', () => clearInterval(pingTimer));
349
+ }
350
+ }
146
351
  /**
147
352
  * Переподключается к WebSocket серверу
148
353
  * @private
@@ -190,6 +395,41 @@ class WebSocketClient {
190
395
  * @returns {boolean} Успешно ли отправлено сообщение
191
396
  */
192
397
  send(message) {
398
+ // Если это объект с type='2' (Socket.IO EVENT), обрабатываем как Socket.IO сообщение
399
+ if (typeof message === 'object' && message.type === '2') {
400
+ const socketIOMessage = message;
401
+ let packet;
402
+ // Формат сообщения для Socket.IO протокола 4
403
+ if (socketIOMessage.event && socketIOMessage.data) {
404
+ // Format: 42namespace,[event,data]
405
+ const namespace = socketIOMessage.nsp ? socketIOMessage.nsp : '';
406
+ const namespaceStr = namespace && !namespace.startsWith('/') ? '/' + namespace : namespace;
407
+ const eventData = [socketIOMessage.event];
408
+ if (socketIOMessage.data !== undefined) {
409
+ eventData.push(socketIOMessage.data);
410
+ }
411
+ // 4 - Engine.IO message type
412
+ // 2 - Socket.IO EVENT type
413
+ packet = `42${namespaceStr}${namespaceStr ? ',' : ''}${JSON.stringify(eventData)}`;
414
+ }
415
+ else {
416
+ // Обратная совместимость со старым форматом
417
+ packet = `${socketIOMessage.type}${socketIOMessage.nsp ? socketIOMessage.nsp : ''}${JSON.stringify(socketIOMessage.data)}`;
418
+ }
419
+ if (this.webSocket && this.webSocket.readyState === WebSocket.OPEN) {
420
+ this.webSocket.send(packet);
421
+ return true;
422
+ }
423
+ else {
424
+ // Если соединение не установлено, добавляем сообщение в очередь
425
+ this.messageQueue.push(packet);
426
+ if ((!this.webSocket || this.webSocket.readyState === WebSocket.CLOSED) && !this.intentionallyClosed) {
427
+ this.connect().catch(() => { });
428
+ }
429
+ return false;
430
+ }
431
+ }
432
+ // Стандартная отправка
193
433
  const data = typeof message === 'string' ? message : JSON.stringify(message);
194
434
  if (this.webSocket && this.webSocket.readyState === WebSocket.OPEN) {
195
435
  this.webSocket.send(data);
@@ -263,6 +503,153 @@ class WebSocketClient {
263
503
  }
264
504
  }
265
505
  }
506
+ /**
507
+ * Обработка полученного сообщения от сервера
508
+ * @param message Сообщение от сервера
509
+ */
510
+ handleMessage(message) {
511
+ try {
512
+ if (!message) {
513
+ this.dispatchEvent('error', { message: 'Получено пустое сообщение' });
514
+ return;
515
+ }
516
+ // Проверяем, является ли сообщение пингом Socket.IO (2)
517
+ if (message === '2') {
518
+ // Отправляем понг (3)
519
+ this.send('3');
520
+ this.dispatchEvent('debug', 'Получен ping, отправлен pong');
521
+ return;
522
+ }
523
+ // Если это сообщение Socket.IO с данными
524
+ if (message.startsWith('42')) {
525
+ // Формат: 42[event,data]
526
+ const eventDataStr = message.substring(2);
527
+ try {
528
+ const [event, data] = JSON.parse(eventDataStr);
529
+ // Вызываем соответствующий обработчик события
530
+ this.dispatchEvent(event, data);
531
+ // Добавляем специальную обработку для событий стриминга
532
+ if (event === 'text_delta' && data.delta?.text) {
533
+ this.dispatchEvent('streaming_delta', { type: 'text', content: data.delta.text });
534
+ }
535
+ else if (event === 'thinking_delta' && data.delta?.thinking) {
536
+ this.dispatchEvent('streaming_delta', { type: 'thinking', content: data.delta.thinking });
537
+ }
538
+ else if (event === 'message_stop') {
539
+ this.dispatchEvent('streaming_complete', {});
540
+ }
541
+ }
542
+ catch (error) {
543
+ const errorMessage = error instanceof Error ? error.message : 'Неизвестная ошибка';
544
+ this.dispatchEvent('error', { message: `Ошибка разбора данных события: ${errorMessage}` });
545
+ }
546
+ return;
547
+ }
548
+ // Пытаемся преобразовать сообщение в JSON
549
+ try {
550
+ const parsedMessage = JSON.parse(message);
551
+ // Если это объект с типом event и данными, это может быть событие
552
+ if (parsedMessage.event && parsedMessage.data) {
553
+ const { event, data } = parsedMessage;
554
+ this.dispatchEvent(event, data);
555
+ }
556
+ else {
557
+ this.dispatchEvent('message', parsedMessage);
558
+ }
559
+ }
560
+ catch (error) {
561
+ // Если не удалось преобразовать в JSON, обрабатываем как текстовое сообщение
562
+ this.dispatchEvent('message', message);
563
+ }
564
+ }
565
+ catch (error) {
566
+ const errorMessage = error instanceof Error ? error.message : 'Неизвестная ошибка';
567
+ this.dispatchEvent('error', { message: `Ошибка при обработке сообщения: ${errorMessage}` });
568
+ }
569
+ }
570
+ /**
571
+ * Отправляет событие Socket.IO
572
+ * @param {string} event Название события
573
+ * @param {any} data Данные события
574
+ * @param {string} [namespace=''] Namespace для Socket.IO
575
+ * @returns {boolean} Успешно ли отправлено сообщение
576
+ */
577
+ sendSocketIOEvent(event, data, namespace = '') {
578
+ // Формируем объект для отправки через метод send
579
+ const socketIOMessage = {
580
+ type: '2',
581
+ event,
582
+ data,
583
+ nsp: namespace
584
+ };
585
+ return this.send(socketIOMessage);
586
+ }
587
+ /**
588
+ * Обработка подключения к пространству имен Socket.IO
589
+ */
590
+ handleNamespaceConnection() {
591
+ if (!this.namespace) {
592
+ return;
593
+ }
594
+ // Отправляем запрос на подключение к namespace
595
+ this.logger('info', `Подключение к пространству имен ${this.namespace}`);
596
+ const connectMessage = `40${this.namespace}`;
597
+ if (this.webSocket && this.webSocket.readyState === WebSocket.OPEN) {
598
+ this.webSocket.send(connectMessage);
599
+ }
600
+ else {
601
+ this.messageQueue.push(connectMessage);
602
+ }
603
+ }
604
+ /**
605
+ * Отправка аутентификационного сообщения
606
+ */
607
+ authenticate() {
608
+ if (!this.options.apiKey) {
609
+ this.logger('warn', 'API ключ не предоставлен, аутентификация пропущена');
610
+ return;
611
+ }
612
+ const apiKeySafe = this.options.apiKey.length > 8
613
+ ? `${this.options.apiKey.substring(0, 4)}...${this.options.apiKey.substring(this.options.apiKey.length - 4)}`
614
+ : '[короткий ключ]';
615
+ this.logger('info', 'Отправка аутентификационного сообщения', {
616
+ namespace: this.namespace,
617
+ apiKey: apiKeySafe,
618
+ authenticated: this.authenticated,
619
+ socketState: this.webSocket ? this.webSocket.readyState : 'нет соединения'
620
+ });
621
+ // Отправляем событие authenticate с API ключом
622
+ this.sendSocketIOEvent('authenticate', { apiKey: this.options.apiKey }, this.namespace);
623
+ }
624
+ /**
625
+ * Обработка открытия соединения Socket.IO
626
+ * @param data Данные открытия соединения
627
+ */
628
+ handleSocketIOOpen(data) {
629
+ this.logger('info', 'Socket.IO соединение открыто', {
630
+ pingInterval: data.pingInterval,
631
+ pingTimeout: data.pingTimeout,
632
+ sid: data.sid
633
+ });
634
+ // Если указано пространство имен, подключаемся к нему
635
+ if (this.namespace) {
636
+ this.handleNamespaceConnection();
637
+ }
638
+ // Добавляем обработчик успешного подключения к пространству имен
639
+ this.on('socket.io_event', (eventData) => {
640
+ // Если это событие connect и мы еще не аутентифицированы
641
+ if (!this.authenticated && eventData.event === 'connect') {
642
+ this.logger('info', `Подключено к пространству имен ${eventData.namespace || '/'}`, {
643
+ namespace: eventData.namespace || '/',
644
+ event: eventData.event,
645
+ data: eventData.data
646
+ });
647
+ // Аутентифицируем соединение
648
+ this.authenticate();
649
+ this.authenticated = true;
650
+ }
651
+ });
652
+ }
266
653
  }
267
654
  exports.WebSocketClient = WebSocketClient;
268
655
  //# sourceMappingURL=websocket-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-client.js","sourceRoot":"","sources":["../../../src/utils/websocket-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"websocket-client.js","sourceRoot":"","sources":["../../../src/utils/websocket-client.ts"],"names":[],"mappings":";;;AAmEA;;GAEG;AACH,MAAa,eAAe;IA2C1B;;;;OAIG;IACH,YAAY,GAAW,EAAE,UAAkC,EAAE;QAzC7D,0BAA0B;QAChB,cAAS,GAAqB,IAAI,CAAC;QAE7C,sCAAsC;QAC5B,eAAU,GAAG,CAAC,CAAC;QAEzB,+DAA+D;QACrD,wBAAmB,GAAG,KAAK,CAAC;QAEtC,6BAA6B;QACnB,mBAAc,GAAQ,IAAI,CAAC;QAErC,iCAAiC;QACvB,2BAAsB,GAAQ,IAAI,CAAC;QAE7C,0BAA0B;QAChB,kBAAa,GAA4C,EAAE,CAAC;QAEtE,uDAAuD;QAC7C,iBAAY,GAA6D,EAAE,CAAC;QAEtF,2BAA2B;QACjB,cAAS,GAAG,KAAK,CAAC;QAK5B,sCAAsC;QAC5B,kBAAa,GAAG,KAAK,CAAC;QAc9B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,OAAO,GAAG;YACb,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;YAC9B,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,IAAI,KAAK;YACrD,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,EAAE;YAClC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,CAAC;YACnC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI;YACtC,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,KAAK;YAC7C,aAAa,EAAE,OAAO,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI;YACjF,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI;YAChG,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;YAC5B,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,EAAE;YAClC,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC;QAEF,8BAA8B;QAC9B,IAAI,CAAC,SAAS,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,WAAW,CAAC;QAEzF,mCAAmC;QACnC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;QAE9C,kDAAkD;QAClD,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACtD,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;QACxC,CAAC;QAED,wBAAwB;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;YAC7D,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;gBACtB,OAAO,CAAC,KAAK,CAAC,qBAAqB,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;YACtD,CAAC;iBAAM,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;gBAC5B,OAAO,CAAC,IAAI,CAAC,qBAAqB,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;YACrD,CAAC;iBAAM,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;gBAC5B,OAAO,CAAC,IAAI,CAAC,qBAAqB,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;YACrD,CAAC;iBAAM,IAAI,KAAK,KAAK,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;gBACvE,OAAO,CAAC,KAAK,CAAC,qBAAqB,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;YACtD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,gDAAgD;QAChD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,yBAAyB,EAAE;YAC7C,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM;YAChC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAClE,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB;YACjD,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa;YACzC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACI,OAAO;QACZ,8DAA8D;QAC9D,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YACnE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;YAClD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;QAED,uCAAuC;QACvC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QAEjC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC;gBACH,iDAAiD;gBACjD,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;gBAErB,oDAAoD;gBACpD,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC7D,4DAA4D;oBAC5D,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC5B,iCAAiC;wBACjC,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;wBAClD,KAAK,IAAI,GAAG,SAAS,2BAA2B,CAAC;oBACnD,CAAC;oBAED,qDAAqD;oBACrD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC1B,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;wBAClD,KAAK,IAAI,GAAG,SAAS,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;oBACzC,CAAC;gBACH,CAAC;gBAED,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,yBAAyB,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;gBAE/D,oCAAoC;gBACpC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACnB,uBAAuB;oBACvB,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAqB,CAAC,CAAC;gBAC5E,CAAC;qBAAM,CAAC;oBACN,oBAAoB;oBACpB,IAAI,CAAC;wBACH,8CAA8C;wBAC9C,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;wBACpC,IAAI,CAAC,SAAS,GAAG,IAAI,aAAa,CAAC,KAAK,EAAE;4BACxC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;4BAC7B,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;4BAChC,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,KAAK,KAAK;yBAC9D,CAAC,CAAC;oBACL,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,MAAM,QAAQ,GAAG,6CAA8C,KAAe,CAAC,OAAO,EAAE,CAAC;wBACzF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;wBAC/B,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;wBAC5B,OAAO;oBACT,CAAC;gBACH,CAAC;gBAED,mCAAmC;gBACnC,IAAI,CAAC,sBAAsB,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC5C,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;wBACnE,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;wBACnD,IAAI,CAAC,KAAK,EAAE,CAAC;oBACf,CAAC;gBACH,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;gBAEnC,iCAAiC;gBACjC,IAAI,CAAC,SAAU,CAAC,MAAM,GAAG,GAAG,EAAE;oBAC5B,YAAY,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;oBAC1C,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;oBACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBAEtB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,kCAAkC,CAAC,CAAC;oBAExD,kCAAkC;oBAClC,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACpC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;wBAC1C,IAAI,OAAO,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;4BAC9E,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBAC/B,CAAC;oBACH,CAAC;oBAED,wCAAwC;oBACxC,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBAE1B,OAAO,EAAE,CAAC;oBACV,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBACjC,CAAC,CAAC;gBAEF,uBAAuB;gBACvB,IAAI,CAAC,SAAU,CAAC,SAAS,GAAG,CAAC,KAAK,EAAE,EAAE;oBACpC,IAAI,CAAC;wBACH,yCAAyC;wBACzC,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;wBAEtB,gCAAgC;wBAChC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;4BAC7B,wCAAwC;4BACxC,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gCACjB,kCAAkC;gCAClC,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;oCACnE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gCAC3B,CAAC;gCACD,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gCAC/B,OAAO;4BACT,CAAC;iCAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gCACxB,iBAAiB;gCACjB,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gCAC/B,OAAO;4BACT,CAAC;4BAED,0CAA0C;4BAC1C,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gCACzB,IAAI,CAAC;oCACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;oCAC/C,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;oCAE/C,oDAAoD;oCACpD,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;oCAElC,OAAO;gCACT,CAAC;gCAAC,OAAO,CAAC,EAAE,CAAC;oCACX,6BAA6B;gCAC/B,CAAC;4BACH,CAAC;4BAED,mCAAmC;4BACnC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gCAC1B,oCAAoC;gCACpC,IAAI,SAAS,GAAG,EAAE,CAAC;gCACnB,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gCAElC,iCAAiC;gCACjC,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oCAC9B,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oCAC5C,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;wCACxB,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;wCACjD,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;oCACpD,CAAC;gCACH,CAAC;gCAED,IAAI,CAAC;oCACH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oCACzC,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;wCACxD,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;wCAC5B,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;wCAElE,2CAA2C;wCAC3C,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;wCAExC,8EAA8E;wCAC9E,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE;4CACpC,KAAK;4CACL,IAAI,EAAE,YAAY;4CAClB,SAAS;yCACV,CAAC,CAAC;wCAEH,8CAA8C;wCAC9C,IAAI,KAAK,KAAK,YAAY,IAAI,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;4CACxD,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;wCAC5F,CAAC;6CAAM,IAAI,KAAK,KAAK,gBAAgB,IAAI,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;4CACvE,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;wCACpG,CAAC;6CAAM,IAAI,KAAK,KAAK,cAAc,EAAE,CAAC;4CACpC,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;wCAC/C,CAAC;oCACH,CAAC;gCACH,CAAC;gCAAC,OAAO,CAAC,EAAE,CAAC;oCACX,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,qCAAqC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;gCACzI,CAAC;gCAED,OAAO;4BACT,CAAC;4BAED,qDAAqD;4BACrD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;4BAElC,kCAAkC;4BAClC,IAAI,UAAU,IAAI,GAAG,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;gCAC3C,kDAAkD;gCAClD,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE;oCAClC,IAAI,EAAE,UAAU;oCAChB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;iCACxB,CAAC,CAAC;gCAEH,iCAAiC;gCACjC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oCACpB,IAAI,CAAC;wCACH,+BAA+B;wCAC/B,IAAI,SAAS,GAAG,CAAC,CAAC;wCAClB,IAAI,SAAS,GAAG,EAAE,CAAC;wCAEnB,qCAAqC;wCACrC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;4CAC3B,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;4CAC1C,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;gDACxB,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;gDAC5C,SAAS,GAAG,YAAY,CAAC;4CAC3B,CAAC;wCACH,CAAC;wCAED,iDAAiD;wCACjD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;wCAC1C,IAAI,OAAO,EAAE,CAAC;4CACZ,IAAI,CAAC;gDACH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gDACvC,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;4CAC5C,CAAC;4CAAC,OAAO,CAAC,EAAE,CAAC;gDACX,0DAA0D;gDAC1D,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;4CACzC,CAAC;wCACH,CAAC;oCACH,CAAC;oCAAC,OAAO,CAAC,EAAE,CAAC;wCACX,6BAA6B;oCAC/B,CAAC;gCACH,CAAC;4BACH,CAAC;iCAAM,CAAC;gCACN,yEAAyE;gCACzE,IAAI,CAAC;oCACH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oCACpC,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;gCAC5C,CAAC;gCAAC,OAAO,CAAC,EAAE,CAAC;oCACX,0DAA0D;oCAC1D,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gCACtC,CAAC;4BACH,CAAC;wBACH,CAAC;6BAAM,CAAC;4BACN,qEAAqE;4BACrE,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;wBACtC,CAAC;oBACH,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,CAAC,CAAC,CAAC;wBAC9D,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,mCAAmC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;oBACvI,CAAC;gBACH,CAAC,CAAC;gBAEF,iCAAiC;gBACjC,IAAI,CAAC,SAAU,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE;oBAClC,YAAY,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;oBAE1C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;oBACvB,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;oBAExE,uEAAuE;oBACvE,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;wBAC7B,OAAO;oBACT,CAAC;oBAED,0EAA0E;oBAC1E,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;wBAC/B,IAAI,CAAC,SAAS,EAAE,CAAC;oBACnB,CAAC;gBACH,CAAC,CAAC;gBAEF,oBAAoB;gBACpB,IAAI,CAAC,SAAU,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE;oBAClC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;oBAEnC,yEAAyE;oBACzE,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;wBAC7C,YAAY,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;wBAC1C,MAAM,CAAC,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;oBACpD,CAAC;gBACH,CAAC,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,kBAAkB;QACxB,8EAA8E;QAC9E,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;YAC3E,mDAAmD;YACnD,MAAM,YAAY,GAAG,KAAK,CAAC;YAE3B,+BAA+B;YAC/B,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;gBACjC,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;oBACnE,yCAAyC;oBACzC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC3B,CAAC;qBAAM,CAAC;oBACN,gDAAgD;oBAChD,aAAa,CAAC,SAAS,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC,EAAE,YAAY,CAAC,CAAC;YAEjB,+CAA+C;YAC/C,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,SAAS;QACf,8BAA8B;QAC9B,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,+EAA+E;QAC/E,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC,EAAE,CAAC;YACrD,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YAC/D,OAAO;QACT,CAAC;QAED,sEAAsE;QACtE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CACpB,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,EACpE,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,KAAK,CACpC,CAAC;QAEF,2CAA2C;QAC3C,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;YACpC,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YAC9D,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACjC,CAAC,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,OAAe,IAAI,EAAE,MAAe;QAC/C,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAEhC,kBAAkB;QAClB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAClC,YAAY,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAE1C,4BAA4B;QAC5B,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QAEvB,uBAAuB;QACvB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;gBACjD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACrC,CAAC;YACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACI,IAAI,CAAC,OAAwB;QAClC,qFAAqF;QACrF,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAK,OAAe,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;YACjE,MAAM,eAAe,GAAG,OAAc,CAAC;YACvC,IAAI,MAAM,CAAC;YAEX,6CAA6C;YAC7C,IAAI,eAAe,CAAC,KAAK,IAAI,eAAe,CAAC,IAAI,EAAE,CAAC;gBAClD,mCAAmC;gBACnC,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjE,MAAM,YAAY,GAAG,SAAS,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;gBAE3F,MAAM,SAAS,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;gBAC1C,IAAI,eAAe,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBACvC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBACvC,CAAC;gBAED,6BAA6B;gBAC7B,2BAA2B;gBAC3B,MAAM,GAAG,KAAK,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;YACrF,CAAC;iBAAM,CAAC;gBACN,4CAA4C;gBAC5C,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7H,CAAC;YAED,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;gBACnE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC5B,OAAO,IAAI,CAAC;YACd,CAAC;iBAAM,CAAC;gBACN,gEAAgE;gBAChE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAE/B,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,KAAK,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBACrG,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBACjC,CAAC;gBAED,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,uBAAuB;QACvB,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAE7E,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YACnE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,CAAC;YACN,gEAAgE;YAChE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE7B,+EAA+E;YAC/E,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,KAAK,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACrG,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACjC,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;OAGG;IACI,WAAW;QAChB,OAAO,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,CAAC;IACjF,CAAC;IAED;;;;OAIG;IACI,EAAE,CAAC,SAAiB,EAAE,OAA8B;QACzD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;QACrC,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED;;;;OAIG;IACI,GAAG,CAAC,SAAiB,EAAE,OAA+B;QAC3D,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,yEAAyE;YACzE,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,6CAA6C;YAC7C,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC;YAEzF,+CAA+C;YAC/C,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/C,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACO,aAAa,CAAC,SAAiB,EAAE,IAAS;QAClD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,OAAO;QACT,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,gCAAgC,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,aAAa,CAAC,OAAe;QACnC,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,EAAC,OAAO,EAAE,2BAA2B,EAAC,CAAC,CAAC;gBACpE,OAAO;YACT,CAAC;YAED,wDAAwD;YACxD,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;gBACpB,sBAAsB;gBACtB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAC;gBAC5D,OAAO;YACT,CAAC;YAED,yCAAyC;YACzC,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,yBAAyB;gBACzB,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC1C,IAAI,CAAC;oBACH,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;oBAE/C,8CAA8C;oBAC9C,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBAEhC,wDAAwD;oBACxD,IAAI,KAAK,KAAK,YAAY,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;wBAC/C,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;oBACpF,CAAC;yBAAM,IAAI,KAAK,KAAK,gBAAgB,IAAI,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC;wBAC9D,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAC5F,CAAC;yBAAM,IAAI,KAAK,KAAK,cAAc,EAAE,CAAC;wBACpC,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;oBAC/C,CAAC;gBAEH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC;oBACnF,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,kCAAkC,YAAY,EAAE,EAAE,CAAC,CAAC;gBAC7F,CAAC;gBACD,OAAO;YACT,CAAC;YAED,0CAA0C;YAC1C,IAAI,CAAC;gBACH,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAE1C,kEAAkE;gBAClE,IAAI,aAAa,CAAC,KAAK,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC;oBAC9C,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC;oBACtC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBAClC,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,6EAA6E;gBAC7E,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC;YACnF,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,mCAAmC,YAAY,EAAE,EAAE,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACI,iBAAiB,CAAC,KAAa,EAAE,IAAS,EAAE,YAAoB,EAAE;QACvE,iDAAiD;QACjD,MAAM,eAAe,GAAG;YACtB,IAAI,EAAE,GAAG;YACT,KAAK;YACL,IAAI;YACJ,GAAG,EAAE,SAAS;SACf,CAAC;QAEF,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACK,yBAAyB;QAC/B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,+CAA+C;QAC/C,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,mCAAmC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QACzE,MAAM,cAAc,GAAG,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;QAE7C,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YACnE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,YAAY;QAClB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,oDAAoD,CAAC,CAAC;YAC1E,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YAC/C,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;YAC7G,CAAC,CAAC,iBAAiB,CAAC;QAEtB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,wCAAwC,EAAE;YAC5D,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,UAAU;YAClB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB;SAC3E,CAAC,CAAC;QAEH,+CAA+C;QAC/C,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1F,CAAC;IAED;;;OAGG;IACK,kBAAkB,CAAC,IAAS;QAClC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,8BAA8B,EAAE;YAClD,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAC,CAAC;QAEH,sDAAsD;QACtD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACnC,CAAC;QAED,iEAAiE;QACjE,IAAI,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,SAAS,EAAE,EAAE;YACvC,yDAAyD;YACzD,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACzD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,kCAAkC,SAAS,CAAC,SAAS,IAAI,GAAG,EAAE,EAAE;oBAClF,SAAS,EAAE,SAAS,CAAC,SAAS,IAAI,GAAG;oBACrC,KAAK,EAAE,SAAS,CAAC,KAAK;oBACtB,IAAI,EAAE,SAAS,CAAC,IAAI;iBACrB,CAAC,CAAC;gBAEH,6BAA6B;gBAC7B,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC5B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAhuBD,0CAguBC"}
@@ -36,6 +36,27 @@ export class CodeSolverSDK {
36
36
  constructor(options) {
37
37
  /** WebSocket клиент для работы с реалтайм API */
38
38
  this.wsClient = null;
39
+ /** Logger для внутреннего использования */
40
+ this.logger = {
41
+ log: (message) => {
42
+ if (this._options.debug) {
43
+ console.log(`[CodeSolverSDK] ${message}`);
44
+ }
45
+ },
46
+ warn: (message) => {
47
+ if (this._options.debug) {
48
+ console.warn(`[CodeSolverSDK] ⚠️ ${message}`);
49
+ }
50
+ },
51
+ error: (message) => {
52
+ console.error(`[CodeSolverSDK] 🔴 ${message}`);
53
+ },
54
+ debug: (message) => {
55
+ if (this._options.debug === 'verbose') {
56
+ console.debug(`[CodeSolverSDK] 🔍 ${message}`);
57
+ }
58
+ }
59
+ };
39
60
  this._options = {
40
61
  ...options,
41
62
  mode: options.mode || 'auto'
@@ -87,9 +108,9 @@ export class CodeSolverSDK {
87
108
  this.wsClient = new CodeSolverWebSocketClient(wsURL, {
88
109
  apiKey: this._options.apiKey,
89
110
  headers: this._options.headers,
90
- autoReconnect: this.wsConfig.reconnect,
91
- maxRetries: this.wsConfig.reconnectAttempts,
92
- retryDelay: this.wsConfig.reconnectDelay,
111
+ autoReconnect: this.wsConfig.reconnect !== false,
112
+ maxRetries: this.wsConfig.reconnectAttempts || 5,
113
+ retryDelay: this.wsConfig.reconnectDelay || 1000,
93
114
  rejectUnauthorized: this.wsConfig.rejectUnauthorized
94
115
  });
95
116
  }
@@ -274,6 +295,11 @@ export class CodeSolverSDK {
274
295
  async connect() {
275
296
  try {
276
297
  const wsClient = this.getWebSocketClient();
298
+ // Проверяем доступность сервера перед подключением
299
+ const serverAvailable = await this.checkHealth().catch(() => false);
300
+ if (!serverAvailable) {
301
+ this.logger.warn('Сервер недоступен, WebSocket подключение может быть нестабильным');
302
+ }
277
303
  // Подключаемся к обоим пространствам имен
278
304
  await wsClient.connectToReasoning();
279
305
  await wsClient.connectToIndexing();