class AedifexError extends Error { constructor(message) { super(message) this.name = 'AedifexError' } } class UnhandledTypeError extends AedifexError { constructor(received) { super(`unhandled aedifex type "${received}"`) this.name = 'UnhandleTypeError' } } class IncorrectTypeError extends AedifexError { constructor(expected, received) { super(`expected "${expected}", received "${received}"`) this.name = 'IncorrectTypeError' } } class IncorrectPropertyError extends AedifexError { constructor(field, expected, received) { super(`expected property "${field}" to be "${expected}", received type "${received}"`) this.name = 'IncorrectPropertyError' } } class MismatchedVersionError extends AedifexError { constructor(expected, received) { super(`expected version "${expected}", received "${received}"`) this.name = 'MismatchedVersionError' } } module.exports = { AedifexError, UnhandledTypeError, IncorrectTypeError, IncorrectPropertyError, MismatchedVersionError, }