@ingeze/api-error
Version:
A TypeScript library for handling HTTP errors in Express, NestJS, and Fastify APIs.
228 lines • 6.78 kB
TypeScript
/**
* Defines custom error classes for handling various forbidden scenarios (HTTP 403).
*
* Each class extends `ForbiddenError`, which in turn extends `ErrorHandler`.
* These classes represent specific authorization failures and provide
* descriptive messages and error types for easier error handling and debugging.
*
* @module errors/forbidden-error
*/
import { ErrorHandler } from './error-handler.js';
import type { ForbiddenErrorType } from '../types/index.js';
/**
* Represents a generic forbidden error (HTTP 403).
*
* Thrown when a user tries to access a resource they do not have permission for.
* Can be instantiated with a custom message and type, or just with a `details` object.
*
* @extends ErrorHandler
*
* Response:
* ```json
* {
* "success": false,
* "message": "Forbidden",
* "statusCode": 403,
* "type": "FORBIDDEN",
* "details": {} // Optional, provided by the user with extra error context
* }
* ```
* - `details`: Optional object with additional error context, set by the user when throwing the error.
*/
export declare class ForbiddenError extends ErrorHandler {
/**
* Creates a new ForbiddenError instance with optional details.
*
* @param {Record<string, unknown>=} details - Additional error details.
*/
constructor(details?: Record<string, unknown>);
/**
* Creates a new ForbiddenError instance with a message, type, and optional details.
*
* @param {string} message - Custom error message.
* @param {ForbiddenErrorType=} type - Specific error type identifier.
* @param {Record<string, unknown>=} details - Additional error details.
*/
constructor(message?: string, type?: ForbiddenErrorType, details?: Record<string, unknown>);
}
/**
* Error for forbidden user access.
*
* @extends ForbiddenError
*
* Response:
* ```json
* {
* "success": false,
* "message": "User access forbidden",
* "statusCode": 403,
* "type": "FORBIDDEN_USER",
* "details": {} // Optional, provided by the user with extra error context
* }
* ```
* - `details`: Optional object with additional information about the forbidden user access, set by the user.
*/
export declare class ForbiddenUserError extends ForbiddenError {
constructor(details?: Record<string, unknown>);
}
/**
* Error for forbidden email access.
*
* @extends ForbiddenError
*
* Response:
* ```json
* {
* "success": false,
* "message": "Email access forbidden",
* "statusCode": 403,
* "type": "FORBIDDEN_EMAIL",
* "details": {} // Optional, provided by the user with extra error context
* }
* ```
* - `details`: Optional object with additional information about the forbidden email access, set by the user.
*/
export declare class ForbiddenEmailError extends ForbiddenError {
constructor(details?: Record<string, unknown>);
}
/**
* Error for forbidden product access.
*
* @extends ForbiddenError
*
* Response:
* ```json
* {
* "success": false,
* "message": "Product access forbidden",
* "statusCode": 403,
* "type": "FORBIDDEN_PRODUCT",
* "details": {} // Optional, provided by the user with extra error context
* }
* ```
* - `details`: Optional object with additional information about the forbidden product access, set by the user.
*/
export declare class ForbiddenProductError extends ForbiddenError {
constructor(details?: Record<string, unknown>);
}
/**
* Error for forbidden post access.
*
* @extends ForbiddenError
*
* Response:
* ```json
* {
* "success": false,
* "message": "Post access forbidden",
* "statusCode": 403,
* "type": "FORBIDDEN_POST",
* "details": {} // Optional, provided by the user with extra error context
* }
* ```
* - `details`: Optional object with additional information about the forbidden post access, set by the user.
*/
export declare class ForbiddenPostError extends ForbiddenError {
constructor(details?: Record<string, unknown>);
}
/**
* Error for forbidden comment access.
*
* @extends ForbiddenError
*
* Response:
* ```json
* {
* "success": false,
* "message": "Comment access forbidden",
* "statusCode": 403,
* "type": "FORBIDDEN_COMMENT",
* "details": {} // Optional, provided by the user with extra error context
* }
* ```
* - `details`: Optional object with additional information about the forbidden comment access, set by the user.
*/
export declare class ForbiddenCommentError extends ForbiddenError {
constructor(details?: Record<string, unknown>);
}
/**
* Error for forbidden category access.
*
* @extends ForbiddenError
*
* Response:
* ```json
* {
* "success": false,
* "message": "Category access forbidden",
* "statusCode": 403,
* "type": "FORBIDDEN_CATEGORY",
* "details": {} // Optional, provided by the user with extra error context
* }
* ```
* - `details`: Optional object with additional information about the forbidden category access, set by the user.
*/
export declare class ForbiddenCategoryError extends ForbiddenError {
constructor(details?: Record<string, unknown>);
}
/**
* Error for forbidden file access.
*
* @extends ForbiddenError
*
* Response:
* ```json
* {
* "success": false,
* "message": "File access forbidden",
* "statusCode": 403,
* "type": "FORBIDDEN_FILE",
* "details": {} // Optional, provided by the user with extra error context
* }
* ```
* - `details`: Optional object with additional information about the forbidden file access, set by the user.
*/
export declare class ForbiddenFileError extends ForbiddenError {
constructor(details?: Record<string, unknown>);
}
/**
* Error for forbidden image access.
*
* @extends ForbiddenError
*
* Response:
* ```json
* {
* "success": false,
* "message": "Image access forbidden",
* "statusCode": 403,
* "type": "FORBIDDEN_IMAGE",
* "details": {} // Optional, provided by the user with extra error context
* }
* ```
* - `details`: Optional object with additional information about the forbidden image access, set by the user.
*/
export declare class ForbiddenImageError extends ForbiddenError {
constructor(details?: Record<string, unknown>);
}
/**
* Error for forbidden address access.
*
* @extends ForbiddenError
*
* Response:
* ```json
* {
* "success": false,
* "message": "Address access forbidden",
* "statusCode": 403,
* "type": "FORBIDDEN_ADDRESS",
* "details": {} // Optional, provided by the user with extra error context
* }
* ```
* - `details`: Optional object with additional information about the forbidden address access, set by the user.
*/
export declare class ForbiddenAddressError extends ForbiddenError {
constructor(details?: Record<string, unknown>);
}
//# sourceMappingURL=forbidden-error.d.ts.map