UNPKG

solver-sdk

Version:

SDK for WorkAI API - AI-powered code analysis with WorkCoins billing system

158 lines 5.73 kB
/** * Централизованные классы ошибок SDK * Покрывают все типы ошибок backend с типизацией */ import type { CreditsBalance, CreditsAction } from '../types/credits.js'; /** * Базовый класс для всех SDK ошибок */ export declare class BaseSDKError extends Error { /** HTTP статус код */ readonly statusCode: number; /** Тип ошибки для категоризации */ readonly errorType: string; /** ID запроса для корреляции с логами backend */ readonly requestId?: string; /** Временная метка ошибки */ readonly timestamp?: string; /** Исходный ответ от сервера */ readonly rawResponse?: any; constructor(statusCode: number, errorType: string, message: string, details?: any); } /** * Ошибка аутентификации (401) * Выбрасывается при истекшем или невалидном access token */ export declare class AuthenticationError extends BaseSDKError { /** Можно ли повторить запрос после refresh токена */ readonly shouldRetry: boolean; constructor(message: string, details?: any); } /** * Ошибка доступа (403) * Выбрасывается когда доступ запрещен (не путать с LimitExceededError) */ export declare class ForbiddenError extends BaseSDKError { /** Причина отказа в доступе */ readonly reason?: string; constructor(message: string, details?: any); } /** * Ошибка валидации (422) * Выбрасывается при невалидных данных в запросе */ export declare class ValidationError extends BaseSDKError { /** Поля с ошибками валидации */ readonly fields?: Record<string, string>; constructor(message: string, details?: any); } /** * Ресурс не найден (404) */ export declare class NotFoundError extends BaseSDKError { /** Тип ресурса который не найден */ readonly resource?: string; constructor(message: string, details?: any); } /** * Конфликт данных (409) * Выбрасывается при попытке создать дубликат или конфликтующую запись */ export declare class ConflictError extends BaseSDKError { constructor(message: string, details?: any); } /** * Некорректный запрос (400) */ export declare class BadRequestError extends BaseSDKError { constructor(message: string, details?: any); } /** * Внутренняя ошибка сервера (500) */ export declare class InternalServerError extends BaseSDKError { constructor(message: string, details?: any); } /** * Сервис недоступен (503) */ export declare class ServiceUnavailableError extends BaseSDKError { /** Время ожидания перед повторным запросом (секунды) */ readonly retryAfter?: number; constructor(message: string, details?: any); } /** * Таймаут gateway (504) */ export declare class GatewayTimeoutError extends BaseSDKError { constructor(message: string, details?: any); } /** * Ошибка базы данных * Выбрасывается при SQL ошибках или проблемах с БД */ export declare class DatabaseError extends BaseSDKError { constructor(message: string, details?: any); } /** * Таймаут запроса (408) */ export declare class TimeoutError extends BaseSDKError { constructor(message: string, details?: any); } /** * Ошибка сети * Выбрасывается когда запрос не смог достичь сервера */ export declare class NetworkError extends BaseSDKError { constructor(message: string, details?: any); } /** * Ошибка превышения лимита кредитов (WorkCoins) * Выбрасывается при HTTP 403 с error.type === 'credits_limit_exceeded' */ export declare class LimitExceededError extends BaseSDKError { /** Тип статуса лимита */ readonly statusType: string; /** Уровень статуса */ readonly status: string; /** Детали лимитов */ readonly details: any; /** Рекомендуемое действие */ readonly action?: CreditsAction; /** Информация о балансе */ readonly balance?: CreditsBalance; /** План пользователя */ readonly plan?: string; constructor(errorData: any); /** * Проверяет, заблокирован ли пользователь */ isBlocked(): boolean; /** * Получает URL для действия пользователя */ getActionUrl(): string | undefined; } /** * Ошибка превышения rate limit * Выбрасывается при HTTP 429 */ export declare class RateLimitError extends BaseSDKError { /** Время ожидания в секундах */ readonly retryAfter: number; /** Время когда можно повторить запрос */ readonly retryAt: Date; /** Детали rate limit */ readonly details: any; constructor(errorData: any); /** * Получает время ожидания в миллисекундах */ getRetryDelayMs(): number; /** * Проверяет, прошло ли время ожидания */ canRetryNow(): boolean; } //# sourceMappingURL=sdk-errors.d.ts.map