'use strict';

var inherits = require('util').inherits;
var errors = module.exports = {};

var InvalidArguments = errors.InvalidArguments = function InvalidArguments() {
  Error.call(this);
  Error.captureStackTrace(this, this.constructor);
  this.name = this.constructor.name;

  this.message = 'Invalid number of arguments';
};
inherits(InvalidArguments, Error);

var MustBeString = errors.MustBeString = function MustBeString(id) {
  Error.call(this);
  Error.captureStackTrace(this, this.constructor);
  this.name = this.constructor.name;

  this.message = '"' + id + '" must be a string';
};
inherits(MustBeString, Error);

var MustBeFunction = errors.MustBeFunction = function MustBeFunction(id) {
  Error.call(this);
  Error.captureStackTrace(this, this.constructor);
  this.name = this.constructor.name;

  this.message = '"' + id + '" must be a function';
};
inherits(MustBeFunction, Error);

var MustBeStringOrFunction = errors.MustBeStringOrFunction = function MustBeStringOrFunction(id) {
  Error.call(this);
  Error.captureStackTrace(this, this.constructor);
  this.name = this.constructor.name;

  this.message = '"' + id + '" must be a string or a function';
};
inherits(MustBeStringOrFunction, Error);

var MustBeObject = errors.MustBeObject = function MustBeObject(id) {
  Error.call(this);
  Error.captureStackTrace(this, this.constructor);
  this.name = this.constructor.name;

  this.message = '"' + id + '" must be an object';
};
inherits(MustBeObject, Error);

var MustBeDirectory = errors.MustBeDirectory = function MustBeDirectory(id) {
  Error.call(this);
  Error.captureStackTrace(this, this.constructor);
  this.name = this.constructor.name;

  this.message = '"' + id + '" must be a valid directory';
};
inherits(MustBeDirectory, Error);

var CircularReference = errors.CircularReference = function CircularReference(id) {
  Error.call(this);
  Error.captureStackTrace(this, this.constructor);
  this.name = this.constructor.name;

  this.message = 'circular reference found (' + id + ')';
};
inherits(CircularReference, Error);

var AssetNotFound = errors.AssetNotFound = function AssetNotFound(id) {
  Error.call(this);
  Error.captureStackTrace(this, this.constructor);
  this.name = this.constructor.name;

  this.message = 'asset not found (' + id + ')';
};
inherits(AssetNotFound, Error);

var MustBeAsset = errors.MustBeAsset = function MustBeAsset(id) {
  Error.call(this);
  Error.captureStackTrace(this, this.constructor);
  this.name = this.constructor.name;

  this.message = '"' + id + '" must be an instance of Asset';
};
inherits(MustBeAsset, Error);

@@ -88,31 +88,8 @@
 %7D;%0A%0A
-var InvalidArguments = 
 erro
@@ -309,16 +309,23 @@
 nherits(
+errors.
 InvalidA
@@ -347,27 +347,8 @@
 );%0A%0A
-var MustBeString = 
 erro
@@ -556,32 +556,39 @@
 g';%0A%7D;%0Ainherits(
+errors.
 MustBeString, Er
@@ -598,29 +598,8 @@
 );%0A%0A
-var MustBeFunction = 
 erro
@@ -817,24 +817,31 @@
 %7D;%0Ainherits(
+errors.
 MustBeFuncti
@@ -857,37 +857,8 @@
 );%0A%0A
-var MustBeStringOrFunction = 
 erro
@@ -1104,24 +1104,31 @@
 %7D;%0Ainherits(
+errors.
 MustBeString
@@ -1152,27 +1152,8 @@
 );%0A%0A
-var MustBeObject = 
 erro
@@ -1366,24 +1366,31 @@
 %7D;%0Ainherits(
+errors.
 MustBeObject
@@ -1404,30 +1404,8 @@
 );%0A%0A
-var MustBeDirectory = 
 erro
@@ -1632,24 +1632,31 @@
 %7D;%0Ainherits(
+errors.
 MustBeDirect
@@ -1673,32 +1673,8 @@
 );%0A%0A
-var CircularReference = 
 erro
@@ -1908,16 +1908,23 @@
 nherits(
+errors.
 Circular
@@ -1947,28 +1947,8 @@
 );%0A%0A
-var AssetNotFound = 
 erro
@@ -2165,16 +2165,23 @@
 nherits(
+errors.
 AssetNot
@@ -2200,26 +2200,280 @@
 );%0A%0A
-var MustBeAsset = 
+errors.AssetUndefined = function AssetUndefined(id) %7B%0A  Error.call(this);%0A  Error.captureStackTrace(this, this.constructor);%0A  this.name = this.constructor.name;%0A%0A  this.message = '%22' + id + '%22 must be an asset id or instance';%0A%7D;%0Ainherits(errors.AssetUndefined, Error);%0A%0A
 erro
@@ -2699,16 +2699,23 @@
 nherits(
+errors.
 MustBeAs

remove unnecessary references