solver-sdk 8.1.0 → 8.2.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 +84 -14
- package/dist/cjs/api/credits-api.js +31 -11
- package/dist/cjs/api/credits-api.js.map +1 -1
- package/dist/cjs/errors/sdk-errors.js +216 -0
- package/dist/cjs/errors/sdk-errors.js.map +1 -0
- package/dist/cjs/index.js +20 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/utils/error-mapper.js +149 -0
- package/dist/cjs/utils/error-mapper.js.map +1 -0
- package/dist/cjs/utils/http-client.js +9 -37
- package/dist/cjs/utils/http-client.js.map +1 -1
- package/dist/esm/api/credits-api.js +31 -11
- package/dist/esm/api/credits-api.js.map +1 -1
- package/dist/esm/errors/sdk-errors.js +198 -0
- package/dist/esm/errors/sdk-errors.js.map +1 -0
- package/dist/esm/index.js +4 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/utils/error-mapper.js +145 -0
- package/dist/esm/utils/error-mapper.js.map +1 -0
- package/dist/esm/utils/http-client.js +9 -37
- package/dist/esm/utils/http-client.js.map +1 -1
- package/dist/types/api/credits-api.d.ts +24 -4
- package/dist/types/api/credits-api.d.ts.map +1 -1
- package/dist/types/errors/sdk-errors.d.ts +156 -0
- package/dist/types/errors/sdk-errors.d.ts.map +1 -0
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/interfaces/http-client.d.ts +0 -9
- package/dist/types/interfaces/http-client.d.ts.map +1 -1
- package/dist/types/types/index.d.ts +1 -1
- package/dist/types/types/index.d.ts.map +1 -1
- package/dist/types/utils/error-mapper.d.ts +24 -0
- package/dist/types/utils/error-mapper.d.ts.map +1 -0
- package/dist/types/utils/http-client.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/cjs/errors/limit-errors.js +0 -80
- package/dist/cjs/errors/limit-errors.js.map +0 -1
- package/dist/esm/errors/limit-errors.js +0 -74
- package/dist/esm/errors/limit-errors.js.map +0 -1
- package/dist/types/errors/limit-errors.d.ts +0 -61
- package/dist/types/errors/limit-errors.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -1,13 +1,23 @@
|
|
|
1
|
-
# Code Solver SDK v8.
|
|
1
|
+
# Code Solver SDK v8.2.0
|
|
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.
|
|
8
|
+
npm install solver-sdk@8.2.0
|
|
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
|
+
|
|
11
21
|
## Quick Start
|
|
12
22
|
|
|
13
23
|
```typescript
|
|
@@ -62,7 +72,9 @@ const sdk = await CodeSolverSDK.create({
|
|
|
62
72
|
getAuthToken: async () => 'your-token'
|
|
63
73
|
});
|
|
64
74
|
|
|
65
|
-
// Production with token refresh
|
|
75
|
+
// Production with token refresh + error handling
|
|
76
|
+
import { AuthenticationError } from 'solver-sdk';
|
|
77
|
+
|
|
66
78
|
const sdk = await CodeSolverSDK.create({
|
|
67
79
|
baseURL: 'https://api.example.com',
|
|
68
80
|
getAuthToken: async () => {
|
|
@@ -72,6 +84,16 @@ const sdk = await CodeSolverSDK.create({
|
|
|
72
84
|
return getToken();
|
|
73
85
|
}
|
|
74
86
|
});
|
|
87
|
+
|
|
88
|
+
// All methods throw AuthenticationError on 401
|
|
89
|
+
try {
|
|
90
|
+
await sdk.user.getProfile();
|
|
91
|
+
} catch (error) {
|
|
92
|
+
if (error instanceof AuthenticationError) {
|
|
93
|
+
await refreshToken();
|
|
94
|
+
// retry
|
|
95
|
+
}
|
|
96
|
+
}
|
|
75
97
|
```
|
|
76
98
|
|
|
77
99
|
## WebSocket (Real-time)
|
|
@@ -95,26 +117,74 @@ sdk.projectSync.on('sync-completed', (data) => {
|
|
|
95
117
|
|
|
96
118
|
## Error Handling
|
|
97
119
|
|
|
98
|
-
|
|
120
|
+
**v8.2.0+** All SDK methods throw typed exceptions instead of returning `null`. This enables better error handling with TypeScript autocomplete.
|
|
99
121
|
|
|
100
|
-
|
|
122
|
+
### Available Error Types
|
|
101
123
|
|
|
102
124
|
```typescript
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
//
|
|
106
|
-
|
|
125
|
+
import {
|
|
126
|
+
// Auth errors
|
|
127
|
+
AuthenticationError, // 401 - token expired/invalid
|
|
128
|
+
ForbiddenError, // 403 - access denied
|
|
129
|
+
|
|
130
|
+
// Client errors
|
|
131
|
+
ValidationError, // 422 - invalid data
|
|
132
|
+
NotFoundError, // 404 - resource not found
|
|
133
|
+
ConflictError, // 409 - data conflict
|
|
134
|
+
BadRequestError, // 400 - bad request
|
|
135
|
+
|
|
136
|
+
// Server errors
|
|
137
|
+
InternalServerError, // 500 - server error
|
|
138
|
+
ServiceUnavailableError, // 503 - service down
|
|
139
|
+
GatewayTimeoutError, // 504 - timeout
|
|
140
|
+
|
|
141
|
+
// Special errors
|
|
142
|
+
LimitExceededError, // 403 - credits limit exceeded
|
|
143
|
+
RateLimitError, // 429 - too many requests
|
|
144
|
+
NetworkError, // 0 - network failure
|
|
145
|
+
TimeoutError, // 408 - request timeout
|
|
146
|
+
DatabaseError // 400 - database error
|
|
147
|
+
} from 'solver-sdk';
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### Basic Error Handling
|
|
151
|
+
|
|
152
|
+
```typescript
|
|
153
|
+
try {
|
|
154
|
+
const status = await sdk.credits.getStatus();
|
|
155
|
+
console.log(status.balance);
|
|
156
|
+
|
|
157
|
+
} catch (error) {
|
|
158
|
+
// All errors have common properties:
|
|
159
|
+
console.log(error.statusCode); // HTTP status code
|
|
160
|
+
console.log(error.errorType); // Error type string
|
|
161
|
+
console.log(error.requestId); // For correlation with backend logs
|
|
162
|
+
console.log(error.timestamp); // When error occurred
|
|
163
|
+
console.log(error.rawResponse); // Full backend response
|
|
107
164
|
}
|
|
165
|
+
```
|
|
108
166
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
}
|
|
167
|
+
### Auth Error Handling
|
|
168
|
+
|
|
169
|
+
```typescript
|
|
170
|
+
import { AuthenticationError } from 'solver-sdk';
|
|
171
|
+
|
|
172
|
+
try {
|
|
173
|
+
const balance = await sdk.credits.getBalance();
|
|
174
|
+
} catch (error) {
|
|
175
|
+
if (error instanceof AuthenticationError) {
|
|
176
|
+
// Token expired or invalid
|
|
177
|
+
console.log('Token expired, refreshing...');
|
|
178
|
+
await refreshToken();
|
|
179
|
+
// Retry the request
|
|
180
|
+
return retry();
|
|
181
|
+
}
|
|
182
|
+
}
|
|
113
183
|
```
|
|
114
184
|
|
|
115
185
|
### Usage Limits & Rate Limiting
|
|
116
186
|
|
|
117
|
-
SDK
|
|
187
|
+
SDK provides specialized error classes for limits:
|
|
118
188
|
|
|
119
189
|
#### Checking Limit Status
|
|
120
190
|
|
|
@@ -13,19 +13,24 @@ class CreditsApi {
|
|
|
13
13
|
* Получить баланс credits (WorkCoins)
|
|
14
14
|
*
|
|
15
15
|
* @returns Текущий баланс credits пользователя
|
|
16
|
-
* @throws {
|
|
16
|
+
* @throws {AuthenticationError} При истекшем или невалидном access token (401)
|
|
17
|
+
* @throws {ForbiddenError} При отсутствии доступа (403)
|
|
18
|
+
* @throws {InternalServerError} При ошибке сервера (500)
|
|
17
19
|
*/
|
|
18
20
|
async getBalance() {
|
|
19
|
-
return await this.httpClient.get('/api/credits/balance');
|
|
21
|
+
return await this.httpClient.get('/api/v1/credits/balance');
|
|
20
22
|
}
|
|
21
23
|
/**
|
|
22
24
|
* Получить статус credits (с рекомендациями)
|
|
23
25
|
*
|
|
24
26
|
* @returns Статус credits и рекомендации
|
|
25
|
-
* @throws {
|
|
27
|
+
* @throws {AuthenticationError} При истекшем или невалидном access token (401)
|
|
28
|
+
* @throws {ForbiddenError} При отсутствии доступа (403)
|
|
29
|
+
* @throws {LimitExceededError} При превышении лимита credits
|
|
30
|
+
* @throws {InternalServerError} При ошибке сервера (500)
|
|
26
31
|
*/
|
|
27
32
|
async getStatus() {
|
|
28
|
-
return await this.httpClient.get('/api/credits/status');
|
|
33
|
+
return await this.httpClient.get('/api/v1/credits/status');
|
|
29
34
|
}
|
|
30
35
|
/**
|
|
31
36
|
* Оценить стоимость операции в credits (WorkCoins) до выполнения
|
|
@@ -34,9 +39,12 @@ class CreditsApi {
|
|
|
34
39
|
* @param model - Модель (haiku/sonnet/auto)
|
|
35
40
|
* @param operationType - Тип операции
|
|
36
41
|
* @returns Оценка стоимости в credits (WorkCoins)
|
|
42
|
+
* @throws {AuthenticationError} При истекшем или невалидном access token (401)
|
|
43
|
+
* @throws {ValidationError} При некорректных параметрах запроса (422)
|
|
44
|
+
* @throws {InternalServerError} При ошибке сервера (500)
|
|
37
45
|
*/
|
|
38
46
|
async estimate(tokens, model = 'haiku', operationType = 'simple_prompt') {
|
|
39
|
-
return await this.httpClient.post('/api/credits/estimate', {
|
|
47
|
+
return await this.httpClient.post('/api/v1/credits/estimate', {
|
|
40
48
|
tokens,
|
|
41
49
|
model,
|
|
42
50
|
operationType,
|
|
@@ -46,35 +54,47 @@ class CreditsApi {
|
|
|
46
54
|
* Получить конфигурацию overage (pay-as-you-go)
|
|
47
55
|
*
|
|
48
56
|
* @returns Настройки overage пользователя
|
|
57
|
+
* @throws {AuthenticationError} При истекшем или невалидном access token (401)
|
|
58
|
+
* @throws {ForbiddenError} При отсутствии доступа (403)
|
|
59
|
+
* @throws {InternalServerError} При ошибке сервера (500)
|
|
49
60
|
*/
|
|
50
61
|
async getOverageConfig() {
|
|
51
|
-
return await this.httpClient.get('/api/credits/overage');
|
|
62
|
+
return await this.httpClient.get('/api/v1/credits/overage');
|
|
52
63
|
}
|
|
53
64
|
/**
|
|
54
65
|
* Получить статистику overage за текущий месяц
|
|
55
66
|
*
|
|
56
67
|
* @returns Статистика использования overage
|
|
68
|
+
* @throws {AuthenticationError} При истекшем или невалидном access token (401)
|
|
69
|
+
* @throws {ForbiddenError} При отсутствии доступа (403)
|
|
70
|
+
* @throws {InternalServerError} При ошибке сервера (500)
|
|
57
71
|
*/
|
|
58
72
|
async getOverageStats() {
|
|
59
|
-
return await this.httpClient.get('/api/credits/overage/stats');
|
|
73
|
+
return await this.httpClient.get('/api/v1/credits/overage/stats');
|
|
60
74
|
}
|
|
61
75
|
/**
|
|
62
76
|
* Включить/выключить overage
|
|
63
77
|
*
|
|
64
78
|
* @param enabled - true для включения, false для выключения
|
|
65
|
-
* @throws {
|
|
79
|
+
* @throws {AuthenticationError} При истекшем или невалидном access token (401)
|
|
80
|
+
* @throws {ForbiddenError} Если пользователь на Free плане (403)
|
|
81
|
+
* @throws {ValidationError} При некорректных параметрах (422)
|
|
82
|
+
* @throws {InternalServerError} При ошибке сервера (500)
|
|
66
83
|
*/
|
|
67
84
|
async toggleOverage(enabled) {
|
|
68
|
-
await this.httpClient.post('/api/credits/overage/toggle', { enabled });
|
|
85
|
+
await this.httpClient.post('/api/v1/credits/overage/toggle', { enabled });
|
|
69
86
|
}
|
|
70
87
|
/**
|
|
71
88
|
* Обновить лимит overage
|
|
72
89
|
*
|
|
73
90
|
* @param limitCredits - Новый лимит overage в credits
|
|
74
|
-
* @throws {
|
|
91
|
+
* @throws {AuthenticationError} При истекшем или невалидном access token (401)
|
|
92
|
+
* @throws {BadRequestError} Если лимит некорректный (400)
|
|
93
|
+
* @throws {ValidationError} При ошибке валидации (422)
|
|
94
|
+
* @throws {InternalServerError} При ошибке сервера (500)
|
|
75
95
|
*/
|
|
76
96
|
async updateOverageLimit(limitCredits) {
|
|
77
|
-
await this.httpClient.post('/api/credits/overage/limit', { limitCredits });
|
|
97
|
+
await this.httpClient.post('/api/v1/credits/overage/limit', { limitCredits });
|
|
78
98
|
}
|
|
79
99
|
}
|
|
80
100
|
exports.CreditsApi = CreditsApi;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credits-api.js","sourceRoot":"","sources":["../../../src/api/credits-api.ts"],"names":[],"mappings":";;;AAWA;;;GAGG;AACH,MAAa,UAAU;IACrB,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAE9C
|
|
1
|
+
{"version":3,"file":"credits-api.js","sourceRoot":"","sources":["../../../src/api/credits-api.ts"],"names":[],"mappings":";;;AAWA;;;GAGG;AACH,MAAa,UAAU;IACrB,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAE9C;;;;;;;OAOG;IACH,KAAK,CAAC,UAAU;QACd,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAiB,yBAAyB,CAAC,CAAC;IAC9E,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,SAAS;QACb,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAgB,wBAAwB,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,QAAQ,CACZ,MAAc,EACd,QAAmB,OAAO,EAC1B,gBAA+B,eAAe;QAE9C,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAkB,0BAA0B,EAAE;YAC7E,MAAM;YACN,KAAK;YACL,aAAa;SACd,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,gBAAgB;QACpB,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAgB,yBAAyB,CAAC,CAAC;IAC7E,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,eAAe;QACnB,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAe,+BAA+B,CAAC,CAAC;IAClF,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,aAAa,CAAC,OAAgB;QAClC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,gCAAgC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,kBAAkB,CAAC,YAAoB;QAC3C,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,+BAA+B,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;IAChF,CAAC;CACF;AApGD,gCAoGC"}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Централизованные классы ошибок SDK
|
|
4
|
+
* Покрывают все типы ошибок backend с типизацией
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.RateLimitError = exports.LimitExceededError = exports.NetworkError = exports.TimeoutError = exports.DatabaseError = exports.GatewayTimeoutError = exports.ServiceUnavailableError = exports.InternalServerError = exports.BadRequestError = exports.ConflictError = exports.NotFoundError = exports.ValidationError = exports.ForbiddenError = exports.AuthenticationError = exports.BaseSDKError = void 0;
|
|
8
|
+
/**
|
|
9
|
+
* Базовый класс для всех SDK ошибок
|
|
10
|
+
*/
|
|
11
|
+
class BaseSDKError extends Error {
|
|
12
|
+
constructor(statusCode, errorType, message, details) {
|
|
13
|
+
super(message);
|
|
14
|
+
this.name = this.constructor.name;
|
|
15
|
+
this.statusCode = statusCode;
|
|
16
|
+
this.errorType = errorType;
|
|
17
|
+
this.requestId = details?.requestId;
|
|
18
|
+
this.timestamp = details?.timestamp;
|
|
19
|
+
this.rawResponse = details;
|
|
20
|
+
// Поддержка stack trace в V8
|
|
21
|
+
if (Error.captureStackTrace) {
|
|
22
|
+
Error.captureStackTrace(this, this.constructor);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.BaseSDKError = BaseSDKError;
|
|
27
|
+
// ========================================
|
|
28
|
+
// CLIENT ERRORS (4xx)
|
|
29
|
+
// ========================================
|
|
30
|
+
/**
|
|
31
|
+
* Ошибка аутентификации (401)
|
|
32
|
+
* Выбрасывается при истекшем или невалидном access token
|
|
33
|
+
*/
|
|
34
|
+
class AuthenticationError extends BaseSDKError {
|
|
35
|
+
constructor(message, details) {
|
|
36
|
+
super(401, 'unauthorized', message, details);
|
|
37
|
+
/** Можно ли повторить запрос после refresh токена */
|
|
38
|
+
this.shouldRetry = true;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.AuthenticationError = AuthenticationError;
|
|
42
|
+
/**
|
|
43
|
+
* Ошибка доступа (403)
|
|
44
|
+
* Выбрасывается когда доступ запрещен (не путать с LimitExceededError)
|
|
45
|
+
*/
|
|
46
|
+
class ForbiddenError extends BaseSDKError {
|
|
47
|
+
constructor(message, details) {
|
|
48
|
+
super(403, 'forbidden', message, details);
|
|
49
|
+
this.reason = details?.reason;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.ForbiddenError = ForbiddenError;
|
|
53
|
+
/**
|
|
54
|
+
* Ошибка валидации (422)
|
|
55
|
+
* Выбрасывается при невалидных данных в запросе
|
|
56
|
+
*/
|
|
57
|
+
class ValidationError extends BaseSDKError {
|
|
58
|
+
constructor(message, details) {
|
|
59
|
+
super(422, 'validation_error', message, details);
|
|
60
|
+
this.fields = details?.fields;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
exports.ValidationError = ValidationError;
|
|
64
|
+
/**
|
|
65
|
+
* Ресурс не найден (404)
|
|
66
|
+
*/
|
|
67
|
+
class NotFoundError extends BaseSDKError {
|
|
68
|
+
constructor(message, details) {
|
|
69
|
+
super(404, 'not_found', message, details);
|
|
70
|
+
this.resource = details?.resource;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
exports.NotFoundError = NotFoundError;
|
|
74
|
+
/**
|
|
75
|
+
* Конфликт данных (409)
|
|
76
|
+
* Выбрасывается при попытке создать дубликат или конфликтующую запись
|
|
77
|
+
*/
|
|
78
|
+
class ConflictError extends BaseSDKError {
|
|
79
|
+
constructor(message, details) {
|
|
80
|
+
super(409, 'conflict', message, details);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
exports.ConflictError = ConflictError;
|
|
84
|
+
/**
|
|
85
|
+
* Некорректный запрос (400)
|
|
86
|
+
*/
|
|
87
|
+
class BadRequestError extends BaseSDKError {
|
|
88
|
+
constructor(message, details) {
|
|
89
|
+
super(400, 'bad_request', message, details);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
exports.BadRequestError = BadRequestError;
|
|
93
|
+
// ========================================
|
|
94
|
+
// SERVER ERRORS (5xx)
|
|
95
|
+
// ========================================
|
|
96
|
+
/**
|
|
97
|
+
* Внутренняя ошибка сервера (500)
|
|
98
|
+
*/
|
|
99
|
+
class InternalServerError extends BaseSDKError {
|
|
100
|
+
constructor(message, details) {
|
|
101
|
+
super(500, 'internal_server_error', message, details);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
exports.InternalServerError = InternalServerError;
|
|
105
|
+
/**
|
|
106
|
+
* Сервис недоступен (503)
|
|
107
|
+
*/
|
|
108
|
+
class ServiceUnavailableError extends BaseSDKError {
|
|
109
|
+
constructor(message, details) {
|
|
110
|
+
super(503, 'service_unavailable', message, details);
|
|
111
|
+
this.retryAfter = details?.retryAfter;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
exports.ServiceUnavailableError = ServiceUnavailableError;
|
|
115
|
+
/**
|
|
116
|
+
* Таймаут gateway (504)
|
|
117
|
+
*/
|
|
118
|
+
class GatewayTimeoutError extends BaseSDKError {
|
|
119
|
+
constructor(message, details) {
|
|
120
|
+
super(504, 'gateway_timeout', message, details);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
exports.GatewayTimeoutError = GatewayTimeoutError;
|
|
124
|
+
// ========================================
|
|
125
|
+
// СПЕЦИАЛЬНЫЕ ОШИБКИ
|
|
126
|
+
// ========================================
|
|
127
|
+
/**
|
|
128
|
+
* Ошибка базы данных
|
|
129
|
+
* Выбрасывается при SQL ошибках или проблемах с БД
|
|
130
|
+
*/
|
|
131
|
+
class DatabaseError extends BaseSDKError {
|
|
132
|
+
constructor(message, details) {
|
|
133
|
+
super(400, 'database_error', message, details);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
exports.DatabaseError = DatabaseError;
|
|
137
|
+
/**
|
|
138
|
+
* Таймаут запроса (408)
|
|
139
|
+
*/
|
|
140
|
+
class TimeoutError extends BaseSDKError {
|
|
141
|
+
constructor(message, details) {
|
|
142
|
+
super(408, 'timeout_error', message, details);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
exports.TimeoutError = TimeoutError;
|
|
146
|
+
/**
|
|
147
|
+
* Ошибка сети
|
|
148
|
+
* Выбрасывается когда запрос не смог достичь сервера
|
|
149
|
+
*/
|
|
150
|
+
class NetworkError extends BaseSDKError {
|
|
151
|
+
constructor(message, details) {
|
|
152
|
+
super(0, 'network_error', message, details);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
exports.NetworkError = NetworkError;
|
|
156
|
+
// ========================================
|
|
157
|
+
// СУЩЕСТВУЮЩИЕ КЛАССЫ (обратная совместимость)
|
|
158
|
+
// ========================================
|
|
159
|
+
/**
|
|
160
|
+
* Ошибка превышения лимита использования
|
|
161
|
+
* Выбрасывается при HTTP 403 с details.error === 'usage_limit_exceeded'
|
|
162
|
+
*/
|
|
163
|
+
class LimitExceededError extends BaseSDKError {
|
|
164
|
+
constructor(errorData) {
|
|
165
|
+
const message = errorData.message || errorData.details?.message || 'Usage limit exceeded';
|
|
166
|
+
super(403, 'usage_limit_exceeded', message, errorData);
|
|
167
|
+
this.statusType = errorData.details?.statusType || 'unknown';
|
|
168
|
+
this.status = errorData.details?.status || 'blocked';
|
|
169
|
+
this.details = errorData.details || {};
|
|
170
|
+
this.action = errorData.details?.action;
|
|
171
|
+
this.balance = errorData.details?.balance;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Проверяет, заблокирован ли пользователь
|
|
175
|
+
*/
|
|
176
|
+
isBlocked() {
|
|
177
|
+
return !this.details.canMakeRequest;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Получает URL для действия пользователя
|
|
181
|
+
*/
|
|
182
|
+
getActionUrl() {
|
|
183
|
+
return this.action?.ctaUrl;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
exports.LimitExceededError = LimitExceededError;
|
|
187
|
+
/**
|
|
188
|
+
* Ошибка превышения rate limit
|
|
189
|
+
* Выбрасывается при HTTP 429
|
|
190
|
+
*/
|
|
191
|
+
class RateLimitError extends BaseSDKError {
|
|
192
|
+
constructor(errorData) {
|
|
193
|
+
const message = errorData.message || errorData.details?.message || 'Rate limit exceeded';
|
|
194
|
+
super(429, 'rate_limit_exceeded', message, errorData);
|
|
195
|
+
this.details = errorData.details || {};
|
|
196
|
+
this.retryAfter = this.details.retryAfter || 60;
|
|
197
|
+
// Парсим дату из ISO строки или используем текущее время + retryAfter
|
|
198
|
+
this.retryAt = this.details.retryAt
|
|
199
|
+
? new Date(this.details.retryAt)
|
|
200
|
+
: new Date(Date.now() + this.retryAfter * 1000);
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Получает время ожидания в миллисекундах
|
|
204
|
+
*/
|
|
205
|
+
getRetryDelayMs() {
|
|
206
|
+
return Math.max(0, this.retryAt.getTime() - Date.now());
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Проверяет, прошло ли время ожидания
|
|
210
|
+
*/
|
|
211
|
+
canRetryNow() {
|
|
212
|
+
return Date.now() >= this.retryAt.getTime();
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
exports.RateLimitError = RateLimitError;
|
|
216
|
+
//# sourceMappingURL=sdk-errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk-errors.js","sourceRoot":"","sources":["../../../src/errors/sdk-errors.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH;;GAEG;AACH,MAAa,YAAa,SAAQ,KAAK;IAgBrC,YAAY,UAAkB,EAAE,SAAiB,EAAE,OAAe,EAAE,OAAa;QAC/E,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,OAAO,EAAE,SAAS,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,OAAO,EAAE,SAAS,CAAC;QACpC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAE3B,6BAA6B;QAC7B,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;CACF;AA9BD,oCA8BC;AAED,2CAA2C;AAC3C,sBAAsB;AACtB,2CAA2C;AAE3C;;;GAGG;AACH,MAAa,mBAAoB,SAAQ,YAAY;IAInD,YAAY,OAAe,EAAE,OAAa;QACxC,KAAK,CAAC,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAJ/C,qDAAqD;QACrC,gBAAW,GAAY,IAAI,CAAC;IAI5C,CAAC;CACF;AAPD,kDAOC;AAED;;;GAGG;AACH,MAAa,cAAe,SAAQ,YAAY;IAI9C,YAAY,OAAe,EAAE,OAAa;QACxC,KAAK,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC;IAChC,CAAC;CACF;AARD,wCAQC;AAED;;;GAGG;AACH,MAAa,eAAgB,SAAQ,YAAY;IAI/C,YAAY,OAAe,EAAE,OAAa;QACxC,KAAK,CAAC,GAAG,EAAE,kBAAkB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC;IAChC,CAAC;CACF;AARD,0CAQC;AAED;;GAEG;AACH,MAAa,aAAc,SAAQ,YAAY;IAI7C,YAAY,OAAe,EAAE,OAAa;QACxC,KAAK,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ,CAAC;IACpC,CAAC;CACF;AARD,sCAQC;AAED;;;GAGG;AACH,MAAa,aAAc,SAAQ,YAAY;IAC7C,YAAY,OAAe,EAAE,OAAa;QACxC,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;CACF;AAJD,sCAIC;AAED;;GAEG;AACH,MAAa,eAAgB,SAAQ,YAAY;IAC/C,YAAY,OAAe,EAAE,OAAa;QACxC,KAAK,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;CACF;AAJD,0CAIC;AAED,2CAA2C;AAC3C,sBAAsB;AACtB,2CAA2C;AAE3C;;GAEG;AACH,MAAa,mBAAoB,SAAQ,YAAY;IACnD,YAAY,OAAe,EAAE,OAAa;QACxC,KAAK,CAAC,GAAG,EAAE,uBAAuB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;CACF;AAJD,kDAIC;AAED;;GAEG;AACH,MAAa,uBAAwB,SAAQ,YAAY;IAIvD,YAAY,OAAe,EAAE,OAAa;QACxC,KAAK,CAAC,GAAG,EAAE,qBAAqB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,GAAG,OAAO,EAAE,UAAU,CAAC;IACxC,CAAC;CACF;AARD,0DAQC;AAED;;GAEG;AACH,MAAa,mBAAoB,SAAQ,YAAY;IACnD,YAAY,OAAe,EAAE,OAAa;QACxC,KAAK,CAAC,GAAG,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;CACF;AAJD,kDAIC;AAED,2CAA2C;AAC3C,qBAAqB;AACrB,2CAA2C;AAE3C;;;GAGG;AACH,MAAa,aAAc,SAAQ,YAAY;IAC7C,YAAY,OAAe,EAAE,OAAa;QACxC,KAAK,CAAC,GAAG,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;CACF;AAJD,sCAIC;AAED;;GAEG;AACH,MAAa,YAAa,SAAQ,YAAY;IAC5C,YAAY,OAAe,EAAE,OAAa;QACxC,KAAK,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;CACF;AAJD,oCAIC;AAED;;;GAGG;AACH,MAAa,YAAa,SAAQ,YAAY;IAC5C,YAAY,OAAe,EAAE,OAAa;QACxC,KAAK,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;CACF;AAJD,oCAIC;AAED,2CAA2C;AAC3C,+CAA+C;AAC/C,2CAA2C;AAE3C;;;GAGG;AACH,MAAa,kBAAmB,SAAQ,YAAY;IAgBlD,YAAY,SAAc;QACxB,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,OAAO,IAAI,sBAAsB,CAAC;QAC1F,KAAK,CAAC,GAAG,EAAE,sBAAsB,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QAEvD,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,OAAO,EAAE,UAAU,IAAI,SAAS,CAAC;QAC7D,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,MAAM,IAAI,SAAS,CAAC;QACrD,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC;IAC5C,CAAC;IAED;;OAEG;IACI,SAAS;QACd,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;IACtC,CAAC;IAED;;OAEG;IACI,YAAY;QACjB,OAAO,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;IAC7B,CAAC;CACF;AAxCD,gDAwCC;AAED;;;GAGG;AACH,MAAa,cAAe,SAAQ,YAAY;IAU9C,YAAY,SAAc;QACxB,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,OAAO,IAAI,qBAAqB,CAAC;QACzF,KAAK,CAAC,GAAG,EAAE,qBAAqB,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QAEtD,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;QAEhD,sEAAsE;QACtE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO;YACjC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YAChC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACI,eAAe;QACpB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACI,WAAW;QAChB,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAC9C,CAAC;CACF;AApCD,wCAoCC"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.UpdateManager = exports.DeltaChunkingUtils = exports.DeltaChunkingManager = exports.DeltaChunkingApi = exports.ensureCorrectBlockOrder = exports.createSystemMessage = exports.createUserMessage = exports.createTextBlock = exports.createComplexAssistantMessage = exports.createStandardDevelopmentTools = exports.extractToolResultBlocks = exports.extractToolUseBlocks = exports.extractThinkingBlocks = exports.createToolUseBlock = exports.createToolResultMessage = exports.createThinkingBlock = exports.HttpClient = exports.CodeSolverSDK = exports.VERSION = void 0;
|
|
17
|
+
exports.UpdateManager = exports.DeltaChunkingUtils = exports.DeltaChunkingManager = exports.DeltaChunkingApi = exports.ensureCorrectBlockOrder = exports.createSystemMessage = exports.createUserMessage = exports.createTextBlock = exports.createComplexAssistantMessage = exports.createStandardDevelopmentTools = exports.extractToolResultBlocks = exports.extractToolUseBlocks = exports.extractThinkingBlocks = exports.createToolUseBlock = exports.createToolResultMessage = exports.createThinkingBlock = exports.BaseSDKError = exports.RateLimitError = exports.LimitExceededError = exports.NetworkError = exports.TimeoutError = exports.DatabaseError = exports.GatewayTimeoutError = exports.ServiceUnavailableError = exports.InternalServerError = exports.BadRequestError = exports.ConflictError = exports.NotFoundError = exports.ValidationError = exports.ForbiddenError = exports.AuthenticationError = exports.HttpClient = exports.CodeSolverSDK = exports.VERSION = void 0;
|
|
18
18
|
const code_solver_sdk_js_1 = require("./code-solver-sdk.js");
|
|
19
19
|
Object.defineProperty(exports, "CodeSolverSDK", { enumerable: true, get: function () { return code_solver_sdk_js_1.CodeSolverSDK; } });
|
|
20
20
|
const http_client_js_1 = require("./utils/http-client.js");
|
|
@@ -34,8 +34,25 @@ __exportStar(require("./api/updates-api.js"), exports);
|
|
|
34
34
|
__exportStar(require("./api/user-api.js"), exports);
|
|
35
35
|
// Экспортируем типы лимитов
|
|
36
36
|
__exportStar(require("./types/limit-status.js"), exports);
|
|
37
|
-
// Экспортируем классы ошибок
|
|
38
|
-
__exportStar(require("./errors/
|
|
37
|
+
// Экспортируем все классы ошибок SDK
|
|
38
|
+
__exportStar(require("./errors/sdk-errors.js"), exports);
|
|
39
|
+
// Явно экспортируем основные классы ошибок для удобства импорта
|
|
40
|
+
var sdk_errors_js_1 = require("./errors/sdk-errors.js");
|
|
41
|
+
Object.defineProperty(exports, "AuthenticationError", { enumerable: true, get: function () { return sdk_errors_js_1.AuthenticationError; } });
|
|
42
|
+
Object.defineProperty(exports, "ForbiddenError", { enumerable: true, get: function () { return sdk_errors_js_1.ForbiddenError; } });
|
|
43
|
+
Object.defineProperty(exports, "ValidationError", { enumerable: true, get: function () { return sdk_errors_js_1.ValidationError; } });
|
|
44
|
+
Object.defineProperty(exports, "NotFoundError", { enumerable: true, get: function () { return sdk_errors_js_1.NotFoundError; } });
|
|
45
|
+
Object.defineProperty(exports, "ConflictError", { enumerable: true, get: function () { return sdk_errors_js_1.ConflictError; } });
|
|
46
|
+
Object.defineProperty(exports, "BadRequestError", { enumerable: true, get: function () { return sdk_errors_js_1.BadRequestError; } });
|
|
47
|
+
Object.defineProperty(exports, "InternalServerError", { enumerable: true, get: function () { return sdk_errors_js_1.InternalServerError; } });
|
|
48
|
+
Object.defineProperty(exports, "ServiceUnavailableError", { enumerable: true, get: function () { return sdk_errors_js_1.ServiceUnavailableError; } });
|
|
49
|
+
Object.defineProperty(exports, "GatewayTimeoutError", { enumerable: true, get: function () { return sdk_errors_js_1.GatewayTimeoutError; } });
|
|
50
|
+
Object.defineProperty(exports, "DatabaseError", { enumerable: true, get: function () { return sdk_errors_js_1.DatabaseError; } });
|
|
51
|
+
Object.defineProperty(exports, "TimeoutError", { enumerable: true, get: function () { return sdk_errors_js_1.TimeoutError; } });
|
|
52
|
+
Object.defineProperty(exports, "NetworkError", { enumerable: true, get: function () { return sdk_errors_js_1.NetworkError; } });
|
|
53
|
+
Object.defineProperty(exports, "LimitExceededError", { enumerable: true, get: function () { return sdk_errors_js_1.LimitExceededError; } });
|
|
54
|
+
Object.defineProperty(exports, "RateLimitError", { enumerable: true, get: function () { return sdk_errors_js_1.RateLimitError; } });
|
|
55
|
+
Object.defineProperty(exports, "BaseSDKError", { enumerable: true, get: function () { return sdk_errors_js_1.BaseSDKError; } });
|
|
39
56
|
// Экспортируем Credits API и типы
|
|
40
57
|
__exportStar(require("./types/credits.js"), exports);
|
|
41
58
|
__exportStar(require("./api/credits-api.js"), exports);
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6DAAqD;AAQ5C,8FARA,kCAAa,OAQA;AANtB,2DAAoD;AAQ3C,2FARA,2BAAU,OAQA;AANnB,2DAA2D;AAC3D,2CAAuC;AAA9B,qGAAA,OAAO,OAAA;AAOhB,0CAA0C;AAC1C,8DAA4C;AAE5C,gCAAgC;AAChC,wDAAsC;AACtC,sDAAoC;AAEpC,0DAAwC;AACxC,qDAAmC;AACnC,sDAAoC;AACpC,uDAAqC;AACrC,oDAAkC;AAElC,4BAA4B;AAC5B,0DAAwC;AAExC,qCAAqC;AACrC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6DAAqD;AAQ5C,8FARA,kCAAa,OAQA;AANtB,2DAAoD;AAQ3C,2FARA,2BAAU,OAQA;AANnB,2DAA2D;AAC3D,2CAAuC;AAA9B,qGAAA,OAAO,OAAA;AAOhB,0CAA0C;AAC1C,8DAA4C;AAE5C,gCAAgC;AAChC,wDAAsC;AACtC,sDAAoC;AAEpC,0DAAwC;AACxC,qDAAmC;AACnC,sDAAoC;AACpC,uDAAqC;AACrC,oDAAkC;AAElC,4BAA4B;AAC5B,0DAAwC;AAExC,qCAAqC;AACrC,yDAAuC;AAEvC,gEAAgE;AAChE,wDAgBgC;AAf9B,oHAAA,mBAAmB,OAAA;AACnB,+GAAA,cAAc,OAAA;AACd,gHAAA,eAAe,OAAA;AACf,8GAAA,aAAa,OAAA;AACb,8GAAA,aAAa,OAAA;AACb,gHAAA,eAAe,OAAA;AACf,oHAAA,mBAAmB,OAAA;AACnB,wHAAA,uBAAuB,OAAA;AACvB,oHAAA,mBAAmB,OAAA;AACnB,8GAAA,aAAa,OAAA;AACb,6GAAA,YAAY,OAAA;AACZ,6GAAA,YAAY,OAAA;AACZ,mHAAA,kBAAkB,OAAA;AAClB,+GAAA,cAAc,OAAA;AACd,6GAAA,YAAY,OAAA;AAGd,kCAAkC;AAClC,qDAAmC;AACnC,uDAAqC;AAErC,kDAAkD;AAClD,6DAA2C;AAE3C,iEAAiE;AACjE,iEAaoC;AAZlC,yHAAA,mBAAmB,OAAA;AACnB,6HAAA,uBAAuB,OAAA;AACvB,wHAAA,kBAAkB,OAAA;AAClB,2HAAA,qBAAqB,OAAA;AACrB,0HAAA,oBAAoB,OAAA;AACpB,6HAAA,uBAAuB,OAAA;AACvB,oIAAA,8BAA8B,OAAA;AAC9B,mIAAA,6BAA6B,OAAA;AAC7B,qHAAA,eAAe,OAAA;AACf,uHAAA,iBAAiB,OAAA;AACjB,yHAAA,mBAAmB,OAAA;AACnB,6HAAA,uBAAuB,OAAA,CAAE,+DAA+D;AAG1F,oEAAoE;AACpE,qEAA+D;AAAtD,yHAAA,gBAAgB,OAAA;AACzB,wFAAkF;AAAzE,iIAAA,oBAAoB,OAAA;AAC7B,oFAA8E;AAArE,6HAAA,kBAAkB,OAAA;AAE3B,+BAA+B;AAC/B,4DAA0C;AAE1C,wCAAwC;AACxC,kEAAgD;AAEhD,2BAA2B;AAC3B,qDAAmC;AAEnC,iDAAiD;AACjD,+DAA0D;AAAjD,kHAAA,aAAa,OAAA;AAEtB,uBAAuB;AACvB,kBAAe,kCAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;AAgeH,gCAAgC;AAChC,+CAA6B"}
|