"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.humanNetworkError = humanNetworkError; exports.humanHttpStatusError = humanHttpStatusError; /** * Get a human-readable error message for a network error * @param error - The network error object */ function humanNetworkError(error) { switch (error.code) { case 'ENOTFOUND': return `Cannot reach the server. Please check your internet connection or the URL (${error.hostname}).`; case 'ECONNREFUSED': return `Connection refused. The server at ${error.address}:${error.port} is not accepting connections.`; case 'ECONNRESET': return 'Connection was suddenly closed by the server. Please try again later.'; case 'ETIMEDOUT': return 'Connection timed out. The server took too long to respond.'; case 'CERT_HAS_EXPIRED': return 'The SSL certificate of the server has expired. This could be a security risk.'; case 'UNABLE_TO_VERIFY_LEAF_SIGNATURE': case 'CERT_SIGNATURE_FAILURE': case 'ERR_TLS_CERT_ALTNAME_INVALID': return 'SSL certificate validation failed. This could indicate a security issue or a misconfigured server.'; default: return `Network error: ${error.message || error.code || 'Unknown error'}`; } } /** * Get a human-readable error message for a HTTP status code */ function humanHttpStatusError(statusCode) { switch (statusCode) { case 400: return 'Bad request - the server could not understand the request'; case 401: return 'Unauthorized - authentication is required'; case 403: return 'Forbidden - you do not have permission to access this resource'; case 404: return 'Not found - the requested resource does not exist'; case 408: return 'Request timeout - the server timed out waiting for the request'; case 429: return 'Too many requests - you have sent too many requests in a given amount of time'; case 500: return 'Internal server error - something went wrong on the server'; case 502: return 'Bad gateway - the server received an invalid response from an upstream server'; case 503: return 'Service unavailable - the server is temporarily unable to handle the request'; case 504: return 'Gateway timeout - the server did not receive a timely response from an upstream server'; default: return statusCode >= 500 ? 'Server error - something went wrong on the server' : 'Client error - something went wrong with the request'; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibmV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBSUEsOENBbUJDO0FBS0Qsb0RBMkJDO0FBdkREOzs7R0FHRztBQUNILFNBQWdCLGlCQUFpQixDQUFDLEtBQTRCO0lBQzVELFFBQVEsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ25CLEtBQUssV0FBVztZQUNkLE9BQU8sOEVBQStFLEtBQWEsQ0FBQyxRQUFRLElBQUksQ0FBQztRQUNuSCxLQUFLLGNBQWM7WUFDakIsT0FBTyxxQ0FBc0MsS0FBYSxDQUFDLE9BQU8sSUFBSyxLQUFhLENBQUMsSUFBSSxnQ0FBZ0MsQ0FBQztRQUM1SCxLQUFLLFlBQVk7WUFDZixPQUFPLHVFQUF1RSxDQUFDO1FBQ2pGLEtBQUssV0FBVztZQUNkLE9BQU8sNERBQTRELENBQUM7UUFDdEUsS0FBSyxrQkFBa0I7WUFDckIsT0FBTywrRUFBK0UsQ0FBQztRQUN6RixLQUFLLGlDQUFpQyxDQUFDO1FBQ3ZDLEtBQUssd0JBQXdCLENBQUM7UUFDOUIsS0FBSyw4QkFBOEI7WUFDakMsT0FBTyxvR0FBb0csQ0FBQztRQUM5RztZQUNFLE9BQU8sa0JBQWtCLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLElBQUksSUFBSSxlQUFlLEVBQUUsQ0FBQztJQUM5RSxDQUFDO0FBQ0gsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQUMsVUFBa0I7SUFDckQsUUFBUSxVQUFVLEVBQUUsQ0FBQztRQUNuQixLQUFLLEdBQUc7WUFDTixPQUFPLDJEQUEyRCxDQUFDO1FBQ3JFLEtBQUssR0FBRztZQUNOLE9BQU8sMkNBQTJDLENBQUM7UUFDckQsS0FBSyxHQUFHO1lBQ04sT0FBTyxnRUFBZ0UsQ0FBQztRQUMxRSxLQUFLLEdBQUc7WUFDTixPQUFPLG1EQUFtRCxDQUFDO1FBQzdELEtBQUssR0FBRztZQUNOLE9BQU8sZ0VBQWdFLENBQUM7UUFDMUUsS0FBSyxHQUFHO1lBQ04sT0FBTywrRUFBK0UsQ0FBQztRQUN6RixLQUFLLEdBQUc7WUFDTixPQUFPLDREQUE0RCxDQUFDO1FBQ3RFLEtBQUssR0FBRztZQUNOLE9BQU8sK0VBQStFLENBQUM7UUFDekYsS0FBSyxHQUFHO1lBQ04sT0FBTyw4RUFBOEUsQ0FBQztRQUN4RixLQUFLLEdBQUc7WUFDTixPQUFPLHdGQUF3RixDQUFDO1FBQ2xHO1lBQ0UsT0FBTyxVQUFVLElBQUksR0FBRztnQkFDdEIsQ0FBQyxDQUFDLG1EQUFtRDtnQkFDckQsQ0FBQyxDQUFDLHNEQUFzRCxDQUFDO0lBQy9ELENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZXQgYSBodW1hbi1yZWFkYWJsZSBlcnJvciBtZXNzYWdlIGZvciBhIG5ldHdvcmsgZXJyb3JcbiAqIEBwYXJhbSBlcnJvciAtIFRoZSBuZXR3b3JrIGVycm9yIG9iamVjdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaHVtYW5OZXR3b3JrRXJyb3IoZXJyb3I6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbik6IHN0cmluZyB7XG4gIHN3aXRjaCAoZXJyb3IuY29kZSkge1xuICAgIGNhc2UgJ0VOT1RGT1VORCc6XG4gICAgICByZXR1cm4gYENhbm5vdCByZWFjaCB0aGUgc2VydmVyLiBQbGVhc2UgY2hlY2sgeW91ciBpbnRlcm5ldCBjb25uZWN0aW9uIG9yIHRoZSBVUkwgKCR7KGVycm9yIGFzIGFueSkuaG9zdG5hbWV9KS5gO1xuICAgIGNhc2UgJ0VDT05OUkVGVVNFRCc6XG4gICAgICByZXR1cm4gYENvbm5lY3Rpb24gcmVmdXNlZC4gVGhlIHNlcnZlciBhdCAkeyhlcnJvciBhcyBhbnkpLmFkZHJlc3N9OiR7KGVycm9yIGFzIGFueSkucG9ydH0gaXMgbm90IGFjY2VwdGluZyBjb25uZWN0aW9ucy5gO1xuICAgIGNhc2UgJ0VDT05OUkVTRVQnOlxuICAgICAgcmV0dXJuICdDb25uZWN0aW9uIHdhcyBzdWRkZW5seSBjbG9zZWQgYnkgdGhlIHNlcnZlci4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlci4nO1xuICAgIGNhc2UgJ0VUSU1FRE9VVCc6XG4gICAgICByZXR1cm4gJ0Nvbm5lY3Rpb24gdGltZWQgb3V0LiBUaGUgc2VydmVyIHRvb2sgdG9vIGxvbmcgdG8gcmVzcG9uZC4nO1xuICAgIGNhc2UgJ0NFUlRfSEFTX0VYUElSRUQnOlxuICAgICAgcmV0dXJuICdUaGUgU1NMIGNlcnRpZmljYXRlIG9mIHRoZSBzZXJ2ZXIgaGFzIGV4cGlyZWQuIFRoaXMgY291bGQgYmUgYSBzZWN1cml0eSByaXNrLic7XG4gICAgY2FzZSAnVU5BQkxFX1RPX1ZFUklGWV9MRUFGX1NJR05BVFVSRSc6XG4gICAgY2FzZSAnQ0VSVF9TSUdOQVRVUkVfRkFJTFVSRSc6XG4gICAgY2FzZSAnRVJSX1RMU19DRVJUX0FMVE5BTUVfSU5WQUxJRCc6XG4gICAgICByZXR1cm4gJ1NTTCBjZXJ0aWZpY2F0ZSB2YWxpZGF0aW9uIGZhaWxlZC4gVGhpcyBjb3VsZCBpbmRpY2F0ZSBhIHNlY3VyaXR5IGlzc3VlIG9yIGEgbWlzY29uZmlndXJlZCBzZXJ2ZXIuJztcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGBOZXR3b3JrIGVycm9yOiAke2Vycm9yLm1lc3NhZ2UgfHwgZXJyb3IuY29kZSB8fCAnVW5rbm93biBlcnJvcid9YDtcbiAgfVxufVxuXG4vKipcbiAqIEdldCBhIGh1bWFuLXJlYWRhYmxlIGVycm9yIG1lc3NhZ2UgZm9yIGEgSFRUUCBzdGF0dXMgY29kZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaHVtYW5IdHRwU3RhdHVzRXJyb3Ioc3RhdHVzQ29kZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgc3dpdGNoIChzdGF0dXNDb2RlKSB7XG4gICAgY2FzZSA0MDA6XG4gICAgICByZXR1cm4gJ0JhZCByZXF1ZXN0IC0gdGhlIHNlcnZlciBjb3VsZCBub3QgdW5kZXJzdGFuZCB0aGUgcmVxdWVzdCc7XG4gICAgY2FzZSA0MDE6XG4gICAgICByZXR1cm4gJ1VuYXV0aG9yaXplZCAtIGF1dGhlbnRpY2F0aW9uIGlzIHJlcXVpcmVkJztcbiAgICBjYXNlIDQwMzpcbiAgICAgIHJldHVybiAnRm9yYmlkZGVuIC0geW91IGRvIG5vdCBoYXZlIHBlcm1pc3Npb24gdG8gYWNjZXNzIHRoaXMgcmVzb3VyY2UnO1xuICAgIGNhc2UgNDA0OlxuICAgICAgcmV0dXJuICdOb3QgZm91bmQgLSB0aGUgcmVxdWVzdGVkIHJlc291cmNlIGRvZXMgbm90IGV4aXN0JztcbiAgICBjYXNlIDQwODpcbiAgICAgIHJldHVybiAnUmVxdWVzdCB0aW1lb3V0IC0gdGhlIHNlcnZlciB0aW1lZCBvdXQgd2FpdGluZyBmb3IgdGhlIHJlcXVlc3QnO1xuICAgIGNhc2UgNDI5OlxuICAgICAgcmV0dXJuICdUb28gbWFueSByZXF1ZXN0cyAtIHlvdSBoYXZlIHNlbnQgdG9vIG1hbnkgcmVxdWVzdHMgaW4gYSBnaXZlbiBhbW91bnQgb2YgdGltZSc7XG4gICAgY2FzZSA1MDA6XG4gICAgICByZXR1cm4gJ0ludGVybmFsIHNlcnZlciBlcnJvciAtIHNvbWV0aGluZyB3ZW50IHdyb25nIG9uIHRoZSBzZXJ2ZXInO1xuICAgIGNhc2UgNTAyOlxuICAgICAgcmV0dXJuICdCYWQgZ2F0ZXdheSAtIHRoZSBzZXJ2ZXIgcmVjZWl2ZWQgYW4gaW52YWxpZCByZXNwb25zZSBmcm9tIGFuIHVwc3RyZWFtIHNlcnZlcic7XG4gICAgY2FzZSA1MDM6XG4gICAgICByZXR1cm4gJ1NlcnZpY2UgdW5hdmFpbGFibGUgLSB0aGUgc2VydmVyIGlzIHRlbXBvcmFyaWx5IHVuYWJsZSB0byBoYW5kbGUgdGhlIHJlcXVlc3QnO1xuICAgIGNhc2UgNTA0OlxuICAgICAgcmV0dXJuICdHYXRld2F5IHRpbWVvdXQgLSB0aGUgc2VydmVyIGRpZCBub3QgcmVjZWl2ZSBhIHRpbWVseSByZXNwb25zZSBmcm9tIGFuIHVwc3RyZWFtIHNlcnZlcic7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBzdGF0dXNDb2RlID49IDUwMFxuICAgICAgICA/ICdTZXJ2ZXIgZXJyb3IgLSBzb21ldGhpbmcgd2VudCB3cm9uZyBvbiB0aGUgc2VydmVyJ1xuICAgICAgICA6ICdDbGllbnQgZXJyb3IgLSBzb21ldGhpbmcgd2VudCB3cm9uZyB3aXRoIHRoZSByZXF1ZXN0JztcbiAgfVxufVxuIl19