@juspay/neurolink
Version:
Universal AI Development Platform with working MCP integration, multi-provider support, voice (TTS/STT/realtime), and professional CLI. 58+ external MCP servers discoverable, multimodal file processing, RAG pipelines. Build, test, and deploy AI applicatio
256 lines (255 loc) • 13.1 kB
JavaScript
/**
* File Processing Error Codes
*
* Comprehensive error codes for file processing operations including:
* - Download operations (timeout, auth, network)
* - File validation (size, type, format)
* - Content processing (parsing, encoding, extraction)
* - Security validation (XXE, XSS, zip bombs)
* - System errors
*
* @module processors/errors
*/
/**
* Enumeration of all file processing error codes.
* Each code represents a specific failure scenario with associated messaging.
*/
export var FileErrorCode;
(function (FileErrorCode) {
// ============================================================================
// DOWNLOAD ERRORS
// ============================================================================
/** File download failed due to network or server error */
FileErrorCode["DOWNLOAD_FAILED"] = "DOWNLOAD_FAILED";
/** Download operation exceeded timeout threshold */
FileErrorCode["DOWNLOAD_TIMEOUT"] = "DOWNLOAD_TIMEOUT";
/** Authentication failed when accessing the file */
FileErrorCode["DOWNLOAD_AUTH_FAILED"] = "DOWNLOAD_AUTH_FAILED";
/** Network error during download (connection reset, DNS failure, etc.) */
FileErrorCode["NETWORK_ERROR"] = "NETWORK_ERROR";
/** File was not found at the specified location */
FileErrorCode["FILE_NOT_FOUND"] = "FILE_NOT_FOUND";
/** Request was rate limited by the server */
FileErrorCode["RATE_LIMITED"] = "RATE_LIMITED";
// ============================================================================
// VALIDATION ERRORS
// ============================================================================
/** File exceeds maximum allowed size */
FileErrorCode["FILE_TOO_LARGE"] = "FILE_TOO_LARGE";
/** File type is not supported for processing */
FileErrorCode["UNSUPPORTED_TYPE"] = "UNSUPPORTED_TYPE";
/** File format is invalid or malformed */
FileErrorCode["INVALID_FORMAT"] = "INVALID_FORMAT";
/** File MIME type doesn't match expected format */
FileErrorCode["INVALID_MIME_TYPE"] = "INVALID_MIME_TYPE";
/** File magic bytes don't match expected file type */
FileErrorCode["INVALID_MAGIC_BYTES"] = "INVALID_MAGIC_BYTES";
/** File appears to be corrupted or damaged */
FileErrorCode["CORRUPTED_FILE"] = "CORRUPTED_FILE";
/** File internal structure is invalid */
FileErrorCode["INVALID_STRUCTURE"] = "INVALID_STRUCTURE";
// ============================================================================
// PROCESSING ERRORS
// ============================================================================
/** Generic processing failure */
FileErrorCode["PROCESSING_FAILED"] = "PROCESSING_FAILED";
/** Failed to parse file content */
FileErrorCode["PARSING_FAILED"] = "PARSING_FAILED";
/** Text encoding error (not UTF-8, BOM issues, etc.) */
FileErrorCode["ENCODING_ERROR"] = "ENCODING_ERROR";
/** Failed to extract content from file */
FileErrorCode["EXTRACTION_FAILED"] = "EXTRACTION_FAILED";
/** Failed to decompress file content */
FileErrorCode["DECOMPRESSION_FAILED"] = "DECOMPRESSION_FAILED";
// ============================================================================
// SECURITY ERRORS
// ============================================================================
/** Security validation failed */
FileErrorCode["SECURITY_VALIDATION_FAILED"] = "SECURITY_VALIDATION_FAILED";
/** XML External Entity (XXE) attack detected */
FileErrorCode["XXE_DETECTED"] = "XXE_DETECTED";
/** Cross-site scripting (XSS) attack detected */
FileErrorCode["XSS_DETECTED"] = "XSS_DETECTED";
/** Potentially malicious code execution detected */
FileErrorCode["CODE_EXECUTION_DETECTED"] = "CODE_EXECUTION_DETECTED";
/** Zip bomb or decompression bomb detected */
FileErrorCode["ZIP_BOMB_DETECTED"] = "ZIP_BOMB_DETECTED";
// ============================================================================
// SYSTEM ERRORS
// ============================================================================
/** Unknown or unexpected error */
FileErrorCode["UNKNOWN_ERROR"] = "UNKNOWN_ERROR";
})(FileErrorCode || (FileErrorCode = {}));
/**
* Error messages map with technical and user-friendly messaging for each error code.
* All messages are designed to be clear, actionable, and free of technical jargon.
*/
export const ERROR_MESSAGES = {
// Download errors
[]: {
message: "Failed to download the file from the source.",
userMessage: "We couldn't download your file.",
suggestedAction: "Please try uploading the file again. If the problem persists, the file may have been deleted or access revoked.",
retryable: true,
},
[]: {
message: "File download timed out.",
userMessage: "The download took too long and was cancelled.",
suggestedAction: "This usually happens with very large files or slow connections. Try re-uploading a smaller version or check your network connection.",
retryable: true,
},
[]: {
message: "Authentication failed when accessing the file.",
userMessage: "We don't have permission to access this file.",
suggestedAction: "Please check the file permissions and ensure it's accessible, then try again.",
retryable: false,
},
[]: {
message: "Network error while downloading the file.",
userMessage: "A network error occurred while downloading.",
suggestedAction: "This is usually temporary. Please try uploading the file again.",
retryable: true,
},
[]: {
message: "The file could not be found at the specified location.",
userMessage: "The file could not be found.",
suggestedAction: "The file may have been moved or deleted. Please re-upload the file.",
retryable: false,
},
[]: {
message: "Request was rate limited by the server.",
userMessage: "Too many requests in a short time.",
suggestedAction: "Please wait a few seconds and try again.",
retryable: true,
},
// Validation errors
[]: {
message: "File exceeds the maximum allowed size.",
userMessage: "This file is too large to process.",
suggestedAction: "Try compressing the file or splitting it into smaller parts. Consider reducing image quality or removing unnecessary content.",
retryable: false,
},
[]: {
message: "The file type is not supported for processing.",
userMessage: "This file type is not supported.",
suggestedAction: "Please convert your file to a supported format and try again.",
retryable: false,
},
[]: {
message: "The file format is invalid or malformed.",
userMessage: "This file appears to be in an invalid format.",
suggestedAction: "Please ensure the file is properly saved and not corrupted, then try again.",
retryable: false,
},
[]: {
message: "File MIME type doesn't match the expected format.",
userMessage: "The file type doesn't match its extension.",
suggestedAction: "Please ensure the file extension matches its actual content type and try again.",
retryable: false,
},
[]: {
message: "File magic bytes don't match the expected file type.",
userMessage: "This file doesn't appear to be a valid file of the expected type.",
suggestedAction: "The file may be corrupted or saved in the wrong format. Try re-saving the file in the correct format.",
retryable: true,
},
[]: {
message: "File appears to be corrupted or damaged.",
userMessage: "This file appears to be corrupted or invalid.",
suggestedAction: "The file structure is invalid. Try re-downloading from the original source or re-creating the file.",
retryable: false,
},
[]: {
message: "File internal structure is invalid.",
userMessage: "The file has an invalid internal structure.",
suggestedAction: "The file format is correct but the content is malformed. Try validating the file with a format checker or re-exporting from the original application.",
retryable: false,
},
// Processing errors
[]: {
message: "Failed to process the file content.",
userMessage: "We couldn't process this file.",
suggestedAction: "Please try again. If the problem persists, the file may be in an unsupported variant.",
retryable: true,
},
[]: {
message: "Failed to parse the file content.",
userMessage: "We couldn't read the contents of this file.",
suggestedAction: "The file structure may be invalid. Try validating the file with a format checker or re-creating the file.",
retryable: false,
},
[]: {
message: "Text encoding error detected.",
userMessage: "We couldn't decode the text in this file.",
suggestedAction: "Try re-saving the file with UTF-8 encoding. Most modern text editors have this option in 'Save As' settings.",
retryable: false,
},
[]: {
message: "Failed to extract content from the file.",
userMessage: "We couldn't extract the content from this file.",
suggestedAction: "The file may be password-protected, corrupted, or use an unsupported variant. Try re-saving without protection.",
retryable: false,
},
[]: {
message: "Failed to decompress the file content.",
userMessage: "We couldn't decompress this file.",
suggestedAction: "The file may be corrupted or use an unsupported compression method. Try re-uploading or using a different file format.",
retryable: true,
},
// Security errors
[]: {
message: "File failed security validation.",
userMessage: "This file contains content that is blocked for security reasons.",
suggestedAction: "Please remove the problematic content and try again. If you believe this is a legitimate file, please contact support.",
retryable: false,
},
[]: {
message: "XML External Entity (XXE) attack pattern detected.",
userMessage: "This XML file contains DOCTYPE or ENTITY declarations that could pose security risks.",
suggestedAction: "Please remove DOCTYPE and ENTITY declarations from the XML file. Most XML files don't need these for basic data storage.",
retryable: false,
},
[]: {
message: "Cross-site scripting (XSS) attack pattern detected.",
userMessage: "This file contains script tags or event handlers that could pose security risks.",
suggestedAction: "Please remove <script> tags and event handlers (onclick, onerror, etc.) from the file.",
retryable: false,
},
[]: {
message: "Potentially malicious code execution pattern detected.",
userMessage: "This file contains code execution tags that are not allowed.",
suggestedAction: "Please remove custom object/function tags and use standard data structures only.",
retryable: false,
},
[]: {
message: "Zip bomb or decompression bomb pattern detected.",
userMessage: "This file has an unusually high compression ratio that could indicate a security threat.",
suggestedAction: "If this is a legitimate file, try re-saving it without extreme compression. Otherwise, please verify the file source.",
retryable: false,
},
// System errors
[]: {
message: "An unexpected error occurred.",
userMessage: "An unexpected error occurred while processing your file.",
suggestedAction: "Please try again. If the problem persists, contact support.",
retryable: true,
},
};
/**
* Get the error message template for a specific error code.
*
* @param code - The FileErrorCode to get the template for
* @returns The ErrorMessageTemplate for the given code
*/
export function getErrorTemplate(code) {
return ERROR_MESSAGES[code] ?? ERROR_MESSAGES[FileErrorCode.UNKNOWN_ERROR];
}
/**
* Check if an error code represents a retryable error.
*
* @param code - The FileErrorCode to check
* @returns true if the error is retryable
*/
export function isRetryableErrorCode(code) {
return ERROR_MESSAGES[code]?.retryable ?? false;
}