solver-sdk 2.7.5 → 3.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 +200 -368
- package/dist/cjs/api/chat-api/index.js +23 -49
- package/dist/cjs/api/chat-api/index.js.map +1 -1
- package/dist/cjs/api/chat-api/interfaces.js +1 -0
- package/dist/cjs/api/chat-api/interfaces.js.map +1 -1
- package/dist/cjs/api/context-api.js +6 -1
- package/dist/cjs/api/context-api.js.map +1 -1
- package/dist/cjs/api/models-api.js +43 -60
- package/dist/cjs/api/models-api.js.map +1 -1
- package/dist/cjs/api/projects-api.js +63 -293
- package/dist/cjs/api/projects-api.js.map +1 -1
- package/dist/cjs/api/search-api.js +131 -8
- package/dist/cjs/api/search-api.js.map +1 -1
- package/dist/cjs/code-solver-sdk.js +68 -322
- package/dist/cjs/code-solver-sdk.js.map +1 -1
- package/dist/cjs/index.js +3 -19
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/utils/logger.js +4 -4
- package/dist/cjs/utils/logger.js.map +1 -1
- package/dist/esm/api/chat-api/index.js +22 -48
- package/dist/esm/api/chat-api/index.js.map +1 -1
- package/dist/esm/api/chat-api/interfaces.js +1 -0
- package/dist/esm/api/chat-api/interfaces.js.map +1 -1
- package/dist/esm/api/context-api.js +6 -1
- package/dist/esm/api/context-api.js.map +1 -1
- package/dist/esm/api/models-api.js +43 -60
- package/dist/esm/api/models-api.js.map +1 -1
- package/dist/esm/api/projects-api.js +63 -293
- package/dist/esm/api/projects-api.js.map +1 -1
- package/dist/esm/api/search-api.js +131 -8
- package/dist/esm/api/search-api.js.map +1 -1
- package/dist/esm/code-solver-sdk.js +68 -322
- package/dist/esm/code-solver-sdk.js.map +1 -1
- package/dist/esm/index.js +2 -18
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/utils/logger.js +3 -3
- package/dist/esm/utils/logger.js.map +1 -1
- package/dist/types/api/chat-api/index.d.ts +1 -13
- package/dist/types/api/chat-api/index.d.ts.map +1 -1
- package/dist/types/api/chat-api/interfaces.d.ts +6 -54
- package/dist/types/api/chat-api/interfaces.d.ts.map +1 -1
- package/dist/types/api/chat-api/models.d.ts +3 -26
- package/dist/types/api/chat-api/models.d.ts.map +1 -1
- package/dist/types/api/context-api.d.ts.map +1 -1
- package/dist/types/api/models-api.d.ts +31 -62
- package/dist/types/api/models-api.d.ts.map +1 -1
- package/dist/types/api/projects-api.d.ts +47 -126
- package/dist/types/api/projects-api.d.ts.map +1 -1
- package/dist/types/api/search-api.d.ts +147 -6
- package/dist/types/api/search-api.d.ts.map +1 -1
- package/dist/types/code-solver-sdk.d.ts +36 -86
- package/dist/types/code-solver-sdk.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -14
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/interfaces/sdk-options.d.ts +18 -66
- package/dist/types/interfaces/sdk-options.d.ts.map +1 -1
- package/dist/types/utils/logger.d.ts +3 -3
- package/dist/types/utils/logger.d.ts.map +1 -1
- package/docs/README.md +53 -37
- package/docs/VSCODE_INTEGRATION.md +208 -371
- package/docs/indexing/INDEXING.md +658 -335
- package/package.json +26 -23
- package/dist/cjs/api/agents-api.js +0 -94
- package/dist/cjs/api/agents-api.js.map +0 -1
- package/dist/cjs/api/chat-api/websocket-helpers.js +0 -211
- package/dist/cjs/api/chat-api/websocket-helpers.js.map +0 -1
- package/dist/cjs/api/dependencies-api.js +0 -286
- package/dist/cjs/api/dependencies-api.js.map +0 -1
- package/dist/cjs/constants/websocket-events.constants.js +0 -170
- package/dist/cjs/constants/websocket-events.constants.js.map +0 -1
- package/dist/cjs/constants/websocket-namespaces.constants.js +0 -22
- package/dist/cjs/constants/websocket-namespaces.constants.js.map +0 -1
- package/dist/cjs/interfaces/websocket/callbacks.interfaces.js +0 -3
- package/dist/cjs/interfaces/websocket/callbacks.interfaces.js.map +0 -1
- package/dist/cjs/interfaces/websocket/client-options.interfaces.js +0 -3
- package/dist/cjs/interfaces/websocket/client-options.interfaces.js.map +0 -1
- package/dist/cjs/interfaces/websocket/events.interfaces.js +0 -3
- package/dist/cjs/interfaces/websocket/events.interfaces.js.map +0 -1
- package/dist/cjs/interfaces/websocket/vscode-command.interfaces.js +0 -42
- package/dist/cjs/interfaces/websocket/vscode-command.interfaces.js.map +0 -1
- package/dist/cjs/simple-indexing-client.js +0 -138
- package/dist/cjs/simple-indexing-client.js.map +0 -1
- package/dist/cjs/utils/code-solver-websocket-client.js +0 -497
- package/dist/cjs/utils/code-solver-websocket-client.js.map +0 -1
- package/dist/cjs/utils/connection-state-manager.js +0 -133
- package/dist/cjs/utils/connection-state-manager.js.map +0 -1
- package/dist/cjs/utils/indexing-websocket-client.js +0 -107
- package/dist/cjs/utils/indexing-websocket-client.js.map +0 -1
- package/dist/cjs/utils/session-manager.js +0 -114
- package/dist/cjs/utils/session-manager.js.map +0 -1
- package/dist/cjs/utils/simple-connection-monitor.js +0 -52
- package/dist/cjs/utils/simple-connection-monitor.js.map +0 -1
- package/dist/cjs/utils/websocket-client.js +0 -638
- package/dist/cjs/utils/websocket-client.js.map +0 -1
- package/dist/cjs/ws/base-ws-client.js +0 -280
- package/dist/cjs/ws/base-ws-client.js.map +0 -1
- package/dist/cjs/ws/dependencies-ws-client.js +0 -11
- package/dist/cjs/ws/dependencies-ws-client.js.map +0 -1
- package/dist/cjs/ws/file-editing-ws-client.js +0 -162
- package/dist/cjs/ws/file-editing-ws-client.js.map +0 -1
- package/dist/cjs/ws/filesystem-ws-client.js +0 -305
- package/dist/cjs/ws/filesystem-ws-client.js.map +0 -1
- package/dist/cjs/ws/indexing-ws-client.js +0 -275
- package/dist/cjs/ws/indexing-ws-client.js.map +0 -1
- package/dist/cjs/ws/notifications-ws-client.js +0 -12
- package/dist/cjs/ws/notifications-ws-client.js.map +0 -1
- package/dist/esm/api/agents-api.js +0 -90
- package/dist/esm/api/agents-api.js.map +0 -1
- package/dist/esm/api/chat-api/websocket-helpers.js +0 -205
- package/dist/esm/api/chat-api/websocket-helpers.js.map +0 -1
- package/dist/esm/api/dependencies-api.js +0 -282
- package/dist/esm/api/dependencies-api.js.map +0 -1
- package/dist/esm/constants/websocket-events.constants.js +0 -167
- package/dist/esm/constants/websocket-events.constants.js.map +0 -1
- package/dist/esm/constants/websocket-namespaces.constants.js +0 -19
- package/dist/esm/constants/websocket-namespaces.constants.js.map +0 -1
- package/dist/esm/interfaces/websocket/callbacks.interfaces.js +0 -2
- package/dist/esm/interfaces/websocket/callbacks.interfaces.js.map +0 -1
- package/dist/esm/interfaces/websocket/client-options.interfaces.js +0 -2
- package/dist/esm/interfaces/websocket/client-options.interfaces.js.map +0 -1
- package/dist/esm/interfaces/websocket/events.interfaces.js +0 -2
- package/dist/esm/interfaces/websocket/events.interfaces.js.map +0 -1
- package/dist/esm/interfaces/websocket/vscode-command.interfaces.js +0 -39
- package/dist/esm/interfaces/websocket/vscode-command.interfaces.js.map +0 -1
- package/dist/esm/simple-indexing-client.js +0 -134
- package/dist/esm/simple-indexing-client.js.map +0 -1
- package/dist/esm/utils/code-solver-websocket-client.js +0 -492
- package/dist/esm/utils/code-solver-websocket-client.js.map +0 -1
- package/dist/esm/utils/connection-state-manager.js +0 -129
- package/dist/esm/utils/connection-state-manager.js.map +0 -1
- package/dist/esm/utils/indexing-websocket-client.js +0 -103
- package/dist/esm/utils/indexing-websocket-client.js.map +0 -1
- package/dist/esm/utils/session-manager.js +0 -109
- package/dist/esm/utils/session-manager.js.map +0 -1
- package/dist/esm/utils/simple-connection-monitor.js +0 -48
- package/dist/esm/utils/simple-connection-monitor.js.map +0 -1
- package/dist/esm/utils/websocket-client.js +0 -634
- package/dist/esm/utils/websocket-client.js.map +0 -1
- package/dist/esm/ws/base-ws-client.js +0 -276
- package/dist/esm/ws/base-ws-client.js.map +0 -1
- package/dist/esm/ws/dependencies-ws-client.js +0 -7
- package/dist/esm/ws/dependencies-ws-client.js.map +0 -1
- package/dist/esm/ws/file-editing-ws-client.js +0 -158
- package/dist/esm/ws/file-editing-ws-client.js.map +0 -1
- package/dist/esm/ws/filesystem-ws-client.js +0 -301
- package/dist/esm/ws/filesystem-ws-client.js.map +0 -1
- package/dist/esm/ws/indexing-ws-client.js +0 -271
- package/dist/esm/ws/indexing-ws-client.js.map +0 -1
- package/dist/esm/ws/notifications-ws-client.js +0 -8
- package/dist/esm/ws/notifications-ws-client.js.map +0 -1
- package/dist/types/api/agents-api.d.ts +0 -141
- package/dist/types/api/agents-api.d.ts.map +0 -1
- package/dist/types/api/chat-api/websocket-helpers.d.ts +0 -40
- package/dist/types/api/chat-api/websocket-helpers.d.ts.map +0 -1
- package/dist/types/api/dependencies-api.d.ts +0 -109
- package/dist/types/api/dependencies-api.d.ts.map +0 -1
- package/dist/types/constants/websocket-events.constants.d.ts +0 -144
- package/dist/types/constants/websocket-events.constants.d.ts.map +0 -1
- package/dist/types/constants/websocket-namespaces.constants.d.ts +0 -17
- package/dist/types/constants/websocket-namespaces.constants.d.ts.map +0 -1
- package/dist/types/interfaces/websocket/callbacks.interfaces.d.ts +0 -30
- package/dist/types/interfaces/websocket/callbacks.interfaces.d.ts.map +0 -1
- package/dist/types/interfaces/websocket/client-options.interfaces.d.ts +0 -51
- package/dist/types/interfaces/websocket/client-options.interfaces.d.ts.map +0 -1
- package/dist/types/interfaces/websocket/events.interfaces.d.ts +0 -165
- package/dist/types/interfaces/websocket/events.interfaces.d.ts.map +0 -1
- package/dist/types/interfaces/websocket/vscode-command.interfaces.d.ts +0 -56
- package/dist/types/interfaces/websocket/vscode-command.interfaces.d.ts.map +0 -1
- package/dist/types/simple-indexing-client.d.ts +0 -66
- package/dist/types/simple-indexing-client.d.ts.map +0 -1
- package/dist/types/utils/code-solver-websocket-client.d.ts +0 -144
- package/dist/types/utils/code-solver-websocket-client.d.ts.map +0 -1
- package/dist/types/utils/connection-state-manager.d.ts +0 -94
- package/dist/types/utils/connection-state-manager.d.ts.map +0 -1
- package/dist/types/utils/indexing-websocket-client.d.ts +0 -123
- package/dist/types/utils/indexing-websocket-client.d.ts.map +0 -1
- package/dist/types/utils/session-manager.d.ts +0 -98
- package/dist/types/utils/session-manager.d.ts.map +0 -1
- package/dist/types/utils/simple-connection-monitor.d.ts +0 -26
- package/dist/types/utils/simple-connection-monitor.d.ts.map +0 -1
- package/dist/types/utils/websocket-client.d.ts +0 -233
- package/dist/types/utils/websocket-client.d.ts.map +0 -1
- package/dist/types/ws/base-ws-client.d.ts +0 -119
- package/dist/types/ws/base-ws-client.d.ts.map +0 -1
- package/dist/types/ws/dependencies-ws-client.d.ts +0 -6
- package/dist/types/ws/dependencies-ws-client.d.ts.map +0 -1
- package/dist/types/ws/file-editing-ws-client.d.ts +0 -85
- package/dist/types/ws/file-editing-ws-client.d.ts.map +0 -1
- package/dist/types/ws/filesystem-ws-client.d.ts +0 -201
- package/dist/types/ws/filesystem-ws-client.d.ts.map +0 -1
- package/dist/types/ws/indexing-ws-client.d.ts +0 -94
- package/dist/types/ws/indexing-ws-client.d.ts.map +0 -1
- package/dist/types/ws/notifications-ws-client.d.ts +0 -5
- package/dist/types/ws/notifications-ws-client.d.ts.map +0 -1
- package/docs/ARCHITECTURE.md +0 -268
- package/docs/QUICK_START.md +0 -126
- package/docs/WEBSOCKET.md +0 -472
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import { WebSocketClient } from './websocket-client.js';
|
|
2
|
-
/**
|
|
3
|
-
* События индексации
|
|
4
|
-
*/
|
|
5
|
-
export var IndexingEvent;
|
|
6
|
-
(function (IndexingEvent) {
|
|
7
|
-
/** Начало индексации */
|
|
8
|
-
IndexingEvent["START"] = "indexing_start";
|
|
9
|
-
/** Прогресс индексации */
|
|
10
|
-
IndexingEvent["PROGRESS"] = "indexing_progress";
|
|
11
|
-
/** Завершение индексации */
|
|
12
|
-
IndexingEvent["COMPLETE"] = "indexing_complete";
|
|
13
|
-
/** Ошибка индексации */
|
|
14
|
-
IndexingEvent["ERROR"] = "indexing_error";
|
|
15
|
-
})(IndexingEvent || (IndexingEvent = {}));
|
|
16
|
-
/**
|
|
17
|
-
* WebSocket клиент для работы с индексацией
|
|
18
|
-
*/
|
|
19
|
-
export class IndexingWebSocketClient extends WebSocketClient {
|
|
20
|
-
/**
|
|
21
|
-
* Создает новый WebSocket клиент для индексации
|
|
22
|
-
* @param {string} url URL для подключения
|
|
23
|
-
* @param {IndexingWebSocketOptions} [options] Опции клиента
|
|
24
|
-
*/
|
|
25
|
-
constructor(url, options = {}) {
|
|
26
|
-
// Сохраняем базовый URL
|
|
27
|
-
const baseUrl = url;
|
|
28
|
-
// Формируем URL с параметрами для проекта если он указан
|
|
29
|
-
let targetUrl = url;
|
|
30
|
-
if (options.projectId) {
|
|
31
|
-
const urlWithParams = new URL(url);
|
|
32
|
-
urlWithParams.searchParams.append('projectId', options.projectId);
|
|
33
|
-
urlWithParams.searchParams.append('type', 'indexing');
|
|
34
|
-
targetUrl = urlWithParams.toString();
|
|
35
|
-
}
|
|
36
|
-
super(targetUrl, {
|
|
37
|
-
...options,
|
|
38
|
-
headers: {
|
|
39
|
-
...(options.headers || {}),
|
|
40
|
-
...(options.apiKey ? { 'Authorization': `Bearer ${options.apiKey}` } : {})
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
/** Идентификатор проекта */
|
|
44
|
-
this.projectId = null;
|
|
45
|
-
this.baseUrl = baseUrl;
|
|
46
|
-
this.projectId = options.projectId || null;
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Устанавливает идентификатор проекта
|
|
50
|
-
* @param {string} projectId Идентификатор проекта
|
|
51
|
-
*/
|
|
52
|
-
setProjectId(projectId) {
|
|
53
|
-
this.projectId = projectId;
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Подключается к WebSocket для отслеживания индексации
|
|
57
|
-
* @param {string} [projectId] Идентификатор проекта (если не был указан в конструкторе)
|
|
58
|
-
* @returns {Promise<void>}
|
|
59
|
-
*/
|
|
60
|
-
async connect(projectId) {
|
|
61
|
-
const targetProjectId = projectId || this.projectId;
|
|
62
|
-
if (!targetProjectId) {
|
|
63
|
-
throw new Error('Project ID is required for indexing WebSocket connection');
|
|
64
|
-
}
|
|
65
|
-
// Сохраняем ID проекта
|
|
66
|
-
this.projectId = targetProjectId;
|
|
67
|
-
// Если проект изменился и клиент уже подключен, отключаемся
|
|
68
|
-
if (projectId && this.isConnected()) {
|
|
69
|
-
this.close();
|
|
70
|
-
}
|
|
71
|
-
// Выполняем соединение
|
|
72
|
-
await super.connect();
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Подписывается на события начала индексации
|
|
76
|
-
* @param {(data: {projectId: string}) => void} handler Обработчик события
|
|
77
|
-
*/
|
|
78
|
-
onStart(handler) {
|
|
79
|
-
this.on(IndexingEvent.START, handler);
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Подписывается на события прогресса индексации
|
|
83
|
-
* @param {(data: IndexingProgressData) => void} handler Обработчик события
|
|
84
|
-
*/
|
|
85
|
-
onProgress(handler) {
|
|
86
|
-
this.on(IndexingEvent.PROGRESS, handler);
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Подписывается на события завершения индексации
|
|
90
|
-
* @param {(data: IndexingCompleteData) => void} handler Обработчик события
|
|
91
|
-
*/
|
|
92
|
-
onComplete(handler) {
|
|
93
|
-
this.on(IndexingEvent.COMPLETE, handler);
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Подписывается на события ошибок индексации
|
|
97
|
-
* @param {(data: IndexingErrorData) => void} handler Обработчик события
|
|
98
|
-
*/
|
|
99
|
-
onError(handler) {
|
|
100
|
-
this.on(IndexingEvent.ERROR, handler);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
//# sourceMappingURL=indexing-websocket-client.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"indexing-websocket-client.js","sourceRoot":"","sources":["../../../src/utils/indexing-websocket-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAA0B,MAAM,uBAAuB,CAAC;AAEhF;;GAEG;AACH,MAAM,CAAN,IAAY,aAYX;AAZD,WAAY,aAAa;IACvB,wBAAwB;IACxB,yCAAwB,CAAA;IAExB,0BAA0B;IAC1B,+CAA8B,CAAA;IAE9B,4BAA4B;IAC5B,+CAA8B,CAAA;IAE9B,wBAAwB;IACxB,yCAAwB,CAAA;AAC1B,CAAC,EAZW,aAAa,KAAb,aAAa,QAYxB;AAkFD;;GAEG;AACH,MAAM,OAAO,uBAAwB,SAAQ,eAAe;IAO1D;;;;OAIG;IACH,YAAY,GAAW,EAAE,UAAoC,EAAE;QAC7D,wBAAwB;QACxB,MAAM,OAAO,GAAG,GAAG,CAAC;QAEpB,yDAAyD;QACzD,IAAI,SAAS,GAAG,GAAG,CAAC;QACpB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;YACnC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YAClE,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YACtD,SAAS,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;QACvC,CAAC;QAED,KAAK,CAAC,SAAS,EAAE;YACf,GAAG,OAAO;YACV,OAAO,EAAE;gBACP,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;gBAC1B,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,UAAU,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC3E;SACF,CAAC,CAAC;QA9BL,4BAA4B;QACpB,cAAS,GAAkB,IAAI,CAAC;QA+BtC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACI,YAAY,CAAC,SAAiB;QACnC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,OAAO,CAAC,SAAkB;QACrC,MAAM,eAAe,GAAG,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC;QAEpD,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAC9E,CAAC;QAED,uBAAuB;QACvB,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC;QAEjC,4DAA4D;QAC5D,IAAI,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACpC,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;QAED,uBAAuB;QACvB,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAED;;;OAGG;IACI,OAAO,CAAC,OAA4C;QACzD,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED;;;OAGG;IACI,UAAU,CAAC,OAA6C;QAC7D,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED;;;OAGG;IACI,UAAU,CAAC,OAA6C;QAC7D,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED;;;OAGG;IACI,OAAO,CAAC,OAA0C;QACvD,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;CACF"}
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Класс для хранения токенов сессий в памяти
|
|
3
|
-
*/
|
|
4
|
-
export class MemorySessionTokenStore {
|
|
5
|
-
constructor() {
|
|
6
|
-
/** Хранилище токенов */
|
|
7
|
-
this.tokens = new Map();
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Получить токен сессии для указанного пространства имен
|
|
11
|
-
* @param {WebSocketNamespace} namespace Пространство имен
|
|
12
|
-
* @returns {string | null} Токен сессии или null, если не найден
|
|
13
|
-
*/
|
|
14
|
-
getToken(namespace) {
|
|
15
|
-
return this.tokens.get(namespace) || null;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Сохранить токен сессии для указанного пространства имен
|
|
19
|
-
* @param {WebSocketNamespace} namespace Пространство имен
|
|
20
|
-
* @param {string} token Токен сессии
|
|
21
|
-
*/
|
|
22
|
-
saveToken(namespace, token) {
|
|
23
|
-
this.tokens.set(namespace, token);
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Удалить токен сессии для указанного пространства имен
|
|
27
|
-
* @param {WebSocketNamespace} namespace Пространство имен
|
|
28
|
-
*/
|
|
29
|
-
removeToken(namespace) {
|
|
30
|
-
this.tokens.delete(namespace);
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Проверить наличие токена для указанного пространства имен
|
|
34
|
-
* @param {WebSocketNamespace} namespace Пространство имен
|
|
35
|
-
* @returns {boolean} true, если токен есть
|
|
36
|
-
*/
|
|
37
|
-
hasToken(namespace) {
|
|
38
|
-
return this.tokens.has(namespace);
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Очистить все токены
|
|
42
|
-
*/
|
|
43
|
-
clear() {
|
|
44
|
-
this.tokens.clear();
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Класс для управления токенами сессий WebSocket
|
|
49
|
-
*/
|
|
50
|
-
export class SessionManager {
|
|
51
|
-
/**
|
|
52
|
-
* Создает новый менеджер сессий
|
|
53
|
-
* @param {SessionManagerOptions} options Опции менеджера сессий
|
|
54
|
-
*/
|
|
55
|
-
constructor(options = {}) {
|
|
56
|
-
/** Хранилище токенов сессий */
|
|
57
|
-
this.sessionTokens = new Map();
|
|
58
|
-
this.enableSessionPersistence = options.enableSessionPersistence !== false;
|
|
59
|
-
this.logger = options.logger || {
|
|
60
|
-
debug: () => { },
|
|
61
|
-
info: () => { },
|
|
62
|
-
warn: () => { },
|
|
63
|
-
error: () => { },
|
|
64
|
-
withPrefix: () => this.logger
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Сохраняет токен сессии для пространства имен
|
|
69
|
-
* @param {string} namespace Пространство имен
|
|
70
|
-
* @param {string} token Токен сессии
|
|
71
|
-
*/
|
|
72
|
-
saveSessionToken(namespace, token) {
|
|
73
|
-
if (!this.enableSessionPersistence) {
|
|
74
|
-
this.logger.debug(`Сохранение сессий отключено, игнорируем токен для ${namespace}`);
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
this.logger.debug(`Сохранение токена сессии для ${namespace}`);
|
|
78
|
-
this.sessionTokens.set(namespace, token);
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Получает токен сессии для пространства имен
|
|
82
|
-
* @param {string} namespace Пространство имен
|
|
83
|
-
* @returns {string | undefined} Токен сессии или undefined, если не найден
|
|
84
|
-
*/
|
|
85
|
-
getSessionToken(namespace) {
|
|
86
|
-
if (!this.enableSessionPersistence) {
|
|
87
|
-
return undefined;
|
|
88
|
-
}
|
|
89
|
-
const token = this.sessionTokens.get(namespace);
|
|
90
|
-
this.logger.debug(`Получение токена сессии для ${namespace}: ${token ? 'найден' : 'не найден'}`);
|
|
91
|
-
return token;
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Удаляет токен сессии для пространства имен
|
|
95
|
-
* @param {string} namespace Пространство имен
|
|
96
|
-
*/
|
|
97
|
-
clearSessionToken(namespace) {
|
|
98
|
-
this.logger.debug(`Удаление токена сессии для ${namespace}`);
|
|
99
|
-
this.sessionTokens.delete(namespace);
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Удаляет все токены сессий
|
|
103
|
-
*/
|
|
104
|
-
clearAllSessionTokens() {
|
|
105
|
-
this.logger.debug('Удаление всех токенов сессий');
|
|
106
|
-
this.sessionTokens.clear();
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
//# sourceMappingURL=session-manager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../../src/utils/session-manager.ts"],"names":[],"mappings":"AAuBA;;GAEG;AACH,MAAM,OAAO,uBAAuB;IAApC;QACE,wBAAwB;QAChB,WAAM,GAAoC,IAAI,GAAG,EAAE,CAAC;IA2C9D,CAAC;IAzCC;;;;OAIG;IACI,QAAQ,CAAC,SAA6B;QAC3C,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;IAC5C,CAAC;IAED;;;;OAIG;IACI,SAAS,CAAC,SAA6B,EAAE,KAAa;QAC3D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IAED;;;OAGG;IACI,WAAW,CAAC,SAA6B;QAC9C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACI,QAAQ,CAAC,SAA6B;QAC3C,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACI,KAAK;QACV,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CACF;AAaD;;GAEG;AACH,MAAM,OAAO,cAAc;IAUzB;;;OAGG;IACH,YAAY,UAAiC,EAAE;QAb/C,+BAA+B;QACvB,kBAAa,GAAwB,IAAI,GAAG,EAAE,CAAC;QAarD,IAAI,CAAC,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,KAAK,KAAK,CAAC;QAC3E,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI;YAC9B,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;YACf,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;YACd,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;YACd,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;YACf,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM;SAC9B,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACI,gBAAgB,CAAC,SAAiB,EAAE,KAAa;QACtD,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qDAAqD,SAAS,EAAE,CAAC,CAAC;YACpF,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,SAAS,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACI,eAAe,CAAC,SAAiB;QACtC,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACnC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAEjG,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IACI,iBAAiB,CAAC,SAAiB;QACxC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,SAAS,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACI,qBAAqB;QAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;CACF"}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Минимальный мониторинг WebSocket соединения
|
|
3
|
-
*/
|
|
4
|
-
export class SimpleConnectionMonitor {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.monitors = new Map();
|
|
7
|
-
this.checkInterval = 30000; // 30 секунд
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Запускает мониторинг для клиента
|
|
11
|
-
*/
|
|
12
|
-
startMonitoring(namespace, client) {
|
|
13
|
-
this.stopMonitoring(namespace);
|
|
14
|
-
const monitor = setInterval(() => {
|
|
15
|
-
// Простая проверка состояния соединения
|
|
16
|
-
if (!client.isConnected()) {
|
|
17
|
-
this.stopMonitoring(namespace);
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
}, this.checkInterval);
|
|
21
|
-
this.monitors.set(namespace, monitor);
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Останавливает мониторинг
|
|
25
|
-
*/
|
|
26
|
-
stopMonitoring(namespace) {
|
|
27
|
-
const monitor = this.monitors.get(namespace);
|
|
28
|
-
if (monitor) {
|
|
29
|
-
clearInterval(monitor);
|
|
30
|
-
this.monitors.delete(namespace);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Останавливает весь мониторинг
|
|
35
|
-
*/
|
|
36
|
-
stopAll() {
|
|
37
|
-
for (const [namespace] of this.monitors) {
|
|
38
|
-
this.stopMonitoring(namespace);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Проверяет активен ли мониторинг
|
|
43
|
-
*/
|
|
44
|
-
isMonitoring(namespace) {
|
|
45
|
-
return this.monitors.has(namespace);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=simple-connection-monitor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"simple-connection-monitor.js","sourceRoot":"","sources":["../../../src/utils/simple-connection-monitor.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,OAAO,uBAAuB;IAApC;QACmB,aAAQ,GAA4C,IAAI,GAAG,EAAE,CAAC;QAC9D,kBAAa,GAAG,KAAK,CAAC,CAAC,YAAY;IA6CtD,CAAC;IA3CC;;OAEG;IACH,eAAe,CAAC,SAA6B,EAAE,MAAuB;QACpE,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAE/B,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE;YAC/B,wCAAwC;YACxC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC1B,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;gBAC/B,OAAO;YACT,CAAC;QACH,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAEvB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,SAA6B;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,OAAO,EAAE,CAAC;YACZ,aAAa,CAAC,OAAO,CAAC,CAAC;YACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,OAAO;QACL,KAAK,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACxC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,SAA6B;QACxC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;CACF"}
|