solver-sdk 8.1.1 → 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.
Files changed (43) hide show
  1. package/README.md +84 -14
  2. package/dist/cjs/api/credits-api.js +24 -4
  3. package/dist/cjs/api/credits-api.js.map +1 -1
  4. package/dist/cjs/errors/sdk-errors.js +216 -0
  5. package/dist/cjs/errors/sdk-errors.js.map +1 -0
  6. package/dist/cjs/index.js +20 -3
  7. package/dist/cjs/index.js.map +1 -1
  8. package/dist/cjs/types/index.js.map +1 -1
  9. package/dist/cjs/utils/error-mapper.js +149 -0
  10. package/dist/cjs/utils/error-mapper.js.map +1 -0
  11. package/dist/cjs/utils/http-client.js +9 -37
  12. package/dist/cjs/utils/http-client.js.map +1 -1
  13. package/dist/esm/api/credits-api.js +24 -4
  14. package/dist/esm/api/credits-api.js.map +1 -1
  15. package/dist/esm/errors/sdk-errors.js +198 -0
  16. package/dist/esm/errors/sdk-errors.js.map +1 -0
  17. package/dist/esm/index.js +4 -2
  18. package/dist/esm/index.js.map +1 -1
  19. package/dist/esm/types/index.js.map +1 -1
  20. package/dist/esm/utils/error-mapper.js +145 -0
  21. package/dist/esm/utils/error-mapper.js.map +1 -0
  22. package/dist/esm/utils/http-client.js +9 -37
  23. package/dist/esm/utils/http-client.js.map +1 -1
  24. package/dist/types/api/credits-api.d.ts +24 -4
  25. package/dist/types/api/credits-api.d.ts.map +1 -1
  26. package/dist/types/errors/sdk-errors.d.ts +156 -0
  27. package/dist/types/errors/sdk-errors.d.ts.map +1 -0
  28. package/dist/types/index.d.ts +2 -1
  29. package/dist/types/index.d.ts.map +1 -1
  30. package/dist/types/interfaces/http-client.d.ts +0 -9
  31. package/dist/types/interfaces/http-client.d.ts.map +1 -1
  32. package/dist/types/types/index.d.ts +1 -1
  33. package/dist/types/types/index.d.ts.map +1 -1
  34. package/dist/types/utils/error-mapper.d.ts +24 -0
  35. package/dist/types/utils/error-mapper.d.ts.map +1 -0
  36. package/dist/types/utils/http-client.d.ts.map +1 -1
  37. package/package.json +1 -1
  38. package/dist/cjs/errors/limit-errors.js +0 -80
  39. package/dist/cjs/errors/limit-errors.js.map +0 -1
  40. package/dist/esm/errors/limit-errors.js +0 -74
  41. package/dist/esm/errors/limit-errors.js.map +0 -1
  42. package/dist/types/errors/limit-errors.d.ts +0 -61
  43. package/dist/types/errors/limit-errors.d.ts.map +0 -1
@@ -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"}