| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 | const _    = require('lodash');const util = require('util');module.exports = {	PermissionError: function (message, previous) {		Error.captureStackTrace(this, this.constructor);		this.name     = this.constructor.name;		this.previous = previous;		this.message  = 'Permission Denied';		this.public   = true;		this.status   = 403;	},	ItemNotFoundError: function (id, previous) {		Error.captureStackTrace(this, this.constructor);		this.name     = this.constructor.name;		this.previous = previous;		this.message  = 'Item Not Found - ' + id;		this.public   = true;		this.status   = 404;	},	AuthError: function (message, previous) {		Error.captureStackTrace(this, this.constructor);		this.name     = this.constructor.name;		this.previous = previous;		this.message  = message;		this.public   = true;		this.status   = 401;	},	InternalError: function (message, previous) {		Error.captureStackTrace(this, this.constructor);		this.name     = this.constructor.name;		this.previous = previous;		this.message  = message;		this.status   = 500;		this.public   = false;	},	InternalValidationError: function (message, previous) {		Error.captureStackTrace(this, this.constructor);		this.name     = this.constructor.name;		this.previous = previous;		this.message  = message;		this.status   = 400;		this.public   = false;	},	ConfigurationError: function (message, previous) {		Error.captureStackTrace(this, this.constructor);		this.name     = this.constructor.name;		this.previous = previous;		this.message  = message;		this.status   = 400;		this.public   = true;	},	CacheError: function (message, previous) {		Error.captureStackTrace(this, this.constructor);		this.name     = this.constructor.name;		this.message  = message;		this.previous = previous;		this.status   = 500;		this.public   = false;	},	ValidationError: function (message, previous) {		Error.captureStackTrace(this, this.constructor);		this.name     = this.constructor.name;		this.previous = previous;		this.message  = message;		this.public   = true;		this.status   = 400;	},	AssertionFailedError: function (message, previous) {		Error.captureStackTrace(this, this.constructor);		this.name     = this.constructor.name;		this.previous = previous;		this.message  = message;		this.public   = false;		this.status   = 400;	},	CommandError: function (stdErr, code, previous) {		Error.captureStackTrace(this, this.constructor);		this.name     = this.constructor.name;		this.previous = previous;		this.message  = stdErr;		this.code     = code;		this.public   = false;	},};_.forEach(module.exports, function (error) {	util.inherits(error, Error);});
 |