export const ExitCodes: IErrors = { SUCCESS: { code: 0, message: 'Success', type: 'SUCCESS' }, ERROR_GENERIC: { code: 1, message: "Generic error '{error}'", type: 'ERROR_GENERIC', }, ERROR_INVALID_INPUT: { code: 2, message: "Invalid input '{input}'", type: 'ERROR_INVALID_INPUT', }, ERROR_FILE_NOT_FOUND: { code: 3, message: "File not found '{fileName}'", type: 'ERROR_FILE_NOT_FOUND', }, ERROR_DATABASE_CONNECTION: { code: 4, message: 'Failed to connect to the database', type: 'ERROR_DATABASE_CONNECTION', }, ERROR_DATABASE_DISCONNECTED: { code: 5, message: 'Database disconnected for a fail {error}', type: 'ERROR_DATABASE_DISCONNECTED', }, ERROR_COULDNT_READ_FILE: { code: 6, message: 'Failed to read a file {filePath}', type: 'ERROR_COULDNT_READ_FILE', }, ENV_ERROR_COULDNT_FIND_FIELD: { code: 7, message: 'Failed to read env field : {field}', type: 'ENV_ERROR_COULDNT_FIND_FIELD', }, COULDNT_LOAD_ROLES: { code: 8, message: "Couldn't Load roles for this reason {reason}", type: 'COULDNT_LOAD_ROLES', }, // email issue EMAIL_ERROR_GENERIC: { code: 9, message: "Email error '{error}'", type: 'EMAIL_ERROR_GENERIC', }, GOOGLE_CLOUD_STORAGE_ERROR_GENERIC: { code: 10, message: "GOOGLE_CLOUD_STORAGE error '{error}'", type: 'GOOGLE_CLOUD_STORAGE_ERROR_GENERIC', }, CLOUDINARY_ERROR_GENERIC: { code: 10, message: "Cloudinary error '{error}'", type: 'CLOUDINARY_ERROR_GENERIC', }, } as const; export const HttpCodes: IErrors = { // Network usage Continue: { code: 100, message: 'Continue', type: 'Continue' }, SwitchingProtocols: { code: 101, message: 'Switching Protocols', type: 'SwitchingProtocols', }, Processing: { code: 102, message: 'Processing', type: 'Processing' }, EarlyHints: { code: 103, message: 'Early Hints', type: 'EarlyHints' }, // success response OK: { code: 200, message: 'OK', type: 'OK' }, Created: { code: 201, message: 'Created', type: 'Created' }, Accepted: { code: 202, message: 'Accepted', type: 'Accepted' }, NonAuthoritativeInformation: { code: 203, message: 'Non-Authoritative Information', type: 'NonAuthoritativeInformation', }, NoContent: { code: 204, message: 'No Content', type: 'NoContent' }, ResetContent: { code: 205, message: 'Reset Content', type: 'ResetContent' }, PartialContent: { code: 206, message: 'Partial Content', type: 'PartialContent', }, MultiStatus: { code: 207, message: 'Multi-Status', type: 'MultiStatus' }, AlreadyReported: { code: 208, message: 'Already Reported', type: 'AlreadyReported', }, IMUsed: { code: 226, message: 'IM Used', type: 'IMUsed' }, // Redirection Response MultipleChoices: { code: 300, message: 'Multiple Choices', type: 'MultipleChoices', }, MovedPermanently: { code: 301, message: 'Moved Permanently', type: 'MovedPermanently', }, Found: { code: 302, message: 'Found', type: 'Found' }, SeeOther: { code: 303, message: 'See Other', type: 'SeeOther' }, NotModified: { code: 304, message: 'Not Modified', type: 'NotModified' }, TemporaryRedirect: { code: 307, message: 'Temporary Redirect', type: 'TemporaryRedirect', }, PermanentRedirect: { code: 308, message: 'Permanent Redirect', type: 'PermanentRedirect', }, // Client Error Respons BadRequest: { code: 400, message: 'Bad Request', type: 'BadRequest' }, Unauthorized: { code: 401, message: 'Unauthorized', type: 'Unauthorized' }, PaymentRequired: { code: 402, message: 'Payment Required', type: 'PaymentRequired', }, Forbidden: { code: 403, message: 'Forbidden', type: 'Forbidden' }, NotFound: { code: 404, message: 'Not Found', type: 'NotFound' }, MethodNotAllowed: { code: 405, message: 'Method Not Allowed', type: 'MethodNotAllowed', }, NotAcceptable: { code: 406, message: 'Not Acceptable', type: 'NotAcceptable', }, ProxyAuthenticationRequired: { code: 407, message: 'Proxy Authentication Required', type: 'ProxyAuthenticationRequired', }, RequestTimeout: { code: 408, message: 'Request Timeout', type: 'RequestTimeout', }, Conflict: { code: 409, message: 'Conflict', type: 'Conflict' }, Gone: { code: 410, message: 'Gone', type: 'Gone' }, LengthRequired: { code: 411, message: 'Length Required', type: 'LengthRequired', }, PreconditionFailed: { code: 412, message: 'Precondition Failed', type: 'PreconditionFailed', }, PayloadTooLarge: { code: 413, message: 'Payload Too Large', type: 'PayloadTooLarge', }, URITooLong: { code: 414, message: 'URI Too Long', type: 'URITooLong' }, UnsupportedMediaType: { code: 415, message: 'Unsupported Media Type', type: 'UnsupportedMediaType', }, RangeNotSatisfiable: { code: 416, message: 'Range Not Satisfiable', type: 'RangeNotSatisfiable', }, ExpectationFailed: { code: 417, message: 'Expectation Failed', type: 'ExpectationFailed', }, ImATeapot: { code: 418, message: "I'm a Teapot", type: 'ImATeapot' }, MisdirectedRequest: { code: 421, message: 'Misdirected Request', type: 'MisdirectedRequest', }, UnprocessableEntity: { code: 422, message: 'Unprocessable Entity', type: 'UnprocessableEntity', }, Locked: { code: 423, message: 'Locked', type: 'Locked' }, FailedDependency: { code: 424, message: 'Failed Dependency', type: 'FailedDependency', }, UpgradeRequired: { code: 426, message: 'Upgrade Required', type: 'UpgradeRequired', }, PreconditionRequired: { code: 428, message: 'Precondition Required', type: 'PreconditionRequired', }, TooManyRequests: { code: 429, message: 'Too Many Requests', type: 'TooManyRequests', }, RequestHeaderFieldsTooLarge: { code: 431, message: 'Request Header Fields Too Large', type: 'RequestHeaderFieldsTooLarge', }, UnavailableForLegalReasons: { code: 451, message: 'Unavailable For Legal Reasons', type: 'UnavailableForLegalReasons', }, // Server Error Respons InternalServerError: { code: 500, message: 'Internal Server Error', type: 'InternalServerError', }, NotImplemented: { code: 501, message: 'Not Implemented', type: 'NotImplemented', }, BadGateway: { code: 502, message: 'Bad Gateway', type: 'BadGateway' }, ServiceUnavailable: { code: 503, message: 'Service Unavailable', type: 'ServiceUnavailable', }, GatewayTimeout: { code: 504, message: 'Gateway Timeout', type: 'GatewayTimeout', }, HTTPVersionNotSupported: { code: 505, message: 'HTTP Version Not Supported', type: 'HTTPVersionNotSupported', }, VariantAlsoNegotiates: { code: 506, message: 'Variant Also Negotiates', type: 'VariantAlsoNegotiates', }, InsufficientStorage: { code: 507, message: 'Insufficient Storage', type: 'InsufficientStorage', }, LoopDetected: { code: 508, message: 'Loop Detected', type: 'LoopDetected' }, NotExtended: { code: 510, message: 'Not Extended', type: 'NotExtended' }, NetworkAuthenticationRequired: { code: 511, message: 'Network Authentication Required', type: 'NetworkAuthenticationRequired', }, };