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
@@ -38,7 +38,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.HttpClient = void 0;
40
40
  const axios_1 = __importDefault(require("axios"));
41
- const limit_errors_js_1 = require("../errors/limit-errors.js");
41
+ const error_mapper_js_1 = require("./error-mapper.js");
42
42
  /**
43
43
  * Определение типа среды выполнения
44
44
  * @returns 'browser' | 'node'
@@ -75,8 +75,7 @@ class HttpClient {
75
75
  maxRetryDelay: 10000,
76
76
  retryStatusCodes: [408, 429, 500, 502, 503, 504]
77
77
  },
78
- httpsAgent: options.httpsAgent,
79
- suppressAuthErrors: options.suppressAuthErrors !== false // По умолчанию true
78
+ httpsAgent: options.httpsAgent
80
79
  };
81
80
  this.environment = getEnvironment();
82
81
  // Создаем Axios инстанс с базовыми настройками
@@ -96,26 +95,11 @@ class HttpClient {
96
95
  // Интерцептор для ответов
97
96
  this.axiosInstance.interceptors.response.use((response) => response.data, async (error) => {
98
97
  const { config, response } = error;
99
- // СПЕЦИАЛЬНАЯ ОБРАБОТКА: 403 с usage_limit_exceeded
100
- if (response?.status === 403 && response?.data?.details?.error === 'usage_limit_exceeded') {
101
- throw new limit_errors_js_1.LimitExceededError(response.data);
102
- }
103
- // СПЕЦИАЛЬНАЯ ОБРАБОТКА: 429 rate limit
104
- if (response?.status === 429 && response?.data?.details?.error === 'rate_limit_exceeded') {
105
- throw new limit_errors_js_1.RateLimitError(response.data);
106
- }
107
- // GRACEFUL AUTH ERRORS: Если suppressAuthErrors включен
108
- if (this.options.suppressAuthErrors && response) {
109
- const status = response.status;
110
- if (status === 401 || status === 403) {
111
- const errorMessage = response.data?.message || error.message || 'Authentication error';
112
- console.debug(`[SDK HttpClient] Auth error ${status}, handled gracefully:`, errorMessage);
113
- return null;
114
- }
115
- }
98
+ // ЦЕНТРАЛИЗОВАННЫЙ МАППИНГ через ErrorMapper
99
+ const mappedError = error_mapper_js_1.ErrorMapper.mapError(error);
116
100
  // RETRY LOGIC: Если нет конфига запроса или это уже повторный запрос, или skipRetry установлен
117
101
  if (!config || config._retryCount || config.skipRetry) {
118
- return Promise.reject(error);
102
+ throw mappedError;
119
103
  }
120
104
  config._retryCount = config._retryCount || 0;
121
105
  const retryConfig = this.options.retry;
@@ -132,8 +116,8 @@ class HttpClient {
132
116
  // Делаем повторную попытку
133
117
  return this.axiosInstance(config);
134
118
  }
135
- // Если не нужно делать повторную попытку, возвращаем ошибку
136
- return Promise.reject(error);
119
+ // Если не нужно делать повторную попытку, выбрасываем типизированную ошибку
120
+ throw mappedError;
137
121
  });
138
122
  }
139
123
  /**
@@ -176,20 +160,8 @@ class HttpClient {
176
160
  return await this.axiosInstance.request(axiosConfig);
177
161
  }
178
162
  catch (error) {
179
- // 🔇 Graceful handling для auth ошибок (избегаем unhandled rejection в VS Code Extension Host)
180
- if (this.options.suppressAuthErrors && error?.response) {
181
- const status = error.response.status;
182
- // Для auth ошибок логируем тихо и НЕ бросаем наружу
183
- if (status === 401 || status === 403) {
184
- const errorMessage = error.response?.data?.message || error.message || 'Authentication error';
185
- console.debug(`[SDK HttpClient] Auth error ${status}, handled gracefully:`, errorMessage);
186
- // Возвращаем null вместо выброса ошибки
187
- // Extension может проверить результат и обработать
188
- return null;
189
- }
190
- }
191
- // Для остальных ошибок бросаем как обычно
192
- throw this.handleError(error);
163
+ // Все ошибки маппятся через ErrorMapper
164
+ throw error_mapper_js_1.ErrorMapper.mapError(error);
193
165
  }
194
166
  }
195
167
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../../src/utils/http-client.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAgF;AAEhF,+DAA+E;AAS/E;;;GAGG;AACH,SAAS,cAAc;IACrB,OAAO,CAAC,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,WAAW,CAAC;QAC9E,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,MAAM,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAa,UAAU;IAarB;;;;OAIG;IACH,YAAY,OAAe,EAAE,UAA6B,EAAE;QAC1D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG;YACb,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,QAAQ,EAAE,kBAAkB;gBAC5B,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;aAC3B;YACD,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK;YACjC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI;gBACtB,UAAU,EAAE,CAAC;gBACb,UAAU,EAAE,IAAI;gBAChB,aAAa,EAAE,KAAK;gBACpB,gBAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;aACjD;YACD,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,KAAK,KAAK,CAAC,oBAAoB;SAC9E,CAAC;QAEF,IAAI,CAAC,WAAW,GAAG,cAAc,EAAE,CAAC;QAEpC,+CAA+C;QAC/C,IAAI,CAAC,aAAa,GAAG,eAAK,CAAC,MAAM,CAAC;YAChC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;YAC7B,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;YAC7B,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3G,CAAC,CAAC;QAEH,iEAAiE;QACjE,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACK,iBAAiB;QACvB,0BAA0B;QAC1B,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAC1C,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAC3B,KAAK,EAAE,KAAK,EAAE,EAAE;YACd,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;YAEnC,oDAAoD;YACpD,IAAI,QAAQ,EAAE,MAAM,KAAK,GAAG,IAAI,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,KAAK,sBAAsB,EAAE,CAAC;gBAC1F,MAAM,IAAI,oCAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC9C,CAAC;YAED,wCAAwC;YACxC,IAAI,QAAQ,EAAE,MAAM,KAAK,GAAG,IAAI,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,KAAK,qBAAqB,EAAE,CAAC;gBACzF,MAAM,IAAI,gCAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1C,CAAC;YAED,wDAAwD;YACxD,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI,QAAQ,EAAE,CAAC;gBAChD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;gBAE/B,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;oBACrC,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,IAAI,KAAK,CAAC,OAAO,IAAI,sBAAsB,CAAC;oBACvF,OAAO,CAAC,KAAK,CAAC,+BAA+B,MAAM,uBAAuB,EAAE,YAAY,CAAC,CAAC;oBAC1F,OAAO,IAAW,CAAC;gBACrB,CAAC;YACH,CAAC;YAED,+FAA+F;YAC/F,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACtD,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC;YAED,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC;YAE7C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,KAAqB,CAAC;YAEvD,mEAAmE;YACnE,MAAM,WAAW,GAAG,QAAQ;gBAC1B,WAAW,CAAC,gBAAgB,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACvD,MAAM,CAAC,WAAW,GAAG,CAAC,WAAW,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;YAErD,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC;gBAExB,oDAAoD;gBACpD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CACpB,CAAC,WAAW,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,EACtE,WAAW,CAAC,aAAa,IAAI,KAAK,CACnC,CAAC;gBAEF,gCAAgC;gBAChC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;gBAEzD,2BAA2B;gBAC3B,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACpC,CAAC;YAED,4DAA4D;YAC5D,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,OAAO,CAAU,OAAuB;QACnD,kDAAkD;QAClD,IAAI,WAAW,GAA2B,EAAE,CAAC;QAC7C,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;gBACjE,IAAI,KAAK,EAAE,CAAC;oBACV,WAAW,CAAC,eAAe,CAAC,GAAG,UAAU,KAAK,EAAE,CAAC;gBACnD,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,sDAAsD;gBACtD,OAAO,CAAC,IAAI,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QAED,MAAM,WAAW,GAAuB;YACtC,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE;gBACP,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO;gBACvB,GAAG,WAAW,EAAG,uCAAuC;gBACxD,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;aAC3B;YACD,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO;SACjD,CAAC;QAEF,uEAAuE;QACvE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,+FAA+F;YAC/F,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI,KAAK,EAAE,QAAQ,EAAE,CAAC;gBACvD,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAErC,oDAAoD;gBACpD,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;oBACrC,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,IAAI,KAAK,CAAC,OAAO,IAAI,sBAAsB,CAAC;oBAC9F,OAAO,CAAC,KAAK,CAAC,+BAA+B,MAAM,uBAAuB,EAAE,YAAY,CAAC,CAAC;oBAE1F,wCAAwC;oBACxC,mDAAmD;oBACnD,OAAO,IAAW,CAAC;gBACrB,CAAC;YACH,CAAC;YAED,0CAA0C;YAC1C,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,GAAG,CACd,GAAW,EACX,MAA4B,EAC5B,OAAgC;QAEhC,OAAO,IAAI,CAAC,OAAO,CAAI;YACrB,GAAG;YACH,MAAM,EAAE,KAAK;YACb,MAAM;YACN,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,IAAI,CACf,GAAW,EACX,IAAU,EACV,OAAgC;QAEhC,OAAO,IAAI,CAAC,OAAO,CAAI;YACrB,GAAG;YACH,MAAM,EAAE,MAAM;YACd,IAAI;YACJ,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,GAAG,CACd,GAAW,EACX,IAAU,EACV,OAAgC;QAEhC,OAAO,IAAI,CAAC,OAAO,CAAI;YACrB,GAAG;YACH,MAAM,EAAE,KAAK;YACb,IAAI;YACJ,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,MAAM,CACjB,GAAW,EACX,MAA4B,EAC5B,OAAgC;QAEhC,OAAO,IAAI,CAAC,OAAO,CAAI;YACrB,GAAG;YACH,MAAM,EAAE,QAAQ;YAChB,MAAM;YACN,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,KAAK,CAChB,GAAW,EACX,IAAU,EACV,OAAgC;QAEhC,OAAO,IAAI,CAAC,OAAO,CAAI;YACrB,GAAG;YACH,MAAM,EAAE,OAAO;YACf,IAAI;YACJ,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,UAAU,CACrB,GAAW,EACX,IAAU,EACV,OAAgC;QAEhC,iCAAiC;QACjC,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC;QAEvE,MAAM,cAAc,GAAG;YACrB,cAAc,EAAE,kBAAkB;YAClC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO;YACvB,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;SACnB,CAAC;QAIF,8EAA8E;QAC9E,IAAI,IAAI,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;YAChC,sDAAsD;YACtD,IAAI,OAAO,UAAU,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;gBAC5C,OAAO,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE;oBAC/B,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,cAAc;oBACvB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;iBAC3B,CAAC,CAAC;YACL,CAAC;YAED,IAAI,CAAC;gBACH,mDAAmD;gBACnD,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,wDAAa,YAAY,GAAC,CAAC;gBAE1D,OAAO,SAAS,CAAC,OAAO,EAAE;oBACxB,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,cAAc;oBACvB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;iBAC3B,CAAwB,CAAC;YAC5B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;gBACxD,MAAM,IAAI,KAAK,CAAC,8GAA8G,CAAC,CAAC;YAClI,CAAC;QACH,CAAC;QAED,yCAAyC;QACzC,OAAO,KAAK,CAAC,OAAO,EAAE;YACpB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,cAAc;YACvB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACK,WAAW,CAAC,KAAU;QAC5B,IAAI,aAAkB,CAAC;QACvB,IAAI,OAAe,CAAC;QAEpB,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,mCAAmC;YACnC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC;YAExC,yCAAyC;YACzC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7B,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;iBAAM,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC5C,sDAAsD;gBACtD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,GAAG,CAAC;gBAE/E,IAAI,UAAU,EAAE,CAAC;oBACf,0CAA0C;oBAC1C,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;wBACnC,OAAO,GAAG,UAAU,CAAC;oBACvB,CAAC;yBAAM,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;wBAC1C,mCAAmC;wBACnC,IAAI,CAAC;4BACH,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;wBACvC,CAAC;wBAAC,OAAO,CAAC,EAAE,CAAC;4BACX,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;wBAC/B,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,gDAAgD;wBAChD,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;oBAC/B,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,0DAA0D;oBAC1D,IAAI,CAAC;wBACH,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;oBACjC,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,OAAO,GAAG,8BAA8B,CAAC;oBAC3C,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,eAAe,MAAM,EAAE,CAAC;YACpC,CAAC;YAED,aAAa,GAAG,IAAI,KAAK,CAAC,SAAS,MAAM,KAAK,OAAO,EAAE,CAAC,CAAC;YACzD,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC;YAC9B,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC;YAC1B,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC;QAClC,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACzB,yCAAyC;YACzC,OAAO,GAAG,2DAA2D,CAAC;YACtE,aAAa,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;YACnC,aAAa,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;YACtC,aAAa,CAAC,cAAc,GAAG,IAAI,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,yCAAyC;YACzC,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,IAAI,8BAA8B,CAAC;YAC9E,aAAa,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;YACnC,aAAa,CAAC,cAAc,GAAG,IAAI,CAAC;QACtC,CAAC;QAED,4CAA4C;QAC5C,aAAa,CAAC,aAAa,GAAG,KAAK,CAAC;QAEpC,kDAAkD;QAClD,aAAa,CAAC,QAAQ,GAAG;YACvB,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC,CAAC;QAEF,yDAAyD;QACzD,IAAI,CAAC;YACH,8DAA8D;YAC9D,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;YAC3D,IAAI,OAAO,aAAa,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;gBACpD,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,uDAAuD;QACzD,CAAC;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,IAAW,WAAW;QACpB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACI,UAAU;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF;AApbD,gCAobC"}
1
+ {"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../../src/utils/http-client.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,9 @@ export class CreditsApi {
10
10
  * Получить баланс credits (WorkCoins)
11
11
  *
12
12
  * @returns Текущий баланс credits пользователя
13
- * @throws {Error} 401 если не авторизован
13
+ * @throws {AuthenticationError} При истекшем или невалидном access token (401)
14
+ * @throws {ForbiddenError} При отсутствии доступа (403)
15
+ * @throws {InternalServerError} При ошибке сервера (500)
14
16
  */
15
17
  async getBalance() {
16
18
  return await this.httpClient.get('/api/v1/credits/balance');
@@ -19,7 +21,10 @@ export class CreditsApi {
19
21
  * Получить статус credits (с рекомендациями)
20
22
  *
21
23
  * @returns Статус credits и рекомендации
22
- * @throws {Error} 401 если не авторизован
24
+ * @throws {AuthenticationError} При истекшем или невалидном access token (401)
25
+ * @throws {ForbiddenError} При отсутствии доступа (403)
26
+ * @throws {LimitExceededError} При превышении лимита credits
27
+ * @throws {InternalServerError} При ошибке сервера (500)
23
28
  */
24
29
  async getStatus() {
25
30
  return await this.httpClient.get('/api/v1/credits/status');
@@ -31,6 +36,9 @@ export class CreditsApi {
31
36
  * @param model - Модель (haiku/sonnet/auto)
32
37
  * @param operationType - Тип операции
33
38
  * @returns Оценка стоимости в credits (WorkCoins)
39
+ * @throws {AuthenticationError} При истекшем или невалидном access token (401)
40
+ * @throws {ValidationError} При некорректных параметрах запроса (422)
41
+ * @throws {InternalServerError} При ошибке сервера (500)
34
42
  */
35
43
  async estimate(tokens, model = 'haiku', operationType = 'simple_prompt') {
36
44
  return await this.httpClient.post('/api/v1/credits/estimate', {
@@ -43,6 +51,9 @@ export class CreditsApi {
43
51
  * Получить конфигурацию overage (pay-as-you-go)
44
52
  *
45
53
  * @returns Настройки overage пользователя
54
+ * @throws {AuthenticationError} При истекшем или невалидном access token (401)
55
+ * @throws {ForbiddenError} При отсутствии доступа (403)
56
+ * @throws {InternalServerError} При ошибке сервера (500)
46
57
  */
47
58
  async getOverageConfig() {
48
59
  return await this.httpClient.get('/api/v1/credits/overage');
@@ -51,6 +62,9 @@ export class CreditsApi {
51
62
  * Получить статистику overage за текущий месяц
52
63
  *
53
64
  * @returns Статистика использования overage
65
+ * @throws {AuthenticationError} При истекшем или невалидном access token (401)
66
+ * @throws {ForbiddenError} При отсутствии доступа (403)
67
+ * @throws {InternalServerError} При ошибке сервера (500)
54
68
  */
55
69
  async getOverageStats() {
56
70
  return await this.httpClient.get('/api/v1/credits/overage/stats');
@@ -59,7 +73,10 @@ export class CreditsApi {
59
73
  * Включить/выключить overage
60
74
  *
61
75
  * @param enabled - true для включения, false для выключения
62
- * @throws {AxiosError} 403 если пользователь на Free плане
76
+ * @throws {AuthenticationError} При истекшем или невалидном access token (401)
77
+ * @throws {ForbiddenError} Если пользователь на Free плане (403)
78
+ * @throws {ValidationError} При некорректных параметрах (422)
79
+ * @throws {InternalServerError} При ошибке сервера (500)
63
80
  */
64
81
  async toggleOverage(enabled) {
65
82
  await this.httpClient.post('/api/v1/credits/overage/toggle', { enabled });
@@ -68,7 +85,10 @@ export class CreditsApi {
68
85
  * Обновить лимит overage
69
86
  *
70
87
  * @param limitCredits - Новый лимит overage в credits
71
- * @throws {AxiosError} 400 если лимит некорректный
88
+ * @throws {AuthenticationError} При истекшем или невалидном access token (401)
89
+ * @throws {BadRequestError} Если лимит некорректный (400)
90
+ * @throws {ValidationError} При ошибке валидации (422)
91
+ * @throws {InternalServerError} При ошибке сервера (500)
72
92
  */
73
93
  async updateOverageLimit(limitCredits) {
74
94
  await this.httpClient.post('/api/v1/credits/overage/limit', { limitCredits });
@@ -1 +1 @@
1
- {"version":3,"file":"credits-api.js","sourceRoot":"","sources":["../../../src/api/credits-api.ts"],"names":[],"mappings":"AAWA;;;GAGG;AACH,MAAM,OAAO,UAAU;IACrB,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAE9C;;;;;OAKG;IACH,KAAK,CAAC,UAAU;QACd,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAiB,yBAAyB,CAAC,CAAC;IAC9E,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,SAAS;QACb,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAgB,wBAAwB,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;;;OAOG;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;;;;OAIG;IACH,KAAK,CAAC,gBAAgB;QACpB,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAgB,yBAAyB,CAAC,CAAC;IAC7E,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,eAAe;QACnB,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAe,+BAA+B,CAAC,CAAC;IAClF,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,aAAa,CAAC,OAAgB;QAClC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,gCAAgC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;OAKG;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"}
1
+ {"version":3,"file":"credits-api.js","sourceRoot":"","sources":["../../../src/api/credits-api.ts"],"names":[],"mappings":"AAWA;;;GAGG;AACH,MAAM,OAAO,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"}
@@ -0,0 +1,198 @@
1
+ /**
2
+ * Централизованные классы ошибок SDK
3
+ * Покрывают все типы ошибок backend с типизацией
4
+ */
5
+ /**
6
+ * Базовый класс для всех SDK ошибок
7
+ */
8
+ export class BaseSDKError extends Error {
9
+ constructor(statusCode, errorType, message, details) {
10
+ super(message);
11
+ this.name = this.constructor.name;
12
+ this.statusCode = statusCode;
13
+ this.errorType = errorType;
14
+ this.requestId = details?.requestId;
15
+ this.timestamp = details?.timestamp;
16
+ this.rawResponse = details;
17
+ // Поддержка stack trace в V8
18
+ if (Error.captureStackTrace) {
19
+ Error.captureStackTrace(this, this.constructor);
20
+ }
21
+ }
22
+ }
23
+ // ========================================
24
+ // CLIENT ERRORS (4xx)
25
+ // ========================================
26
+ /**
27
+ * Ошибка аутентификации (401)
28
+ * Выбрасывается при истекшем или невалидном access token
29
+ */
30
+ export class AuthenticationError extends BaseSDKError {
31
+ constructor(message, details) {
32
+ super(401, 'unauthorized', message, details);
33
+ /** Можно ли повторить запрос после refresh токена */
34
+ this.shouldRetry = true;
35
+ }
36
+ }
37
+ /**
38
+ * Ошибка доступа (403)
39
+ * Выбрасывается когда доступ запрещен (не путать с LimitExceededError)
40
+ */
41
+ export class ForbiddenError extends BaseSDKError {
42
+ constructor(message, details) {
43
+ super(403, 'forbidden', message, details);
44
+ this.reason = details?.reason;
45
+ }
46
+ }
47
+ /**
48
+ * Ошибка валидации (422)
49
+ * Выбрасывается при невалидных данных в запросе
50
+ */
51
+ export class ValidationError extends BaseSDKError {
52
+ constructor(message, details) {
53
+ super(422, 'validation_error', message, details);
54
+ this.fields = details?.fields;
55
+ }
56
+ }
57
+ /**
58
+ * Ресурс не найден (404)
59
+ */
60
+ export class NotFoundError extends BaseSDKError {
61
+ constructor(message, details) {
62
+ super(404, 'not_found', message, details);
63
+ this.resource = details?.resource;
64
+ }
65
+ }
66
+ /**
67
+ * Конфликт данных (409)
68
+ * Выбрасывается при попытке создать дубликат или конфликтующую запись
69
+ */
70
+ export class ConflictError extends BaseSDKError {
71
+ constructor(message, details) {
72
+ super(409, 'conflict', message, details);
73
+ }
74
+ }
75
+ /**
76
+ * Некорректный запрос (400)
77
+ */
78
+ export class BadRequestError extends BaseSDKError {
79
+ constructor(message, details) {
80
+ super(400, 'bad_request', message, details);
81
+ }
82
+ }
83
+ // ========================================
84
+ // SERVER ERRORS (5xx)
85
+ // ========================================
86
+ /**
87
+ * Внутренняя ошибка сервера (500)
88
+ */
89
+ export class InternalServerError extends BaseSDKError {
90
+ constructor(message, details) {
91
+ super(500, 'internal_server_error', message, details);
92
+ }
93
+ }
94
+ /**
95
+ * Сервис недоступен (503)
96
+ */
97
+ export class ServiceUnavailableError extends BaseSDKError {
98
+ constructor(message, details) {
99
+ super(503, 'service_unavailable', message, details);
100
+ this.retryAfter = details?.retryAfter;
101
+ }
102
+ }
103
+ /**
104
+ * Таймаут gateway (504)
105
+ */
106
+ export class GatewayTimeoutError extends BaseSDKError {
107
+ constructor(message, details) {
108
+ super(504, 'gateway_timeout', message, details);
109
+ }
110
+ }
111
+ // ========================================
112
+ // СПЕЦИАЛЬНЫЕ ОШИБКИ
113
+ // ========================================
114
+ /**
115
+ * Ошибка базы данных
116
+ * Выбрасывается при SQL ошибках или проблемах с БД
117
+ */
118
+ export class DatabaseError extends BaseSDKError {
119
+ constructor(message, details) {
120
+ super(400, 'database_error', message, details);
121
+ }
122
+ }
123
+ /**
124
+ * Таймаут запроса (408)
125
+ */
126
+ export class TimeoutError extends BaseSDKError {
127
+ constructor(message, details) {
128
+ super(408, 'timeout_error', message, details);
129
+ }
130
+ }
131
+ /**
132
+ * Ошибка сети
133
+ * Выбрасывается когда запрос не смог достичь сервера
134
+ */
135
+ export class NetworkError extends BaseSDKError {
136
+ constructor(message, details) {
137
+ super(0, 'network_error', message, details);
138
+ }
139
+ }
140
+ // ========================================
141
+ // СУЩЕСТВУЮЩИЕ КЛАССЫ (обратная совместимость)
142
+ // ========================================
143
+ /**
144
+ * Ошибка превышения лимита использования
145
+ * Выбрасывается при HTTP 403 с details.error === 'usage_limit_exceeded'
146
+ */
147
+ export class LimitExceededError extends BaseSDKError {
148
+ constructor(errorData) {
149
+ const message = errorData.message || errorData.details?.message || 'Usage limit exceeded';
150
+ super(403, 'usage_limit_exceeded', message, errorData);
151
+ this.statusType = errorData.details?.statusType || 'unknown';
152
+ this.status = errorData.details?.status || 'blocked';
153
+ this.details = errorData.details || {};
154
+ this.action = errorData.details?.action;
155
+ this.balance = errorData.details?.balance;
156
+ }
157
+ /**
158
+ * Проверяет, заблокирован ли пользователь
159
+ */
160
+ isBlocked() {
161
+ return !this.details.canMakeRequest;
162
+ }
163
+ /**
164
+ * Получает URL для действия пользователя
165
+ */
166
+ getActionUrl() {
167
+ return this.action?.ctaUrl;
168
+ }
169
+ }
170
+ /**
171
+ * Ошибка превышения rate limit
172
+ * Выбрасывается при HTTP 429
173
+ */
174
+ export class RateLimitError extends BaseSDKError {
175
+ constructor(errorData) {
176
+ const message = errorData.message || errorData.details?.message || 'Rate limit exceeded';
177
+ super(429, 'rate_limit_exceeded', message, errorData);
178
+ this.details = errorData.details || {};
179
+ this.retryAfter = this.details.retryAfter || 60;
180
+ // Парсим дату из ISO строки или используем текущее время + retryAfter
181
+ this.retryAt = this.details.retryAt
182
+ ? new Date(this.details.retryAt)
183
+ : new Date(Date.now() + this.retryAfter * 1000);
184
+ }
185
+ /**
186
+ * Получает время ожидания в миллисекундах
187
+ */
188
+ getRetryDelayMs() {
189
+ return Math.max(0, this.retryAt.getTime() - Date.now());
190
+ }
191
+ /**
192
+ * Проверяет, прошло ли время ожидания
193
+ */
194
+ canRetryNow() {
195
+ return Date.now() >= this.retryAt.getTime();
196
+ }
197
+ }
198
+ //# sourceMappingURL=sdk-errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk-errors.js","sourceRoot":"","sources":["../../../src/errors/sdk-errors.ts"],"names":[],"mappings":"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"}
package/dist/esm/index.js CHANGED
@@ -17,8 +17,10 @@ export * from './api/updates-api.js';
17
17
  export * from './api/user-api.js';
18
18
  // Экспортируем типы лимитов
19
19
  export * from './types/limit-status.js';
20
- // Экспортируем классы ошибок лимитов
21
- export * from './errors/limit-errors.js';
20
+ // Экспортируем все классы ошибок SDK
21
+ export * from './errors/sdk-errors.js';
22
+ // Явно экспортируем основные классы ошибок для удобства импорта
23
+ export { AuthenticationError, ForbiddenError, ValidationError, NotFoundError, ConflictError, BadRequestError, InternalServerError, ServiceUnavailableError, GatewayTimeoutError, DatabaseError, TimeoutError, NetworkError, LimitExceededError, RateLimitError, BaseSDKError, } from './errors/sdk-errors.js';
22
24
  // Экспортируем Credits API и типы
23
25
  export * from './types/credits.js';
24
26
  export * from './api/credits-api.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,2DAA2D;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,4CAA4C;AAC5C,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,OAAO,EAAE,UAAU,EAAE,CAAC;AAEtB,0CAA0C;AAC1C,cAAc,6BAA6B,CAAC;AAE5C,gCAAgC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAElC,4BAA4B;AAC5B,cAAc,yBAAyB,CAAC;AAExC,qCAAqC;AACrC,cAAc,0BAA0B,CAAC;AAEzC,kCAAkC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AAErC,kDAAkD;AAClD,cAAc,4BAA4B,CAAC;AAE3C,iEAAiE;AACjE,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,8BAA8B,EAC9B,6BAA6B,EAC7B,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,CAAE,+DAA+D;EACzF,MAAM,4BAA4B,CAAC;AAEpC,oEAAoE;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAE9E,+BAA+B;AAC/B,cAAc,2BAA2B,CAAC;AAE1C,wCAAwC;AACxC,cAAc,iCAAiC,CAAC;AAEhD,2BAA2B;AAC3B,cAAc,oBAAoB,CAAC;AAEnC,iDAAiD;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,uBAAuB;AACvB,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,2DAA2D;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,4CAA4C;AAC5C,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,OAAO,EAAE,UAAU,EAAE,CAAC;AAEtB,0CAA0C;AAC1C,cAAc,6BAA6B,CAAC;AAE5C,gCAAgC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAElC,4BAA4B;AAC5B,cAAc,yBAAyB,CAAC;AAExC,qCAAqC;AACrC,cAAc,wBAAwB,CAAC;AAEvC,gEAAgE;AAChE,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,aAAa,EACb,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,YAAY,GACb,MAAM,wBAAwB,CAAC;AAEhC,kCAAkC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AAErC,kDAAkD;AAClD,cAAc,4BAA4B,CAAC;AAE3C,iEAAiE;AACjE,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,8BAA8B,EAC9B,6BAA6B,EAC7B,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,CAAE,+DAA+D;EACzF,MAAM,4BAA4B,CAAC;AAEpC,oEAAoE;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAE9E,+BAA+B;AAC/B,cAAc,2BAA2B,CAAC;AAE1C,wCAAwC;AACxC,cAAc,iCAAiC,CAAC;AAEhD,2BAA2B;AAC3B,cAAc,oBAAoB,CAAC;AAEnC,iDAAiD;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,uBAAuB;AACvB,eAAe,aAAa,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAucH,gCAAgC;AAChC,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAgeH,gCAAgC;AAChC,cAAc,cAAc,CAAC"}
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Централизованный маппер ошибок
3
+ * Преобразует Axios errors в типизированные SDK исключения
4
+ */
5
+ import { AuthenticationError, ForbiddenError, ValidationError, NotFoundError, ConflictError, BadRequestError, InternalServerError, ServiceUnavailableError, GatewayTimeoutError, DatabaseError, TimeoutError, NetworkError, LimitExceededError, RateLimitError, BaseSDKError, } from '../errors/sdk-errors.js';
6
+ /**
7
+ * Класс для маппинга HTTP ошибок на типизированные исключения SDK
8
+ */
9
+ export class ErrorMapper {
10
+ /**
11
+ * Маппит Axios error на типизированное SDK исключение
12
+ * @param axiosError Ошибка от Axios
13
+ * @returns Типизированное исключение SDK
14
+ */
15
+ static mapError(axiosError) {
16
+ const response = axiosError.response;
17
+ // 1. Network errors (нет ответа от сервера)
18
+ if (!response) {
19
+ return new NetworkError(axiosError.message || 'Network error occurred', { originalError: axiosError });
20
+ }
21
+ const status = response.status;
22
+ const data = response.data || {};
23
+ // Извлекаем errorType из backend response
24
+ // Backend структура: { success: false, error: { type, message, code }, requestId, timestamp }
25
+ const errorType = data.error?.type || this.inferErrorType(status);
26
+ const message = data.error?.message || data.message || axiosError.message || 'Unknown error';
27
+ const details = {
28
+ ...data,
29
+ originalError: axiosError,
30
+ };
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);
35
+ }
36
+ // RateLimitError: 429
37
+ if (status === 429) {
38
+ return new RateLimitError(data);
39
+ }
40
+ // 3. Маппинг по errorType из backend
41
+ switch (errorType) {
42
+ case 'unauthorized':
43
+ return new AuthenticationError(message, details);
44
+ case 'forbidden':
45
+ return new ForbiddenError(message, details);
46
+ case 'validation_error':
47
+ return new ValidationError(message, details);
48
+ case 'not_found':
49
+ return new NotFoundError(message, details);
50
+ case 'conflict':
51
+ return new ConflictError(message, details);
52
+ case 'bad_request':
53
+ return new BadRequestError(message, details);
54
+ case 'database_error':
55
+ return new DatabaseError(message, details);
56
+ case 'timeout_error':
57
+ case 'gateway_timeout':
58
+ return new TimeoutError(message, details);
59
+ case 'internal_server_error':
60
+ case 'server_error':
61
+ return new InternalServerError(message, details);
62
+ case 'service_unavailable':
63
+ return new ServiceUnavailableError(message, details);
64
+ case 'rate_limit_exceeded':
65
+ return new RateLimitError(data);
66
+ case 'usage_limit_exceeded':
67
+ case 'credits_limit_exceeded':
68
+ return new LimitExceededError(data);
69
+ default:
70
+ // 4. Fallback по HTTP статусу
71
+ return this.mapByStatusCode(status, message, details);
72
+ }
73
+ }
74
+ /**
75
+ * Определяет тип ошибки по HTTP статусу (fallback)
76
+ */
77
+ static inferErrorType(status) {
78
+ if (status === 401)
79
+ return 'unauthorized';
80
+ if (status === 403)
81
+ return 'forbidden';
82
+ if (status === 404)
83
+ return 'not_found';
84
+ if (status === 422)
85
+ return 'validation_error';
86
+ if (status === 409)
87
+ return 'conflict';
88
+ if (status === 400)
89
+ return 'bad_request';
90
+ if (status === 429)
91
+ return 'rate_limit_exceeded';
92
+ if (status === 408)
93
+ return 'timeout_error';
94
+ if (status === 503)
95
+ return 'service_unavailable';
96
+ if (status === 504)
97
+ return 'gateway_timeout';
98
+ if (status >= 500)
99
+ return 'internal_server_error';
100
+ return 'unknown_error';
101
+ }
102
+ /**
103
+ * Маппит ошибку по HTTP статусу (fallback когда errorType неизвестен)
104
+ */
105
+ static mapByStatusCode(status, message, details) {
106
+ // 4xx Client Errors
107
+ if (status === 401) {
108
+ return new AuthenticationError(message, details);
109
+ }
110
+ if (status === 403) {
111
+ return new ForbiddenError(message, details);
112
+ }
113
+ if (status === 404) {
114
+ return new NotFoundError(message, details);
115
+ }
116
+ if (status === 422) {
117
+ return new ValidationError(message, details);
118
+ }
119
+ if (status === 409) {
120
+ return new ConflictError(message, details);
121
+ }
122
+ if (status === 400) {
123
+ return new BadRequestError(message, details);
124
+ }
125
+ if (status === 408) {
126
+ return new TimeoutError(message, details);
127
+ }
128
+ if (status === 429) {
129
+ return new RateLimitError(details);
130
+ }
131
+ // 5xx Server Errors
132
+ if (status === 503) {
133
+ return new ServiceUnavailableError(message, details);
134
+ }
135
+ if (status === 504) {
136
+ return new GatewayTimeoutError(message, details);
137
+ }
138
+ if (status >= 500) {
139
+ return new InternalServerError(message, details);
140
+ }
141
+ // Unknown error - возвращаем базовый класс
142
+ return new BaseSDKError(status, 'unknown_error', message, details);
143
+ }
144
+ }
145
+ //# sourceMappingURL=error-mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-mapper.js","sourceRoot":"","sources":["../../../src/utils/error-mapper.ts"],"names":[],"mappings":"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"}