solver-sdk 8.3.0 → 8.3.1

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 CHANGED
@@ -1,23 +1,13 @@
1
- # Code Solver SDK v8.2.0
1
+ # Code Solver SDK v8.3.1
2
2
 
3
3
  AI-powered code analysis SDK with WorkCoins billing system. 100% typed, production ready.
4
4
 
5
5
  ## Install
6
6
 
7
7
  ```bash
8
- npm install solver-sdk@8.2.0
8
+ npm install solver-sdk@8.3.1
9
9
  ```
10
10
 
11
- ## ✨ What's New in v8.2.0
12
-
13
- **Centralized Error Handling** - Full typed error system with 15+ error classes:
14
- - 🎯 **Typed exceptions** instead of `null` returns
15
- - 🔍 **TypeScript autocomplete** for all error types
16
- - 🛡️ **Better debugging** with `requestId`, `timestamp`, `details`
17
- - ✅ **Backward compatible** - existing code continues to work
18
-
19
- See [Error Handling](#error-handling) section for details.
20
-
21
11
  ## Quick Start
22
12
 
23
13
  ```typescript
@@ -117,7 +107,7 @@ sdk.projectSync.on('sync-completed', (data) => {
117
107
 
118
108
  ## Error Handling
119
109
 
120
- **v8.2.0+** All SDK methods throw typed exceptions instead of returning `null`. This enables better error handling with TypeScript autocomplete.
110
+ All SDK methods throw typed exceptions instead of returning `null`. This enables better error handling with TypeScript autocomplete and proper error recovery.
121
111
 
122
112
  ### Available Error Types
123
113
 
@@ -219,18 +209,21 @@ try {
219
209
  ]);
220
210
  } catch (error) {
221
211
  if (error instanceof LimitExceededError) {
222
- console.log('Usage limit exceeded!');
223
- console.log(`Type: ${error.statusType}`); // e.g. 'debt_limit_exceeded'
212
+ console.log('WorkCoins exceeded!');
213
+ console.log(`Message: ${error.message}`); // 'WorkCoins исчерпаны. Купите тариф...'
224
214
  console.log(`Blocked: ${error.isBlocked()}`); // true/false
225
215
 
216
+ // Action recommendation
226
217
  if (error.action) {
227
- console.log(`Action: ${error.action.suggestion}`);
228
- console.log(`URL: ${error.getActionUrl()}`);
218
+ console.log(`Action: ${error.action.type}`); // 'upgrade' | 'enable_overage'
219
+ console.log(`Suggestion: ${error.action.suggestion}`);
220
+ console.log(`URL: ${error.action.url}`);
229
221
  }
230
222
 
223
+ // Balance details
231
224
  if (error.balance) {
232
- console.log(`Balance: ${error.balance.currentRub}₽`);
233
- console.log(`Required topup: ${error.balance.requiredTopup}₽`);
225
+ console.log(`Used: ${error.balance.percentUsed}%`);
226
+ console.log(`Credits: ${error.balance.creditsUsed}/${error.balance.creditsLimit}`);
234
227
  }
235
228
  }
236
229
  }
@@ -32,13 +32,17 @@ class ErrorMapper {
32
32
  originalError: axiosError,
33
33
  };
34
34
  // 2. Специальные случаи (приоритет - проверяем первыми)
35
- // LimitExceededError: 403 + usage_limit_exceeded
36
- if (status === 403 && (data.details?.error === 'usage_limit_exceeded' || data.error === 'credits_limit_exceeded')) {
37
- return new sdk_errors_js_1.LimitExceededError(data);
35
+ // LimitExceededError: 403 + credits_limit_exceeded (новая структура бэкенда)
36
+ // Backend отправляет: { success: false, error: { type, message, details: { balance, action } } }
37
+ if (status === 403 && (errorType === 'credits_limit_exceeded' ||
38
+ errorType === 'usage_limit_exceeded' ||
39
+ errorType === 'overage_limit_exceeded')) {
40
+ // Передаем data.error, т.к. LimitExceededError ожидает { message, details }
41
+ return new sdk_errors_js_1.LimitExceededError(data.error || data);
38
42
  }
39
43
  // RateLimitError: 429
40
44
  if (status === 429) {
41
- return new sdk_errors_js_1.RateLimitError(data);
45
+ return new sdk_errors_js_1.RateLimitError(data.error || data);
42
46
  }
43
47
  // 3. Маппинг по errorType из backend
44
48
  switch (errorType) {
@@ -65,10 +69,10 @@ class ErrorMapper {
65
69
  case 'service_unavailable':
66
70
  return new sdk_errors_js_1.ServiceUnavailableError(message, details);
67
71
  case 'rate_limit_exceeded':
68
- return new sdk_errors_js_1.RateLimitError(data);
72
+ return new sdk_errors_js_1.RateLimitError(data.error || data);
69
73
  case 'usage_limit_exceeded':
70
74
  case 'credits_limit_exceeded':
71
- return new sdk_errors_js_1.LimitExceededError(data);
75
+ return new sdk_errors_js_1.LimitExceededError(data.error || data);
72
76
  default:
73
77
  // 4. Fallback по HTTP статусу
74
78
  return this.mapByStatusCode(status, message, details);
@@ -129,7 +133,8 @@ class ErrorMapper {
129
133
  return new sdk_errors_js_1.TimeoutError(message, details);
130
134
  }
131
135
  if (status === 429) {
132
- return new sdk_errors_js_1.RateLimitError(details);
136
+ // В details уже есть все данные response (включая error если есть)
137
+ return new sdk_errors_js_1.RateLimitError(details.error || details);
133
138
  }
134
139
  // 5xx Server Errors
135
140
  if (status === 503) {
@@ -1 +1 @@
1
- {"version":3,"file":"error-mapper.js","sourceRoot":"","sources":["../../../src/utils/error-mapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"error-mapper.js","sourceRoot":"","sources":["../../../src/utils/error-mapper.ts"],"names":[],"mappings":"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"}
@@ -29,13 +29,17 @@ export class ErrorMapper {
29
29
  originalError: axiosError,
30
30
  };
31
31
  // 2. Специальные случаи (приоритет - проверяем первыми)
32
- // LimitExceededError: 403 + usage_limit_exceeded
33
- if (status === 403 && (data.details?.error === 'usage_limit_exceeded' || data.error === 'credits_limit_exceeded')) {
34
- return new LimitExceededError(data);
32
+ // LimitExceededError: 403 + credits_limit_exceeded (новая структура бэкенда)
33
+ // Backend отправляет: { success: false, error: { type, message, details: { balance, action } } }
34
+ if (status === 403 && (errorType === 'credits_limit_exceeded' ||
35
+ errorType === 'usage_limit_exceeded' ||
36
+ errorType === 'overage_limit_exceeded')) {
37
+ // Передаем data.error, т.к. LimitExceededError ожидает { message, details }
38
+ return new LimitExceededError(data.error || data);
35
39
  }
36
40
  // RateLimitError: 429
37
41
  if (status === 429) {
38
- return new RateLimitError(data);
42
+ return new RateLimitError(data.error || data);
39
43
  }
40
44
  // 3. Маппинг по errorType из backend
41
45
  switch (errorType) {
@@ -62,10 +66,10 @@ export class ErrorMapper {
62
66
  case 'service_unavailable':
63
67
  return new ServiceUnavailableError(message, details);
64
68
  case 'rate_limit_exceeded':
65
- return new RateLimitError(data);
69
+ return new RateLimitError(data.error || data);
66
70
  case 'usage_limit_exceeded':
67
71
  case 'credits_limit_exceeded':
68
- return new LimitExceededError(data);
72
+ return new LimitExceededError(data.error || data);
69
73
  default:
70
74
  // 4. Fallback по HTTP статусу
71
75
  return this.mapByStatusCode(status, message, details);
@@ -126,7 +130,8 @@ export class ErrorMapper {
126
130
  return new TimeoutError(message, details);
127
131
  }
128
132
  if (status === 429) {
129
- return new RateLimitError(details);
133
+ // В details уже есть все данные response (включая error если есть)
134
+ return new RateLimitError(details.error || details);
130
135
  }
131
136
  // 5xx Server Errors
132
137
  if (status === 503) {
@@ -1 +1 @@
1
- {"version":3,"file":"error-mapper.js","sourceRoot":"","sources":["../../../src/utils/error-mapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"error-mapper.js","sourceRoot":"","sources":["../../../src/utils/error-mapper.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"error-mapper.d.ts","sourceRoot":"","sources":["../../../src/utils/error-mapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAoBH;;GAEG;AACH,qBAAa,WAAW;IACtB;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,GAAG,KAAK;IAkFvC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAe7B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;CAyC/B"}
1
+ {"version":3,"file":"error-mapper.d.ts","sourceRoot":"","sources":["../../../src/utils/error-mapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAoBH;;GAEG;AACH,qBAAa,WAAW;IACtB;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,GAAG,KAAK;IAwFvC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAe7B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;CA0C/B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "solver-sdk",
3
- "version": "8.3.0",
3
+ "version": "8.3.1",
4
4
  "description": "SDK for WorkAI API - AI-powered code analysis with WorkCoins billing system",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",