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
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Централизованный маппер ошибок
|
|
3
|
+
* Преобразует Axios errors в типизированные SDK исключения
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Класс для маппинга HTTP ошибок на типизированные исключения SDK
|
|
7
|
+
*/
|
|
8
|
+
export declare class ErrorMapper {
|
|
9
|
+
/**
|
|
10
|
+
* Маппит Axios error на типизированное SDK исключение
|
|
11
|
+
* @param axiosError Ошибка от Axios
|
|
12
|
+
* @returns Типизированное исключение SDK
|
|
13
|
+
*/
|
|
14
|
+
static mapError(axiosError: any): Error;
|
|
15
|
+
/**
|
|
16
|
+
* Определяет тип ошибки по HTTP статусу (fallback)
|
|
17
|
+
*/
|
|
18
|
+
private static inferErrorType;
|
|
19
|
+
/**
|
|
20
|
+
* Маппит ошибку по HTTP статусу (fallback когда errorType неизвестен)
|
|
21
|
+
*/
|
|
22
|
+
private static mapByStatusCode;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=error-mapper.d.ts.map
|
|
@@ -0,0 +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 +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;AAI5G,OAAO,QAAQ,OAAO,CAAC;IACrB,UAAiB,kBAAkB;QACjC,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB;CACF;AAYD;;;;;GAKG;AACH,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;;;;OAIG;gBACS,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB;
|
|
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;AAI5G,OAAO,QAAQ,OAAO,CAAC;IACrB,UAAiB,kBAAkB;QACjC,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB;CACF;AAYD;;;;;GAKG;AACH,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;;;;OAIG;gBACS,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB;IAgC5D;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA8CzB;;;;OAIG;IACU,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IAyClE;;;;;;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;IA8CpB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAiFnB;;OAEG;IACH,IAAW,WAAW,IAAI,GAAG,CAE5B;IAED;;;OAGG;IACI,UAAU,IAAI,MAAM;CAG5B"}
|
package/package.json
CHANGED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Классы ошибок для обработки лимитов
|
|
4
|
-
*/
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.RateLimitError = exports.LimitExceededError = exports.BaseLimitError = void 0;
|
|
7
|
-
/**
|
|
8
|
-
* Базовый класс для ошибок лимитов
|
|
9
|
-
*/
|
|
10
|
-
class BaseLimitError extends Error {
|
|
11
|
-
constructor(message, statusCode, rawError) {
|
|
12
|
-
super(message);
|
|
13
|
-
this.name = this.constructor.name;
|
|
14
|
-
this.statusCode = statusCode;
|
|
15
|
-
this.rawError = rawError;
|
|
16
|
-
// Поддержка stack trace в V8
|
|
17
|
-
if (Error.captureStackTrace) {
|
|
18
|
-
Error.captureStackTrace(this, this.constructor);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
exports.BaseLimitError = BaseLimitError;
|
|
23
|
-
/**
|
|
24
|
-
* Ошибка превышения лимита использования
|
|
25
|
-
* Выбрасывается при HTTP 403 с details.error === 'usage_limit_exceeded'
|
|
26
|
-
*/
|
|
27
|
-
class LimitExceededError extends BaseLimitError {
|
|
28
|
-
constructor(errorData) {
|
|
29
|
-
const message = errorData.message || errorData.details?.message || 'Usage limit exceeded';
|
|
30
|
-
super(message, 403, errorData);
|
|
31
|
-
this.statusType = errorData.details?.statusType || 'unknown';
|
|
32
|
-
this.status = errorData.details?.status || 'blocked';
|
|
33
|
-
this.details = errorData.details || {};
|
|
34
|
-
this.action = errorData.details?.action;
|
|
35
|
-
this.balance = errorData.details?.balance;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Проверяет, заблокирован ли пользователь
|
|
39
|
-
*/
|
|
40
|
-
isBlocked() {
|
|
41
|
-
return !this.details.canMakeRequest;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Получает URL для действия пользователя
|
|
45
|
-
*/
|
|
46
|
-
getActionUrl() {
|
|
47
|
-
return this.action?.ctaUrl;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
exports.LimitExceededError = LimitExceededError;
|
|
51
|
-
/**
|
|
52
|
-
* Ошибка превышения rate limit
|
|
53
|
-
* Выбрасывается при HTTP 429
|
|
54
|
-
*/
|
|
55
|
-
class RateLimitError extends BaseLimitError {
|
|
56
|
-
constructor(errorData) {
|
|
57
|
-
const message = errorData.message || errorData.details?.message || 'Rate limit exceeded';
|
|
58
|
-
super(message, 429, errorData);
|
|
59
|
-
this.details = errorData.details || {};
|
|
60
|
-
this.retryAfter = this.details.retryAfter || 60;
|
|
61
|
-
// Парсим дату из ISO строки или используем текущее время + retryAfter
|
|
62
|
-
this.retryAt = this.details.retryAt
|
|
63
|
-
? new Date(this.details.retryAt)
|
|
64
|
-
: new Date(Date.now() + this.retryAfter * 1000);
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Получает время ожидания в миллисекундах
|
|
68
|
-
*/
|
|
69
|
-
getRetryDelayMs() {
|
|
70
|
-
return Math.max(0, this.retryAt.getTime() - Date.now());
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Проверяет, прошло ли время ожидания
|
|
74
|
-
*/
|
|
75
|
-
canRetryNow() {
|
|
76
|
-
return Date.now() >= this.retryAt.getTime();
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
exports.RateLimitError = RateLimitError;
|
|
80
|
-
//# sourceMappingURL=limit-errors.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"limit-errors.js","sourceRoot":"","sources":["../../../src/errors/limit-errors.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAIH;;GAEG;AACH,MAAa,cAAe,SAAQ,KAAK;IAOvC,YAAY,OAAe,EAAE,UAAkB,EAAE,QAAc;QAC7D,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,QAAQ,GAAG,QAAQ,CAAC;QAEzB,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;AAlBD,wCAkBC;AAED;;;GAGG;AACH,MAAa,kBAAmB,SAAQ,cAAc;IAgBpD,YAAY,SAAc;QACxB,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,OAAO,IAAI,sBAAsB,CAAC;QAC1F,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAE/B,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,cAAc;IAUhD,YAAY,SAAc;QACxB,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,OAAO,IAAI,qBAAqB,CAAC;QACzF,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAE/B,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"}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Классы ошибок для обработки лимитов
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Базовый класс для ошибок лимитов
|
|
6
|
-
*/
|
|
7
|
-
export class BaseLimitError extends Error {
|
|
8
|
-
constructor(message, statusCode, rawError) {
|
|
9
|
-
super(message);
|
|
10
|
-
this.name = this.constructor.name;
|
|
11
|
-
this.statusCode = statusCode;
|
|
12
|
-
this.rawError = rawError;
|
|
13
|
-
// Поддержка stack trace в V8
|
|
14
|
-
if (Error.captureStackTrace) {
|
|
15
|
-
Error.captureStackTrace(this, this.constructor);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Ошибка превышения лимита использования
|
|
21
|
-
* Выбрасывается при HTTP 403 с details.error === 'usage_limit_exceeded'
|
|
22
|
-
*/
|
|
23
|
-
export class LimitExceededError extends BaseLimitError {
|
|
24
|
-
constructor(errorData) {
|
|
25
|
-
const message = errorData.message || errorData.details?.message || 'Usage limit exceeded';
|
|
26
|
-
super(message, 403, errorData);
|
|
27
|
-
this.statusType = errorData.details?.statusType || 'unknown';
|
|
28
|
-
this.status = errorData.details?.status || 'blocked';
|
|
29
|
-
this.details = errorData.details || {};
|
|
30
|
-
this.action = errorData.details?.action;
|
|
31
|
-
this.balance = errorData.details?.balance;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Проверяет, заблокирован ли пользователь
|
|
35
|
-
*/
|
|
36
|
-
isBlocked() {
|
|
37
|
-
return !this.details.canMakeRequest;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Получает URL для действия пользователя
|
|
41
|
-
*/
|
|
42
|
-
getActionUrl() {
|
|
43
|
-
return this.action?.ctaUrl;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Ошибка превышения rate limit
|
|
48
|
-
* Выбрасывается при HTTP 429
|
|
49
|
-
*/
|
|
50
|
-
export class RateLimitError extends BaseLimitError {
|
|
51
|
-
constructor(errorData) {
|
|
52
|
-
const message = errorData.message || errorData.details?.message || 'Rate limit exceeded';
|
|
53
|
-
super(message, 429, errorData);
|
|
54
|
-
this.details = errorData.details || {};
|
|
55
|
-
this.retryAfter = this.details.retryAfter || 60;
|
|
56
|
-
// Парсим дату из ISO строки или используем текущее время + retryAfter
|
|
57
|
-
this.retryAt = this.details.retryAt
|
|
58
|
-
? new Date(this.details.retryAt)
|
|
59
|
-
: new Date(Date.now() + this.retryAfter * 1000);
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Получает время ожидания в миллисекундах
|
|
63
|
-
*/
|
|
64
|
-
getRetryDelayMs() {
|
|
65
|
-
return Math.max(0, this.retryAt.getTime() - Date.now());
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Проверяет, прошло ли время ожидания
|
|
69
|
-
*/
|
|
70
|
-
canRetryNow() {
|
|
71
|
-
return Date.now() >= this.retryAt.getTime();
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
//# sourceMappingURL=limit-errors.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"limit-errors.js","sourceRoot":"","sources":["../../../src/errors/limit-errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK;IAOvC,YAAY,OAAe,EAAE,UAAkB,EAAE,QAAc;QAC7D,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,QAAQ,GAAG,QAAQ,CAAC;QAEzB,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;AAED;;;GAGG;AACH,MAAM,OAAO,kBAAmB,SAAQ,cAAc;IAgBpD,YAAY,SAAc;QACxB,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,OAAO,IAAI,sBAAsB,CAAC;QAC1F,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAE/B,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;AAED;;;GAGG;AACH,MAAM,OAAO,cAAe,SAAQ,cAAc;IAUhD,YAAY,SAAc;QACxB,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,OAAO,IAAI,qBAAqB,CAAC;QACzF,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAE/B,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"}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Классы ошибок для обработки лимитов
|
|
3
|
-
*/
|
|
4
|
-
import type { LimitStatus, LimitAction, LimitBalance } from '../types/limit-status.js';
|
|
5
|
-
/**
|
|
6
|
-
* Базовый класс для ошибок лимитов
|
|
7
|
-
*/
|
|
8
|
-
export declare class BaseLimitError extends Error {
|
|
9
|
-
/** Статус HTTP ответа */
|
|
10
|
-
readonly statusCode: number;
|
|
11
|
-
/** Исходные данные ошибки */
|
|
12
|
-
readonly rawError: any;
|
|
13
|
-
constructor(message: string, statusCode: number, rawError?: any);
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Ошибка превышения лимита использования
|
|
17
|
-
* Выбрасывается при HTTP 403 с details.error === 'usage_limit_exceeded'
|
|
18
|
-
*/
|
|
19
|
-
export declare class LimitExceededError extends BaseLimitError {
|
|
20
|
-
/** Тип статуса лимита */
|
|
21
|
-
readonly statusType: string;
|
|
22
|
-
/** Уровень статуса */
|
|
23
|
-
readonly status: string;
|
|
24
|
-
/** Детали лимитов */
|
|
25
|
-
readonly details: Partial<LimitStatus>;
|
|
26
|
-
/** Рекомендуемое действие */
|
|
27
|
-
readonly action?: LimitAction;
|
|
28
|
-
/** Информация о балансе */
|
|
29
|
-
readonly balance?: LimitBalance;
|
|
30
|
-
constructor(errorData: any);
|
|
31
|
-
/**
|
|
32
|
-
* Проверяет, заблокирован ли пользователь
|
|
33
|
-
*/
|
|
34
|
-
isBlocked(): boolean;
|
|
35
|
-
/**
|
|
36
|
-
* Получает URL для действия пользователя
|
|
37
|
-
*/
|
|
38
|
-
getActionUrl(): string | undefined;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Ошибка превышения rate limit
|
|
42
|
-
* Выбрасывается при HTTP 429
|
|
43
|
-
*/
|
|
44
|
-
export declare class RateLimitError extends BaseLimitError {
|
|
45
|
-
/** Время ожидания в секундах */
|
|
46
|
-
readonly retryAfter: number;
|
|
47
|
-
/** Время когда можно повторить запрос */
|
|
48
|
-
readonly retryAt: Date;
|
|
49
|
-
/** Детали rate limit */
|
|
50
|
-
readonly details: any;
|
|
51
|
-
constructor(errorData: any);
|
|
52
|
-
/**
|
|
53
|
-
* Получает время ожидания в миллисекундах
|
|
54
|
-
*/
|
|
55
|
-
getRetryDelayMs(): number;
|
|
56
|
-
/**
|
|
57
|
-
* Проверяет, прошло ли время ожидания
|
|
58
|
-
*/
|
|
59
|
-
canRetryNow(): boolean;
|
|
60
|
-
}
|
|
61
|
-
//# sourceMappingURL=limit-errors.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"limit-errors.d.ts","sourceRoot":"","sources":["../../../src/errors/limit-errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAEvF;;GAEG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACvC,yBAAyB;IACzB,SAAgB,UAAU,EAAE,MAAM,CAAC;IAEnC,6BAA6B;IAC7B,SAAgB,QAAQ,EAAE,GAAG,CAAC;gBAElB,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG;CAWhE;AAED;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,cAAc;IACpD,yBAAyB;IACzB,SAAgB,UAAU,EAAE,MAAM,CAAC;IAEnC,sBAAsB;IACtB,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,qBAAqB;IACrB,SAAgB,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAE9C,6BAA6B;IAC7B,SAAgB,MAAM,CAAC,EAAE,WAAW,CAAC;IAErC,2BAA2B;IAC3B,SAAgB,OAAO,CAAC,EAAE,YAAY,CAAC;gBAE3B,SAAS,EAAE,GAAG;IAW1B;;OAEG;IACI,SAAS,IAAI,OAAO;IAI3B;;OAEG;IACI,YAAY,IAAI,MAAM,GAAG,SAAS;CAG1C;AAED;;;GAGG;AACH,qBAAa,cAAe,SAAQ,cAAc;IAChD,gCAAgC;IAChC,SAAgB,UAAU,EAAE,MAAM,CAAC;IAEnC,yCAAyC;IACzC,SAAgB,OAAO,EAAE,IAAI,CAAC;IAE9B,wBAAwB;IACxB,SAAgB,OAAO,EAAE,GAAG,CAAC;gBAEjB,SAAS,EAAE,GAAG;IAa1B;;OAEG;IACI,eAAe,IAAI,MAAM;IAIhC;;OAEG;IACI,WAAW,IAAI,OAAO;CAG9B"}
|