/* eslint-disable @typescript-eslint/no-unused-vars */ export const ERROR_CODES = { MONGODB: { MISSING_URI: "MONGODB_MISSING_URI", CONNECTION_FAILED: "MONGODB_CONNECTION_FAILED", }, AUTH: { UNAUTHENTICATED: "AUTH_UNAUTHENTICATED", INVALID_CREDENTIALS: "AUTH_INVALID_CREDENTIALS", PASSWORD_NOT_STRONG: "AUTH_PASSWORD_NOT_STRONG", PASSWORD_MISMATCH: "AUTH_PASSWORD_MISMATCH", EMAIL_EXISTS: "AUTH_EMAIL_EXISTS", INVALID_USER_DATA: "AUTH_INVALID_USER_DATA", LOGOUT_ERROR: "AUTH_LOGOUT_ERROR", REGISTRATION_FAILED: "AUTH_REGISTRATION_FAILED", USER_NOT_FOUND: "AUTH_USER_NOT_FOUND", INVALID_PASSWORD: "AUTH_INVALID_PASSWORD", PASSWORD_CHANGE_ERROR: "AUTH_PASSWORD_CHANGE_ERROR", FETCH_ERROR: "AUTH_FETCH_ERROR", FORBIDDEN: "AUTH_FORBIDDEN", }, KOMGA: { MISSING_CONFIG: "KOMGA_MISSING_CONFIG", MISSING_CREDENTIALS: "KOMGA_MISSING_CREDENTIALS", CONNECTION_ERROR: "KOMGA_CONNECTION_ERROR", HTTP_ERROR: "KOMGA_HTTP_ERROR", SERVER_UNREACHABLE: "KOMGA_SERVER_UNREACHABLE", }, CONFIG: { SAVE_ERROR: "CONFIG_SAVE_ERROR", FETCH_ERROR: "CONFIG_FETCH_ERROR", TTL_SAVE_ERROR: "CONFIG_TTL_SAVE_ERROR", TTL_FETCH_ERROR: "CONFIG_TTL_FETCH_ERROR", }, LIBRARY: { NOT_FOUND: "LIBRARY_NOT_FOUND", FETCH_ERROR: "LIBRARY_FETCH_ERROR", }, SERIES: { FETCH_ERROR: "SERIES_FETCH_ERROR", NO_BOOKS_FOUND: "SERIES_NO_BOOKS_FOUND", }, BOOK: { NOT_FOUND: "BOOK_NOT_FOUND", PROGRESS_UPDATE_ERROR: "BOOK_PROGRESS_UPDATE_ERROR", PROGRESS_DELETE_ERROR: "BOOK_PROGRESS_DELETE_ERROR", PAGES_FETCH_ERROR: "BOOK_PAGES_FETCH_ERROR", DOWNLOAD_CANCELLED: "BOOK_DOWNLOAD_CANCELLED", }, FAVORITE: { ADD_ERROR: "FAVORITE_ADD_ERROR", DELETE_ERROR: "FAVORITE_DELETE_ERROR", FETCH_ERROR: "FAVORITE_FETCH_ERROR", UPDATE_ERROR: "FAVORITE_UPDATE_ERROR", NETWORK_ERROR: "FAVORITE_NETWORK_ERROR", SERVER_ERROR: "FAVORITE_SERVER_ERROR", STATUS_CHECK_ERROR: "FAVORITE_STATUS_CHECK_ERROR", }, PREFERENCES: { FETCH_ERROR: "PREFERENCES_FETCH_ERROR", UPDATE_ERROR: "PREFERENCES_UPDATE_ERROR", CONTEXT_ERROR: "PREFERENCES_CONTEXT_ERROR", }, CACHE: { DELETE_ERROR: "CACHE_DELETE_ERROR", SAVE_ERROR: "CACHE_SAVE_ERROR", LOAD_ERROR: "CACHE_LOAD_ERROR", CLEAR_ERROR: "CACHE_CLEAR_ERROR", MODE_FETCH_ERROR: "CACHE_MODE_FETCH_ERROR", MODE_UPDATE_ERROR: "CACHE_MODE_UPDATE_ERROR", INVALID_MODE: "CACHE_INVALID_MODE", SIZE_FETCH_ERROR: "CACHE_SIZE_FETCH_ERROR", }, UI: { TABS_TRIGGER_ERROR: "UI_TABS_TRIGGER_ERROR", TABS_CONTENT_ERROR: "UI_TABS_CONTENT_ERROR", }, IMAGE: { FETCH_ERROR: "IMAGE_FETCH_ERROR", }, HOME: { FETCH_ERROR: "HOME_FETCH_ERROR", }, MIDDLEWARE: { UNAUTHORIZED: "MIDDLEWARE_UNAUTHORIZED", INVALID_TOKEN: "MIDDLEWARE_INVALID_TOKEN", INVALID_SESSION: "MIDDLEWARE_INVALID_SESSION", }, CLIENT: { FETCH_ERROR: "CLIENT_FETCH_ERROR", NETWORK_ERROR: "CLIENT_NETWORK_ERROR", REQUEST_FAILED: "CLIENT_REQUEST_FAILED", }, ADMIN: { FETCH_USERS_ERROR: "ADMIN_FETCH_USERS_ERROR", UPDATE_USER_ERROR: "ADMIN_UPDATE_USER_ERROR", DELETE_USER_ERROR: "ADMIN_DELETE_USER_ERROR", FETCH_STATS_ERROR: "ADMIN_FETCH_STATS_ERROR", CANNOT_DELETE_SELF: "ADMIN_CANNOT_DELETE_SELF", RESET_PASSWORD_ERROR: "ADMIN_RESET_PASSWORD_ERROR", CANNOT_RESET_OWN_PASSWORD: "ADMIN_CANNOT_RESET_OWN_PASSWORD", }, } as const; type Values = T[keyof T]; type ErrorCodeValues = T extends { [key: string]: infer U } ? U extends { [key: string]: string } ? Values : never : never; export type ErrorCode = ErrorCodeValues;