export class OAuth2Error extends Error { public name = 'OAuth2AbstractError'; public logLevel = 'error'; constructor (public code: string, public message: string, public status: number) { super() Error.captureStackTrace(this, this.constructor); } } export class AccessDenied extends OAuth2Error { public name = 'OAuth2AccessDenied'; public logLevel = 'info'; constructor (msg: string) { super('access_denied', msg, 403); } } export class InvalidClient extends OAuth2Error { public name = 'OAuth2InvalidClient'; public logLevel = 'info'; constructor (msg: string) { super('invalid_client', msg, 401); } } export class InvalidGrant extends OAuth2Error { public name = 'OAuth2InvalidGrant'; public logLevel = 'info'; constructor (msg: string) { super('invalid_grant', msg, 400); } } export class InvalidRequest extends OAuth2Error { public name = 'OAuth2InvalidRequest'; public logLevel = 'info'; constructor (msg: string) { super('invalid_request', msg, 400); } } export class InvalidScope extends OAuth2Error { public name = 'OAuth2InvalidScope'; public logLevel = 'info'; constructor (msg: string) { super('invalid_scope', msg, 400); } } export class ServerError extends OAuth2Error { public name = 'OAuth2ServerError'; public logLevel = 'error'; constructor (msg: string) { super('server_error', msg, 500); } } export class UnauthorizedClient extends OAuth2Error { public name = 'OAuth2UnauthorizedClient'; public logLevel = 'info'; constructor (msg: string) { super('unauthorized_client', msg, 400); } } export class UnsupportedGrantType extends OAuth2Error { public name = 'OAuth2UnsupportedGrantType'; public logLevel = 'info'; constructor (msg: string) { super('unsupported_grant_type', msg, 400); } } export class UnsupportedResponseType extends OAuth2Error { public name = 'OAuth2UnsupportedResponseType'; public logLevel = 'info'; constructor (msg: string) { super('unsupported_response_type', msg, 400); } }