const { GraphQLError } = require('graphql') const { ApolloServerErrorCode } = require('@apollo/server/errors') class AuthenticationError extends GraphQLError { constructor() { super('Authentication failed', { extensions: { code: 'UNAUTHENTICATED', }, }) } } class InvalidCredentialsError extends GraphQLError { constructor() { super('Invalid credentials', { extensions: { code: 'INVALID_CREDENTIALS', }, }) } } class UserAlreadyExistsError extends GraphQLError { constructor() { super('User already exists', { extensions: { code: 'USER_ALREADY_EXISTS', }, }) } } class InvalidTwoFactorError extends GraphQLError { constructor() { super('Invalid two-factor code', { extensions: { code: 'INVALID_TWO_FACTOR_CODE', }, }) } } class InvalidUrlError extends GraphQLError { constructor() { super('Invalid URL token', { extensions: { code: 'INVALID_URL_TOKEN', }, }) } } class UserInputError extends GraphQLError { constructor() { super('User input error', { extensions: { code: ApolloServerErrorCode.BAD_USER_INPUT, }, }) } } module.exports = { AuthenticationError, InvalidCredentialsError, UserAlreadyExistsError, InvalidTwoFactorError, InvalidUrlError, UserInputError, }