solver-sdk 10.3.4 → 10.3.5
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 +38 -5
- package/dist/cjs/utils/http-client.js +183 -35
- package/dist/cjs/utils/http-client.js.map +1 -1
- package/dist/esm/utils/http-client.js +183 -35
- package/dist/esm/utils/http-client.js.map +1 -1
- package/dist/types/utils/http-client.d.ts +21 -6
- package/dist/types/utils/http-client.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -454,16 +454,49 @@ for await (const chunk of sdk.chat.streamChat(messages, {
|
|
|
454
454
|
### Типы delta для `content_block_delta`
|
|
455
455
|
|
|
456
456
|
```typescript
|
|
457
|
-
//
|
|
458
|
-
delta: { type: 'text_delta', text: 'Создаю функцию...' }
|
|
459
|
-
|
|
460
|
-
// Мышление AI (Extended Thinking)
|
|
457
|
+
// 🧠 Мышление AI (Extended Thinking)
|
|
461
458
|
delta: { type: 'thinking_delta', thinking: 'Анализирую требования...' }
|
|
462
459
|
|
|
463
|
-
//
|
|
460
|
+
// 📝 Текст ответа AI
|
|
461
|
+
delta: { type: 'text_delta', text: 'Создаю функцию...' }
|
|
462
|
+
|
|
463
|
+
// 🔧 Параметры инструмента (постепенно)
|
|
464
464
|
delta: { type: 'input_json_delta', partial_json: '{"file_path": "src/app' }
|
|
465
465
|
```
|
|
466
466
|
|
|
467
|
+
**Обработка всех типов:**
|
|
468
|
+
|
|
469
|
+
```typescript
|
|
470
|
+
const accumulators = { thinking: '', text: '' };
|
|
471
|
+
|
|
472
|
+
sdk.chat.streamChat(messages, {
|
|
473
|
+
thinking: { type: 'enabled', budget_tokens: 10000 },
|
|
474
|
+
|
|
475
|
+
onEvent: (type, data) => {
|
|
476
|
+
if (type === 'content_block_delta') {
|
|
477
|
+
const { delta, index } = data;
|
|
478
|
+
|
|
479
|
+
// 🧠 Thinking - показываем прогресс "AI думает..."
|
|
480
|
+
if (delta.type === 'thinking_delta') {
|
|
481
|
+
accumulators.thinking += delta.thinking;
|
|
482
|
+
updateThinkingUI(accumulators.thinking); // Серый блок в UI
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
// 📝 Text - печатаем ответ в реальном времени
|
|
486
|
+
else if (delta.type === 'text_delta') {
|
|
487
|
+
accumulators.text += delta.text;
|
|
488
|
+
updateResponseUI(accumulators.text); // Обычный текст
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
// 🔧 Tool Input - см. "Streaming Tool Use" выше
|
|
492
|
+
else if (delta.type === 'input_json_delta') {
|
|
493
|
+
// Используйте PartialJsonAccumulator (детали выше)
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
});
|
|
498
|
+
```
|
|
499
|
+
|
|
467
500
|
## Защита от сетевых задержек при стриминге
|
|
468
501
|
|
|
469
502
|
### Проблема
|
|
@@ -49,12 +49,6 @@ function getEnvironment() {
|
|
|
49
49
|
? 'browser'
|
|
50
50
|
: 'node';
|
|
51
51
|
}
|
|
52
|
-
/**
|
|
53
|
-
* HTTP клиент для выполнения запросов к API
|
|
54
|
-
*
|
|
55
|
-
* Предоставляет методы для работы с REST API, включая обработку ошибок,
|
|
56
|
-
* повторные попытки и таймауты.
|
|
57
|
-
*/
|
|
58
52
|
class HttpClient {
|
|
59
53
|
/**
|
|
60
54
|
* Создает новый HTTP клиент
|
|
@@ -62,6 +56,12 @@ class HttpClient {
|
|
|
62
56
|
* @param {HttpClientOptions} [options] Опции для HTTP клиента
|
|
63
57
|
*/
|
|
64
58
|
constructor(baseURL, options = {}) {
|
|
59
|
+
/** 🔐 401 Interceptor: Request Queue для параллельных запросов */
|
|
60
|
+
this.requestQueue = [];
|
|
61
|
+
/** 🔐 401 Interceptor: Флаг выполнения refresh токена */
|
|
62
|
+
this.isRefreshing = false;
|
|
63
|
+
/** 🔐 401 Interceptor: Promise текущего refresh для синхронизации */
|
|
64
|
+
this.refreshPromise = null;
|
|
65
65
|
this.baseURL = baseURL;
|
|
66
66
|
this.options = {
|
|
67
67
|
headers: {
|
|
@@ -89,6 +89,33 @@ class HttpClient {
|
|
|
89
89
|
// Добавляем интерцептор для обработки ошибок и повторных попыток
|
|
90
90
|
this.setupInterceptors();
|
|
91
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* 🔐 Retry всех запросов из очереди с новым токеном
|
|
94
|
+
* Вызывается после успешного refresh для обработки concurrent 401 requests
|
|
95
|
+
*/
|
|
96
|
+
processQueue(newToken) {
|
|
97
|
+
console.log(`🔄 [SDK] Processing ${this.requestQueue.length} queued requests with new token`);
|
|
98
|
+
this.requestQueue.forEach((queuedRequest) => {
|
|
99
|
+
if (!queuedRequest.config.headers) {
|
|
100
|
+
queuedRequest.config.headers = {};
|
|
101
|
+
}
|
|
102
|
+
queuedRequest.config.headers['Authorization'] = `Bearer ${newToken}`;
|
|
103
|
+
this.axiosInstance(queuedRequest.config)
|
|
104
|
+
.then((response) => queuedRequest.resolve(response))
|
|
105
|
+
.catch((error) => queuedRequest.reject(error));
|
|
106
|
+
});
|
|
107
|
+
this.requestQueue = [];
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* 🔐 Reject всех запросов из очереди при ошибке refresh
|
|
111
|
+
*/
|
|
112
|
+
rejectQueue(error) {
|
|
113
|
+
console.error(`❌ [SDK] Rejecting ${this.requestQueue.length} queued requests due to refresh failure`);
|
|
114
|
+
this.requestQueue.forEach((queuedRequest) => {
|
|
115
|
+
queuedRequest.reject(error);
|
|
116
|
+
});
|
|
117
|
+
this.requestQueue = [];
|
|
118
|
+
}
|
|
92
119
|
/**
|
|
93
120
|
* Настраивает интерцепторы Axios
|
|
94
121
|
*/
|
|
@@ -96,8 +123,84 @@ class HttpClient {
|
|
|
96
123
|
// Интерцептор для ответов
|
|
97
124
|
this.axiosInstance.interceptors.response.use((response) => response.data, async (error) => {
|
|
98
125
|
const { config, response } = error;
|
|
126
|
+
// 🔍 ДИАГНОСТИКА: Логируем ВСЕ ошибки в interceptor
|
|
127
|
+
console.log('🔴 [SDK Interceptor] Error received:', {
|
|
128
|
+
status: response?.status,
|
|
129
|
+
url: config?.url,
|
|
130
|
+
method: config?.method,
|
|
131
|
+
hasConfig: !!config,
|
|
132
|
+
hasResponse: !!response,
|
|
133
|
+
_retry: config?._retry,
|
|
134
|
+
hasGetAuthToken: !!this.options.getAuthToken
|
|
135
|
+
});
|
|
99
136
|
// ✅ ЦЕНТРАЛИЗОВАННЫЙ МАППИНГ через ErrorMapper
|
|
100
137
|
const mappedError = error_mapper_js_1.ErrorMapper.mapError(error);
|
|
138
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
139
|
+
// 🔐 401 INTERCEPTOR: Автоматический refresh + retry
|
|
140
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
141
|
+
//
|
|
142
|
+
// МЕХАНИЗМ РАБОТЫ (стандартный OAuth 2.0 flow):
|
|
143
|
+
//
|
|
144
|
+
// 1. Клиент делает запрос с access token
|
|
145
|
+
// 2. Access token истёк → сервер вернул 401 Unauthorized
|
|
146
|
+
// 3. SDK перехватывает 401 → вызывает getAuthToken()
|
|
147
|
+
// 4. getAuthToken() делает refresh запрос (POST /oauth/token)
|
|
148
|
+
// 5. Сервер возвращает новую пару токенов (access + refresh)
|
|
149
|
+
// 6. SDK повторяет оригинальный запрос с новым access token
|
|
150
|
+
// 7. Запрос успешен → пользователь не видел ошибку
|
|
151
|
+
//
|
|
152
|
+
// ЗАЧЕМ: Без этого клиент получает 401 → показывает ошибку → требует re-login
|
|
153
|
+
//
|
|
154
|
+
// ЗАЩИТЫ:
|
|
155
|
+
// - config._retry → infinite loop protection (один retry на запрос)
|
|
156
|
+
// - isRefreshing + requestQueue → concurrent refresh protection (один refresh для N запросов)
|
|
157
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
158
|
+
if (response?.status === 401 && config && !config._retry && this.options.getAuthToken) {
|
|
159
|
+
console.log('🔐 [SDK] 401 Unauthorized detected, attempting token refresh...');
|
|
160
|
+
// ЗАЧЕМ config._retry: Без этого при втором 401 получим infinite loop (401→refresh→401→refresh→...)
|
|
161
|
+
// Пример: Если refresh не помог (токен протух на сервере) - должны выбросить ошибку, а не зациклиться
|
|
162
|
+
config._retry = true;
|
|
163
|
+
// ⏳ Concurrent refresh protection: добавляем в queue если refresh уже выполняется
|
|
164
|
+
// ЗАЧЕМ: 10 параллельных запросов получили 401 одновременно → без queue будет 10 refresh вызовов
|
|
165
|
+
// С queue: только 1 refresh, остальные 9 ждут и используют новый токен
|
|
166
|
+
if (this.isRefreshing) {
|
|
167
|
+
console.log('⏳ [SDK] Refresh already in progress, adding request to queue');
|
|
168
|
+
return new Promise((resolve, reject) => {
|
|
169
|
+
this.requestQueue.push({ resolve, reject, config });
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
this.isRefreshing = true;
|
|
173
|
+
try {
|
|
174
|
+
// Вызываем getAuthToken для получения нового токена
|
|
175
|
+
// getAuthToken() внутри вызовет VS Code Auth API → тот вызовет provider.refreshToken()
|
|
176
|
+
// provider.refreshToken() → POST /api/v1/oauth/token → новая пара токенов
|
|
177
|
+
console.log('🔄 [SDK] Calling getAuthToken to refresh token...');
|
|
178
|
+
const newToken = await Promise.resolve(this.options.getAuthToken());
|
|
179
|
+
if (!newToken) {
|
|
180
|
+
throw new Error('Failed to get new auth token');
|
|
181
|
+
}
|
|
182
|
+
console.log(`✅ [SDK] Token refreshed successfully: ${newToken.substring(0, 10)}...`);
|
|
183
|
+
// Retry flow: обновляем header, обрабатываем queue, повторяем запрос
|
|
184
|
+
// ЗАЧЕМ processQueue ДО retry: Queued requests должны стартовать одновременно с текущим
|
|
185
|
+
// Иначе: текущий запрос выполнится → вернёт результат → только потом queue (медленно)
|
|
186
|
+
if (!config.headers) {
|
|
187
|
+
config.headers = {};
|
|
188
|
+
}
|
|
189
|
+
config.headers['Authorization'] = `Bearer ${newToken}`;
|
|
190
|
+
this.processQueue(newToken);
|
|
191
|
+
return this.axiosInstance(config);
|
|
192
|
+
}
|
|
193
|
+
catch (refreshError) {
|
|
194
|
+
console.error('❌ [SDK] Token refresh failed:', refreshError);
|
|
195
|
+
this.rejectQueue(refreshError);
|
|
196
|
+
throw new Error('Authentication failed. Please sign in again.');
|
|
197
|
+
}
|
|
198
|
+
finally {
|
|
199
|
+
// Cleanup: следующий 401 запустит новый refresh цикл
|
|
200
|
+
this.isRefreshing = false;
|
|
201
|
+
this.refreshPromise = null;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
101
204
|
// RETRY LOGIC: Если нет конфига запроса или это уже повторный запрос, или skipRetry установлен
|
|
102
205
|
if (!config || config._retryCount || config.skipRetry) {
|
|
103
206
|
throw mappedError;
|
|
@@ -131,16 +234,24 @@ class HttpClient {
|
|
|
131
234
|
let authHeaders = {};
|
|
132
235
|
if (this.options.getAuthToken) {
|
|
133
236
|
try {
|
|
237
|
+
console.log(`🔑 [SDK] request() calling getAuthToken for ${options.method} ${options.url}...`);
|
|
134
238
|
const token = await Promise.resolve(this.options.getAuthToken());
|
|
135
239
|
if (token) {
|
|
136
240
|
authHeaders['Authorization'] = `Bearer ${token}`;
|
|
241
|
+
console.log(`✅ [SDK] request() got token: ${token.substring(0, 10)}...${token.substring(token.length - 5)}`);
|
|
242
|
+
}
|
|
243
|
+
else {
|
|
244
|
+
console.warn(`⚠️ [SDK] request() getAuthToken returned null/undefined`);
|
|
137
245
|
}
|
|
138
246
|
}
|
|
139
247
|
catch (error) {
|
|
140
248
|
// Если не удалось получить токен, продолжаем без него
|
|
141
|
-
console.warn('⚠️ Failed to get auth token:', error);
|
|
249
|
+
console.warn('⚠️ [SDK] request() Failed to get auth token:', error);
|
|
142
250
|
}
|
|
143
251
|
}
|
|
252
|
+
else {
|
|
253
|
+
console.log(`🔍 [SDK] request() NO getAuthToken callback configured for ${options.method} ${options.url}`);
|
|
254
|
+
}
|
|
144
255
|
const axiosConfig = {
|
|
145
256
|
url: options.url,
|
|
146
257
|
method: options.method,
|
|
@@ -252,43 +363,80 @@ class HttpClient {
|
|
|
252
363
|
* @returns {Promise<Response>} Объект Response с потоком данных
|
|
253
364
|
*/
|
|
254
365
|
async postStream(url, data, headers) {
|
|
366
|
+
return this.executeStreamRequest(url, data, headers, false);
|
|
367
|
+
}
|
|
368
|
+
/**
|
|
369
|
+
* 🔐 Внутренний метод для выполнения stream запроса с поддержкой 401 retry
|
|
370
|
+
* @param isRetry - true если это повторная попытка после 401
|
|
371
|
+
*/
|
|
372
|
+
async executeStreamRequest(url, data, headers, isRetry = false) {
|
|
255
373
|
// Формируем полный URL правильно
|
|
256
374
|
const fullUrl = url.startsWith('http') ? url : `${this.baseURL}${url}`;
|
|
375
|
+
// 🔑 Динамическое получение токена перед stream запросом
|
|
376
|
+
let authHeaders = {};
|
|
377
|
+
if (this.options.getAuthToken) {
|
|
378
|
+
try {
|
|
379
|
+
console.log(`🔑 [SDK postStream] Calling getAuthToken${isRetry ? ' (RETRY after 401)' : ''}...`);
|
|
380
|
+
const token = await Promise.resolve(this.options.getAuthToken());
|
|
381
|
+
if (token) {
|
|
382
|
+
authHeaders['Authorization'] = `Bearer ${token}`;
|
|
383
|
+
console.log(`✅ [SDK postStream] Got token: ${token.substring(0, 10)}...${token.substring(token.length - 5)}`);
|
|
384
|
+
}
|
|
385
|
+
else {
|
|
386
|
+
console.warn('⚠️ [SDK postStream] getAuthToken returned null/undefined');
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
catch (error) {
|
|
390
|
+
console.warn('⚠️ [SDK postStream] Failed to get auth token:', error);
|
|
391
|
+
}
|
|
392
|
+
}
|
|
257
393
|
const requestHeaders = {
|
|
258
394
|
'Content-Type': 'application/json',
|
|
259
395
|
...this.options.headers,
|
|
396
|
+
...authHeaders, // ← Динамический токен имеет приоритет
|
|
260
397
|
...(headers || {})
|
|
261
398
|
};
|
|
262
|
-
//
|
|
263
|
-
|
|
264
|
-
//
|
|
265
|
-
if (
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
399
|
+
// Универсальная функция для выполнения fetch
|
|
400
|
+
const doFetch = async () => {
|
|
401
|
+
// Для Node.js среды используем нативный fetch если доступен, иначе node-fetch
|
|
402
|
+
if (this.environment === 'node') {
|
|
403
|
+
// Проверяем доступность нативного fetch (Node.js 18+)
|
|
404
|
+
if (typeof globalThis.fetch !== 'undefined') {
|
|
405
|
+
return globalThis.fetch(fullUrl, {
|
|
406
|
+
method: 'POST',
|
|
407
|
+
headers: requestHeaders,
|
|
408
|
+
body: JSON.stringify(data)
|
|
409
|
+
});
|
|
410
|
+
}
|
|
411
|
+
try {
|
|
412
|
+
// Fallback на node-fetch для старых версий Node.js
|
|
413
|
+
const { default: nodeFetch } = await Promise.resolve().then(() => __importStar(require('node-fetch')));
|
|
414
|
+
return nodeFetch(fullUrl, {
|
|
415
|
+
method: 'POST',
|
|
416
|
+
headers: requestHeaders,
|
|
417
|
+
body: JSON.stringify(data)
|
|
418
|
+
});
|
|
419
|
+
}
|
|
420
|
+
catch (error) {
|
|
421
|
+
console.error('Ошибка при загрузке node-fetch:', error);
|
|
422
|
+
throw new Error('Для использования потоковой передачи в Node.js необходимо установить node-fetch или использовать Node.js 18+');
|
|
423
|
+
}
|
|
284
424
|
}
|
|
425
|
+
// Для браузера используем нативный fetch
|
|
426
|
+
return fetch(fullUrl, {
|
|
427
|
+
method: 'POST',
|
|
428
|
+
headers: requestHeaders,
|
|
429
|
+
body: JSON.stringify(data)
|
|
430
|
+
});
|
|
431
|
+
};
|
|
432
|
+
const response = await doFetch();
|
|
433
|
+
// 🔐 401 INTERCEPTOR для stream запросов (fetch не проходит через axios interceptor)
|
|
434
|
+
if (response.status === 401 && !isRetry && this.options.getAuthToken) {
|
|
435
|
+
console.log('🔐 [SDK postStream] 401 Unauthorized detected, attempting token refresh...');
|
|
436
|
+
// Рекурсивный вызов с флагом retry
|
|
437
|
+
return this.executeStreamRequest(url, data, headers, true);
|
|
285
438
|
}
|
|
286
|
-
|
|
287
|
-
return fetch(fullUrl, {
|
|
288
|
-
method: 'POST',
|
|
289
|
-
headers: requestHeaders,
|
|
290
|
-
body: JSON.stringify(data)
|
|
291
|
-
});
|
|
439
|
+
return response;
|
|
292
440
|
}
|
|
293
441
|
/**
|
|
294
442
|
* Обрабатывает ошибки от Axios
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../../src/utils/http-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../../src/utils/http-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,12 +10,6 @@ function getEnvironment() {
|
|
|
10
10
|
? 'browser'
|
|
11
11
|
: 'node';
|
|
12
12
|
}
|
|
13
|
-
/**
|
|
14
|
-
* HTTP клиент для выполнения запросов к API
|
|
15
|
-
*
|
|
16
|
-
* Предоставляет методы для работы с REST API, включая обработку ошибок,
|
|
17
|
-
* повторные попытки и таймауты.
|
|
18
|
-
*/
|
|
19
13
|
export class HttpClient {
|
|
20
14
|
/**
|
|
21
15
|
* Создает новый HTTP клиент
|
|
@@ -23,6 +17,12 @@ export class HttpClient {
|
|
|
23
17
|
* @param {HttpClientOptions} [options] Опции для HTTP клиента
|
|
24
18
|
*/
|
|
25
19
|
constructor(baseURL, options = {}) {
|
|
20
|
+
/** 🔐 401 Interceptor: Request Queue для параллельных запросов */
|
|
21
|
+
this.requestQueue = [];
|
|
22
|
+
/** 🔐 401 Interceptor: Флаг выполнения refresh токена */
|
|
23
|
+
this.isRefreshing = false;
|
|
24
|
+
/** 🔐 401 Interceptor: Promise текущего refresh для синхронизации */
|
|
25
|
+
this.refreshPromise = null;
|
|
26
26
|
this.baseURL = baseURL;
|
|
27
27
|
this.options = {
|
|
28
28
|
headers: {
|
|
@@ -50,6 +50,33 @@ export class HttpClient {
|
|
|
50
50
|
// Добавляем интерцептор для обработки ошибок и повторных попыток
|
|
51
51
|
this.setupInterceptors();
|
|
52
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* 🔐 Retry всех запросов из очереди с новым токеном
|
|
55
|
+
* Вызывается после успешного refresh для обработки concurrent 401 requests
|
|
56
|
+
*/
|
|
57
|
+
processQueue(newToken) {
|
|
58
|
+
console.log(`🔄 [SDK] Processing ${this.requestQueue.length} queued requests with new token`);
|
|
59
|
+
this.requestQueue.forEach((queuedRequest) => {
|
|
60
|
+
if (!queuedRequest.config.headers) {
|
|
61
|
+
queuedRequest.config.headers = {};
|
|
62
|
+
}
|
|
63
|
+
queuedRequest.config.headers['Authorization'] = `Bearer ${newToken}`;
|
|
64
|
+
this.axiosInstance(queuedRequest.config)
|
|
65
|
+
.then((response) => queuedRequest.resolve(response))
|
|
66
|
+
.catch((error) => queuedRequest.reject(error));
|
|
67
|
+
});
|
|
68
|
+
this.requestQueue = [];
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* 🔐 Reject всех запросов из очереди при ошибке refresh
|
|
72
|
+
*/
|
|
73
|
+
rejectQueue(error) {
|
|
74
|
+
console.error(`❌ [SDK] Rejecting ${this.requestQueue.length} queued requests due to refresh failure`);
|
|
75
|
+
this.requestQueue.forEach((queuedRequest) => {
|
|
76
|
+
queuedRequest.reject(error);
|
|
77
|
+
});
|
|
78
|
+
this.requestQueue = [];
|
|
79
|
+
}
|
|
53
80
|
/**
|
|
54
81
|
* Настраивает интерцепторы Axios
|
|
55
82
|
*/
|
|
@@ -57,8 +84,84 @@ export class HttpClient {
|
|
|
57
84
|
// Интерцептор для ответов
|
|
58
85
|
this.axiosInstance.interceptors.response.use((response) => response.data, async (error) => {
|
|
59
86
|
const { config, response } = error;
|
|
87
|
+
// 🔍 ДИАГНОСТИКА: Логируем ВСЕ ошибки в interceptor
|
|
88
|
+
console.log('🔴 [SDK Interceptor] Error received:', {
|
|
89
|
+
status: response?.status,
|
|
90
|
+
url: config?.url,
|
|
91
|
+
method: config?.method,
|
|
92
|
+
hasConfig: !!config,
|
|
93
|
+
hasResponse: !!response,
|
|
94
|
+
_retry: config?._retry,
|
|
95
|
+
hasGetAuthToken: !!this.options.getAuthToken
|
|
96
|
+
});
|
|
60
97
|
// ✅ ЦЕНТРАЛИЗОВАННЫЙ МАППИНГ через ErrorMapper
|
|
61
98
|
const mappedError = ErrorMapper.mapError(error);
|
|
99
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
100
|
+
// 🔐 401 INTERCEPTOR: Автоматический refresh + retry
|
|
101
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
102
|
+
//
|
|
103
|
+
// МЕХАНИЗМ РАБОТЫ (стандартный OAuth 2.0 flow):
|
|
104
|
+
//
|
|
105
|
+
// 1. Клиент делает запрос с access token
|
|
106
|
+
// 2. Access token истёк → сервер вернул 401 Unauthorized
|
|
107
|
+
// 3. SDK перехватывает 401 → вызывает getAuthToken()
|
|
108
|
+
// 4. getAuthToken() делает refresh запрос (POST /oauth/token)
|
|
109
|
+
// 5. Сервер возвращает новую пару токенов (access + refresh)
|
|
110
|
+
// 6. SDK повторяет оригинальный запрос с новым access token
|
|
111
|
+
// 7. Запрос успешен → пользователь не видел ошибку
|
|
112
|
+
//
|
|
113
|
+
// ЗАЧЕМ: Без этого клиент получает 401 → показывает ошибку → требует re-login
|
|
114
|
+
//
|
|
115
|
+
// ЗАЩИТЫ:
|
|
116
|
+
// - config._retry → infinite loop protection (один retry на запрос)
|
|
117
|
+
// - isRefreshing + requestQueue → concurrent refresh protection (один refresh для N запросов)
|
|
118
|
+
// ═══════════════════════════════════════════════════════════════════════════
|
|
119
|
+
if (response?.status === 401 && config && !config._retry && this.options.getAuthToken) {
|
|
120
|
+
console.log('🔐 [SDK] 401 Unauthorized detected, attempting token refresh...');
|
|
121
|
+
// ЗАЧЕМ config._retry: Без этого при втором 401 получим infinite loop (401→refresh→401→refresh→...)
|
|
122
|
+
// Пример: Если refresh не помог (токен протух на сервере) - должны выбросить ошибку, а не зациклиться
|
|
123
|
+
config._retry = true;
|
|
124
|
+
// ⏳ Concurrent refresh protection: добавляем в queue если refresh уже выполняется
|
|
125
|
+
// ЗАЧЕМ: 10 параллельных запросов получили 401 одновременно → без queue будет 10 refresh вызовов
|
|
126
|
+
// С queue: только 1 refresh, остальные 9 ждут и используют новый токен
|
|
127
|
+
if (this.isRefreshing) {
|
|
128
|
+
console.log('⏳ [SDK] Refresh already in progress, adding request to queue');
|
|
129
|
+
return new Promise((resolve, reject) => {
|
|
130
|
+
this.requestQueue.push({ resolve, reject, config });
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
this.isRefreshing = true;
|
|
134
|
+
try {
|
|
135
|
+
// Вызываем getAuthToken для получения нового токена
|
|
136
|
+
// getAuthToken() внутри вызовет VS Code Auth API → тот вызовет provider.refreshToken()
|
|
137
|
+
// provider.refreshToken() → POST /api/v1/oauth/token → новая пара токенов
|
|
138
|
+
console.log('🔄 [SDK] Calling getAuthToken to refresh token...');
|
|
139
|
+
const newToken = await Promise.resolve(this.options.getAuthToken());
|
|
140
|
+
if (!newToken) {
|
|
141
|
+
throw new Error('Failed to get new auth token');
|
|
142
|
+
}
|
|
143
|
+
console.log(`✅ [SDK] Token refreshed successfully: ${newToken.substring(0, 10)}...`);
|
|
144
|
+
// Retry flow: обновляем header, обрабатываем queue, повторяем запрос
|
|
145
|
+
// ЗАЧЕМ processQueue ДО retry: Queued requests должны стартовать одновременно с текущим
|
|
146
|
+
// Иначе: текущий запрос выполнится → вернёт результат → только потом queue (медленно)
|
|
147
|
+
if (!config.headers) {
|
|
148
|
+
config.headers = {};
|
|
149
|
+
}
|
|
150
|
+
config.headers['Authorization'] = `Bearer ${newToken}`;
|
|
151
|
+
this.processQueue(newToken);
|
|
152
|
+
return this.axiosInstance(config);
|
|
153
|
+
}
|
|
154
|
+
catch (refreshError) {
|
|
155
|
+
console.error('❌ [SDK] Token refresh failed:', refreshError);
|
|
156
|
+
this.rejectQueue(refreshError);
|
|
157
|
+
throw new Error('Authentication failed. Please sign in again.');
|
|
158
|
+
}
|
|
159
|
+
finally {
|
|
160
|
+
// Cleanup: следующий 401 запустит новый refresh цикл
|
|
161
|
+
this.isRefreshing = false;
|
|
162
|
+
this.refreshPromise = null;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
62
165
|
// RETRY LOGIC: Если нет конфига запроса или это уже повторный запрос, или skipRetry установлен
|
|
63
166
|
if (!config || config._retryCount || config.skipRetry) {
|
|
64
167
|
throw mappedError;
|
|
@@ -92,16 +195,24 @@ export class HttpClient {
|
|
|
92
195
|
let authHeaders = {};
|
|
93
196
|
if (this.options.getAuthToken) {
|
|
94
197
|
try {
|
|
198
|
+
console.log(`🔑 [SDK] request() calling getAuthToken for ${options.method} ${options.url}...`);
|
|
95
199
|
const token = await Promise.resolve(this.options.getAuthToken());
|
|
96
200
|
if (token) {
|
|
97
201
|
authHeaders['Authorization'] = `Bearer ${token}`;
|
|
202
|
+
console.log(`✅ [SDK] request() got token: ${token.substring(0, 10)}...${token.substring(token.length - 5)}`);
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
console.warn(`⚠️ [SDK] request() getAuthToken returned null/undefined`);
|
|
98
206
|
}
|
|
99
207
|
}
|
|
100
208
|
catch (error) {
|
|
101
209
|
// Если не удалось получить токен, продолжаем без него
|
|
102
|
-
console.warn('⚠️ Failed to get auth token:', error);
|
|
210
|
+
console.warn('⚠️ [SDK] request() Failed to get auth token:', error);
|
|
103
211
|
}
|
|
104
212
|
}
|
|
213
|
+
else {
|
|
214
|
+
console.log(`🔍 [SDK] request() NO getAuthToken callback configured for ${options.method} ${options.url}`);
|
|
215
|
+
}
|
|
105
216
|
const axiosConfig = {
|
|
106
217
|
url: options.url,
|
|
107
218
|
method: options.method,
|
|
@@ -213,43 +324,80 @@ export class HttpClient {
|
|
|
213
324
|
* @returns {Promise<Response>} Объект Response с потоком данных
|
|
214
325
|
*/
|
|
215
326
|
async postStream(url, data, headers) {
|
|
327
|
+
return this.executeStreamRequest(url, data, headers, false);
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* 🔐 Внутренний метод для выполнения stream запроса с поддержкой 401 retry
|
|
331
|
+
* @param isRetry - true если это повторная попытка после 401
|
|
332
|
+
*/
|
|
333
|
+
async executeStreamRequest(url, data, headers, isRetry = false) {
|
|
216
334
|
// Формируем полный URL правильно
|
|
217
335
|
const fullUrl = url.startsWith('http') ? url : `${this.baseURL}${url}`;
|
|
336
|
+
// 🔑 Динамическое получение токена перед stream запросом
|
|
337
|
+
let authHeaders = {};
|
|
338
|
+
if (this.options.getAuthToken) {
|
|
339
|
+
try {
|
|
340
|
+
console.log(`🔑 [SDK postStream] Calling getAuthToken${isRetry ? ' (RETRY after 401)' : ''}...`);
|
|
341
|
+
const token = await Promise.resolve(this.options.getAuthToken());
|
|
342
|
+
if (token) {
|
|
343
|
+
authHeaders['Authorization'] = `Bearer ${token}`;
|
|
344
|
+
console.log(`✅ [SDK postStream] Got token: ${token.substring(0, 10)}...${token.substring(token.length - 5)}`);
|
|
345
|
+
}
|
|
346
|
+
else {
|
|
347
|
+
console.warn('⚠️ [SDK postStream] getAuthToken returned null/undefined');
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
catch (error) {
|
|
351
|
+
console.warn('⚠️ [SDK postStream] Failed to get auth token:', error);
|
|
352
|
+
}
|
|
353
|
+
}
|
|
218
354
|
const requestHeaders = {
|
|
219
355
|
'Content-Type': 'application/json',
|
|
220
356
|
...this.options.headers,
|
|
357
|
+
...authHeaders, // ← Динамический токен имеет приоритет
|
|
221
358
|
...(headers || {})
|
|
222
359
|
};
|
|
223
|
-
//
|
|
224
|
-
|
|
225
|
-
//
|
|
226
|
-
if (
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
360
|
+
// Универсальная функция для выполнения fetch
|
|
361
|
+
const doFetch = async () => {
|
|
362
|
+
// Для Node.js среды используем нативный fetch если доступен, иначе node-fetch
|
|
363
|
+
if (this.environment === 'node') {
|
|
364
|
+
// Проверяем доступность нативного fetch (Node.js 18+)
|
|
365
|
+
if (typeof globalThis.fetch !== 'undefined') {
|
|
366
|
+
return globalThis.fetch(fullUrl, {
|
|
367
|
+
method: 'POST',
|
|
368
|
+
headers: requestHeaders,
|
|
369
|
+
body: JSON.stringify(data)
|
|
370
|
+
});
|
|
371
|
+
}
|
|
372
|
+
try {
|
|
373
|
+
// Fallback на node-fetch для старых версий Node.js
|
|
374
|
+
const { default: nodeFetch } = await import('node-fetch');
|
|
375
|
+
return nodeFetch(fullUrl, {
|
|
376
|
+
method: 'POST',
|
|
377
|
+
headers: requestHeaders,
|
|
378
|
+
body: JSON.stringify(data)
|
|
379
|
+
});
|
|
380
|
+
}
|
|
381
|
+
catch (error) {
|
|
382
|
+
console.error('Ошибка при загрузке node-fetch:', error);
|
|
383
|
+
throw new Error('Для использования потоковой передачи в Node.js необходимо установить node-fetch или использовать Node.js 18+');
|
|
384
|
+
}
|
|
245
385
|
}
|
|
386
|
+
// Для браузера используем нативный fetch
|
|
387
|
+
return fetch(fullUrl, {
|
|
388
|
+
method: 'POST',
|
|
389
|
+
headers: requestHeaders,
|
|
390
|
+
body: JSON.stringify(data)
|
|
391
|
+
});
|
|
392
|
+
};
|
|
393
|
+
const response = await doFetch();
|
|
394
|
+
// 🔐 401 INTERCEPTOR для stream запросов (fetch не проходит через axios interceptor)
|
|
395
|
+
if (response.status === 401 && !isRetry && this.options.getAuthToken) {
|
|
396
|
+
console.log('🔐 [SDK postStream] 401 Unauthorized detected, attempting token refresh...');
|
|
397
|
+
// Рекурсивный вызов с флагом retry
|
|
398
|
+
return this.executeStreamRequest(url, data, headers, true);
|
|
246
399
|
}
|
|
247
|
-
|
|
248
|
-
return fetch(fullUrl, {
|
|
249
|
-
method: 'POST',
|
|
250
|
-
headers: requestHeaders,
|
|
251
|
-
body: JSON.stringify(data)
|
|
252
|
-
});
|
|
400
|
+
return response;
|
|
253
401
|
}
|
|
254
402
|
/**
|
|
255
403
|
* Обрабатывает ошибки от Axios
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../../src/utils/http-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../../src/utils/http-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,14 +2,9 @@ import { IHttpClient, HttpClientOptions, RequestOptions } from '../interfaces/ht
|
|
|
2
2
|
declare module 'axios' {
|
|
3
3
|
interface AxiosRequestConfig {
|
|
4
4
|
skipRetry?: boolean;
|
|
5
|
+
_retry?: boolean;
|
|
5
6
|
}
|
|
6
7
|
}
|
|
7
|
-
/**
|
|
8
|
-
* HTTP клиент для выполнения запросов к API
|
|
9
|
-
*
|
|
10
|
-
* Предоставляет методы для работы с REST API, включая обработку ошибок,
|
|
11
|
-
* повторные попытки и таймауты.
|
|
12
|
-
*/
|
|
13
8
|
export declare class HttpClient implements IHttpClient {
|
|
14
9
|
/** Базовый URL для запросов */
|
|
15
10
|
private readonly baseURL;
|
|
@@ -19,12 +14,27 @@ export declare class HttpClient implements IHttpClient {
|
|
|
19
14
|
private readonly axiosInstance;
|
|
20
15
|
/** Среда выполнения */
|
|
21
16
|
private readonly environment;
|
|
17
|
+
/** 🔐 401 Interceptor: Request Queue для параллельных запросов */
|
|
18
|
+
private requestQueue;
|
|
19
|
+
/** 🔐 401 Interceptor: Флаг выполнения refresh токена */
|
|
20
|
+
private isRefreshing;
|
|
21
|
+
/** 🔐 401 Interceptor: Promise текущего refresh для синхронизации */
|
|
22
|
+
private refreshPromise;
|
|
22
23
|
/**
|
|
23
24
|
* Создает новый HTTP клиент
|
|
24
25
|
* @param {string} baseURL Базовый URL для запросов
|
|
25
26
|
* @param {HttpClientOptions} [options] Опции для HTTP клиента
|
|
26
27
|
*/
|
|
27
28
|
constructor(baseURL: string, options?: HttpClientOptions);
|
|
29
|
+
/**
|
|
30
|
+
* 🔐 Retry всех запросов из очереди с новым токеном
|
|
31
|
+
* Вызывается после успешного refresh для обработки concurrent 401 requests
|
|
32
|
+
*/
|
|
33
|
+
private processQueue;
|
|
34
|
+
/**
|
|
35
|
+
* 🔐 Reject всех запросов из очереди при ошибке refresh
|
|
36
|
+
*/
|
|
37
|
+
private rejectQueue;
|
|
28
38
|
/**
|
|
29
39
|
* Настраивает интерцепторы Axios
|
|
30
40
|
*/
|
|
@@ -83,6 +93,11 @@ export declare class HttpClient implements IHttpClient {
|
|
|
83
93
|
* @returns {Promise<Response>} Объект Response с потоком данных
|
|
84
94
|
*/
|
|
85
95
|
postStream(url: string, data?: any, headers?: Record<string, string>): Promise<Response>;
|
|
96
|
+
/**
|
|
97
|
+
* 🔐 Внутренний метод для выполнения stream запроса с поддержкой 401 retry
|
|
98
|
+
* @param isRetry - true если это повторная попытка после 401
|
|
99
|
+
*/
|
|
100
|
+
private executeStreamRequest;
|
|
86
101
|
/**
|
|
87
102
|
* Обрабатывает ошибки от Axios
|
|
88
103
|
* @param {any} error Ошибка от Axios
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../../src/utils/http-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,EAAgB,MAAM,8BAA8B,CAAC;AAK5G,OAAO,QAAQ,OAAO,CAAC;IACrB,UAAiB,kBAAkB;QACjC,SAAS,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../../src/utils/http-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,EAAgB,MAAM,8BAA8B,CAAC;AAK5G,OAAO,QAAQ,OAAO,CAAC;IACrB,UAAiB,kBAAkB;QACjC,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB;CACF;AA2BD,qBAAa,UAAW,YAAW,WAAW;IAC5C,+BAA+B;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC,yBAAyB;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAE5C,oBAAoB;IACpB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAE9C,uBAAuB;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IAEjD,kEAAkE;IAClE,OAAO,CAAC,YAAY,CAAuB;IAE3C,yDAAyD;IACzD,OAAO,CAAC,YAAY,CAAkB;IAEtC,qEAAqE;IACrE,OAAO,CAAC,cAAc,CAAuC;IAE7D;;;;OAIG;gBACS,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB;IAgC5D;;;OAGG;IACH,OAAO,CAAC,YAAY;IAiBpB;;OAEG;IACH,OAAO,CAAC,WAAW;IAUnB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAoIzB;;;;OAIG;IACU,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IAmDlE;;;;;;OAMG;IACU,GAAG,CAAC,CAAC,GAAG,GAAG,EACtB,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;IASb;;;;;;OAMG;IACU,IAAI,CAAC,CAAC,GAAG,GAAG,EACvB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,GAAG,EACV,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;IASb;;;;;;OAMG;IACU,GAAG,CAAC,CAAC,GAAG,GAAG,EACtB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,GAAG,EACV,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;IASb;;;;;;OAMG;IACU,MAAM,CAAC,CAAC,GAAG,GAAG,EACzB,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;IASb;;;;;;OAMG;IACU,KAAK,CAAC,CAAC,GAAG,GAAG,EACxB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,GAAG,EACV,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;IASb;;;;;;OAMG;IACU,UAAU,CACrB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,GAAG,EACV,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,QAAQ,CAAC;IAIpB;;;OAGG;YACW,oBAAoB;IAkFlC;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAiFnB;;OAEG;IACH,IAAW,WAAW,IAAI,GAAG,CAE5B;IAED;;;OAGG;IACI,UAAU,IAAI,MAAM;CAG5B"}
|