initial commit & day 1 complete
Change-Id: Ic39e13e7e7fc0043ee1630df7deef7cc59d8b6b1
diff --git a/node_modules/make-error/LICENSE b/node_modules/make-error/LICENSE
new file mode 100644
index 0000000..9dcf797
--- /dev/null
+++ b/node_modules/make-error/LICENSE
@@ -0,0 +1,5 @@
+Copyright 2014 Julien Fontanet
+
+Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/node_modules/make-error/README.md b/node_modules/make-error/README.md
new file mode 100644
index 0000000..5c089a2
--- /dev/null
+++ b/node_modules/make-error/README.md
@@ -0,0 +1,112 @@
+# make-error
+
+[![Package Version](https://badgen.net/npm/v/make-error)](https://npmjs.org/package/make-error) [![Build Status](https://travis-ci.org/JsCommunity/make-error.png?branch=master)](https://travis-ci.org/JsCommunity/make-error) [![PackagePhobia](https://badgen.net/packagephobia/install/make-error)](https://packagephobia.now.sh/result?p=make-error) [![Latest Commit](https://badgen.net/github/last-commit/JsCommunity/make-error)](https://github.com/JsCommunity/make-error/commits/master)
+
+> Make your own error types!
+
+## Features
+
+- Compatible Node & browsers
+- `instanceof` support
+- `error.name` & `error.stack` support
+- compatible with [CSP](https://en.wikipedia.org/wiki/Content_Security_Policy) (i.e. no `eval()`)
+
+## Installation
+
+### Node & [Browserify](http://browserify.org/)/[Webpack](https://webpack.js.org/)
+
+Installation of the [npm package](https://npmjs.org/package/make-error):
+
+```
+> npm install --save make-error
+```
+
+Then require the package:
+
+```javascript
+var makeError = require("make-error");
+```
+
+### Browser
+
+You can directly use the build provided at [unpkg.com](https://unpkg.com):
+
+```html
+<script src="https://unpkg.com/make-error@1/dist/make-error.js"></script>
+```
+
+## Usage
+
+### Basic named error
+
+```javascript
+var CustomError = makeError("CustomError");
+
+// Parameters are forwarded to the super class (here Error).
+throw new CustomError("a message");
+```
+
+### Advanced error class
+
+```javascript
+function CustomError(customValue) {
+ CustomError.super.call(this, "custom error message");
+
+ this.customValue = customValue;
+}
+makeError(CustomError);
+
+// Feel free to extend the prototype.
+CustomError.prototype.myMethod = function CustomError$myMethod() {
+ console.log("CustomError.myMethod (%s, %s)", this.code, this.message);
+};
+
+//-----
+
+try {
+ throw new CustomError(42);
+} catch (error) {
+ error.myMethod();
+}
+```
+
+### Specialized error
+
+```javascript
+var SpecializedError = makeError("SpecializedError", CustomError);
+
+throw new SpecializedError(42);
+```
+
+### Inheritance
+
+> Best for ES2015+.
+
+```javascript
+import { BaseError } from "make-error";
+
+class CustomError extends BaseError {
+ constructor() {
+ super("custom error message");
+ }
+}
+```
+
+## Related
+
+- [make-error-cause](https://www.npmjs.com/package/make-error-cause): Make your own error types, with a cause!
+
+## Contributions
+
+Contributions are _very_ welcomed, either on the documentation or on
+the code.
+
+You may:
+
+- report any [issue](https://github.com/JsCommunity/make-error/issues)
+ you've encountered;
+- fork and create a pull request.
+
+## License
+
+ISC © [Julien Fontanet](http://julien.isonoe.net)
diff --git a/node_modules/make-error/dist/make-error.js b/node_modules/make-error/dist/make-error.js
new file mode 100644
index 0000000..32444c6
--- /dev/null
+++ b/node_modules/make-error/dist/make-error.js
@@ -0,0 +1 @@
+!function(f){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=f();else if("function"==typeof define&&define.amd)define([],f);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).makeError=f()}}(function(){return function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){return o(e[i][1][r]||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}({1:[function(require,module,exports){"use strict";var construct="undefined"!=typeof Reflect?Reflect.construct:void 0,defineProperty=Object.defineProperty,captureStackTrace=Error.captureStackTrace;function BaseError(message){void 0!==message&&defineProperty(this,"message",{configurable:!0,value:message,writable:!0});var cname=this.constructor.name;void 0!==cname&&cname!==this.name&&defineProperty(this,"name",{configurable:!0,value:cname,writable:!0}),captureStackTrace(this,this.constructor)}void 0===captureStackTrace&&(captureStackTrace=function(error){var container=new Error;defineProperty(error,"stack",{configurable:!0,get:function(){var stack=container.stack;return defineProperty(this,"stack",{configurable:!0,value:stack,writable:!0}),stack},set:function(stack){defineProperty(error,"stack",{configurable:!0,value:stack,writable:!0})}})}),BaseError.prototype=Object.create(Error.prototype,{constructor:{configurable:!0,value:BaseError,writable:!0}});var setFunctionName=function(){function setFunctionName(fn,name){return defineProperty(fn,"name",{configurable:!0,value:name})}try{var f=function(){};if(setFunctionName(f,"foo"),"foo"===f.name)return setFunctionName}catch(_){}}();(module.exports=function(constructor,super_){if(null==super_||super_===Error)super_=BaseError;else if("function"!=typeof super_)throw new TypeError("super_ should be a function");var name;if("string"==typeof constructor)name=constructor,constructor=void 0!==construct?function(){return construct(super_,arguments,this.constructor)}:function(){super_.apply(this,arguments)},void 0!==setFunctionName&&(setFunctionName(constructor,name),name=void 0);else if("function"!=typeof constructor)throw new TypeError("constructor should be either a string or a function");constructor.super_=constructor.super=super_;var properties={constructor:{configurable:!0,value:constructor,writable:!0}};return void 0!==name&&(properties.name={configurable:!0,value:name,writable:!0}),constructor.prototype=Object.create(super_.prototype,properties),constructor}).BaseError=BaseError},{}]},{},[1])(1)});
diff --git a/node_modules/make-error/index.d.ts b/node_modules/make-error/index.d.ts
new file mode 100644
index 0000000..9fa6041
--- /dev/null
+++ b/node_modules/make-error/index.d.ts
@@ -0,0 +1,47 @@
+/**
+ * Create a new error constructor instance.
+ */
+declare function makeError(
+ name: string
+): makeError.Constructor<makeError.BaseError>;
+
+/**
+ * Set the constructor prototype to `BaseError`.
+ */
+declare function makeError<T extends Error>(super_: {
+ new (...args: any[]): T;
+}): makeError.Constructor<T & makeError.BaseError>;
+
+/**
+ * Create a specialized error instance.
+ */
+declare function makeError<T extends Error, K>(
+ name: string | Function,
+ super_: K
+): K & makeError.SpecializedConstructor<T>;
+
+declare namespace makeError {
+ /**
+ * Use with ES2015+ inheritance.
+ */
+ export class BaseError extends Error {
+ message: string;
+ name: string;
+ stack: string;
+
+ constructor(message?: string);
+ }
+
+ export interface Constructor<T> {
+ new (message?: string): T;
+ super_: any;
+ prototype: T;
+ }
+
+ export interface SpecializedConstructor<T> {
+ super_: any;
+ prototype: T;
+ }
+}
+
+export = makeError;
diff --git a/node_modules/make-error/index.js b/node_modules/make-error/index.js
new file mode 100644
index 0000000..fab6040
--- /dev/null
+++ b/node_modules/make-error/index.js
@@ -0,0 +1,151 @@
+// ISC @ Julien Fontanet
+
+"use strict";
+
+// ===================================================================
+
+var construct = typeof Reflect !== "undefined" ? Reflect.construct : undefined;
+var defineProperty = Object.defineProperty;
+
+// -------------------------------------------------------------------
+
+var captureStackTrace = Error.captureStackTrace;
+if (captureStackTrace === undefined) {
+ captureStackTrace = function captureStackTrace(error) {
+ var container = new Error();
+
+ defineProperty(error, "stack", {
+ configurable: true,
+ get: function getStack() {
+ var stack = container.stack;
+
+ // Replace property with value for faster future accesses.
+ defineProperty(this, "stack", {
+ configurable: true,
+ value: stack,
+ writable: true,
+ });
+
+ return stack;
+ },
+ set: function setStack(stack) {
+ defineProperty(error, "stack", {
+ configurable: true,
+ value: stack,
+ writable: true,
+ });
+ },
+ });
+ };
+}
+
+// -------------------------------------------------------------------
+
+function BaseError(message) {
+ if (message !== undefined) {
+ defineProperty(this, "message", {
+ configurable: true,
+ value: message,
+ writable: true,
+ });
+ }
+
+ var cname = this.constructor.name;
+ if (cname !== undefined && cname !== this.name) {
+ defineProperty(this, "name", {
+ configurable: true,
+ value: cname,
+ writable: true,
+ });
+ }
+
+ captureStackTrace(this, this.constructor);
+}
+
+BaseError.prototype = Object.create(Error.prototype, {
+ // See: https://github.com/JsCommunity/make-error/issues/4
+ constructor: {
+ configurable: true,
+ value: BaseError,
+ writable: true,
+ },
+});
+
+// -------------------------------------------------------------------
+
+// Sets the name of a function if possible (depends of the JS engine).
+var setFunctionName = (function() {
+ function setFunctionName(fn, name) {
+ return defineProperty(fn, "name", {
+ configurable: true,
+ value: name,
+ });
+ }
+ try {
+ var f = function() {};
+ setFunctionName(f, "foo");
+ if (f.name === "foo") {
+ return setFunctionName;
+ }
+ } catch (_) {}
+})();
+
+// -------------------------------------------------------------------
+
+function makeError(constructor, super_) {
+ if (super_ == null || super_ === Error) {
+ super_ = BaseError;
+ } else if (typeof super_ !== "function") {
+ throw new TypeError("super_ should be a function");
+ }
+
+ var name;
+ if (typeof constructor === "string") {
+ name = constructor;
+ constructor =
+ construct !== undefined
+ ? function() {
+ return construct(super_, arguments, this.constructor);
+ }
+ : function() {
+ super_.apply(this, arguments);
+ };
+
+ // If the name can be set, do it once and for all.
+ if (setFunctionName !== undefined) {
+ setFunctionName(constructor, name);
+ name = undefined;
+ }
+ } else if (typeof constructor !== "function") {
+ throw new TypeError("constructor should be either a string or a function");
+ }
+
+ // Also register the super constructor also as `constructor.super_` just
+ // like Node's `util.inherits()`.
+ //
+ // eslint-disable-next-line dot-notation
+ constructor.super_ = constructor["super"] = super_;
+
+ var properties = {
+ constructor: {
+ configurable: true,
+ value: constructor,
+ writable: true,
+ },
+ };
+
+ // If the name could not be set on the constructor, set it on the
+ // prototype.
+ if (name !== undefined) {
+ properties.name = {
+ configurable: true,
+ value: name,
+ writable: true,
+ };
+ }
+ constructor.prototype = Object.create(super_.prototype, properties);
+
+ return constructor;
+}
+exports = module.exports = makeError;
+exports.BaseError = BaseError;
diff --git a/node_modules/make-error/package.json b/node_modules/make-error/package.json
new file mode 100644
index 0000000..2af27e1
--- /dev/null
+++ b/node_modules/make-error/package.json
@@ -0,0 +1,62 @@
+{
+ "name": "make-error",
+ "version": "1.3.6",
+ "main": "index.js",
+ "license": "ISC",
+ "description": "Make your own error types!",
+ "keywords": [
+ "create",
+ "custom",
+ "derive",
+ "error",
+ "errors",
+ "extend",
+ "extending",
+ "extension",
+ "factory",
+ "inherit",
+ "make",
+ "subclass"
+ ],
+ "homepage": "https://github.com/JsCommunity/make-error",
+ "bugs": "https://github.com/JsCommunity/make-error/issues",
+ "author": "Julien Fontanet <julien.fontanet@isonoe.net>",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/JsCommunity/make-error.git"
+ },
+ "devDependencies": {
+ "browserify": "^16.2.3",
+ "eslint": "^6.5.1",
+ "eslint-config-prettier": "^6.4.0",
+ "eslint-config-standard": "^14.1.0",
+ "eslint-plugin-import": "^2.14.0",
+ "eslint-plugin-node": "^10.0.0",
+ "eslint-plugin-promise": "^4.0.1",
+ "eslint-plugin-standard": "^4.0.0",
+ "husky": "^3.0.9",
+ "jest": "^24",
+ "prettier": "^1.14.3",
+ "uglify-js": "^3.3.2"
+ },
+ "jest": {
+ "testEnvironment": "node"
+ },
+ "scripts": {
+ "dev-test": "jest --watch",
+ "format": "prettier --write '**'",
+ "prepublishOnly": "mkdir -p dist && browserify -s makeError index.js | uglifyjs -c > dist/make-error.js",
+ "pretest": "eslint --ignore-path .gitignore .",
+ "test": "jest"
+ },
+ "files": [
+ "dist/",
+ "index.js",
+ "index.d.ts"
+ ],
+ "husky": {
+ "hooks": {
+ "commit-msg": "npm run test"
+ }
+ }
+}