solver-sdk 5.1.0 → 5.1.3
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 +264 -4
- package/dist/cjs/api/delta-chunking-api.js +142 -0
- package/dist/cjs/api/delta-chunking-api.js.map +1 -0
- package/dist/cjs/api/projects-api.js +94 -27
- package/dist/cjs/api/projects-api.js.map +1 -1
- package/dist/cjs/code-solver-sdk.js +96 -4
- package/dist/cjs/code-solver-sdk.js.map +1 -1
- package/dist/cjs/delta-chunking/delta-chunking-manager.js +202 -0
- package/dist/cjs/delta-chunking/delta-chunking-manager.js.map +1 -0
- package/dist/cjs/delta-chunking/delta-chunking-utils.js +315 -0
- package/dist/cjs/delta-chunking/delta-chunking-utils.js.map +1 -0
- package/dist/cjs/index.js +10 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/delta-chunking.js +7 -0
- package/dist/cjs/types/delta-chunking.js.map +1 -0
- package/dist/esm/api/delta-chunking-api.js +138 -0
- package/dist/esm/api/delta-chunking-api.js.map +1 -0
- package/dist/esm/api/projects-api.js +94 -27
- package/dist/esm/api/projects-api.js.map +1 -1
- package/dist/esm/code-solver-sdk.js +96 -4
- package/dist/esm/code-solver-sdk.js.map +1 -1
- package/dist/esm/delta-chunking/delta-chunking-manager.js +198 -0
- package/dist/esm/delta-chunking/delta-chunking-manager.js.map +1 -0
- package/dist/esm/delta-chunking/delta-chunking-utils.js +278 -0
- package/dist/esm/delta-chunking/delta-chunking-utils.js.map +1 -0
- package/dist/esm/index.js +6 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/delta-chunking.js +6 -0
- package/dist/esm/types/delta-chunking.js.map +1 -0
- package/dist/types/api/delta-chunking-api.d.ts +51 -0
- package/dist/types/api/delta-chunking-api.d.ts.map +1 -0
- package/dist/types/api/projects-api.d.ts +42 -0
- package/dist/types/api/projects-api.d.ts.map +1 -1
- package/dist/types/code-solver-sdk.d.ts +50 -1
- package/dist/types/code-solver-sdk.d.ts.map +1 -1
- package/dist/types/delta-chunking/delta-chunking-manager.d.ts +60 -0
- package/dist/types/delta-chunking/delta-chunking-manager.d.ts.map +1 -0
- package/dist/types/delta-chunking/delta-chunking-utils.d.ts +62 -0
- package/dist/types/delta-chunking/delta-chunking-utils.d.ts.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/interfaces/sdk-options.d.ts +35 -0
- package/dist/types/interfaces/sdk-options.d.ts.map +1 -1
- package/dist/types/types/delta-chunking.d.ts +210 -0
- package/dist/types/types/delta-chunking.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -9,6 +9,10 @@ const tools_api_js_1 = require("./api/tools-api.js");
|
|
|
9
9
|
const updates_api_js_1 = require("./api/updates-api.js");
|
|
10
10
|
const models_api_js_1 = require("./api/models-api.js");
|
|
11
11
|
const version_js_1 = require("./version.js");
|
|
12
|
+
// 🔄 Delta-Chunking imports
|
|
13
|
+
const delta_chunking_api_js_1 = require("./api/delta-chunking-api.js");
|
|
14
|
+
const delta_chunking_manager_js_1 = require("./delta-chunking/delta-chunking-manager.js");
|
|
15
|
+
const delta_chunking_utils_js_1 = require("./delta-chunking/delta-chunking-utils.js");
|
|
12
16
|
/**
|
|
13
17
|
* Определение типа среды выполнения
|
|
14
18
|
* @returns 'browser' | 'node' | 'unknown'
|
|
@@ -129,6 +133,15 @@ class CodeSolverSDK {
|
|
|
129
133
|
this._tools = new tools_api_js_1.ToolsApi(this.httpClient);
|
|
130
134
|
this._models = new models_api_js_1.ModelsApi(this.httpClient);
|
|
131
135
|
this._updates = new updates_api_js_1.UpdatesApi(this.httpClient);
|
|
136
|
+
// 🔄 Инициализируем Delta-Chunking если включен
|
|
137
|
+
if (this._options.deltaChunking?.enabled) {
|
|
138
|
+
// Создаем отдельный DeltaChunkingApi для delta операций
|
|
139
|
+
const deltaApi = new delta_chunking_api_js_1.DeltaChunkingApi(this.httpClient);
|
|
140
|
+
const deltaUtils = new delta_chunking_utils_js_1.DeltaChunkingUtils(this._projects, this._options, this.environment, this.logger);
|
|
141
|
+
this._deltaManager = new delta_chunking_manager_js_1.DeltaChunkingManager(deltaApi, // ✅ Передаем правильный DeltaChunkingApi
|
|
142
|
+
deltaUtils, this._options, this.logger);
|
|
143
|
+
this.logger.log('🔄 Delta-Chunking инициализирован');
|
|
144
|
+
}
|
|
132
145
|
}
|
|
133
146
|
/**
|
|
134
147
|
* Получает версию SDK
|
|
@@ -241,6 +254,74 @@ class CodeSolverSDK {
|
|
|
241
254
|
get updates() {
|
|
242
255
|
return this._updates;
|
|
243
256
|
}
|
|
257
|
+
// 🔄 DELTA-CHUNKING МЕТОДЫ
|
|
258
|
+
/**
|
|
259
|
+
* Проверяет активность delta-chunking функциональности
|
|
260
|
+
* @returns {boolean} true если delta-chunking включен и инициализирован
|
|
261
|
+
*/
|
|
262
|
+
get isDeltaChunkingEnabled() {
|
|
263
|
+
return !!this._deltaManager?.isEnabled;
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* 🚀 Синхронизация проекта по пути к директории
|
|
267
|
+
* @param {string} projectId ID проекта
|
|
268
|
+
* @param {string} projectPath Путь к директории проекта
|
|
269
|
+
* @param {SyncOptions} options Опции синхронизации
|
|
270
|
+
* @returns {Promise<SyncResult>} Результат синхронизации
|
|
271
|
+
*/
|
|
272
|
+
async syncProject(projectId, projectPath, options = {}) {
|
|
273
|
+
if (!this._deltaManager) {
|
|
274
|
+
throw new Error('Delta-chunking не включен. Установите deltaChunking.enabled = true в конфигурации SDK');
|
|
275
|
+
}
|
|
276
|
+
return await this._deltaManager.syncProject(projectId, projectPath, options);
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* 📤 Синхронизация массива файлов (для web/браузера)
|
|
280
|
+
* @param {string} projectId ID проекта
|
|
281
|
+
* @param {FileContent[]} files Массив файлов для синхронизации
|
|
282
|
+
* @param {SyncOptions} options Опции синхронизации
|
|
283
|
+
* @returns {Promise<SyncResult>} Результат синхронизации
|
|
284
|
+
*/
|
|
285
|
+
async syncFiles(projectId, files, options = {}) {
|
|
286
|
+
if (!this._deltaManager) {
|
|
287
|
+
throw new Error('Delta-chunking не включен. Установите deltaChunking.enabled = true в конфигурации SDK');
|
|
288
|
+
}
|
|
289
|
+
return await this._deltaManager.syncFiles(projectId, files, options);
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* 👀 Запуск автоматического наблюдения за изменениями
|
|
293
|
+
* @param {string} projectId ID проекта
|
|
294
|
+
* @param {string} watchPath Путь для наблюдения
|
|
295
|
+
* @returns {Promise<FileWatcher>} File watcher
|
|
296
|
+
*/
|
|
297
|
+
async startAutoSync(projectId, watchPath) {
|
|
298
|
+
if (!this._deltaManager) {
|
|
299
|
+
throw new Error('Delta-chunking не включен. Установите deltaChunking.enabled = true в конфигурации SDK');
|
|
300
|
+
}
|
|
301
|
+
return await this._deltaManager.startAutoSync(projectId, watchPath);
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* 📊 Получение статуса синхронизации
|
|
305
|
+
* @param {string} projectId ID проекта
|
|
306
|
+
* @returns {Promise<SyncStatus>} Статус синхронизации
|
|
307
|
+
*/
|
|
308
|
+
async getSyncStatus(projectId) {
|
|
309
|
+
if (!this._deltaManager) {
|
|
310
|
+
throw new Error('Delta-chunking не включен. Установите deltaChunking.enabled = true в конфигурации SDK');
|
|
311
|
+
}
|
|
312
|
+
return await this._deltaManager.getSyncStatus(projectId);
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* ❌ Отмена активной синхронизации
|
|
316
|
+
* @param {string} projectId ID проекта
|
|
317
|
+
* @returns {Promise<boolean>} true если синхронизация отменена
|
|
318
|
+
*/
|
|
319
|
+
async cancelSync(projectId) {
|
|
320
|
+
if (!this._deltaManager) {
|
|
321
|
+
throw new Error('Delta-chunking не включен. Установите deltaChunking.enabled = true в конфигурации SDK');
|
|
322
|
+
}
|
|
323
|
+
return await this._deltaManager.cancelSync(projectId);
|
|
324
|
+
}
|
|
244
325
|
/**
|
|
245
326
|
* Обрабатывает ошибки SDK
|
|
246
327
|
* @param {Error} error Ошибка
|
|
@@ -263,9 +344,12 @@ class CodeSolverSDK {
|
|
|
263
344
|
/**
|
|
264
345
|
* Освобождает ресурсы SDK
|
|
265
346
|
*/
|
|
266
|
-
dispose() {
|
|
267
|
-
this.logger.debug('Освобождение ресурсов');
|
|
268
|
-
//
|
|
347
|
+
async dispose() {
|
|
348
|
+
this.logger.debug('Освобождение ресурсов SDK');
|
|
349
|
+
// Останавливаем все file watchers если есть delta-chunking
|
|
350
|
+
if (this._deltaManager) {
|
|
351
|
+
await this._deltaManager.stopAllWatchers();
|
|
352
|
+
}
|
|
269
353
|
}
|
|
270
354
|
/**
|
|
271
355
|
* Устанавливает новый API ключ
|
|
@@ -284,9 +368,17 @@ class CodeSolverSDK {
|
|
|
284
368
|
version: version_js_1.VERSION,
|
|
285
369
|
environment: this.environment,
|
|
286
370
|
baseURL: this._options.baseURL,
|
|
287
|
-
hasApiKey: !!this._options.apiKey
|
|
371
|
+
hasApiKey: !!this._options.apiKey,
|
|
372
|
+
deltaChunkingEnabled: this.isDeltaChunkingEnabled
|
|
288
373
|
};
|
|
289
374
|
}
|
|
375
|
+
/**
|
|
376
|
+
* 🔄 Получение менеджера Delta-Chunking для расширенного API
|
|
377
|
+
* @returns {DeltaChunkingManager | undefined} Менеджер delta-chunking или undefined если отключен
|
|
378
|
+
*/
|
|
379
|
+
get deltaManager() {
|
|
380
|
+
return this._deltaManager;
|
|
381
|
+
}
|
|
290
382
|
}
|
|
291
383
|
exports.CodeSolverSDK = CodeSolverSDK;
|
|
292
384
|
/** Глобальный обработчик ошибок */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-solver-sdk.js","sourceRoot":"","sources":["../../src/code-solver-sdk.ts"],"names":[],"mappings":";;;AAAA,2DAAoD;AACpD,2DAAoD;AACpD,uDAAgD;AAChD,sDAAkD;AAClD,qDAA8C;AAC9C,yDAAkD;AAElD,uDAAgD;AAChD,6CAAuC;
|
|
1
|
+
{"version":3,"file":"code-solver-sdk.js","sourceRoot":"","sources":["../../src/code-solver-sdk.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* 🔄 Delta-Chunking Manager
|
|
4
|
+
* Менеджер для координации delta-chunking операций
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.DeltaChunkingManager = void 0;
|
|
8
|
+
/**
|
|
9
|
+
* Менеджер для координации всех delta-chunking операций
|
|
10
|
+
*/
|
|
11
|
+
class DeltaChunkingManager {
|
|
12
|
+
constructor(deltaApi, utils, options, logger) {
|
|
13
|
+
this.deltaApi = deltaApi;
|
|
14
|
+
this.utils = utils;
|
|
15
|
+
this.options = options;
|
|
16
|
+
this.logger = logger;
|
|
17
|
+
this.activeWatchers = new Map();
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Проверка активности delta-chunking
|
|
21
|
+
*/
|
|
22
|
+
get isEnabled() {
|
|
23
|
+
return !!this.deltaApi && !!this.options.deltaChunking?.enabled;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* 🚀 Синхронизация проекта по пути к директории
|
|
27
|
+
*/
|
|
28
|
+
async syncProject(projectId, projectPath, options = {}) {
|
|
29
|
+
this.ensureEnabled();
|
|
30
|
+
const startTime = Date.now();
|
|
31
|
+
try {
|
|
32
|
+
this.logger.log(`🚀 Начинаю синхронизацию проекта ${projectId} из ${projectPath}`);
|
|
33
|
+
// 1. Валидация проекта
|
|
34
|
+
await this.utils.validateProject(projectId);
|
|
35
|
+
// 2. Сканирование файлов
|
|
36
|
+
const files = await this.utils.scanProjectFiles(projectPath, options);
|
|
37
|
+
this.logger.log(`📂 Найдено файлов: ${files.length}`);
|
|
38
|
+
// 3. Синхронизация через API
|
|
39
|
+
return await this.syncFiles(projectId, files, options);
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
43
|
+
this.logger.error(`❌ Ошибка синхронизации проекта: ${errorMessage}`);
|
|
44
|
+
return {
|
|
45
|
+
success: false,
|
|
46
|
+
projectId,
|
|
47
|
+
processedChunks: 0,
|
|
48
|
+
totalChunks: 0,
|
|
49
|
+
duration: Date.now() - startTime,
|
|
50
|
+
error: errorMessage,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* 📤 Синхронизация массива файлов (для web/браузера)
|
|
56
|
+
*/
|
|
57
|
+
async syncFiles(projectId, files, options = {}) {
|
|
58
|
+
this.ensureEnabled();
|
|
59
|
+
const startTime = Date.now();
|
|
60
|
+
try {
|
|
61
|
+
this.logger.log(`📤 Начинаю синхронизацию ${files.length} файлов для проекта ${projectId}`);
|
|
62
|
+
// 1. Инициализация синхронизации
|
|
63
|
+
const rootHash = this.utils.calculateRootHash(files);
|
|
64
|
+
const initResult = await this.deltaApi.initSync(projectId, { clientRootHash: rootHash });
|
|
65
|
+
this.logger.log(`🔄 Сессия инициализирована: ${initResult.sessionId}`);
|
|
66
|
+
// 2. Создание чанков
|
|
67
|
+
const chunks = await this.utils.createChunksFromFiles(files);
|
|
68
|
+
this.logger.log(`🔧 Создано чанков: ${chunks.length}`);
|
|
69
|
+
// 3. Шифрование чанков
|
|
70
|
+
const encryptedChunks = await this.utils.encryptChunks(chunks);
|
|
71
|
+
// 4. Отправка батчами
|
|
72
|
+
const batchSize = options.batchSize || 50;
|
|
73
|
+
let processedTotal = 0;
|
|
74
|
+
const errors = [];
|
|
75
|
+
for (let i = 0; i < encryptedChunks.length; i += batchSize) {
|
|
76
|
+
const batch = encryptedChunks.slice(i, i + batchSize);
|
|
77
|
+
try {
|
|
78
|
+
const batchResult = await this.deltaApi.uploadChunkBatch(projectId, {
|
|
79
|
+
batchIndex: Math.floor(i / batchSize),
|
|
80
|
+
totalBatches: Math.ceil(encryptedChunks.length / batchSize),
|
|
81
|
+
chunks: batch,
|
|
82
|
+
});
|
|
83
|
+
processedTotal += batchResult.processed;
|
|
84
|
+
// Уведомление о прогрессе
|
|
85
|
+
if (options.onProgress) {
|
|
86
|
+
options.onProgress(i + batch.length, encryptedChunks.length);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
91
|
+
errors.push(`Ошибка батча ${Math.floor(i / batchSize)}: ${errorMessage}`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
// 5. Финализация
|
|
95
|
+
const finalizeResult = await this.deltaApi.finalizeSync(initResult.sessionId);
|
|
96
|
+
const duration = Date.now() - startTime;
|
|
97
|
+
this.logger.log(`✅ Синхронизация завершена за ${duration}ms. Обработано: ${processedTotal}`);
|
|
98
|
+
return {
|
|
99
|
+
success: finalizeResult.success,
|
|
100
|
+
projectId,
|
|
101
|
+
sessionId: initResult.sessionId,
|
|
102
|
+
processedChunks: processedTotal,
|
|
103
|
+
totalChunks: chunks.length,
|
|
104
|
+
duration,
|
|
105
|
+
error: errors.length > 0 ? errors.join('; ') : undefined,
|
|
106
|
+
details: {
|
|
107
|
+
newFiles: files.length, // Упрощено для начала
|
|
108
|
+
changedFiles: 0,
|
|
109
|
+
deletedFiles: 0,
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
115
|
+
this.logger.error(`❌ Ошибка синхронизации файлов: ${errorMessage}`);
|
|
116
|
+
return {
|
|
117
|
+
success: false,
|
|
118
|
+
projectId,
|
|
119
|
+
processedChunks: 0,
|
|
120
|
+
totalChunks: files.length,
|
|
121
|
+
duration: Date.now() - startTime,
|
|
122
|
+
error: errorMessage,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* 👀 Запуск автоматического наблюдения за изменениями
|
|
128
|
+
*/
|
|
129
|
+
async startAutoSync(projectId, watchPath) {
|
|
130
|
+
this.ensureEnabled();
|
|
131
|
+
this.logger.log(`👀 Запускаю auto-sync для проекта ${projectId} в ${watchPath}`);
|
|
132
|
+
const watcher = {
|
|
133
|
+
projectId,
|
|
134
|
+
watchPath,
|
|
135
|
+
isActive: false,
|
|
136
|
+
on: (event, callback) => {
|
|
137
|
+
// TODO: Реализовать event listener
|
|
138
|
+
console.log(`📡 Event listener добавлен для ${event}`);
|
|
139
|
+
},
|
|
140
|
+
async start() {
|
|
141
|
+
this.isActive = true;
|
|
142
|
+
// TODO: Реализовать реальный file watching
|
|
143
|
+
console.log(`🟢 File watcher запущен для ${watchPath}`);
|
|
144
|
+
},
|
|
145
|
+
async stop() {
|
|
146
|
+
this.isActive = false;
|
|
147
|
+
console.log(`🔴 File watcher остановлен для ${watchPath}`);
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
// Регистрируем watcher
|
|
151
|
+
this.activeWatchers.set(`${projectId}:${watchPath}`, watcher);
|
|
152
|
+
// TODO: Интеграция с реальным file watching (fs.watch для Node.js)
|
|
153
|
+
this.logger.warn('⚠️ File watching пока в разработке - используйте ручную синхронизацию');
|
|
154
|
+
return watcher;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* 📊 Получение статуса синхронизации
|
|
158
|
+
*/
|
|
159
|
+
async getSyncStatus(projectId) {
|
|
160
|
+
this.ensureEnabled();
|
|
161
|
+
return await this.deltaApi.getSyncStatus(projectId);
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* ❌ Отмена активной синхронизации
|
|
165
|
+
*/
|
|
166
|
+
async cancelSync(projectId) {
|
|
167
|
+
this.ensureEnabled();
|
|
168
|
+
const result = await this.deltaApi.cancelSync(projectId);
|
|
169
|
+
return result.success;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Получение активных file watchers
|
|
173
|
+
*/
|
|
174
|
+
getActiveWatchers() {
|
|
175
|
+
return new Map(this.activeWatchers);
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Остановка всех file watchers
|
|
179
|
+
*/
|
|
180
|
+
async stopAllWatchers() {
|
|
181
|
+
this.logger.log(`⏹️ Останавливаю ${this.activeWatchers.size} активных watchers`);
|
|
182
|
+
for (const [key, watcher] of this.activeWatchers) {
|
|
183
|
+
try {
|
|
184
|
+
await watcher.stop();
|
|
185
|
+
}
|
|
186
|
+
catch (error) {
|
|
187
|
+
this.logger.warn(`⚠️ Ошибка остановки watcher ${key}: ${error instanceof Error ? error.message : 'unknown'}`);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
this.activeWatchers.clear();
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Проверка что delta-chunking включен
|
|
194
|
+
*/
|
|
195
|
+
ensureEnabled() {
|
|
196
|
+
if (!this.isEnabled) {
|
|
197
|
+
throw new Error('Delta-chunking не включен. Установите deltaChunking.enabled = true в конфигурации SDK');
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
exports.DeltaChunkingManager = DeltaChunkingManager;
|
|
202
|
+
//# sourceMappingURL=delta-chunking-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delta-chunking-manager.js","sourceRoot":"","sources":["../../../src/delta-chunking/delta-chunking-manager.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAaH;;GAEG;AACH,MAAa,oBAAoB;IAG/B,YACmB,QAA0B,EAC1B,KAAyB,EACzB,OAA6B,EAC7B,MAIhB;QAPgB,aAAQ,GAAR,QAAQ,CAAkB;QAC1B,UAAK,GAAL,KAAK,CAAoB;QACzB,YAAO,GAAP,OAAO,CAAsB;QAC7B,WAAM,GAAN,MAAM,CAItB;QAVK,mBAAc,GAA6B,IAAI,GAAG,EAAE,CAAC;IAW1D,CAAC;IAEJ;;OAEG;IACH,IAAI,SAAS;QACX,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC;IAClE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,SAAiB,EACjB,WAAmB,EACnB,UAAuB,EAAE;QAEzB,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,oCAAoC,SAAS,OAAO,WAAW,EAAE,CAAC,CAAC;YAEnF,uBAAuB;YACvB,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YAE5C,yBAAyB;YACzB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACtE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,sBAAsB,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;YAEtD,6BAA6B;YAC7B,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAEzD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,YAAY,EAAE,CAAC,CAAC;YACrE,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,SAAS;gBACT,eAAe,EAAE,CAAC;gBAClB,WAAW,EAAE,CAAC;gBACd,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBAChC,KAAK,EAAE,YAAY;aACpB,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CACb,SAAiB,EACjB,KAAoB,EACpB,UAAuB,EAAE;QAEzB,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,KAAK,CAAC,MAAM,uBAAuB,SAAS,EAAE,CAAC,CAAC;YAE5F,iCAAiC;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,CAAC;YAEzF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,+BAA+B,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC;YAEvE,qBAAqB;YACrB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAC7D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,sBAAsB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAEvD,uBAAuB;YACvB,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAE/D,sBAAsB;YACtB,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;YAC1C,IAAI,cAAc,GAAG,CAAC,CAAC;YACvB,MAAM,MAAM,GAAa,EAAE,CAAC;YAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;gBAC3D,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC;gBAEtD,IAAI,CAAC;oBACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE;wBAClE,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS,CAAC;wBACrC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,SAAS,CAAC;wBAC3D,MAAM,EAAE,KAAK;qBACd,CAAC,CAAC;oBAEH,cAAc,IAAI,WAAW,CAAC,SAAS,CAAC;oBAExC,0BAA0B;oBAC1B,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;wBACvB,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;oBAC/D,CAAC;gBAEH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC5E,MAAM,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,YAAY,EAAE,CAAC,CAAC;gBAC5E,CAAC;YACH,CAAC;YAED,iBAAiB;YACjB,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAE9E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gCAAgC,QAAQ,mBAAmB,cAAc,EAAE,CAAC,CAAC;YAE7F,OAAO;gBACL,OAAO,EAAE,cAAc,CAAC,OAAO;gBAC/B,SAAS;gBACT,SAAS,EAAE,UAAU,CAAC,SAAS;gBAC/B,eAAe,EAAE,cAAc;gBAC/B,WAAW,EAAE,MAAM,CAAC,MAAM;gBAC1B,QAAQ;gBACR,KAAK,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;gBACxD,OAAO,EAAE;oBACP,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,sBAAsB;oBAC9C,YAAY,EAAE,CAAC;oBACf,YAAY,EAAE,CAAC;iBAChB;aACF,CAAC;QAEJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,YAAY,EAAE,CAAC,CAAC;YACpE,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,SAAS;gBACT,eAAe,EAAE,CAAC;gBAClB,WAAW,EAAE,KAAK,CAAC,MAAM;gBACzB,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBAChC,KAAK,EAAE,YAAY;aACpB,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,SAAiB,EAAE,SAAiB;QACtD,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,qCAAqC,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC;QAEjF,MAAM,OAAO,GAAgB;YAC3B,SAAS;YACT,SAAS;YACT,QAAQ,EAAE,KAAK;YAEf,EAAE,EAAE,CAAC,KAAa,EAAE,QAAkC,EAAE,EAAE;gBACxD,mCAAmC;gBACnC,OAAO,CAAC,GAAG,CAAC,kCAAkC,KAAK,EAAE,CAAC,CAAC;YACzD,CAAC;YAED,KAAK,CAAC,KAAK;gBACT,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACrB,2CAA2C;gBAC3C,OAAO,CAAC,GAAG,CAAC,+BAA+B,SAAS,EAAE,CAAC,CAAC;YAC1D,CAAC;YAED,KAAK,CAAC,IAAI;gBACR,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,kCAAkC,SAAS,EAAE,CAAC,CAAC;YAC7D,CAAC;SACF,CAAC;QAEF,uBAAuB;QACvB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,SAAS,IAAI,SAAS,EAAE,EAAE,OAAO,CAAC,CAAC;QAE9D,mEAAmE;QACnE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uEAAuE,CAAC,CAAC;QAE1F,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,SAAiB;QACnC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,SAAiB;QAChC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACzD,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe;QACnB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,cAAc,CAAC,IAAI,oBAAoB,CAAC,CAAC;QAEjF,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACjD,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;YACvB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,GAAG,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;YAChH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED;;OAEG;IACK,aAAa;QACnB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,uFAAuF,CAAC,CAAC;QAC3G,CAAC;IACH,CAAC;CACF;AA/OD,oDA+OC"}
|