UNPKG

vulncheck-sdk

Version:

A comprehensive TypeScript/JavaScript SDK for the VulnCheck API - vulnerability intelligence platform with enriched CVE data, threat intelligence, and security tooling

78 lines 3.01 kB
export class VulnCheckError extends Error { constructor(message, statusCode, endpoint, originalError) { super(message); this.name = 'VulnCheckError'; if (statusCode !== undefined) this.statusCode = statusCode; if (endpoint !== undefined) this.endpoint = endpoint; if (originalError !== undefined) this.originalError = originalError; if (Error.captureStackTrace) { Error.captureStackTrace(this, VulnCheckError); } } } export class VulnCheckAuthError extends VulnCheckError { constructor(message = 'Authentication failed', endpoint) { super(message, 401, endpoint); this.name = 'VulnCheckAuthError'; } } export class VulnCheckRateLimitError extends VulnCheckError { constructor(message = 'Rate limit exceeded', endpoint, retryAfter) { super(message, 429, endpoint); this.name = 'VulnCheckRateLimitError'; if (retryAfter !== undefined) this.retryAfter = retryAfter; } } export class VulnCheckNotFoundError extends VulnCheckError { constructor(message = 'Resource not found', endpoint) { super(message, 404, endpoint); this.name = 'VulnCheckNotFoundError'; } } export class VulnCheckValidationError extends VulnCheckError { constructor(message = 'Invalid request parameters', endpoint) { super(message, 400, endpoint); this.name = 'VulnCheckValidationError'; } } export class VulnCheckServerError extends VulnCheckError { constructor(message = 'Server error', endpoint, statusCode = 500) { super(message, statusCode, endpoint); this.name = 'VulnCheckServerError'; } } export function createErrorFromResponse(error, endpoint) { const err = error; if (err.response) { const { status, data } = err.response; const message = data?.message || data?.error || err.message; switch (status) { case 401: return new VulnCheckAuthError(message, endpoint); case 404: return new VulnCheckNotFoundError(message, endpoint); case 400: return new VulnCheckValidationError(message, endpoint); case 429: { const retryAfter = err.response.headers?.['retry-after']; return new VulnCheckRateLimitError(message, endpoint, retryAfter ? parseInt(retryAfter) : undefined); } case 500: case 502: case 503: case 504: return new VulnCheckServerError(message, endpoint, status); default: return new VulnCheckError(message, status, endpoint, err); } } if (err.request) { return new VulnCheckError('Network error: No response received', undefined, endpoint, err); } return new VulnCheckError(err.message || 'Unknown error occurred', undefined, endpoint, err); } //# sourceMappingURL=index.js.map