UNPKG

@ingeze/api-error

Version:

A TypeScript library for handling HTTP errors in Express, NestJS, and Fastify APIs.

228 lines 6.78 kB
/** * 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