136 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			136 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | "use strict"; | ||
|  | // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
 | ||
|  | Object.defineProperty(exports, "__esModule", { value: true }); | ||
|  | exports.InvalidWebhookSignatureError = exports.ContentFilterFinishReasonError = exports.LengthFinishReasonError = exports.InternalServerError = exports.RateLimitError = exports.UnprocessableEntityError = exports.ConflictError = exports.NotFoundError = exports.PermissionDeniedError = exports.AuthenticationError = exports.BadRequestError = exports.APIConnectionTimeoutError = exports.APIConnectionError = exports.APIUserAbortError = exports.APIError = exports.OpenAIError = void 0; | ||
|  | const errors_1 = require("../internal/errors.js"); | ||
|  | class OpenAIError extends Error { | ||
|  | } | ||
|  | exports.OpenAIError = OpenAIError; | ||
|  | class APIError extends OpenAIError { | ||
|  |     constructor(status, error, message, headers) { | ||
|  |         super(`${APIError.makeMessage(status, error, message)}`); | ||
|  |         this.status = status; | ||
|  |         this.headers = headers; | ||
|  |         this.requestID = headers?.get('x-request-id'); | ||
|  |         this.error = error; | ||
|  |         const data = error; | ||
|  |         this.code = data?.['code']; | ||
|  |         this.param = data?.['param']; | ||
|  |         this.type = data?.['type']; | ||
|  |     } | ||
|  |     static makeMessage(status, error, message) { | ||
|  |         const msg = error?.message ? | ||
|  |             typeof error.message === 'string' ? | ||
|  |                 error.message | ||
|  |                 : JSON.stringify(error.message) | ||
|  |             : error ? JSON.stringify(error) | ||
|  |                 : message; | ||
|  |         if (status && msg) { | ||
|  |             return `${status} ${msg}`; | ||
|  |         } | ||
|  |         if (status) { | ||
|  |             return `${status} status code (no body)`; | ||
|  |         } | ||
|  |         if (msg) { | ||
|  |             return msg; | ||
|  |         } | ||
|  |         return '(no status code or body)'; | ||
|  |     } | ||
|  |     static generate(status, errorResponse, message, headers) { | ||
|  |         if (!status || !headers) { | ||
|  |             return new APIConnectionError({ message, cause: (0, errors_1.castToError)(errorResponse) }); | ||
|  |         } | ||
|  |         const error = errorResponse?.['error']; | ||
|  |         if (status === 400) { | ||
|  |             return new BadRequestError(status, error, message, headers); | ||
|  |         } | ||
|  |         if (status === 401) { | ||
|  |             return new AuthenticationError(status, error, message, headers); | ||
|  |         } | ||
|  |         if (status === 403) { | ||
|  |             return new PermissionDeniedError(status, error, message, headers); | ||
|  |         } | ||
|  |         if (status === 404) { | ||
|  |             return new NotFoundError(status, error, message, headers); | ||
|  |         } | ||
|  |         if (status === 409) { | ||
|  |             return new ConflictError(status, error, message, headers); | ||
|  |         } | ||
|  |         if (status === 422) { | ||
|  |             return new UnprocessableEntityError(status, error, message, headers); | ||
|  |         } | ||
|  |         if (status === 429) { | ||
|  |             return new RateLimitError(status, error, message, headers); | ||
|  |         } | ||
|  |         if (status >= 500) { | ||
|  |             return new InternalServerError(status, error, message, headers); | ||
|  |         } | ||
|  |         return new APIError(status, error, message, headers); | ||
|  |     } | ||
|  | } | ||
|  | exports.APIError = APIError; | ||
|  | class APIUserAbortError extends APIError { | ||
|  |     constructor({ message } = {}) { | ||
|  |         super(undefined, undefined, message || 'Request was aborted.', undefined); | ||
|  |     } | ||
|  | } | ||
|  | exports.APIUserAbortError = APIUserAbortError; | ||
|  | class APIConnectionError extends APIError { | ||
|  |     constructor({ message, cause }) { | ||
|  |         super(undefined, undefined, message || 'Connection error.', undefined); | ||
|  |         // in some environments the 'cause' property is already declared
 | ||
|  |         // @ts-ignore
 | ||
|  |         if (cause) | ||
|  |             this.cause = cause; | ||
|  |     } | ||
|  | } | ||
|  | exports.APIConnectionError = APIConnectionError; | ||
|  | class APIConnectionTimeoutError extends APIConnectionError { | ||
|  |     constructor({ message } = {}) { | ||
|  |         super({ message: message ?? 'Request timed out.' }); | ||
|  |     } | ||
|  | } | ||
|  | exports.APIConnectionTimeoutError = APIConnectionTimeoutError; | ||
|  | class BadRequestError extends APIError { | ||
|  | } | ||
|  | exports.BadRequestError = BadRequestError; | ||
|  | class AuthenticationError extends APIError { | ||
|  | } | ||
|  | exports.AuthenticationError = AuthenticationError; | ||
|  | class PermissionDeniedError extends APIError { | ||
|  | } | ||
|  | exports.PermissionDeniedError = PermissionDeniedError; | ||
|  | class NotFoundError extends APIError { | ||
|  | } | ||
|  | exports.NotFoundError = NotFoundError; | ||
|  | class ConflictError extends APIError { | ||
|  | } | ||
|  | exports.ConflictError = ConflictError; | ||
|  | class UnprocessableEntityError extends APIError { | ||
|  | } | ||
|  | exports.UnprocessableEntityError = UnprocessableEntityError; | ||
|  | class RateLimitError extends APIError { | ||
|  | } | ||
|  | exports.RateLimitError = RateLimitError; | ||
|  | class InternalServerError extends APIError { | ||
|  | } | ||
|  | exports.InternalServerError = InternalServerError; | ||
|  | class LengthFinishReasonError extends OpenAIError { | ||
|  |     constructor() { | ||
|  |         super(`Could not parse response content as the length limit was reached`); | ||
|  |     } | ||
|  | } | ||
|  | exports.LengthFinishReasonError = LengthFinishReasonError; | ||
|  | class ContentFilterFinishReasonError extends OpenAIError { | ||
|  |     constructor() { | ||
|  |         super(`Could not parse response content as the request was rejected by the content filter`); | ||
|  |     } | ||
|  | } | ||
|  | exports.ContentFilterFinishReasonError = ContentFilterFinishReasonError; | ||
|  | class InvalidWebhookSignatureError extends Error { | ||
|  |     constructor(message) { | ||
|  |         super(message); | ||
|  |     } | ||
|  | } | ||
|  | exports.InvalidWebhookSignatureError = InvalidWebhookSignatureError; | ||
|  | //# sourceMappingURL=error.js.map
 |