Index: frontend/node_modules/makeerror/.travis.yml
===================================================================
--- frontend/node_modules/makeerror/.travis.yml	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/makeerror/.travis.yml	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,3 @@
+language: node_js
+node_js:
+  - 0.6
Index: frontend/node_modules/makeerror/lib/makeerror.js
===================================================================
--- frontend/node_modules/makeerror/lib/makeerror.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/makeerror/lib/makeerror.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,87 @@
+var tmpl = require('tmpl')
+
+module.exports = makeError
+
+function BaseError() {}
+BaseError.prototype = new Error()
+BaseError.prototype.toString = function() {
+  return this.message
+}
+
+
+/**
+ * Makes an Error function with the signature:
+ *
+ *   function(message, data)
+ *
+ * You'll typically do something like:
+ *
+ *   var UnknownFileTypeError = makeError(
+ *     'UnknownFileTypeError',
+ *     'The specified type is not known.'
+ *   )
+ *   var er = UnknownFileTypeError()
+ *
+ * `er` will have a prototype chain that ensures:
+ *
+ *   er instanceof Error
+ *   er instanceof UnknownFileTypeError
+ *
+ * You can also do `var er = new UnknownFileTypeError()` if you really like the
+ * `new` keyword.
+ *
+ * @param String  The name of the error.
+ * @param String  The default message string.
+ * @param Object  The default data object, merged with per instance data.
+ */
+function makeError(name, defaultMessage, defaultData) {
+  defaultMessage = tmpl(defaultMessage || '')
+  defaultData = defaultData || {}
+  if (defaultData.proto && !(defaultData.proto instanceof BaseError))
+    throw new Error('The custom "proto" must be an Error created via makeError')
+
+  var CustomError = function(message, data) {
+    if (!(this instanceof CustomError)) return new CustomError(message, data)
+
+    if (typeof message !== 'string' && !data) {
+      data = message
+      message = null
+    }
+
+    this.name = name
+    this.data = data || defaultData
+
+    if (typeof message === 'string') {
+      this.message = tmpl(message, this.data)
+    } else {
+      this.message = defaultMessage(this.data)
+    }
+
+    var er = new Error()
+    this.stack = er.stack
+    if (this.stack) {
+      // remove TWO stack level:
+      if (typeof Components !== 'undefined') {
+        // Mozilla:
+        this.stack = this.stack.substring(this.stack.indexOf('\n') + 2)
+      } else if (typeof chrome !== 'undefined' || typeof process !== 'undefined') {
+        // Google Chrome/Node.js:
+        this.stack = this.stack.replace(/\n[^\n]*/, '')
+        this.stack = this.stack.replace(/\n[^\n]*/, '')
+        this.stack = (
+          this.name +
+          (this.message ? (': ' + this.message) : '') +
+          this.stack.substring(5)
+        )
+      }
+    }
+
+    if ('fileName' in er) this.fileName = er.fileName
+    if ('lineNumber' in er) this.lineNumber = er.lineNumber
+  }
+
+  CustomError.prototype = defaultData.proto || new BaseError()
+  delete defaultData.proto
+
+  return CustomError
+}
Index: frontend/node_modules/makeerror/license
===================================================================
--- frontend/node_modules/makeerror/license	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/makeerror/license	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,28 @@
+BSD License
+
+Copyright (c) 2014, Naitik Shah. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+
+ * Neither the name Naitik Shah nor the names of its contributors may be used to
+   endorse or promote products derived from this software without specific
+   prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Index: frontend/node_modules/makeerror/package.json
===================================================================
--- frontend/node_modules/makeerror/package.json	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/makeerror/package.json	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,21 @@
+{
+  "name": "makeerror",
+  "description": "A library to make errors.",
+  "version": "1.0.12",
+  "license": "BSD-3-Clause",
+  "author": "Naitik Shah <n@daaku.org>",
+  "main": "lib/makeerror",
+  "repository": {
+    "type": "git",
+    "url": "https://github.com/daaku/nodejs-makeerror"
+  },
+  "scripts": {
+    "test": "NODE_PATH=./lib mocha --ui exports"
+  },
+  "dependencies": {
+    "tmpl": "1.0.5"
+  },
+  "devDependencies": {
+    "mocha": "9.1.3"
+  }
+}
Index: frontend/node_modules/makeerror/readme.md
===================================================================
--- frontend/node_modules/makeerror/readme.md	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/makeerror/readme.md	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,77 @@
+makeerror [![Build Status](https://secure.travis-ci.org/nshah/nodejs-makeerror.png)](http://travis-ci.org/nshah/nodejs-makeerror)
+=========
+
+A library to make errors.
+
+
+Basics
+------
+
+Makes an Error constructor function with the signature below. All arguments are
+optional, and if the first argument is not a `String`, it will be assumed to be
+`data`:
+
+```javascript
+function(message, data)
+```
+
+You'll typically do something like:
+
+```javascript
+var makeError = require('makeerror')
+var UnknownFileTypeError = makeError(
+  'UnknownFileTypeError',
+  'The specified type is not known.'
+)
+var er = UnknownFileTypeError()
+```
+
+`er` will have a prototype chain that ensures:
+
+```javascript
+er instanceof UnknownFileTypeError
+er instanceof Error
+```
+
+
+Templatized Error Messages
+--------------------------
+
+There is support for simple string substitutions like:
+
+```javascript
+var makeError = require('makeerror')
+var UnknownFileTypeError = makeError(
+  'UnknownFileTypeError',
+  'The specified type "{type}" is not known.'
+)
+var er = UnknownFileTypeError({ type: 'bmp' })
+```
+
+Now `er.message` or `er.toString()` will return `'The specified type "bmp" is
+not known.'`.
+
+
+Prototype Hierarchies
+---------------------
+
+You can create simple hierarchies as well using the `prototype` chain:
+
+```javascript
+var makeError = require('makeerror')
+var ParentError = makeError('ParentError')
+var ChildError = makeError(
+  'ChildError',
+  'The child error.',
+  { proto: ParentError() }
+)
+var er = ChildError()
+```
+
+`er` will have a prototype chain that ensures:
+
+```javascript
+er instanceof ChildError
+er instanceof ParentError
+er instanceof Error
+```
