diff --git a/node_modules/anymatch/node_modules/braces/node_modules/extend-shallow/README.md b/node_modules/anymatch/node_modules/braces/node_modules/extend-shallow/README.md
deleted file mode 100644
index cdc45d4ff7ad09b8e34b3b292142879ac486779a..0000000000000000000000000000000000000000
--- a/node_modules/anymatch/node_modules/braces/node_modules/extend-shallow/README.md
+++ /dev/null
@@ -1,61 +0,0 @@
-# extend-shallow [![NPM version](https://badge.fury.io/js/extend-shallow.svg)](http://badge.fury.io/js/extend-shallow)  [![Build Status](https://travis-ci.org/jonschlinkert/extend-shallow.svg)](https://travis-ci.org/jonschlinkert/extend-shallow)
-
-> Extend an object with the properties of additional objects. node.js/javascript util.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/)
-
-```sh
-$ npm i extend-shallow --save
-```
-
-## Usage
-
-```js
-var extend = require('extend-shallow');
-
-extend({a: 'b'}, {c: 'd'})
-//=> {a: 'b', c: 'd'}
-```
-
-Pass an empty object to shallow clone:
-
-```js
-var obj = {};
-extend(obj, {a: 'b'}, {c: 'd'})
-//=> {a: 'b', c: 'd'}
-```
-
-## Related
-
-* [extend-shallow](https://github.com/jonschlinkert/extend-shallow): Extend an object with the properties of additional objects. node.js/javascript util.
-* [for-own](https://github.com/jonschlinkert/for-own): Iterate over the own enumerable properties of an object, and return an object with properties… [more](https://github.com/jonschlinkert/for-own)
-* [for-in](https://github.com/jonschlinkert/for-in): Iterate over the own and inherited enumerable properties of an objecte, and return an object… [more](https://github.com/jonschlinkert/for-in)
-* [is-plain-object](https://github.com/jonschlinkert/is-plain-object): Returns true if an object was created by the `Object` constructor.
-* [isobject](https://github.com/jonschlinkert/isobject): Returns true if the value is an object and not an array or null.
-* [kind-of](https://github.com/jonschlinkert/kind-of): Get the native type of a value.
-
-## Running tests
-
-Install dev dependencies:
-
-```sh
-$ npm i -d && npm test
-```
-
-## Author
-
-**Jon Schlinkert**
-
-+ [github/jonschlinkert](https://github.com/jonschlinkert)
-+ [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
-
-## License
-
-Copyright © 2015 Jon Schlinkert
-Released under the MIT license.
-
-***
-
-_This file was generated by [verb-cli](https://github.com/assemble/verb-cli) on June 29, 2015._
\ No newline at end of file
diff --git a/node_modules/append-transform/package.json b/node_modules/append-transform/package.json
deleted file mode 100644
index 4f511771573a215a5899323aacd20b7d88b60961..0000000000000000000000000000000000000000
--- a/node_modules/append-transform/package.json
+++ /dev/null
@@ -1,78 +0,0 @@
-{
-  "_from": "append-transform@^0.4.0",
-  "_id": "append-transform@0.4.0",
-  "_inBundle": false,
-  "_integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=",
-  "_location": "/append-transform",
-  "_phantomChildren": {},
-  "_requested": {
-    "type": "range",
-    "registry": true,
-    "raw": "append-transform@^0.4.0",
-    "name": "append-transform",
-    "escapedName": "append-transform",
-    "rawSpec": "^0.4.0",
-    "saveSpec": null,
-    "fetchSpec": "^0.4.0"
-  },
-  "_requiredBy": [
-    "/istanbul-lib-hook"
-  ],
-  "_resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz",
-  "_shasum": "d76ebf8ca94d276e247a36bad44a4b74ab611991",
-  "_spec": "append-transform@^0.4.0",
-  "_where": "/Users/maritj/Documents/Documents/Dataing2ndyear/Systemutvikling2/Ovinger/Oving5/DatabaseTest/node_modules/istanbul-lib-hook",
-  "author": {
-    "name": "James Talmage",
-    "email": "james@talmage.io",
-    "url": "github.com/jamestalmage"
-  },
-  "bugs": {
-    "url": "https://github.com/jamestalmage/append-transform/issues"
-  },
-  "bundleDependencies": false,
-  "dependencies": {
-    "default-require-extensions": "^1.0.0"
-  },
-  "deprecated": false,
-  "description": "Install a transform to `require.extensions` that always runs last, even if additional extensions are added later.",
-  "devDependencies": {
-    "ava": "^0.7.0",
-    "coveralls": "^2.11.6",
-    "fake-module-system": "^0.3.0",
-    "nyc": "^4.0.1",
-    "xo": "^0.11.2"
-  },
-  "engines": {
-    "node": ">=0.10.0"
-  },
-  "files": [
-    "index.js"
-  ],
-  "homepage": "https://github.com/jamestalmage/append-transform#readme",
-  "keywords": [
-    "transform",
-    "require",
-    "append",
-    "last",
-    "coverage",
-    "source-map",
-    "extension",
-    "module"
-  ],
-  "license": "MIT",
-  "name": "append-transform",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/jamestalmage/append-transform.git"
-  },
-  "scripts": {
-    "test": "xo && nyc --reporter=lcov --reporter=text ava"
-  },
-  "version": "0.4.0",
-  "xo": {
-    "ignores": [
-      "test.js"
-    ]
-  }
-}
diff --git a/node_modules/async/wrapSync.js b/node_modules/async/wrapSync.js
deleted file mode 100644
index 5e3fc91557debb47ebe5d30f10783bd6cf2d20ce..0000000000000000000000000000000000000000
--- a/node_modules/async/wrapSync.js
+++ /dev/null
@@ -1,110 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
-    value: true
-});
-exports.default = asyncify;
-
-var _isObject = require('lodash/isObject');
-
-var _isObject2 = _interopRequireDefault(_isObject);
-
-var _initialParams = require('./internal/initialParams');
-
-var _initialParams2 = _interopRequireDefault(_initialParams);
-
-var _setImmediate = require('./internal/setImmediate');
-
-var _setImmediate2 = _interopRequireDefault(_setImmediate);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-/**
- * Take a sync function and make it async, passing its return value to a
- * callback. This is useful for plugging sync functions into a waterfall,
- * series, or other async functions. Any arguments passed to the generated
- * function will be passed to the wrapped function (except for the final
- * callback argument). Errors thrown will be passed to the callback.
- *
- * If the function passed to `asyncify` returns a Promise, that promises's
- * resolved/rejected state will be used to call the callback, rather than simply
- * the synchronous return value.
- *
- * This also means you can asyncify ES2017 `async` functions.
- *
- * @name asyncify
- * @static
- * @memberOf module:Utils
- * @method
- * @alias wrapSync
- * @category Util
- * @param {Function} func - The synchronous function, or Promise-returning
- * function to convert to an {@link AsyncFunction}.
- * @returns {AsyncFunction} An asynchronous wrapper of the `func`. To be
- * invoked with `(args..., callback)`.
- * @example
- *
- * // passing a regular synchronous function
- * async.waterfall([
- *     async.apply(fs.readFile, filename, "utf8"),
- *     async.asyncify(JSON.parse),
- *     function (data, next) {
- *         // data is the result of parsing the text.
- *         // If there was a parsing error, it would have been caught.
- *     }
- * ], callback);
- *
- * // passing a function returning a promise
- * async.waterfall([
- *     async.apply(fs.readFile, filename, "utf8"),
- *     async.asyncify(function (contents) {
- *         return db.model.create(contents);
- *     }),
- *     function (model, next) {
- *         // `model` is the instantiated model object.
- *         // If there was an error, this function would be skipped.
- *     }
- * ], callback);
- *
- * // es2017 example, though `asyncify` is not needed if your JS environment
- * // supports async functions out of the box
- * var q = async.queue(async.asyncify(async function(file) {
- *     var intermediateStep = await processFile(file);
- *     return await somePromise(intermediateStep)
- * }));
- *
- * q.push(files);
- */
-function asyncify(func) {
-    return (0, _initialParams2.default)(function (args, callback) {
-        var result;
-        try {
-            result = func.apply(this, args);
-        } catch (e) {
-            return callback(e);
-        }
-        // if result is Promise object
-        if ((0, _isObject2.default)(result) && typeof result.then === 'function') {
-            result.then(function (value) {
-                invokeCallback(callback, null, value);
-            }, function (err) {
-                invokeCallback(callback, err.message ? err : new Error(err));
-            });
-        } else {
-            callback(null, result);
-        }
-    });
-}
-
-function invokeCallback(callback, error, value) {
-    try {
-        callback(error, value);
-    } catch (e) {
-        (0, _setImmediate2.default)(rethrow, e);
-    }
-}
-
-function rethrow(error) {
-    throw error;
-}
-module.exports = exports['default'];
\ No newline at end of file
diff --git a/node_modules/babel-runtime/core-js/array/slice.js b/node_modules/babel-runtime/core-js/array/slice.js
deleted file mode 100644
index 5f5fe166871562fa1acc180299ad8ff1aacc1fe5..0000000000000000000000000000000000000000
--- a/node_modules/babel-runtime/core-js/array/slice.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = { "default": require("core-js/library/fn/array/slice"), __esModule: true };
\ No newline at end of file
diff --git a/node_modules/babel-runtime/helpers/_sliced-to-array-loose.js b/node_modules/babel-runtime/helpers/_sliced-to-array-loose.js
deleted file mode 100644
index 8bb56d3339a09f35cdc850796b634c4b11321eb8..0000000000000000000000000000000000000000
--- a/node_modules/babel-runtime/helpers/_sliced-to-array-loose.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require("./slicedToArrayLoose.js");
\ No newline at end of file
diff --git a/node_modules/bcrypt-pbkdf/index.js b/node_modules/bcrypt-pbkdf/index.js
deleted file mode 100644
index b1b5ad4b7892e1a93dade83097c962cce61aeba9..0000000000000000000000000000000000000000
--- a/node_modules/bcrypt-pbkdf/index.js
+++ /dev/null
@@ -1,556 +0,0 @@
-'use strict';
-
-var crypto_hash_sha512 = require('tweetnacl').lowlevel.crypto_hash;
-
-/*
- * This file is a 1:1 port from the OpenBSD blowfish.c and bcrypt_pbkdf.c. As a
- * result, it retains the original copyright and license. The two files are
- * under slightly different (but compatible) licenses, and are here combined in
- * one file.
- *
- * Credit for the actual porting work goes to:
- *  Devi Mandiri <me@devi.web.id>
- */
-
-/*
- * The Blowfish portions are under the following license:
- *
- * Blowfish block cipher for OpenBSD
- * Copyright 1997 Niels Provos <provos@physnet.uni-hamburg.de>
- * All rights reserved.
- *
- * Implementation advice by David Mazieres <dm@lcs.mit.edu>.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. 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.
- * 3. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
- */
-
-/*
- * The bcrypt_pbkdf portions are under the following license:
- *
- * Copyright (c) 2013 Ted Unangst <tedu@openbsd.org>
- *
- * Permission to use, copy, modify, and 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.
- */
-
-/*
- * Performance improvements (Javascript-specific):
- *
- * Copyright 2016, Joyent Inc
- * Author: Alex Wilson <alex.wilson@joyent.com>
- *
- * Permission to use, copy, modify, and 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.
- */
-
-// Ported from OpenBSD bcrypt_pbkdf.c v1.9
-
-var BLF_J = 0;
-
-var Blowfish = function() {
-  this.S = [
-    new Uint32Array([
-      0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7,
-      0xb8e1afed, 0x6a267e96, 0xba7c9045, 0xf12c7f99,
-      0x24a19947, 0xb3916cf7, 0x0801f2e2, 0x858efc16,
-      0x636920d8, 0x71574e69, 0xa458fea3, 0xf4933d7e,
-      0x0d95748f, 0x728eb658, 0x718bcd58, 0x82154aee,
-      0x7b54a41d, 0xc25a59b5, 0x9c30d539, 0x2af26013,
-      0xc5d1b023, 0x286085f0, 0xca417918, 0xb8db38ef,
-      0x8e79dcb0, 0x603a180e, 0x6c9e0e8b, 0xb01e8a3e,
-      0xd71577c1, 0xbd314b27, 0x78af2fda, 0x55605c60,
-      0xe65525f3, 0xaa55ab94, 0x57489862, 0x63e81440,
-      0x55ca396a, 0x2aab10b6, 0xb4cc5c34, 0x1141e8ce,
-      0xa15486af, 0x7c72e993, 0xb3ee1411, 0x636fbc2a,
-      0x2ba9c55d, 0x741831f6, 0xce5c3e16, 0x9b87931e,
-      0xafd6ba33, 0x6c24cf5c, 0x7a325381, 0x28958677,
-      0x3b8f4898, 0x6b4bb9af, 0xc4bfe81b, 0x66282193,
-      0x61d809cc, 0xfb21a991, 0x487cac60, 0x5dec8032,
-      0xef845d5d, 0xe98575b1, 0xdc262302, 0xeb651b88,
-      0x23893e81, 0xd396acc5, 0x0f6d6ff3, 0x83f44239,
-      0x2e0b4482, 0xa4842004, 0x69c8f04a, 0x9e1f9b5e,
-      0x21c66842, 0xf6e96c9a, 0x670c9c61, 0xabd388f0,
-      0x6a51a0d2, 0xd8542f68, 0x960fa728, 0xab5133a3,
-      0x6eef0b6c, 0x137a3be4, 0xba3bf050, 0x7efb2a98,
-      0xa1f1651d, 0x39af0176, 0x66ca593e, 0x82430e88,
-      0x8cee8619, 0x456f9fb4, 0x7d84a5c3, 0x3b8b5ebe,
-      0xe06f75d8, 0x85c12073, 0x401a449f, 0x56c16aa6,
-      0x4ed3aa62, 0x363f7706, 0x1bfedf72, 0x429b023d,
-      0x37d0d724, 0xd00a1248, 0xdb0fead3, 0x49f1c09b,
-      0x075372c9, 0x80991b7b, 0x25d479d8, 0xf6e8def7,
-      0xe3fe501a, 0xb6794c3b, 0x976ce0bd, 0x04c006ba,
-      0xc1a94fb6, 0x409f60c4, 0x5e5c9ec2, 0x196a2463,
-      0x68fb6faf, 0x3e6c53b5, 0x1339b2eb, 0x3b52ec6f,
-      0x6dfc511f, 0x9b30952c, 0xcc814544, 0xaf5ebd09,
-      0xbee3d004, 0xde334afd, 0x660f2807, 0x192e4bb3,
-      0xc0cba857, 0x45c8740f, 0xd20b5f39, 0xb9d3fbdb,
-      0x5579c0bd, 0x1a60320a, 0xd6a100c6, 0x402c7279,
-      0x679f25fe, 0xfb1fa3cc, 0x8ea5e9f8, 0xdb3222f8,
-      0x3c7516df, 0xfd616b15, 0x2f501ec8, 0xad0552ab,
-      0x323db5fa, 0xfd238760, 0x53317b48, 0x3e00df82,
-      0x9e5c57bb, 0xca6f8ca0, 0x1a87562e, 0xdf1769db,
-      0xd542a8f6, 0x287effc3, 0xac6732c6, 0x8c4f5573,
-      0x695b27b0, 0xbbca58c8, 0xe1ffa35d, 0xb8f011a0,
-      0x10fa3d98, 0xfd2183b8, 0x4afcb56c, 0x2dd1d35b,
-      0x9a53e479, 0xb6f84565, 0xd28e49bc, 0x4bfb9790,
-      0xe1ddf2da, 0xa4cb7e33, 0x62fb1341, 0xcee4c6e8,
-      0xef20cada, 0x36774c01, 0xd07e9efe, 0x2bf11fb4,
-      0x95dbda4d, 0xae909198, 0xeaad8e71, 0x6b93d5a0,
-      0xd08ed1d0, 0xafc725e0, 0x8e3c5b2f, 0x8e7594b7,
-      0x8ff6e2fb, 0xf2122b64, 0x8888b812, 0x900df01c,
-      0x4fad5ea0, 0x688fc31c, 0xd1cff191, 0xb3a8c1ad,
-      0x2f2f2218, 0xbe0e1777, 0xea752dfe, 0x8b021fa1,
-      0xe5a0cc0f, 0xb56f74e8, 0x18acf3d6, 0xce89e299,
-      0xb4a84fe0, 0xfd13e0b7, 0x7cc43b81, 0xd2ada8d9,
-      0x165fa266, 0x80957705, 0x93cc7314, 0x211a1477,
-      0xe6ad2065, 0x77b5fa86, 0xc75442f5, 0xfb9d35cf,
-      0xebcdaf0c, 0x7b3e89a0, 0xd6411bd3, 0xae1e7e49,
-      0x00250e2d, 0x2071b35e, 0x226800bb, 0x57b8e0af,
-      0x2464369b, 0xf009b91e, 0x5563911d, 0x59dfa6aa,
-      0x78c14389, 0xd95a537f, 0x207d5ba2, 0x02e5b9c5,
-      0x83260376, 0x6295cfa9, 0x11c81968, 0x4e734a41,
-      0xb3472dca, 0x7b14a94a, 0x1b510052, 0x9a532915,
-      0xd60f573f, 0xbc9bc6e4, 0x2b60a476, 0x81e67400,
-      0x08ba6fb5, 0x571be91f, 0xf296ec6b, 0x2a0dd915,
-      0xb6636521, 0xe7b9f9b6, 0xff34052e, 0xc5855664,
-      0x53b02d5d, 0xa99f8fa1, 0x08ba4799, 0x6e85076a]),
-    new Uint32Array([
-      0x4b7a70e9, 0xb5b32944, 0xdb75092e, 0xc4192623,
-      0xad6ea6b0, 0x49a7df7d, 0x9cee60b8, 0x8fedb266,
-      0xecaa8c71, 0x699a17ff, 0x5664526c, 0xc2b19ee1,
-      0x193602a5, 0x75094c29, 0xa0591340, 0xe4183a3e,
-      0x3f54989a, 0x5b429d65, 0x6b8fe4d6, 0x99f73fd6,
-      0xa1d29c07, 0xefe830f5, 0x4d2d38e6, 0xf0255dc1,
-      0x4cdd2086, 0x8470eb26, 0x6382e9c6, 0x021ecc5e,
-      0x09686b3f, 0x3ebaefc9, 0x3c971814, 0x6b6a70a1,
-      0x687f3584, 0x52a0e286, 0xb79c5305, 0xaa500737,
-      0x3e07841c, 0x7fdeae5c, 0x8e7d44ec, 0x5716f2b8,
-      0xb03ada37, 0xf0500c0d, 0xf01c1f04, 0x0200b3ff,
-      0xae0cf51a, 0x3cb574b2, 0x25837a58, 0xdc0921bd,
-      0xd19113f9, 0x7ca92ff6, 0x94324773, 0x22f54701,
-      0x3ae5e581, 0x37c2dadc, 0xc8b57634, 0x9af3dda7,
-      0xa9446146, 0x0fd0030e, 0xecc8c73e, 0xa4751e41,
-      0xe238cd99, 0x3bea0e2f, 0x3280bba1, 0x183eb331,
-      0x4e548b38, 0x4f6db908, 0x6f420d03, 0xf60a04bf,
-      0x2cb81290, 0x24977c79, 0x5679b072, 0xbcaf89af,
-      0xde9a771f, 0xd9930810, 0xb38bae12, 0xdccf3f2e,
-      0x5512721f, 0x2e6b7124, 0x501adde6, 0x9f84cd87,
-      0x7a584718, 0x7408da17, 0xbc9f9abc, 0xe94b7d8c,
-      0xec7aec3a, 0xdb851dfa, 0x63094366, 0xc464c3d2,
-      0xef1c1847, 0x3215d908, 0xdd433b37, 0x24c2ba16,
-      0x12a14d43, 0x2a65c451, 0x50940002, 0x133ae4dd,
-      0x71dff89e, 0x10314e55, 0x81ac77d6, 0x5f11199b,
-      0x043556f1, 0xd7a3c76b, 0x3c11183b, 0x5924a509,
-      0xf28fe6ed, 0x97f1fbfa, 0x9ebabf2c, 0x1e153c6e,
-      0x86e34570, 0xeae96fb1, 0x860e5e0a, 0x5a3e2ab3,
-      0x771fe71c, 0x4e3d06fa, 0x2965dcb9, 0x99e71d0f,
-      0x803e89d6, 0x5266c825, 0x2e4cc978, 0x9c10b36a,
-      0xc6150eba, 0x94e2ea78, 0xa5fc3c53, 0x1e0a2df4,
-      0xf2f74ea7, 0x361d2b3d, 0x1939260f, 0x19c27960,
-      0x5223a708, 0xf71312b6, 0xebadfe6e, 0xeac31f66,
-      0xe3bc4595, 0xa67bc883, 0xb17f37d1, 0x018cff28,
-      0xc332ddef, 0xbe6c5aa5, 0x65582185, 0x68ab9802,
-      0xeecea50f, 0xdb2f953b, 0x2aef7dad, 0x5b6e2f84,
-      0x1521b628, 0x29076170, 0xecdd4775, 0x619f1510,
-      0x13cca830, 0xeb61bd96, 0x0334fe1e, 0xaa0363cf,
-      0xb5735c90, 0x4c70a239, 0xd59e9e0b, 0xcbaade14,
-      0xeecc86bc, 0x60622ca7, 0x9cab5cab, 0xb2f3846e,
-      0x648b1eaf, 0x19bdf0ca, 0xa02369b9, 0x655abb50,
-      0x40685a32, 0x3c2ab4b3, 0x319ee9d5, 0xc021b8f7,
-      0x9b540b19, 0x875fa099, 0x95f7997e, 0x623d7da8,
-      0xf837889a, 0x97e32d77, 0x11ed935f, 0x16681281,
-      0x0e358829, 0xc7e61fd6, 0x96dedfa1, 0x7858ba99,
-      0x57f584a5, 0x1b227263, 0x9b83c3ff, 0x1ac24696,
-      0xcdb30aeb, 0x532e3054, 0x8fd948e4, 0x6dbc3128,
-      0x58ebf2ef, 0x34c6ffea, 0xfe28ed61, 0xee7c3c73,
-      0x5d4a14d9, 0xe864b7e3, 0x42105d14, 0x203e13e0,
-      0x45eee2b6, 0xa3aaabea, 0xdb6c4f15, 0xfacb4fd0,
-      0xc742f442, 0xef6abbb5, 0x654f3b1d, 0x41cd2105,
-      0xd81e799e, 0x86854dc7, 0xe44b476a, 0x3d816250,
-      0xcf62a1f2, 0x5b8d2646, 0xfc8883a0, 0xc1c7b6a3,
-      0x7f1524c3, 0x69cb7492, 0x47848a0b, 0x5692b285,
-      0x095bbf00, 0xad19489d, 0x1462b174, 0x23820e00,
-      0x58428d2a, 0x0c55f5ea, 0x1dadf43e, 0x233f7061,
-      0x3372f092, 0x8d937e41, 0xd65fecf1, 0x6c223bdb,
-      0x7cde3759, 0xcbee7460, 0x4085f2a7, 0xce77326e,
-      0xa6078084, 0x19f8509e, 0xe8efd855, 0x61d99735,
-      0xa969a7aa, 0xc50c06c2, 0x5a04abfc, 0x800bcadc,
-      0x9e447a2e, 0xc3453484, 0xfdd56705, 0x0e1e9ec9,
-      0xdb73dbd3, 0x105588cd, 0x675fda79, 0xe3674340,
-      0xc5c43465, 0x713e38d8, 0x3d28f89e, 0xf16dff20,
-      0x153e21e7, 0x8fb03d4a, 0xe6e39f2b, 0xdb83adf7]),
-    new Uint32Array([
-      0xe93d5a68, 0x948140f7, 0xf64c261c, 0x94692934,
-      0x411520f7, 0x7602d4f7, 0xbcf46b2e, 0xd4a20068,
-      0xd4082471, 0x3320f46a, 0x43b7d4b7, 0x500061af,
-      0x1e39f62e, 0x97244546, 0x14214f74, 0xbf8b8840,
-      0x4d95fc1d, 0x96b591af, 0x70f4ddd3, 0x66a02f45,
-      0xbfbc09ec, 0x03bd9785, 0x7fac6dd0, 0x31cb8504,
-      0x96eb27b3, 0x55fd3941, 0xda2547e6, 0xabca0a9a,
-      0x28507825, 0x530429f4, 0x0a2c86da, 0xe9b66dfb,
-      0x68dc1462, 0xd7486900, 0x680ec0a4, 0x27a18dee,
-      0x4f3ffea2, 0xe887ad8c, 0xb58ce006, 0x7af4d6b6,
-      0xaace1e7c, 0xd3375fec, 0xce78a399, 0x406b2a42,
-      0x20fe9e35, 0xd9f385b9, 0xee39d7ab, 0x3b124e8b,
-      0x1dc9faf7, 0x4b6d1856, 0x26a36631, 0xeae397b2,
-      0x3a6efa74, 0xdd5b4332, 0x6841e7f7, 0xca7820fb,
-      0xfb0af54e, 0xd8feb397, 0x454056ac, 0xba489527,
-      0x55533a3a, 0x20838d87, 0xfe6ba9b7, 0xd096954b,
-      0x55a867bc, 0xa1159a58, 0xcca92963, 0x99e1db33,
-      0xa62a4a56, 0x3f3125f9, 0x5ef47e1c, 0x9029317c,
-      0xfdf8e802, 0x04272f70, 0x80bb155c, 0x05282ce3,
-      0x95c11548, 0xe4c66d22, 0x48c1133f, 0xc70f86dc,
-      0x07f9c9ee, 0x41041f0f, 0x404779a4, 0x5d886e17,
-      0x325f51eb, 0xd59bc0d1, 0xf2bcc18f, 0x41113564,
-      0x257b7834, 0x602a9c60, 0xdff8e8a3, 0x1f636c1b,
-      0x0e12b4c2, 0x02e1329e, 0xaf664fd1, 0xcad18115,
-      0x6b2395e0, 0x333e92e1, 0x3b240b62, 0xeebeb922,
-      0x85b2a20e, 0xe6ba0d99, 0xde720c8c, 0x2da2f728,
-      0xd0127845, 0x95b794fd, 0x647d0862, 0xe7ccf5f0,
-      0x5449a36f, 0x877d48fa, 0xc39dfd27, 0xf33e8d1e,
-      0x0a476341, 0x992eff74, 0x3a6f6eab, 0xf4f8fd37,
-      0xa812dc60, 0xa1ebddf8, 0x991be14c, 0xdb6e6b0d,
-      0xc67b5510, 0x6d672c37, 0x2765d43b, 0xdcd0e804,
-      0xf1290dc7, 0xcc00ffa3, 0xb5390f92, 0x690fed0b,
-      0x667b9ffb, 0xcedb7d9c, 0xa091cf0b, 0xd9155ea3,
-      0xbb132f88, 0x515bad24, 0x7b9479bf, 0x763bd6eb,
-      0x37392eb3, 0xcc115979, 0x8026e297, 0xf42e312d,
-      0x6842ada7, 0xc66a2b3b, 0x12754ccc, 0x782ef11c,
-      0x6a124237, 0xb79251e7, 0x06a1bbe6, 0x4bfb6350,
-      0x1a6b1018, 0x11caedfa, 0x3d25bdd8, 0xe2e1c3c9,
-      0x44421659, 0x0a121386, 0xd90cec6e, 0xd5abea2a,
-      0x64af674e, 0xda86a85f, 0xbebfe988, 0x64e4c3fe,
-      0x9dbc8057, 0xf0f7c086, 0x60787bf8, 0x6003604d,
-      0xd1fd8346, 0xf6381fb0, 0x7745ae04, 0xd736fccc,
-      0x83426b33, 0xf01eab71, 0xb0804187, 0x3c005e5f,
-      0x77a057be, 0xbde8ae24, 0x55464299, 0xbf582e61,
-      0x4e58f48f, 0xf2ddfda2, 0xf474ef38, 0x8789bdc2,
-      0x5366f9c3, 0xc8b38e74, 0xb475f255, 0x46fcd9b9,
-      0x7aeb2661, 0x8b1ddf84, 0x846a0e79, 0x915f95e2,
-      0x466e598e, 0x20b45770, 0x8cd55591, 0xc902de4c,
-      0xb90bace1, 0xbb8205d0, 0x11a86248, 0x7574a99e,
-      0xb77f19b6, 0xe0a9dc09, 0x662d09a1, 0xc4324633,
-      0xe85a1f02, 0x09f0be8c, 0x4a99a025, 0x1d6efe10,
-      0x1ab93d1d, 0x0ba5a4df, 0xa186f20f, 0x2868f169,
-      0xdcb7da83, 0x573906fe, 0xa1e2ce9b, 0x4fcd7f52,
-      0x50115e01, 0xa70683fa, 0xa002b5c4, 0x0de6d027,
-      0x9af88c27, 0x773f8641, 0xc3604c06, 0x61a806b5,
-      0xf0177a28, 0xc0f586e0, 0x006058aa, 0x30dc7d62,
-      0x11e69ed7, 0x2338ea63, 0x53c2dd94, 0xc2c21634,
-      0xbbcbee56, 0x90bcb6de, 0xebfc7da1, 0xce591d76,
-      0x6f05e409, 0x4b7c0188, 0x39720a3d, 0x7c927c24,
-      0x86e3725f, 0x724d9db9, 0x1ac15bb4, 0xd39eb8fc,
-      0xed545578, 0x08fca5b5, 0xd83d7cd3, 0x4dad0fc4,
-      0x1e50ef5e, 0xb161e6f8, 0xa28514d9, 0x6c51133c,
-      0x6fd5c7e7, 0x56e14ec4, 0x362abfce, 0xddc6c837,
-      0xd79a3234, 0x92638212, 0x670efa8e, 0x406000e0]),
-    new Uint32Array([
-      0x3a39ce37, 0xd3faf5cf, 0xabc27737, 0x5ac52d1b,
-      0x5cb0679e, 0x4fa33742, 0xd3822740, 0x99bc9bbe,
-      0xd5118e9d, 0xbf0f7315, 0xd62d1c7e, 0xc700c47b,
-      0xb78c1b6b, 0x21a19045, 0xb26eb1be, 0x6a366eb4,
-      0x5748ab2f, 0xbc946e79, 0xc6a376d2, 0x6549c2c8,
-      0x530ff8ee, 0x468dde7d, 0xd5730a1d, 0x4cd04dc6,
-      0x2939bbdb, 0xa9ba4650, 0xac9526e8, 0xbe5ee304,
-      0xa1fad5f0, 0x6a2d519a, 0x63ef8ce2, 0x9a86ee22,
-      0xc089c2b8, 0x43242ef6, 0xa51e03aa, 0x9cf2d0a4,
-      0x83c061ba, 0x9be96a4d, 0x8fe51550, 0xba645bd6,
-      0x2826a2f9, 0xa73a3ae1, 0x4ba99586, 0xef5562e9,
-      0xc72fefd3, 0xf752f7da, 0x3f046f69, 0x77fa0a59,
-      0x80e4a915, 0x87b08601, 0x9b09e6ad, 0x3b3ee593,
-      0xe990fd5a, 0x9e34d797, 0x2cf0b7d9, 0x022b8b51,
-      0x96d5ac3a, 0x017da67d, 0xd1cf3ed6, 0x7c7d2d28,
-      0x1f9f25cf, 0xadf2b89b, 0x5ad6b472, 0x5a88f54c,
-      0xe029ac71, 0xe019a5e6, 0x47b0acfd, 0xed93fa9b,
-      0xe8d3c48d, 0x283b57cc, 0xf8d56629, 0x79132e28,
-      0x785f0191, 0xed756055, 0xf7960e44, 0xe3d35e8c,
-      0x15056dd4, 0x88f46dba, 0x03a16125, 0x0564f0bd,
-      0xc3eb9e15, 0x3c9057a2, 0x97271aec, 0xa93a072a,
-      0x1b3f6d9b, 0x1e6321f5, 0xf59c66fb, 0x26dcf319,
-      0x7533d928, 0xb155fdf5, 0x03563482, 0x8aba3cbb,
-      0x28517711, 0xc20ad9f8, 0xabcc5167, 0xccad925f,
-      0x4de81751, 0x3830dc8e, 0x379d5862, 0x9320f991,
-      0xea7a90c2, 0xfb3e7bce, 0x5121ce64, 0x774fbe32,
-      0xa8b6e37e, 0xc3293d46, 0x48de5369, 0x6413e680,
-      0xa2ae0810, 0xdd6db224, 0x69852dfd, 0x09072166,
-      0xb39a460a, 0x6445c0dd, 0x586cdecf, 0x1c20c8ae,
-      0x5bbef7dd, 0x1b588d40, 0xccd2017f, 0x6bb4e3bb,
-      0xdda26a7e, 0x3a59ff45, 0x3e350a44, 0xbcb4cdd5,
-      0x72eacea8, 0xfa6484bb, 0x8d6612ae, 0xbf3c6f47,
-      0xd29be463, 0x542f5d9e, 0xaec2771b, 0xf64e6370,
-      0x740e0d8d, 0xe75b1357, 0xf8721671, 0xaf537d5d,
-      0x4040cb08, 0x4eb4e2cc, 0x34d2466a, 0x0115af84,
-      0xe1b00428, 0x95983a1d, 0x06b89fb4, 0xce6ea048,
-      0x6f3f3b82, 0x3520ab82, 0x011a1d4b, 0x277227f8,
-      0x611560b1, 0xe7933fdc, 0xbb3a792b, 0x344525bd,
-      0xa08839e1, 0x51ce794b, 0x2f32c9b7, 0xa01fbac9,
-      0xe01cc87e, 0xbcc7d1f6, 0xcf0111c3, 0xa1e8aac7,
-      0x1a908749, 0xd44fbd9a, 0xd0dadecb, 0xd50ada38,
-      0x0339c32a, 0xc6913667, 0x8df9317c, 0xe0b12b4f,
-      0xf79e59b7, 0x43f5bb3a, 0xf2d519ff, 0x27d9459c,
-      0xbf97222c, 0x15e6fc2a, 0x0f91fc71, 0x9b941525,
-      0xfae59361, 0xceb69ceb, 0xc2a86459, 0x12baa8d1,
-      0xb6c1075e, 0xe3056a0c, 0x10d25065, 0xcb03a442,
-      0xe0ec6e0e, 0x1698db3b, 0x4c98a0be, 0x3278e964,
-      0x9f1f9532, 0xe0d392df, 0xd3a0342b, 0x8971f21e,
-      0x1b0a7441, 0x4ba3348c, 0xc5be7120, 0xc37632d8,
-      0xdf359f8d, 0x9b992f2e, 0xe60b6f47, 0x0fe3f11d,
-      0xe54cda54, 0x1edad891, 0xce6279cf, 0xcd3e7e6f,
-      0x1618b166, 0xfd2c1d05, 0x848fd2c5, 0xf6fb2299,
-      0xf523f357, 0xa6327623, 0x93a83531, 0x56cccd02,
-      0xacf08162, 0x5a75ebb5, 0x6e163697, 0x88d273cc,
-      0xde966292, 0x81b949d0, 0x4c50901b, 0x71c65614,
-      0xe6c6c7bd, 0x327a140a, 0x45e1d006, 0xc3f27b9a,
-      0xc9aa53fd, 0x62a80f00, 0xbb25bfe2, 0x35bdd2f6,
-      0x71126905, 0xb2040222, 0xb6cbcf7c, 0xcd769c2b,
-      0x53113ec0, 0x1640e3d3, 0x38abbd60, 0x2547adf0,
-      0xba38209c, 0xf746ce76, 0x77afa1c5, 0x20756060,
-      0x85cbfe4e, 0x8ae88dd8, 0x7aaaf9b0, 0x4cf9aa7e,
-      0x1948c25c, 0x02fb8a8c, 0x01c36ae4, 0xd6ebe1f9,
-      0x90d4f869, 0xa65cdea0, 0x3f09252d, 0xc208e69f,
-      0xb74e6132, 0xce77e25b, 0x578fdfe3, 0x3ac372e6])
-    ];
-  this.P = new Uint32Array([
-    0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344,
-    0xa4093822, 0x299f31d0, 0x082efa98, 0xec4e6c89,
-    0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c,
-    0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917,
-    0x9216d5d9, 0x8979fb1b]);
-};
-
-function F(S, x8, i) {
-  return (((S[0][x8[i+3]] +
-            S[1][x8[i+2]]) ^
-            S[2][x8[i+1]]) +
-            S[3][x8[i]]);
-};
-
-Blowfish.prototype.encipher = function(x, x8) {
-  if (x8 === undefined) {
-    x8 = new Uint8Array(x.buffer);
-    if (x.byteOffset !== 0)
-      x8 = x8.subarray(x.byteOffset);
-  }
-  x[0] ^= this.P[0];
-  for (var i = 1; i < 16; i += 2) {
-    x[1] ^= F(this.S, x8, 0) ^ this.P[i];
-    x[0] ^= F(this.S, x8, 4) ^ this.P[i+1];
-  }
-  var t = x[0];
-  x[0] = x[1] ^ this.P[17];
-  x[1] = t;
-};
-
-Blowfish.prototype.decipher = function(x) {
-  var x8 = new Uint8Array(x.buffer);
-  if (x.byteOffset !== 0)
-    x8 = x8.subarray(x.byteOffset);
-  x[0] ^= this.P[17];
-  for (var i = 16; i > 0; i -= 2) {
-    x[1] ^= F(this.S, x8, 0) ^ this.P[i];
-    x[0] ^= F(this.S, x8, 4) ^ this.P[i-1];
-  }
-  var t = x[0];
-  x[0] = x[1] ^ this.P[0];
-  x[1] = t;
-};
-
-function stream2word(data, databytes){
-  var i, temp = 0;
-  for (i = 0; i < 4; i++, BLF_J++) {
-    if (BLF_J >= databytes) BLF_J = 0;
-    temp = (temp << 8) | data[BLF_J];
-  }
-  return temp;
-};
-
-Blowfish.prototype.expand0state = function(key, keybytes) {
-  var d = new Uint32Array(2), i, k;
-  var d8 = new Uint8Array(d.buffer);
-
-  for (i = 0, BLF_J = 0; i < 18; i++) {
-    this.P[i] ^= stream2word(key, keybytes);
-  }
-  BLF_J = 0;
-
-  for (i = 0; i < 18; i += 2) {
-    this.encipher(d, d8);
-    this.P[i]   = d[0];
-    this.P[i+1] = d[1];
-  }
-
-  for (i = 0; i < 4; i++) {
-    for (k = 0; k < 256; k += 2) {
-      this.encipher(d, d8);
-      this.S[i][k]   = d[0];
-      this.S[i][k+1] = d[1];
-    }
-  }
-};
-
-Blowfish.prototype.expandstate = function(data, databytes, key, keybytes) {
-  var d = new Uint32Array(2), i, k;
-
-  for (i = 0, BLF_J = 0; i < 18; i++) {
-    this.P[i] ^= stream2word(key, keybytes);
-  }
-
-  for (i = 0, BLF_J = 0; i < 18; i += 2) {
-    d[0] ^= stream2word(data, databytes);
-    d[1] ^= stream2word(data, databytes);
-    this.encipher(d);
-    this.P[i]   = d[0];
-    this.P[i+1] = d[1];
-  }
-
-  for (i = 0; i < 4; i++) {
-    for (k = 0; k < 256; k += 2) {
-      d[0] ^= stream2word(data, databytes);
-      d[1] ^= stream2word(data, databytes);
-      this.encipher(d);
-      this.S[i][k]   = d[0];
-      this.S[i][k+1] = d[1];
-    }
-  }
-  BLF_J = 0;
-};
-
-Blowfish.prototype.enc = function(data, blocks) {
-  for (var i = 0; i < blocks; i++) {
-    this.encipher(data.subarray(i*2));
-  }
-};
-
-Blowfish.prototype.dec = function(data, blocks) {
-  for (var i = 0; i < blocks; i++) {
-    this.decipher(data.subarray(i*2));
-  }
-};
-
-var BCRYPT_BLOCKS = 8,
-    BCRYPT_HASHSIZE = 32;
-
-function bcrypt_hash(sha2pass, sha2salt, out) {
-  var state = new Blowfish(),
-      cdata = new Uint32Array(BCRYPT_BLOCKS), i,
-      ciphertext = new Uint8Array([79,120,121,99,104,114,111,109,97,116,105,
-            99,66,108,111,119,102,105,115,104,83,119,97,116,68,121,110,97,109,
-            105,116,101]); //"OxychromaticBlowfishSwatDynamite"
-
-  state.expandstate(sha2salt, 64, sha2pass, 64);
-  for (i = 0; i < 64; i++) {
-    state.expand0state(sha2salt, 64);
-    state.expand0state(sha2pass, 64);
-  }
-
-  for (i = 0; i < BCRYPT_BLOCKS; i++)
-    cdata[i] = stream2word(ciphertext, ciphertext.byteLength);
-  for (i = 0; i < 64; i++)
-    state.enc(cdata, cdata.byteLength / 8);
-
-  for (i = 0; i < BCRYPT_BLOCKS; i++) {
-    out[4*i+3] = cdata[i] >>> 24;
-    out[4*i+2] = cdata[i] >>> 16;
-    out[4*i+1] = cdata[i] >>> 8;
-    out[4*i+0] = cdata[i];
-  }
-};
-
-function bcrypt_pbkdf(pass, passlen, salt, saltlen, key, keylen, rounds) {
-  var sha2pass = new Uint8Array(64),
-      sha2salt = new Uint8Array(64),
-      out = new Uint8Array(BCRYPT_HASHSIZE),
-      tmpout = new Uint8Array(BCRYPT_HASHSIZE),
-      countsalt = new Uint8Array(saltlen+4),
-      i, j, amt, stride, dest, count,
-      origkeylen = keylen;
-
-  if (rounds < 1)
-    return -1;
-  if (passlen === 0 || saltlen === 0 || keylen === 0 ||
-      keylen > (out.byteLength * out.byteLength) || saltlen > (1<<20))
-    return -1;
-
-  stride = Math.floor((keylen + out.byteLength - 1) / out.byteLength);
-  amt = Math.floor((keylen + stride - 1) / stride);
-
-  for (i = 0; i < saltlen; i++)
-    countsalt[i] = salt[i];
-
-  crypto_hash_sha512(sha2pass, pass, passlen);
-
-  for (count = 1; keylen > 0; count++) {
-    countsalt[saltlen+0] = count >>> 24;
-    countsalt[saltlen+1] = count >>> 16;
-    countsalt[saltlen+2] = count >>>  8;
-    countsalt[saltlen+3] = count;
-
-    crypto_hash_sha512(sha2salt, countsalt, saltlen + 4);
-    bcrypt_hash(sha2pass, sha2salt, tmpout);
-    for (i = out.byteLength; i--;)
-      out[i] = tmpout[i];
-
-    for (i = 1; i < rounds; i++) {
-      crypto_hash_sha512(sha2salt, tmpout, tmpout.byteLength);
-      bcrypt_hash(sha2pass, sha2salt, tmpout);
-      for (j = 0; j < out.byteLength; j++)
-        out[j] ^= tmpout[j];
-    }
-
-    amt = Math.min(amt, keylen);
-    for (i = 0; i < amt; i++) {
-      dest = i * stride + (count - 1);
-      if (dest >= origkeylen)
-        break;
-      key[dest] = out[i];
-    }
-    keylen -= i;
-  }
-
-  return 0;
-};
-
-module.exports = {
-      BLOCKS: BCRYPT_BLOCKS,
-      HASHSIZE: BCRYPT_HASHSIZE,
-      hash: bcrypt_hash,
-      pbkdf: bcrypt_pbkdf
-};
diff --git a/node_modules/core-js/es5/index.js b/node_modules/core-js/es5/index.js
deleted file mode 100644
index e9c6cc40fc3fb257b1467df20f614aad58147dc5..0000000000000000000000000000000000000000
--- a/node_modules/core-js/es5/index.js
+++ /dev/null
@@ -1,37 +0,0 @@
-require('../modules/es6.object.create');
-require('../modules/es6.object.define-property');
-require('../modules/es6.object.define-properties');
-require('../modules/es6.object.get-own-property-descriptor');
-require('../modules/es6.object.get-prototype-of');
-require('../modules/es6.object.keys');
-require('../modules/es6.object.get-own-property-names');
-require('../modules/es6.object.freeze');
-require('../modules/es6.object.seal');
-require('../modules/es6.object.prevent-extensions');
-require('../modules/es6.object.is-frozen');
-require('../modules/es6.object.is-sealed');
-require('../modules/es6.object.is-extensible');
-require('../modules/es6.function.bind');
-require('../modules/es6.array.is-array');
-require('../modules/es6.array.join');
-require('../modules/es6.array.slice');
-require('../modules/es6.array.sort');
-require('../modules/es6.array.for-each');
-require('../modules/es6.array.map');
-require('../modules/es6.array.filter');
-require('../modules/es6.array.some');
-require('../modules/es6.array.every');
-require('../modules/es6.array.reduce');
-require('../modules/es6.array.reduce-right');
-require('../modules/es6.array.index-of');
-require('../modules/es6.array.last-index-of');
-require('../modules/es6.number.to-fixed');
-require('../modules/es6.number.to-precision');
-require('../modules/es6.date.now');
-require('../modules/es6.date.to-iso-string');
-require('../modules/es6.date.to-json');
-require('../modules/es6.parse-int');
-require('../modules/es6.parse-float');
-require('../modules/es6.string.trim');
-require('../modules/es6.regexp.to-string');
-module.exports = require('../modules/_core');
diff --git a/node_modules/core-js/fn/object/lookup-getter.js b/node_modules/core-js/fn/object/lookup-getter.js
deleted file mode 100644
index 01adc7c661da84075225e4b354cc61d08b69ef84..0000000000000000000000000000000000000000
--- a/node_modules/core-js/fn/object/lookup-getter.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.object.lookup-setter');
-module.exports = require('../../modules/_core').Object.__lookupGetter__;
diff --git a/node_modules/core-js/library/es6/weak-map.js b/node_modules/core-js/library/es6/weak-map.js
deleted file mode 100644
index 223047b232f3febc95d0b350df994f89ab290585..0000000000000000000000000000000000000000
--- a/node_modules/core-js/library/es6/weak-map.js
+++ /dev/null
@@ -1,4 +0,0 @@
-require('../modules/es6.object.to-string');
-require('../modules/es6.array.iterator');
-require('../modules/es6.weak-map');
-module.exports = require('../modules/_core').WeakMap;
diff --git a/node_modules/core-js/library/fn/object/entries.js b/node_modules/core-js/library/fn/object/entries.js
deleted file mode 100644
index 197500ba59e21853bb50f5f00b5be85de3f2e4e0..0000000000000000000000000000000000000000
--- a/node_modules/core-js/library/fn/object/entries.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('../../modules/es7.object.entries');
-module.exports = require('../../modules/_core').Object.entries;
diff --git a/node_modules/core-js/library/fn/typed/index.js b/node_modules/core-js/library/fn/typed/index.js
deleted file mode 100644
index 90821c0bf63464de74b0ec477c477545333caafe..0000000000000000000000000000000000000000
--- a/node_modules/core-js/library/fn/typed/index.js
+++ /dev/null
@@ -1,13 +0,0 @@
-require('../../modules/es6.typed.array-buffer');
-require('../../modules/es6.typed.data-view');
-require('../../modules/es6.typed.int8-array');
-require('../../modules/es6.typed.uint8-array');
-require('../../modules/es6.typed.uint8-clamped-array');
-require('../../modules/es6.typed.int16-array');
-require('../../modules/es6.typed.uint16-array');
-require('../../modules/es6.typed.int32-array');
-require('../../modules/es6.typed.uint32-array');
-require('../../modules/es6.typed.float32-array');
-require('../../modules/es6.typed.float64-array');
-require('../../modules/es6.object.to-string');
-module.exports = require('../../modules/_core');
diff --git a/node_modules/core-js/library/modules/core.object.is-object.js b/node_modules/core-js/library/modules/core.object.is-object.js
deleted file mode 100644
index fea80b6067fbcfcc92b5f86bcade7cc85464c921..0000000000000000000000000000000000000000
--- a/node_modules/core-js/library/modules/core.object.is-object.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var $export = require('./_export');
-
-$export($export.S + $export.F, 'Object', { isObject: require('./_is-object') });
diff --git a/node_modules/core-js/library/modules/es6.typed.uint16-array.js b/node_modules/core-js/library/modules/es6.typed.uint16-array.js
deleted file mode 100644
index 992805d6311e9be92c978c7977fd61276000e1e4..0000000000000000000000000000000000000000
--- a/node_modules/core-js/library/modules/es6.typed.uint16-array.js
+++ /dev/null
@@ -1,5 +0,0 @@
-require('./_typed-array')('Uint16', 2, function (init) {
-  return function Uint16Array(data, byteOffset, length) {
-    return init(this, data, byteOffset, length);
-  };
-});
diff --git a/node_modules/core-js/modules/_parse-int.js b/node_modules/core-js/modules/_parse-int.js
deleted file mode 100644
index ddd7172a987bb5293a33d20712c5b17ee03cc5af..0000000000000000000000000000000000000000
--- a/node_modules/core-js/modules/_parse-int.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var $parseInt = require('./_global').parseInt;
-var $trim = require('./_string-trim').trim;
-var ws = require('./_string-ws');
-var hex = /^[-+]?0[xX]/;
-
-module.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) {
-  var string = $trim(String(str), 3);
-  return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));
-} : $parseInt;
diff --git a/node_modules/core-js/modules/es6.string.fixed.js b/node_modules/core-js/modules/es6.string.fixed.js
deleted file mode 100644
index d4a60f37d701ddb3c6f2f4198e23478fab8e28fb..0000000000000000000000000000000000000000
--- a/node_modules/core-js/modules/es6.string.fixed.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-// B.2.3.6 String.prototype.fixed()
-require('./_string-html')('fixed', function (createHTML) {
-  return function fixed() {
-    return createHTML(this, 'tt', '', '');
-  };
-});
diff --git a/node_modules/cssstyle/lib/properties/alignContent.js b/node_modules/cssstyle/lib/properties/alignContent.js
deleted file mode 100644
index de409d43f7715a3f68ca30a84ac977f2a13720b6..0000000000000000000000000000000000000000
--- a/node_modules/cssstyle/lib/properties/alignContent.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-
-module.exports.definition = {
-    set: function (v) {
-        this._setProperty('align-content', v);
-    },
-    get: function () {
-        return this.getPropertyValue('align-content');
-    },
-    enumerable: true,
-    configurable: true
-};
diff --git a/node_modules/cssstyle/lib/properties/speak.js b/node_modules/cssstyle/lib/properties/speak.js
deleted file mode 100644
index 422ae8baae4ad1048709708f24d61815f0fad3d9..0000000000000000000000000000000000000000
--- a/node_modules/cssstyle/lib/properties/speak.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-
-module.exports.definition = {
-    set: function (v) {
-        this._setProperty('speak', v);
-    },
-    get: function () {
-        return this.getPropertyValue('speak');
-    },
-    enumerable: true,
-    configurable: true
-};
diff --git a/node_modules/cssstyle/lib/properties/webkitMarginAfter.js b/node_modules/cssstyle/lib/properties/webkitMarginAfter.js
deleted file mode 100644
index 9efa007fd8f00361a33a2181dd186a3dcb29c3df..0000000000000000000000000000000000000000
--- a/node_modules/cssstyle/lib/properties/webkitMarginAfter.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-
-module.exports.definition = {
-    set: function (v) {
-        this._setProperty('-webkit-margin-after', v);
-    },
-    get: function () {
-        return this.getPropertyValue('-webkit-margin-after');
-    },
-    enumerable: true,
-    configurable: true
-};
diff --git a/node_modules/decode-uri-component/package.json b/node_modules/decode-uri-component/package.json
deleted file mode 100644
index 851cbcfd48290c8e499bce7f4fc84c91291ca114..0000000000000000000000000000000000000000
--- a/node_modules/decode-uri-component/package.json
+++ /dev/null
@@ -1,69 +0,0 @@
-{
-  "_from": "decode-uri-component@^0.2.0",
-  "_id": "decode-uri-component@0.2.0",
-  "_inBundle": false,
-  "_integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
-  "_location": "/decode-uri-component",
-  "_phantomChildren": {},
-  "_requested": {
-    "type": "range",
-    "registry": true,
-    "raw": "decode-uri-component@^0.2.0",
-    "name": "decode-uri-component",
-    "escapedName": "decode-uri-component",
-    "rawSpec": "^0.2.0",
-    "saveSpec": null,
-    "fetchSpec": "^0.2.0"
-  },
-  "_requiredBy": [
-    "/source-map-resolve"
-  ],
-  "_resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
-  "_shasum": "eb3913333458775cb84cd1a1fae062106bb87545",
-  "_spec": "decode-uri-component@^0.2.0",
-  "_where": "/Users/maritj/Documents/Documents/Dataing2ndyear/Systemutvikling2/Ovinger/Oving5/DatabaseTest/node_modules/source-map-resolve",
-  "author": {
-    "name": "Sam Verschueren",
-    "email": "sam.verschueren@gmail.com",
-    "url": "github.com/SamVerschueren"
-  },
-  "bugs": {
-    "url": "https://github.com/SamVerschueren/decode-uri-component/issues"
-  },
-  "bundleDependencies": false,
-  "deprecated": false,
-  "description": "A better decodeURIComponent",
-  "devDependencies": {
-    "ava": "^0.17.0",
-    "coveralls": "^2.13.1",
-    "nyc": "^10.3.2",
-    "xo": "^0.16.0"
-  },
-  "engines": {
-    "node": ">=0.10"
-  },
-  "files": [
-    "index.js"
-  ],
-  "homepage": "https://github.com/SamVerschueren/decode-uri-component#readme",
-  "keywords": [
-    "decode",
-    "uri",
-    "component",
-    "decodeuricomponent",
-    "components",
-    "decoder",
-    "url"
-  ],
-  "license": "MIT",
-  "name": "decode-uri-component",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/SamVerschueren/decode-uri-component.git"
-  },
-  "scripts": {
-    "coveralls": "nyc report --reporter=text-lcov | coveralls",
-    "test": "xo && nyc ava"
-  },
-  "version": "0.2.0"
-}
diff --git a/node_modules/escodegen/LICENSE.BSD b/node_modules/escodegen/LICENSE.BSD
deleted file mode 100644
index 3e580c355a96e5ab8c4fb2ea4ada2d62287de41f..0000000000000000000000000000000000000000
--- a/node_modules/escodegen/LICENSE.BSD
+++ /dev/null
@@ -1,19 +0,0 @@
-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.
-
-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 <COPYRIGHT HOLDER> 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.
diff --git a/node_modules/express/node_modules/qs/CHANGELOG.md b/node_modules/express/node_modules/qs/CHANGELOG.md
deleted file mode 100644
index 71d5a3e8f979fe8b832ea8459aee1c52cb25643a..0000000000000000000000000000000000000000
--- a/node_modules/express/node_modules/qs/CHANGELOG.md
+++ /dev/null
@@ -1,221 +0,0 @@
-## **6.5.1**
-- [Fix] Fix parsing & compacting very deep objects (#224)
-- [Refactor] name utils functions
-- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape`
-- [Tests] up to `node` `v8.4`; use `nvm install-latest-npm` so newer npm doesn’t break older node
-- [Tests] Use precise dist for Node.js 0.6 runtime (#225)
-- [Tests] make 0.6 required, now that it’s passing
-- [Tests] on `node` `v8.2`; fix npm on node 0.6
-
-## **6.5.0**
-- [New] add `utils.assign`
-- [New] pass default encoder/decoder to custom encoder/decoder functions (#206)
-- [New] `parse`/`stringify`: add `ignoreQueryPrefix`/`addQueryPrefix` options, respectively (#213)
-- [Fix] Handle stringifying empty objects with addQueryPrefix (#217)
-- [Fix] do not mutate `options` argument (#207)
-- [Refactor] `parse`: cache index to reuse in else statement (#182)
-- [Docs] add various badges to readme (#208)
-- [Dev Deps] update `eslint`, `browserify`, `iconv-lite`, `tape`
-- [Tests] up to `node` `v8.1`, `v7.10`, `v6.11`; npm v4.6 breaks on node < v1; npm v5+ breaks on node < v4
-- [Tests] add `editorconfig-tools`
-
-## **6.4.0**
-- [New] `qs.stringify`: add `encodeValuesOnly` option
-- [Fix] follow `allowPrototypes` option during merge (#201, #201)
-- [Fix] support keys starting with brackets (#202, #200)
-- [Fix] chmod a-x
-- [Dev Deps] update `eslint`
-- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds
-- [eslint] reduce warnings
-
-## **6.3.2**
-- [Fix] follow `allowPrototypes` option during merge (#201, #200)
-- [Dev Deps] update `eslint`
-- [Fix] chmod a-x
-- [Fix] support keys starting with brackets (#202, #200)
-- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds
-
-## **6.3.1**
-- [Fix] ensure that `allowPrototypes: false` does not ever shadow Object.prototype properties (thanks, @snyk!)
-- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `browserify`, `iconv-lite`, `qs-iconv`, `tape`
-- [Tests] on all node minors; improve test matrix
-- [Docs] document stringify option `allowDots` (#195)
-- [Docs] add empty object and array values example (#195)
-- [Docs] Fix minor inconsistency/typo (#192)
-- [Docs] document stringify option `sort` (#191)
-- [Refactor] `stringify`: throw faster with an invalid encoder
-- [Refactor] remove unnecessary escapes (#184)
-- Remove contributing.md, since `qs` is no longer part of `hapi` (#183)
-
-## **6.3.0**
-- [New] Add support for RFC 1738 (#174, #173)
-- [New] `stringify`: Add `serializeDate` option to customize Date serialization (#159)
-- [Fix] ensure `utils.merge` handles merging two arrays
-- [Refactor] only constructors should be capitalized
-- [Refactor] capitalized var names are for constructors only
-- [Refactor] avoid using a sparse array
-- [Robustness] `formats`: cache `String#replace`
-- [Dev Deps] update `browserify`, `eslint`, `@ljharb/eslint-config`; add `safe-publish-latest`
-- [Tests] up to `node` `v6.8`, `v4.6`; improve test matrix
-- [Tests] flesh out arrayLimit/arrayFormat tests (#107)
-- [Tests] skip Object.create tests when null objects are not available
-- [Tests] Turn on eslint for test files (#175)
-
-## **6.2.3**
-- [Fix] follow `allowPrototypes` option during merge (#201, #200)
-- [Fix] chmod a-x
-- [Fix] support keys starting with brackets (#202, #200)
-- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds
-
-## **6.2.2**
-- [Fix] ensure that `allowPrototypes: false` does not ever shadow Object.prototype properties
-
-## **6.2.1**
-- [Fix] ensure `key[]=x&key[]&key[]=y` results in 3, not 2, values
-- [Refactor] Be explicit and use `Object.prototype.hasOwnProperty.call`
-- [Tests] remove `parallelshell` since it does not reliably report failures
-- [Tests] up to `node` `v6.3`, `v5.12`
-- [Dev Deps] update `tape`, `eslint`, `@ljharb/eslint-config`, `qs-iconv`
-
-## [**6.2.0**](https://github.com/ljharb/qs/issues?milestone=36&state=closed)
-- [New] pass Buffers to the encoder/decoder directly (#161)
-- [New] add "encoder" and "decoder" options, for custom param encoding/decoding (#160)
-- [Fix] fix compacting of nested sparse arrays (#150)
-
-## **6.1.2
-- [Fix] follow `allowPrototypes` option during merge (#201, #200)
-- [Fix] chmod a-x
-- [Fix] support keys starting with brackets (#202, #200)
-- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds
-
-## **6.1.1**
-- [Fix] ensure that `allowPrototypes: false` does not ever shadow Object.prototype properties
-
-## [**6.1.0**](https://github.com/ljharb/qs/issues?milestone=35&state=closed)
-- [New] allowDots option for `stringify` (#151)
-- [Fix] "sort" option should work at a depth of 3 or more (#151)
-- [Fix] Restore `dist` directory; will be removed in v7 (#148)
-
-## **6.0.4**
-- [Fix] follow `allowPrototypes` option during merge (#201, #200)
-- [Fix] chmod a-x
-- [Fix] support keys starting with brackets (#202, #200)
-- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds
-
-## **6.0.3**
-- [Fix] ensure that `allowPrototypes: false` does not ever shadow Object.prototype properties
-- [Fix] Restore `dist` directory; will be removed in v7 (#148)
-
-## [**6.0.2**](https://github.com/ljharb/qs/issues?milestone=33&state=closed)
-- Revert ES6 requirement and restore support for node down to v0.8.
-
-## [**6.0.1**](https://github.com/ljharb/qs/issues?milestone=32&state=closed)
-- [**#127**](https://github.com/ljharb/qs/pull/127) Fix engines definition in package.json
-
-## [**6.0.0**](https://github.com/ljharb/qs/issues?milestone=31&state=closed)
-- [**#124**](https://github.com/ljharb/qs/issues/124) Use ES6 and drop support for node < v4
-
-## **5.2.1**
-- [Fix] ensure `key[]=x&key[]&key[]=y` results in 3, not 2, values
-
-## [**5.2.0**](https://github.com/ljharb/qs/issues?milestone=30&state=closed)
-- [**#64**](https://github.com/ljharb/qs/issues/64) Add option to sort object keys in the query string
-
-## [**5.1.0**](https://github.com/ljharb/qs/issues?milestone=29&state=closed)
-- [**#117**](https://github.com/ljharb/qs/issues/117) make URI encoding stringified results optional
-- [**#106**](https://github.com/ljharb/qs/issues/106) Add flag `skipNulls` to optionally skip null values in stringify
-
-## [**5.0.0**](https://github.com/ljharb/qs/issues?milestone=28&state=closed)
-- [**#114**](https://github.com/ljharb/qs/issues/114) default allowDots to false
-- [**#100**](https://github.com/ljharb/qs/issues/100) include dist to npm
-
-## [**4.0.0**](https://github.com/ljharb/qs/issues?milestone=26&state=closed)
-- [**#98**](https://github.com/ljharb/qs/issues/98) make returning plain objects and allowing prototype overwriting properties optional
-
-## [**3.1.0**](https://github.com/ljharb/qs/issues?milestone=24&state=closed)
-- [**#89**](https://github.com/ljharb/qs/issues/89) Add option to disable "Transform dot notation to bracket notation"
-
-## [**3.0.0**](https://github.com/ljharb/qs/issues?milestone=23&state=closed)
-- [**#80**](https://github.com/ljharb/qs/issues/80) qs.parse silently drops properties
-- [**#77**](https://github.com/ljharb/qs/issues/77) Perf boost
-- [**#60**](https://github.com/ljharb/qs/issues/60) Add explicit option to disable array parsing
-- [**#74**](https://github.com/ljharb/qs/issues/74) Bad parse when turning array into object
-- [**#81**](https://github.com/ljharb/qs/issues/81) Add a `filter` option
-- [**#68**](https://github.com/ljharb/qs/issues/68) Fixed issue with recursion and passing strings into objects.
-- [**#66**](https://github.com/ljharb/qs/issues/66) Add mixed array and object dot notation support Closes: #47
-- [**#76**](https://github.com/ljharb/qs/issues/76) RFC 3986
-- [**#85**](https://github.com/ljharb/qs/issues/85) No equal sign
-- [**#84**](https://github.com/ljharb/qs/issues/84) update license attribute
-
-## [**2.4.1**](https://github.com/ljharb/qs/issues?milestone=20&state=closed)
-- [**#73**](https://github.com/ljharb/qs/issues/73) Property 'hasOwnProperty' of object #<Object> is not a function
-
-## [**2.4.0**](https://github.com/ljharb/qs/issues?milestone=19&state=closed)
-- [**#70**](https://github.com/ljharb/qs/issues/70) Add arrayFormat option
-
-## [**2.3.3**](https://github.com/ljharb/qs/issues?milestone=18&state=closed)
-- [**#59**](https://github.com/ljharb/qs/issues/59) make sure array indexes are >= 0, closes #57
-- [**#58**](https://github.com/ljharb/qs/issues/58) make qs usable for browser loader
-
-## [**2.3.2**](https://github.com/ljharb/qs/issues?milestone=17&state=closed)
-- [**#55**](https://github.com/ljharb/qs/issues/55) allow merging a string into an object
-
-## [**2.3.1**](https://github.com/ljharb/qs/issues?milestone=16&state=closed)
-- [**#52**](https://github.com/ljharb/qs/issues/52) Return "undefined" and "false" instead of throwing "TypeError".
-
-## [**2.3.0**](https://github.com/ljharb/qs/issues?milestone=15&state=closed)
-- [**#50**](https://github.com/ljharb/qs/issues/50) add option to omit array indices, closes #46
-
-## [**2.2.5**](https://github.com/ljharb/qs/issues?milestone=14&state=closed)
-- [**#39**](https://github.com/ljharb/qs/issues/39) Is there an alternative to Buffer.isBuffer?
-- [**#49**](https://github.com/ljharb/qs/issues/49) refactor utils.merge, fixes #45
-- [**#41**](https://github.com/ljharb/qs/issues/41) avoid browserifying Buffer, for #39
-
-## [**2.2.4**](https://github.com/ljharb/qs/issues?milestone=13&state=closed)
-- [**#38**](https://github.com/ljharb/qs/issues/38) how to handle object keys beginning with a number
-
-## [**2.2.3**](https://github.com/ljharb/qs/issues?milestone=12&state=closed)
-- [**#37**](https://github.com/ljharb/qs/issues/37) parser discards first empty value in array
-- [**#36**](https://github.com/ljharb/qs/issues/36) Update to lab 4.x
-
-## [**2.2.2**](https://github.com/ljharb/qs/issues?milestone=11&state=closed)
-- [**#33**](https://github.com/ljharb/qs/issues/33) Error when plain object in a value
-- [**#34**](https://github.com/ljharb/qs/issues/34) use Object.prototype.hasOwnProperty.call instead of obj.hasOwnProperty
-- [**#24**](https://github.com/ljharb/qs/issues/24) Changelog? Semver?
-
-## [**2.2.1**](https://github.com/ljharb/qs/issues?milestone=10&state=closed)
-- [**#32**](https://github.com/ljharb/qs/issues/32) account for circular references properly, closes #31
-- [**#31**](https://github.com/ljharb/qs/issues/31) qs.parse stackoverflow on circular objects
-
-## [**2.2.0**](https://github.com/ljharb/qs/issues?milestone=9&state=closed)
-- [**#26**](https://github.com/ljharb/qs/issues/26) Don't use Buffer global if it's not present
-- [**#30**](https://github.com/ljharb/qs/issues/30) Bug when merging non-object values into arrays
-- [**#29**](https://github.com/ljharb/qs/issues/29) Don't call Utils.clone at the top of Utils.merge
-- [**#23**](https://github.com/ljharb/qs/issues/23) Ability to not limit parameters?
-
-## [**2.1.0**](https://github.com/ljharb/qs/issues?milestone=8&state=closed)
-- [**#22**](https://github.com/ljharb/qs/issues/22) Enable using a RegExp as delimiter
-
-## [**2.0.0**](https://github.com/ljharb/qs/issues?milestone=7&state=closed)
-- [**#18**](https://github.com/ljharb/qs/issues/18) Why is there arrayLimit?
-- [**#20**](https://github.com/ljharb/qs/issues/20) Configurable parametersLimit
-- [**#21**](https://github.com/ljharb/qs/issues/21) make all limits optional, for #18, for #20
-
-## [**1.2.2**](https://github.com/ljharb/qs/issues?milestone=6&state=closed)
-- [**#19**](https://github.com/ljharb/qs/issues/19) Don't overwrite null values
-
-## [**1.2.1**](https://github.com/ljharb/qs/issues?milestone=5&state=closed)
-- [**#16**](https://github.com/ljharb/qs/issues/16) ignore non-string delimiters
-- [**#15**](https://github.com/ljharb/qs/issues/15) Close code block
-
-## [**1.2.0**](https://github.com/ljharb/qs/issues?milestone=4&state=closed)
-- [**#12**](https://github.com/ljharb/qs/issues/12) Add optional delim argument
-- [**#13**](https://github.com/ljharb/qs/issues/13) fix #11: flattened keys in array are now correctly parsed
-
-## [**1.1.0**](https://github.com/ljharb/qs/issues?milestone=3&state=closed)
-- [**#7**](https://github.com/ljharb/qs/issues/7) Empty values of a POST array disappear after being submitted
-- [**#9**](https://github.com/ljharb/qs/issues/9) Should not omit equals signs (=) when value is null
-- [**#6**](https://github.com/ljharb/qs/issues/6) Minor grammar fix in README
-
-## [**1.0.2**](https://github.com/ljharb/qs/issues?milestone=2&state=closed)
-- [**#5**](https://github.com/ljharb/qs/issues/5) array holes incorrectly copied into object on large index
diff --git a/node_modules/fileset/test/fixtures/an (odd) filename.js b/node_modules/fileset/test/fixtures/an (odd) filename.js
deleted file mode 100644
index fbf9f2b34ddf635f09e0fcedc20842e0fcf6983d..0000000000000000000000000000000000000000
--- a/node_modules/fileset/test/fixtures/an (odd) filename.js	
+++ /dev/null
@@ -1 +0,0 @@
-var odd = true;
\ No newline at end of file
diff --git a/node_modules/fragment-cache/package.json b/node_modules/fragment-cache/package.json
deleted file mode 100644
index dafcd54159b47572cf02a695930027c1987cdedf..0000000000000000000000000000000000000000
--- a/node_modules/fragment-cache/package.json
+++ /dev/null
@@ -1,95 +0,0 @@
-{
-  "_from": "fragment-cache@^0.2.1",
-  "_id": "fragment-cache@0.2.1",
-  "_inBundle": false,
-  "_integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
-  "_location": "/fragment-cache",
-  "_phantomChildren": {},
-  "_requested": {
-    "type": "range",
-    "registry": true,
-    "raw": "fragment-cache@^0.2.1",
-    "name": "fragment-cache",
-    "escapedName": "fragment-cache",
-    "rawSpec": "^0.2.1",
-    "saveSpec": null,
-    "fetchSpec": "^0.2.1"
-  },
-  "_requiredBy": [
-    "/anymatch/extglob",
-    "/anymatch/micromatch",
-    "/nanomatch",
-    "/sane/extglob",
-    "/sane/micromatch"
-  ],
-  "_resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
-  "_shasum": "4290fad27f13e89be7f33799c6bc5a0abfff0d19",
-  "_spec": "fragment-cache@^0.2.1",
-  "_where": "/Users/maritj/Documents/Documents/Dataing2ndyear/Systemutvikling2/Ovinger/Oving5/DatabaseTest/node_modules/anymatch/node_modules/micromatch",
-  "author": {
-    "name": "Jon Schlinkert",
-    "url": "https://github.com/jonschlinkert"
-  },
-  "bugs": {
-    "url": "https://github.com/jonschlinkert/fragment-cache/issues"
-  },
-  "bundleDependencies": false,
-  "dependencies": {
-    "map-cache": "^0.2.2"
-  },
-  "deprecated": false,
-  "description": "A cache for managing namespaced sub-caches",
-  "devDependencies": {
-    "gulp": "^3.9.1",
-    "gulp-eslint": "^3.0.1",
-    "gulp-format-md": "^0.1.11",
-    "gulp-istanbul": "^1.1.1",
-    "gulp-mocha": "^3.0.1",
-    "mocha": "^3.2.0"
-  },
-  "engines": {
-    "node": ">=0.10.0"
-  },
-  "files": [
-    "index.js"
-  ],
-  "homepage": "https://github.com/jonschlinkert/fragment-cache",
-  "keywords": [
-    "cache",
-    "fragment"
-  ],
-  "license": "MIT",
-  "main": "index.js",
-  "name": "fragment-cache",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/jonschlinkert/fragment-cache.git"
-  },
-  "scripts": {
-    "test": "mocha"
-  },
-  "verb": {
-    "plugins": [
-      "gulp-format-md"
-    ],
-    "reflinks": [
-      "map-cache",
-      "verb"
-    ],
-    "related": {
-      "list": [
-        "base",
-        "map-cache"
-      ]
-    },
-    "layout": "default",
-    "toc": false,
-    "tasks": [
-      "readme"
-    ],
-    "lint": {
-      "reflinks": true
-    }
-  },
-  "version": "0.2.1"
-}
diff --git a/node_modules/fsevents/node_modules/fs.realpath/index.js b/node_modules/fsevents/node_modules/fs.realpath/index.js
deleted file mode 100644
index b09c7c7e6364dad82ad4b5f4e358a06e66ed8bdd..0000000000000000000000000000000000000000
--- a/node_modules/fsevents/node_modules/fs.realpath/index.js
+++ /dev/null
@@ -1,66 +0,0 @@
-module.exports = realpath
-realpath.realpath = realpath
-realpath.sync = realpathSync
-realpath.realpathSync = realpathSync
-realpath.monkeypatch = monkeypatch
-realpath.unmonkeypatch = unmonkeypatch
-
-var fs = require('fs')
-var origRealpath = fs.realpath
-var origRealpathSync = fs.realpathSync
-
-var version = process.version
-var ok = /^v[0-5]\./.test(version)
-var old = require('./old.js')
-
-function newError (er) {
-  return er && er.syscall === 'realpath' && (
-    er.code === 'ELOOP' ||
-    er.code === 'ENOMEM' ||
-    er.code === 'ENAMETOOLONG'
-  )
-}
-
-function realpath (p, cache, cb) {
-  if (ok) {
-    return origRealpath(p, cache, cb)
-  }
-
-  if (typeof cache === 'function') {
-    cb = cache
-    cache = null
-  }
-  origRealpath(p, cache, function (er, result) {
-    if (newError(er)) {
-      old.realpath(p, cache, cb)
-    } else {
-      cb(er, result)
-    }
-  })
-}
-
-function realpathSync (p, cache) {
-  if (ok) {
-    return origRealpathSync(p, cache)
-  }
-
-  try {
-    return origRealpathSync(p, cache)
-  } catch (er) {
-    if (newError(er)) {
-      return old.realpathSync(p, cache)
-    } else {
-      throw er
-    }
-  }
-}
-
-function monkeypatch () {
-  fs.realpath = realpath
-  fs.realpathSync = realpathSync
-}
-
-function unmonkeypatch () {
-  fs.realpath = origRealpath
-  fs.realpathSync = origRealpathSync
-}
diff --git a/node_modules/fsevents/node_modules/needle/README.md b/node_modules/fsevents/node_modules/needle/README.md
deleted file mode 100644
index bb86bdaf9540a8cee2065e66f3d675dabf3ef7d6..0000000000000000000000000000000000000000
--- a/node_modules/fsevents/node_modules/needle/README.md
+++ /dev/null
@@ -1,593 +0,0 @@
-Needle
-======
-
-[![NPM](https://nodei.co/npm/needle.png)](https://nodei.co/npm/needle/)
-
-The leanest and most handsome HTTP client in the Nodelands.
-
-```js
-var needle = require('needle');
-
-needle.get('http://www.google.com', function(error, response) {
-  if (!error && response.statusCode == 200)
-    console.log(response.body);
-});
-```
-
-Callbacks not floating your boat? Needle got your back.
-
-``` js
-var data = {
-  file: '/home/johnlennon/walrus.png',
-  content_type: 'image/png'
-};
-
-// the callback is optional, and needle returns a `readableStream` object
-// that triggers a 'done' event when the request/response process is complete.
-needle
-  .post('https://my.server.com/foo', data, { multipart: true })
-  .on('readable', function() { /* eat your chunks */ })
-  .on('done', function(err, resp) {
-    console.log('Ready-o!');
-  })
-```
-
-From version 2.0.x up, Promises are also supported. Just call `needle()` directly and you'll get a native Promise object.
-
-```js
-needle('put', 'https://hacking.the.gibson/login', { password: 'god' })
-  .then(function(response) {
-    return doSomethingWith(response)
-  })
-  .catch(function(err) {
-    console.log('Call the locksmith!')
-  })
-```
-
-With only two real dependencies, Needle supports:
-
- - HTTP/HTTPS requests, with the usual verbs you would expect
- - All of Node's native TLS options, such as 'rejectUnauthorized' (see below)
- - Basic & Digest authentication with auto-detection
- - Multipart form-data (e.g. file uploads)
- - HTTP Proxy forwarding, optionally with authentication
- - Streaming gzip or deflate decompression
- - Automatic XML & JSON parsing
- - 301/302/303 redirect following, with fine-grained tuning, and
- - Streaming non-UTF-8 charset decoding, via `iconv-lite`
-
-And yes, Mr. Wayne, it does come in black.
-
-This makes Needle an ideal alternative for performing quick HTTP requests in Node, either for API interaction, downloading or uploading streams of data, and so on. If you need OAuth, AWS support or anything fancier, you should check out mikeal's request module.
-
-Install
--------
-
-```
-$ npm install needle
-```
-
-Usage
------
-
-```js
-// using promises
-needle('get', 'https://server.com/posts/12')
-  .then(function(resp) {
-    // ...
-  })
-  .catch(function(err) {
-    // ...
-  })
-});
-
-// with callback
-needle.get('ifconfig.me/all.json', function(error, response, body) {
-  if (error) throw error;
-
-  // body is an alias for `response.body`,
-  // that in this case holds a JSON-decoded object.
-  console.log(body.ip_addr);
-});
-
-// no callback, using streams
-var out = fs.createWriteStream('logo.png');
-needle.get('https://google.com/images/logo.png').pipe(out).on('finish', function() {
-  console.log('Pipe finished!');
-});
-```
-
-As you can see, you can use Needle with Promises or without them. When using Promises or when a callback is passed, the response's body will be buffered and written to `response.body`, and the callback will be fired when all of the data has been collected and processed (e.g. decompressed, decoded and/or parsed).
-
-When no callback is passed, however, the buffering logic will be skipped but the response stream will still go through Needle's processing pipeline, so you get all the benefits of post-processing while keeping the streamishness we all love from Node.
-
-Response pipeline
------------------
-
-Depending on the response's Content-Type, Needle will either attempt to parse JSON or XML streams, or, if a text response was received, will ensure that the final encoding you get is UTF-8.
-
-You can also request a gzip/deflated response, which, if sent by the server, will be processed before parsing or decoding is performed.
-
-```js
-needle.get('http://stackoverflow.com/feeds', { compressed: true }, function(err, resp) {
-  console.log(resp.body); // this little guy won't be a Gzipped binary blob
-                          // but a nice object containing all the latest entries
-});
-```
-
-Or in anti-callback mode, using a few other options:
-
-```js
-var options = {
-  compressed         : true, // sets 'Accept-Encoding' to 'gzip,deflate'
-  follow_max         : 5,    // follow up to five redirects
-  rejectUnauthorized : true  // verify SSL certificate
-}
-
-var stream = needle.get('https://backend.server.com/everything.html', options);
-
-// read the chunks from the 'readable' event, so the stream gets consumed.
-stream.on('readable', function() {
-  while (data = this.read()) {
-    console.log(data.toString());
-  }
-})
-
-stream.on('done', function(err) {
-  // if our request had an error, our 'done' event will tell us.
-  if (!err) console.log('Great success!');
-})
-```
-
-API
----
-
-### needle(method, url[, data][, options][, callback]) `(> 2.0.x)`
-
-Calling `needle()` directly returns a Promise. Besides `method` and `url`, all parameters are optional, although when sending a `post`, `put` or `patch` request you will get an error if `data` is not present.
-
-```js
-needle('get', 'http://some.url.com')
-  .then(function(resp) { console.log(resp.body) })
-  .catch(function(err) { console.error(err) })
-})
-```
-
-Except from the above, all of Needle's request methods return a Readable stream, and both `options` and `callback` are optional. If passed, the callback will return three arguments: `error`, `response` and `body`, which is basically an alias for `response.body`.
-
-### needle.head(url[, options][, callback])
-
-```js
-needle.head('https://my.backend.server.com', {
-  open_timeout: 5000 // if we're not able to open a connection in 5 seconds, boom.
-}, function(err, resp) {
-  if (err)
-    console.log('Shoot! Something is wrong: ' + err.message)
-  else
-    console.log('Yup, still alive.')
-})
-```
-
-### needle.get(url[, options][, callback])
-
-```js
-needle.get('google.com/search?q=syd+barrett', function(err, resp) {
-  // if no http:// is found, Needle will automagically prepend it.
-});
-```
-
-### needle.post(url, data[, options][, callback])
-
-```js
-var options = {
-  headers: { 'X-Custom-Header': 'Bumbaway atuna' }
-}
-
-needle.post('https://my.app.com/endpoint', 'foo=bar', options, function(err, resp) {
-  // you can pass params as a string or as an object.
-});
-```
-
-### needle.put(url, data[, options][, callback])
-
-```js
-var nested = {
-  params: {
-    are: {
-      also: 'supported'
-    }
-  }
-}
-
-needle.put('https://api.app.com/v2', nested, function(err, resp) {
-  console.log('Got ' + resp.bytes + ' bytes.') // another nice treat from this handsome fella.
-});
-```
-
-### needle.patch(url, data[, options][, callback])
-
-Same behaviour as PUT.
-
-### needle.delete(url, data[, options][, callback])
-
-```js
-var options = {
-  username: 'fidelio',
-  password: 'x'
-}
-
-needle.delete('https://api.app.com/messages/123', null, options, function(err, resp) {
-  // in this case, data may be null, but you need to explicity pass it.
-});
-```
-
-### needle.request(method, url, data[, options][, callback])
-
-Generic request. This not only allows for flexibility, but also lets you perform a GET request with data, in which case will be appended to the request as a query string, unless you pass a `json: true` option (read below).
-
-```js
-var params = {
-  q    : 'a very smart query',
-  page : 2
-}
-
-needle.request('get', 'forum.com/search', params, function(err, resp) {
-  if (!err && resp.statusCode == 200)
-    console.log(resp.body); // here you go, mister.
-});
-```
-
-Now, if you set pass `json: true` among the options, Needle won't set your params as a querystring but instead send a JSON representation of your data through the request's body, as well as set the `Content-Type` and `Accept` headers to `application/json`.
-
-```js
-needle.request('get', 'forum.com/search', params, { json: true }, function(err, resp) {
-  if (resp.statusCode == 200) console.log('It worked!');
-});
-```
-
-Events
-------
-
-The [Readable stream](https://nodejs.org/api/stream.html#stream_class_stream_readable) object returned by the above request methods emits the following events, in addition to the regular ones (e.g. `end`, `close`, `data`, `pipe`, `readable`).
-
-### Event: `'response'`
-
- - `response <http.IncomingMessage>`
-
-Emitted when the underlying [http.ClientRequest](https://nodejs.org/api/http.html#http_class_http_clientrequest) emits a response event. This is after the connection is established and the header received, but before any of it is processed (e.g. authorization required or redirect to be followed). No data has been consumed at this point.
-
-### Event: `'redirect'`
-
- - `location <String>`
-
-Indicates that the a redirect is being followed. This means that the response code was a redirect (`301`, `302`, `303`, `307`) and the given [redirect options](#redirect-options) allowed following the URL received in the `Location` header.
-
-### Event: `'header'`
-
- - `statusCode <Integer>`
- - `headers <Object>`
-
-Triggered after the header has been processed, and just before the data is to be consumed. This implies that no redirect was followed and/or authentication header was received. In other words, we got a "valid" response.
-
-### Event: `'done'` (previously 'end')
-
- - `exception <Error>` (optional)
-
-Emitted when the request/response process has finished, either because all data was consumed or an error ocurred somewhere in between. Unlike a regular stream's `end` event, Needle's `done` will be fired either on success or on failure, which is why the first argument may be an Error object. In other words:
-
-```js
-var resp = needle.get('something.worthy/of/being/streamed/by/needle');
-resp.pipe(someWritableStream);
-
-resp.on('done', function(err) {
-  if (err) console.log('An error ocurred: ' + err.message);
-  else console.log('Great success!');
-})
-```
-
-### Event: `'err'`
-
- - `exception <Error>`
-
-Emitted when an error ocurrs. This should only happen once in the lifecycle of a Needle request.
-
-### Event: `'timeout'`
-
- - `type <String>`
-
-Emitted when an timeout error occurs. Type can be either 'open', 'response', or 'read'. This will called right before aborting the request, which will also trigger an `err` event, a described above, with an `ECONNRESET` (Socket hang up) exception.
-
-Request options
----------------
-
-For information about options that've changed, there's always [the changelog](https://github.com/tomas/needle/releases).
-
- - `agent`       : Uses an [http.Agent](https://nodejs.org/api/http.html#http_class_http_agent) of your choice, instead of the global, default one. Useful for tweaking the behaviour at the connection level, such as when doing tunneling (see below for an example).
- - `json`        : When `true`, sets content type to `application/json` and sends request body as JSON string, instead of a query string.
- - `open_timeout`: (or `timeout`) Returns error if connection takes longer than X milisecs to establish. Defaults to `10000` (10 secs). `0` means no timeout.
- - `response_timeout`: Returns error if no response headers are received in X milisecs, counting from when the connection is opened. Defaults to `0` (no response timeout).
- - `read_timeout`: Returns error if data transfer takes longer than X milisecs, once response headers are received. Defaults to `0` (no timeout).
- - `follow_max`  : (or `follow`) Number of redirects to follow. Defaults to `0`. See below for more redirect options.
- - `multipart`   : Enables multipart/form-data encoding. Defaults to `false`. Use it when uploading files.
- - `proxy`       : Forwards request through HTTP(s) proxy. Eg. `proxy: 'http://user:pass@proxy.server.com:3128'`. For more advanced proxying/tunneling use a custom `agent`, as described below.
- - `headers`     : Object containing custom HTTP headers for request. Overrides defaults described below.
- - `auth`        : Determines what to do with provided username/password. Options are `auto`, `digest` or `basic` (default). `auto` will detect the type of authentication depending on the response headers.
- - `stream_length`: When sending streams, this lets you manually set the Content-Length header --if the stream's bytecount is known beforehand--, preventing ECONNRESET (socket hang up) errors on some servers that misbehave when receiving payloads of unknown size. Set it to `0` and Needle will get and set the stream's length for you, or leave unset for the default behaviour, which is no Content-Length header for stream payloads.
-
-Response options
-----------------
-
- - `decode_response` : (or `decode`) Whether to decode the text responses to UTF-8, if Content-Type header shows a different charset. Defaults to `true`.
- - `parse_response`  : (or `parse`) Whether to parse XML or JSON response bodies automagically. Defaults to `true`. You can also set this to 'xml' or 'json' in which case Needle will *only* parse the response if the content type matches.
- - `output`          : Dump response output to file. This occurs after parsing and charset decoding is done.
- - `parse_cookies`   : Whether to parse response’s `Set-Cookie` header. Defaults to `true`. If parsed, response cookies will be available at `resp.cookies`.
-
-HTTP Header options
--------------------
-
-These are basically shortcuts to the `headers` option described above.
-
- - `cookies`   : Builds and sets a Cookie header from a `{ key: 'value' }` object.
- - `compressed`: If `true`, sets 'Accept-Encoding' header to 'gzip,deflate', and inflates content if zipped. Defaults to `false`.
- - `username`  : For HTTP basic auth.
- - `password`  : For HTTP basic auth. Requires username to be passed, but is optional.
- - `accept`    : Sets 'Accept' HTTP header. Defaults to `*/*`.
- - `connection`: Sets 'Connection' HTTP header. Not set by default, unless running Node < 0.11.4 in which case it defaults to `close`. More info about this below.
- - `user_agent`: Sets the 'User-Agent' HTTP header. Defaults to `Needle/{version} (Node.js {node_version})`.
- - `content_type`: Sets the 'Content-Type' header. Unset by default, unless you're sending data in which case it's set accordingly to whatever is being sent (`application/x-www-form-urlencoded`, `application/json` or `multipart/form-data`). That is, of course, unless the option is passed, either here or through `options.headers`. You're the boss.
-
-Node.js TLS Options
--------------------
-
-These options are passed directly to `https.request` if present. Taken from the [original documentation](http://nodejs.org/docs/latest/api/https.html):
-
- - `pfx`                : Certificate, Private key and CA certificates to use for SSL.
- - `key`                : Private key to use for SSL.
- - `passphrase`         : A string of passphrase for the private key or pfx.
- - `cert`               : Public x509 certificate to use.
- - `ca`                 : An authority certificate or array of authority certificates to check the remote host against.
- - `ciphers`            : A string describing the ciphers to use or exclude.
- - `rejectUnauthorized` : If true, the server certificate is verified against the list of supplied CAs. An 'error' event is emitted if verification fails. Verification happens at the connection level, before the HTTP request is sent.
- - `secureProtocol`     : The SSL method to use, e.g. SSLv3_method to force SSL version 3.
-
-Redirect options
-----------------
-
-These options only apply if the `follow_max` (or `follow`) option is higher than 0.
-
- - `follow_set_cookies`      : Sends the cookies received in the `set-cookie` header as part of the following request. `false` by default.
- - `follow_set_referer`      : Sets the 'Referer' header to the requested URI when following a redirect. `false` by default.
- - `follow_keep_method`      : If enabled, resends the request using the original verb instead of being rewritten to `get` with no data. `false` by default.
- - `follow_if_same_host`     : When true, Needle will only follow redirects that point to the same host as the original request. `false` by default.
- - `follow_if_same_protocol` : When true, Needle will only follow redirects that point to the same protocol as the original request. `false` by default.
-
-Overriding Defaults
--------------------
-
-Yes sir, we have it. Needle includes a `defaults()` method, that lets you override some of the defaults for all future requests. Like this:
-
-```js
-needle.defaults({
-  open_timeout: 60000,
-  user_agent: 'MyApp/1.2.3',
-  parse_response: false });
-```
-
-This will override Needle's default user agent and 10-second timeout, and disable response parsing, so you don't need to pass those options in every other request.
-
-More advanced Proxy support
----------------------------
-
-Since you can pass a custom HTTPAgent to Needle you can do all sorts of neat stuff. For example, if you want to use the [`tunnel`](https://github.com/koichik/node-tunnel) module for HTTPS proxying, you can do this:
-
-```js
-var tunnel = require('tunnel');
-var myAgent = tunnel.httpOverHttp({
-  proxy: { host: 'localhost' }
-});
-
-needle.get('foobar.com', { agent: myAgent });
-```
-
-Regarding the 'Connection' header
----------------------------------
-
-Unless you're running an old version of Node (< 0.11.4), by default Needle won't set the Connection header on requests, yielding Node's default behaviour of keeping the connection alive with the target server. This speeds up inmensely the process of sending several requests to the same host.
-
-On older versions, however, this has the unwanted behaviour of preventing the runtime from exiting, either because of a bug or 'feature' that was changed on 0.11.4. To overcome this Needle does set the 'Connection' header to 'close' on those versions, however this also means that making new requests to the same host doesn't benefit from Keep-Alive.
-
-So if you're stuck on 0.10 or even lower and want full speed, you can simply set the Connection header to 'Keep-Alive' by using `{ connection: 'Keep-Alive' }`. Please note, though, that an event loop handler will prevent the runtime from exiting so you'll need to manually call `process.exit()` or the universe will collapse.
-
-Examples Galore
----------------
-
-### HTTPS GET with Basic Auth
-
-```js
-needle.get('https://api.server.com', { username: 'you', password: 'secret' },
-  function(err, resp) {
-    // used HTTP auth
-});
-```
-
-Or use [RFC-1738](http://tools.ietf.org/html/rfc1738#section-3.1) basic auth URL syntax:
-
-```js
-needle.get('https://username:password@api.server.com', function(err, resp) {
-    // used HTTP auth from URL
-});
-```
-
-### Digest Auth
-
-```js
-needle.get('other.server.com', { username: 'you', password: 'secret', auth: 'digest' },
-  function(err, resp, body) {
-    // needle prepends 'http://' to your URL, if missing
-});
-```
-
-### Custom Accept header, deflate
-
-```js
-var options = {
-  compressed : true,
-  follow     : 10,
-  accept     : 'application/vnd.github.full+json'
-}
-
-needle.get('api.github.com/users/tomas', options, function(err, resp, body) {
-  // body will contain a JSON.parse(d) object
-  // if parsing fails, you'll simply get the original body
-});
-```
-
-### GET XML object
-
-```js
-needle.get('https://news.ycombinator.com/rss', function(err, resp, body) {
-  // you'll get a nice object containing the nodes in the RSS
-});
-```
-
-### GET binary, output to file
-
-```js
-needle.get('http://upload.server.com/tux.png', { output: '/tmp/tux.png' }, function(err, resp, body) {
-  // you can dump any response to a file, not only binaries.
-});
-```
-
-### GET through proxy
-
-```js
-needle.get('http://search.npmjs.org', { proxy: 'http://localhost:1234' }, function(err, resp, body) {
-  // request passed through proxy
-});
-```
-
-### GET a very large document in a stream (from 0.7+)
-
-```js
-var stream = needle.get('http://www.as35662.net/100.log');
-
-stream.on('readable', function() {
-  var chunk;
-  while (chunk = this.read()) {
-    console.log('got data: ', chunk);
-  }
-});
-```
-
-### GET JSON object in a stream (from 0.7+)
-
-```js
-var stream = needle.get('http://jsonplaceholder.typicode.com/db', { parse: true });
-
-stream.on('readable', function() {
-  var node;
-
-  // our stream will only emit a single JSON root node.
-  while (node = this.read()) {
-    console.log('got data: ', node);
-  }
-});
-```
-
-### GET JSONStream flexible parser with search query (from 0.7+)
-
-```js
-
- // The 'data' element of this stream will be the string representation
- // of the titles of all posts.
-
-needle.get('http://jsonplaceholder.typicode.com/db', { parse: true })
-      .pipe(new JSONStream.parse('posts.*.title'));
-      .on('data', function (obj) {
-        console.log('got post title: %s', obj);
-      });
-```
-
-### File upload using multipart, passing file path
-
-```js
-var data = {
-  foo: 'bar',
-  image: { file: '/home/tomas/linux.png', content_type: 'image/png' }
-}
-
-needle.post('http://my.other.app.com', data, { multipart: true }, function(err, resp, body) {
-  // needle will read the file and include it in the form-data as binary
-});
-```
-
-### Stream upload, PUT or POST
-
-``` js
-needle.put('https://api.app.com/v2', fs.createReadStream('myfile.txt'), function(err, resp, body) {
-  // stream content is uploaded verbatim
-});
-```
-
-### Multipart POST, passing data buffer
-
-```js
-var buffer = fs.readFileSync('/path/to/package.zip');
-
-var data = {
-  zip_file: {
-    buffer       : buffer,
-    filename     : 'mypackage.zip',
-    content_type : 'application/octet-stream'
-  }
-}
-
-needle.post('http://somewhere.com/over/the/rainbow', data, { multipart: true }, function(err, resp, body) {
-  // if you see, when using buffers we need to pass the filename for the multipart body.
-  // you can also pass a filename when using the file path method, in case you want to override
-  // the default filename to be received on the other end.
-});
-```
-
-### Multipart with custom Content-Type
-
-```js
-var data = {
-  token: 'verysecret',
-  payload: {
-    value: JSON.stringify({ title: 'test', version: 1 }),
-    content_type: 'application/json'
-  }
-}
-
-needle.post('http://test.com/', data, { timeout: 5000, multipart: true }, function(err, resp, body) {
-  // in this case, if the request takes more than 5 seconds
-  // the callback will return a [Socket closed] error
-});
-```
-
-For even more examples, check out the examples directory in the repo.
-
-### Testing
-
-To run tests, you need to generate a self-signed SSL certificate in the `test` directory. After cloning the repository, run the following commands:
-
-    $ mkdir -p test/keys
-    $ openssl genrsa -out test/keys/ssl.key 2048
-    $ openssl req -new -key test/keys/ssl.key -x509 -days 999 -out test/keys/ssl.cert
-
-Then you should be able to run `npm test` once you have the dependencies in place.
-
-> Note: Tests currently only work on linux-based environments that have `/proc/self/fd`. They *do not* work on MacOS environments.
-> You can use Docker to run tests by creating a container and mounting the needle project directory on `/app`
-> `docker create --name Needle -v /app -w /app -v /app/node_modules -i node:argon`
-
-Credits
--------
-
-Written by Tomás Pollak, with the help of contributors.
-
-Copyright
----------
-
-(c) Fork Ltd. Licensed under the MIT license.
diff --git a/node_modules/fsevents/node_modules/rc/node_modules/minimist/LICENSE b/node_modules/fsevents/node_modules/rc/node_modules/minimist/LICENSE
deleted file mode 100644
index ee27ba4b4412b0e4a05af5e3d8a005bc6681fdf3..0000000000000000000000000000000000000000
--- a/node_modules/fsevents/node_modules/rc/node_modules/minimist/LICENSE
+++ /dev/null
@@ -1,18 +0,0 @@
-This software is released under the MIT license:
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/node_modules/fsevents/node_modules/wide-align/README.md b/node_modules/fsevents/node_modules/wide-align/README.md
deleted file mode 100644
index 32f1be04f097761d8d37286e36665300844ca812..0000000000000000000000000000000000000000
--- a/node_modules/fsevents/node_modules/wide-align/README.md
+++ /dev/null
@@ -1,47 +0,0 @@
-wide-align
-----------
-
-A wide-character aware text alignment function for use in terminals / on the
-console.
-
-### Usage
-
-```
-var align = require('wide-align')
-
-// Note that if you view this on a unicode console, all of the slashes are
-// aligned. This is because on a console, all narrow characters are
-// an en wide and all wide characters are an em. In browsers, this isn't
-// held to and wide characters like "古" can be less than two narrow
-// characters even with a fixed width font.
-
-console.log(align.center('abc', 10))     // '   abc    '
-console.log(align.center('古古古', 10))  // '  古古古  '
-console.log(align.left('abc', 10))       // 'abc       '
-console.log(align.left('古古古', 10))    // '古古古    '
-console.log(align.right('abc', 10))      // '       abc'
-console.log(align.right('古古古', 10))   // '    古古古'
-```
-
-### Functions
-
-#### `align.center(str, length)` → `str`
-
-Returns *str* with spaces added to both sides such that that it is *length*
-chars long and centered in the spaces.
-
-#### `align.left(str, length)` → `str`
-
-Returns *str* with spaces to the right such that it is *length* chars long.
-
-### `align.right(str, length)` → `str`
-
-Returns *str* with spaces to the left such that it is *length* chars long.
-
-### Origins
-
-These functions were originally taken from 
-[cliui](https://npmjs.com/package/cliui). Changes include switching to the
-MUCH faster pad generation function from
-[lodash](https://npmjs.com/package/lodash), making center alignment pad
-both sides and adding left alignment.
diff --git a/node_modules/handlebars/lib/handlebars/decorators.js b/node_modules/handlebars/lib/handlebars/decorators.js
deleted file mode 100644
index 6f5a61525bf0e461cb633108bca06b4d1afb2abc..0000000000000000000000000000000000000000
--- a/node_modules/handlebars/lib/handlebars/decorators.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import registerInline from './decorators/inline';
-
-export function registerDefaultDecorators(instance) {
-  registerInline(instance);
-}
-
diff --git a/node_modules/inflight/inflight.js b/node_modules/inflight/inflight.js
deleted file mode 100644
index 48202b3ca41d9768b5f526f3aede4581e7693386..0000000000000000000000000000000000000000
--- a/node_modules/inflight/inflight.js
+++ /dev/null
@@ -1,54 +0,0 @@
-var wrappy = require('wrappy')
-var reqs = Object.create(null)
-var once = require('once')
-
-module.exports = wrappy(inflight)
-
-function inflight (key, cb) {
-  if (reqs[key]) {
-    reqs[key].push(cb)
-    return null
-  } else {
-    reqs[key] = [cb]
-    return makeres(key)
-  }
-}
-
-function makeres (key) {
-  return once(function RES () {
-    var cbs = reqs[key]
-    var len = cbs.length
-    var args = slice(arguments)
-
-    // XXX It's somewhat ambiguous whether a new callback added in this
-    // pass should be queued for later execution if something in the
-    // list of callbacks throws, or if it should just be discarded.
-    // However, it's such an edge case that it hardly matters, and either
-    // choice is likely as surprising as the other.
-    // As it happens, we do go ahead and schedule it for later execution.
-    try {
-      for (var i = 0; i < len; i++) {
-        cbs[i].apply(null, args)
-      }
-    } finally {
-      if (cbs.length > len) {
-        // added more in the interim.
-        // de-zalgo, just in case, but don't call again.
-        cbs.splice(0, len)
-        process.nextTick(function () {
-          RES.apply(null, args)
-        })
-      } else {
-        delete reqs[key]
-      }
-    }
-  })
-}
-
-function slice (args) {
-  var length = args.length
-  var array = []
-
-  for (var i = 0; i < length; i++) array[i] = args[i]
-  return array
-}
diff --git a/node_modules/istanbul-lib-coverage/index.js b/node_modules/istanbul-lib-coverage/index.js
deleted file mode 100644
index e882982139eb6b34c00f705846f85950f98d6794..0000000000000000000000000000000000000000
--- a/node_modules/istanbul-lib-coverage/index.js
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- Copyright 2012-2015, Yahoo Inc.
- Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
- */
-"use strict";
-
-/**
- * istanbul-lib-coverage exports an API that allows you to create and manipulate
- * file coverage, coverage maps (a set of file coverage objects) and summary
- * coverage objects. File coverage for the same file can be merged as can
- * entire coverage maps.
- *
- * @module Exports
- */
-var CoverageSummary = require('./lib/file').CoverageSummary,
-    FileCoverage = require('./lib/file').FileCoverage,
-    CoverageMap = require('./lib/coverage-map').CoverageMap;
-
-module.exports = {
-    /**
-     * creates a coverage summary object
-     * @param {Object} obj an argument with the same semantics
-     *  as the one passed to the `CoverageSummary` constructor
-     * @returns {CoverageSummary}
-     */
-    createCoverageSummary: function (obj) {
-        if (obj && obj instanceof CoverageSummary) {
-            return obj;
-        }
-        return new CoverageSummary(obj);
-    },
-    /**
-     * creates a CoverageMap object
-     * @param {Object} obj optional - an argument with the same semantics
-     *  as the one passed to the CoverageMap constructor.
-     * @returns {CoverageMap}
-     */
-    createCoverageMap: function (obj) {
-        if (obj && obj instanceof CoverageMap) {
-            return obj;
-        }
-        return new CoverageMap(obj);
-    },
-    /**
-     * creates a FileCoverage object
-     * @param {Object} obj optional - an argument with the same semantics
-     *  as the one passed to the FileCoverage constructor.
-     * @returns {FileCoverage}
-     */
-    createFileCoverage: function (obj) {
-        if (obj && obj instanceof FileCoverage) {
-            return obj;
-        }
-        return new FileCoverage(obj);
-    }
-};
-
-/** classes exported for reuse */
-module.exports.classes = {
-    /**
-     * the file coverage constructor
-     */
-    FileCoverage: FileCoverage
-};
diff --git a/node_modules/jest-jasmine2/build/jasmine/jasmine_light.js b/node_modules/jest-jasmine2/build/jasmine/jasmine_light.js
deleted file mode 100644
index e4e892d19c3879eeb289284689ccd7c89a83ace2..0000000000000000000000000000000000000000
--- a/node_modules/jest-jasmine2/build/jasmine/jasmine_light.js
+++ /dev/null
@@ -1,166 +0,0 @@
-'use strict';
-
-var _create_spy = require('./create_spy');
-
-var _create_spy2 = _interopRequireDefault(_create_spy);
-
-var _Env = require('./Env');
-
-var _Env2 = _interopRequireDefault(_Env);
-
-var _js_api_reporter = require('./js_api_reporter');
-
-var _js_api_reporter2 = _interopRequireDefault(_js_api_reporter);
-
-var _report_dispatcher = require('./report_dispatcher');
-
-var _report_dispatcher2 = _interopRequireDefault(_report_dispatcher);
-
-var _Spec = require('./Spec');
-
-var _Spec2 = _interopRequireDefault(_Spec);
-
-var _spy_registry = require('./spy_registry');
-
-var _spy_registry2 = _interopRequireDefault(_spy_registry);
-
-var _Suite = require('./Suite');
-
-var _Suite2 = _interopRequireDefault(_Suite);
-
-var _Timer = require('./Timer');
-
-var _Timer2 = _interopRequireDefault(_Timer);
-
-function _interopRequireDefault(obj) {
-  return obj && obj.__esModule ? obj : {default: obj};
-}
-
-exports.create = function(createOptions) {
-  const j$ = Object.assign({}, createOptions);
-
-  j$._DEFAULT_TIMEOUT_INTERVAL = 5000;
-
-  j$.getEnv = function(options) {
-    const env = (j$.currentEnv_ = j$.currentEnv_ || new j$.Env(options));
-    //jasmine. singletons in here (setTimeout blah blah).
-    return env;
-  };
-  j$.createSpy = _create_spy2.default;
-  j$.Env = (0, _Env2.default)(j$);
-  j$.JsApiReporter = _js_api_reporter2.default;
-  j$.ReportDispatcher = _report_dispatcher2.default;
-  j$.Spec = _Spec2.default;
-  j$.SpyRegistry = _spy_registry2.default;
-  j$.Suite = _Suite2.default;
-  j$.Timer = _Timer2.default;
-  j$.version = '2.5.2-light';
-
-  return j$;
-};
-
-// Interface is a reserved word in strict mode, so can't export it as ESM
-/**
- * Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- *
- */
-// This file is a heavily modified fork of Jasmine. Original license:
-/*
-Copyright (c) 2008-2016 Pivotal Labs
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-/* eslint-disable sort-keys */
-
-exports.interface = function(jasmine, env) {
-  const jasmineInterface = {
-    describe: function(description, specDefinitions) {
-      return env.describe(description, specDefinitions);
-    },
-    xdescribe: function(description, specDefinitions) {
-      return env.xdescribe(description, specDefinitions);
-    },
-    fdescribe: function(description, specDefinitions) {
-      return env.fdescribe(description, specDefinitions);
-    },
-    it: function() {
-      return env.it.apply(env, arguments);
-    },
-    xit: function() {
-      return env.xit.apply(env, arguments);
-    },
-    fit: function() {
-      return env.fit.apply(env, arguments);
-    },
-    beforeEach: function() {
-      if (typeof arguments[0] !== 'function') {
-        throw new Error(
-          'Invalid first argument. It must be a callback function.'
-        );
-      }
-      return env.beforeEach.apply(env, arguments);
-    },
-    afterEach: function() {
-      if (typeof arguments[0] !== 'function') {
-        throw new Error(
-          'Invalid first argument. It must be a callback function.'
-        );
-      }
-      return env.afterEach.apply(env, arguments);
-    },
-    beforeAll: function() {
-      if (typeof arguments[0] !== 'function') {
-        throw new Error(
-          'Invalid first argument. It must be a callback function.'
-        );
-      }
-      return env.beforeAll.apply(env, arguments);
-    },
-    afterAll: function() {
-      if (typeof arguments[0] !== 'function') {
-        throw new Error(
-          'Invalid first argument. It must be a callback function.'
-        );
-      }
-      return env.afterAll.apply(env, arguments);
-    },
-    pending: function() {
-      return env.pending.apply(env, arguments);
-    },
-    fail: function() {
-      return env.fail.apply(env, arguments);
-    },
-    spyOn: function(obj, methodName, accessType) {
-      return env.spyOn(obj, methodName, accessType);
-    },
-
-    jsApiReporter: new jasmine.JsApiReporter({
-      timer: new jasmine.Timer()
-    }),
-
-    jasmine: jasmine
-  };
-
-  return jasmineInterface;
-};
diff --git a/node_modules/jest/node_modules/.bin/jest b/node_modules/jest/node_modules/.bin/jest
deleted file mode 120000
index 3d9fe5cf8303c6a1167fe0d0148dc7ed30ab79f2..0000000000000000000000000000000000000000
--- a/node_modules/jest/node_modules/.bin/jest
+++ /dev/null
@@ -1 +0,0 @@
-../jest-cli/bin/jest.js
\ No newline at end of file
diff --git a/node_modules/jsdom/lib/jsdom/living/events/KeyboardEvent-impl.js b/node_modules/jsdom/lib/jsdom/living/events/KeyboardEvent-impl.js
deleted file mode 100644
index e711f4dcc9c4ee68544c8946ef980d8003ddb17a..0000000000000000000000000000000000000000
--- a/node_modules/jsdom/lib/jsdom/living/events/KeyboardEvent-impl.js
+++ /dev/null
@@ -1,29 +0,0 @@
-"use strict";
-
-const { mixin } = require("../../utils");
-const EventModifierMixinImpl = require("./EventModifierMixin-impl").implementation;
-const UIEventImpl = require("./UIEvent-impl").implementation;
-
-const KeyboardEventInit = require("../generated/KeyboardEventInit");
-
-class KeyboardEventImpl extends UIEventImpl {
-  initKeyboardEvent(type, bubbles, cancelable, view, key, location, ctrlKey, altKey, shiftKey, metaKey) {
-    if (this._dispatchFlag) {
-      return;
-    }
-
-    this.initUIEvent(type, bubbles, cancelable, view, 0);
-    this.key = key;
-    this.location = location;
-    this.ctrlKey = ctrlKey;
-    this.altKey = altKey;
-    this.shiftKey = shiftKey;
-    this.metaKey = metaKey;
-  }
-}
-mixin(KeyboardEventImpl.prototype, EventModifierMixinImpl.prototype);
-KeyboardEventImpl.defaultInit = KeyboardEventInit.convert(undefined);
-
-module.exports = {
-  implementation: KeyboardEventImpl
-};
diff --git a/node_modules/jsdom/lib/jsdom/living/generated/HTMLTemplateElement.js b/node_modules/jsdom/lib/jsdom/living/generated/HTMLTemplateElement.js
deleted file mode 100644
index 1767507c48dcd6c97d65422125fb93cf7a9705a3..0000000000000000000000000000000000000000
--- a/node_modules/jsdom/lib/jsdom/living/generated/HTMLTemplateElement.js
+++ /dev/null
@@ -1,122 +0,0 @@
-"use strict";
-
-const conversions = require("webidl-conversions");
-const utils = require("./utils.js");
-
-const impl = utils.implSymbol;
-const HTMLElement = require("./HTMLElement.js");
-
-function HTMLTemplateElement() {
-  throw new TypeError("Illegal constructor");
-}
-
-Object.setPrototypeOf(HTMLTemplateElement.prototype, HTMLElement.interface.prototype);
-Object.setPrototypeOf(HTMLTemplateElement, HTMLElement.interface);
-
-Object.defineProperty(HTMLTemplateElement, "prototype", {
-  value: HTMLTemplateElement.prototype,
-  writable: false,
-  enumerable: false,
-  configurable: false
-});
-
-Object.defineProperty(HTMLTemplateElement.prototype, "content", {
-  get() {
-    if (!this || !module.exports.is(this)) {
-      throw new TypeError("Illegal invocation");
-    }
-
-    return utils.tryWrapperForImpl(this[impl]["content"]);
-  },
-
-  enumerable: true,
-  configurable: true
-});
-
-Object.defineProperty(HTMLTemplateElement.prototype, Symbol.toStringTag, {
-  value: "HTMLTemplateElement",
-  writable: false,
-  enumerable: false,
-  configurable: true
-});
-
-const iface = {
-  // When an interface-module that implements this interface as a mixin is loaded, it will append its own `.is()`
-  // method into this array. It allows objects that directly implements *those* interfaces to be recognized as
-  // implementing this mixin interface.
-  _mixedIntoPredicates: [],
-  is(obj) {
-    if (obj) {
-      if (utils.hasOwn(obj, impl) && obj[impl] instanceof Impl.implementation) {
-        return true;
-      }
-      for (const isMixedInto of module.exports._mixedIntoPredicates) {
-        if (isMixedInto(obj)) {
-          return true;
-        }
-      }
-    }
-    return false;
-  },
-  isImpl(obj) {
-    if (obj) {
-      if (obj instanceof Impl.implementation) {
-        return true;
-      }
-
-      const wrapper = utils.wrapperForImpl(obj);
-      for (const isMixedInto of module.exports._mixedIntoPredicates) {
-        if (isMixedInto(wrapper)) {
-          return true;
-        }
-      }
-    }
-    return false;
-  },
-  convert(obj, { context = "The provided value" } = {}) {
-    if (module.exports.is(obj)) {
-      return utils.implForWrapper(obj);
-    }
-    throw new TypeError(`${context} is not of type 'HTMLTemplateElement'.`);
-  },
-
-  create(constructorArgs, privateData) {
-    let obj = Object.create(HTMLTemplateElement.prototype);
-    obj = this.setup(obj, constructorArgs, privateData);
-    return obj;
-  },
-  createImpl(constructorArgs, privateData) {
-    let obj = Object.create(HTMLTemplateElement.prototype);
-    obj = this.setup(obj, constructorArgs, privateData);
-    return utils.implForWrapper(obj);
-  },
-  _internalSetup(obj) {
-    HTMLElement._internalSetup(obj);
-  },
-  setup(obj, constructorArgs, privateData) {
-    if (!privateData) privateData = {};
-
-    privateData.wrapper = obj;
-
-    this._internalSetup(obj);
-    Object.defineProperty(obj, impl, {
-      value: new Impl.implementation(constructorArgs, privateData),
-      writable: false,
-      enumerable: false,
-      configurable: true
-    });
-
-    obj[impl][utils.wrapperSymbol] = obj;
-    if (Impl.init) {
-      Impl.init(obj[impl], privateData);
-    }
-    return obj;
-  },
-  interface: HTMLTemplateElement,
-  expose: {
-    Window: { HTMLTemplateElement }
-  }
-}; // iface
-module.exports = iface;
-
-const Impl = require("../nodes/HTMLTemplateElement-impl.js");
diff --git a/node_modules/jsdom/lib/jsdom/living/nodes/HTMLCanvasElement-impl.js b/node_modules/jsdom/lib/jsdom/living/nodes/HTMLCanvasElement-impl.js
deleted file mode 100644
index ecb72cdba6dfe4cad4d20e2738b8bea9e8342e3e..0000000000000000000000000000000000000000
--- a/node_modules/jsdom/lib/jsdom/living/nodes/HTMLCanvasElement-impl.js
+++ /dev/null
@@ -1,131 +0,0 @@
-"use strict";
-const HTMLElementImpl = require("./HTMLElement-impl").implementation;
-const notImplemented = require("../../browser/not-implemented");
-const idlUtils = require("../generated/utils");
-const { Canvas } = require("../../utils");
-
-class HTMLCanvasElementImpl extends HTMLElementImpl {
-  _attrModified(name, value) {
-    if (this._canvas && (name === "width" || name === "height")) {
-      this._canvas[name] = parseInt(value);
-    }
-
-    return super._attrModified.apply(this, arguments);
-  }
-
-  _getCanvas() {
-    if (Canvas && !this._canvas) {
-      this._canvas = new Canvas(this.width, this.height);
-    }
-    return this._canvas;
-  }
-
-  getContext(contextId) {
-    const canvas = this._getCanvas();
-    if (canvas) {
-      if (!this._context) {
-        this._context = canvas.getContext(contextId) || null;
-        if (this._context) {
-          // Override the native canvas reference with our wrapper. This is the
-          // reason why we need to locally cache _context, since each call to
-          // canvas.getContext(contextId) would replace this reference again.
-          // Perhaps in the longer term, a better solution would be to create a
-          // full wrapper for the Context object as well.
-          this._context.canvas = idlUtils.wrapperForImpl(this);
-          wrapNodeCanvasMethod(this._context, "createPattern");
-          wrapNodeCanvasMethod(this._context, "drawImage");
-        }
-      }
-      return this._context;
-    }
-
-    notImplemented(
-      "HTMLCanvasElement.prototype.getContext (without installing the canvas npm package)",
-      this._ownerDocument._defaultView
-    );
-    return null;
-  }
-
-  toDataURL() {
-    const canvas = this._getCanvas();
-    if (canvas) {
-      return canvas.toDataURL.apply(this._canvas, arguments);
-    }
-
-    notImplemented(
-      "HTMLCanvasElement.prototype.toDataURL (without installing the canvas npm package)",
-      this._ownerDocument._defaultView
-    );
-    return null;
-  }
-
-  toBlob(callback, type, qualityArgument) {
-    const window = this._ownerDocument._defaultView;
-    const canvas = this._getCanvas();
-    if (canvas) {
-      let stream;
-      switch (type) {
-        case "image/jpg":
-        case "image/jpeg":
-          stream = canvas.createJPEGStream({
-            quality: Math.max(0, Math.min(1, qualityArgument)) * 100
-          });
-          break;
-        default:
-          // TODO: Patch node-canvas to receive qualityArgument for PNG stream
-          type = "image/png";
-          stream = canvas.createPNGStream();
-      }
-      const buffers = [];
-      stream.on("data", chunk => {
-        buffers.push(chunk);
-      });
-      stream.on("end", () => {
-        callback(new window.Blob(buffers, { type }));
-      });
-    } else {
-      notImplemented(
-        "HTMLCanvasElement.prototype.toBlob (without installing the canvas npm package)",
-        window
-      );
-    }
-  }
-
-  get width() {
-    const parsed = parseInt(this.getAttribute("width"));
-    return isNaN(parsed) || parsed < 0 || parsed > 2147483647 ? 300 : parsed;
-  }
-
-  set width(v) {
-    v = v > 2147483647 ? 300 : v;
-    this.setAttribute("width", String(v));
-  }
-
-  get height() {
-    const parsed = parseInt(this.getAttribute("height"));
-    return isNaN(parsed) || parsed < 0 || parsed > 2147483647 ? 150 : parsed;
-  }
-
-  set height(v) {
-    v = v > 2147483647 ? 150 : v;
-    this.setAttribute("height", String(v));
-  }
-}
-
-// We need to wrap the methods that receive an image or canvas object
-// (luckily, always as the first argument), so that these objects can be
-// unwrapped an the expected types passed.
-function wrapNodeCanvasMethod(ctx, name) {
-  const prev = ctx[name];
-  ctx[name] = function (image) {
-    const impl = idlUtils.implForWrapper(image);
-    if (impl) {
-      arguments[0] = impl._image || impl._canvas;
-    }
-    return prev.apply(ctx, arguments);
-  };
-}
-
-module.exports = {
-  implementation: HTMLCanvasElementImpl
-};
diff --git a/node_modules/json-schema/draft-01/links b/node_modules/json-schema/draft-01/links
deleted file mode 100644
index cb183c4d86319a766c85f0912aee49975638b037..0000000000000000000000000000000000000000
--- a/node_modules/json-schema/draft-01/links
+++ /dev/null
@@ -1,33 +0,0 @@
-{
-	"$schema" : "http://json-schema.org/draft-01/hyper-schema#",
-	"id" : "http://json-schema.org/draft-01/links#",
-	"type" : "object",
-	
-	"properties" : {
-		"href" : {
-			"type" : "string"
-		},
-		
-		"rel" : {
-			"type" : "string"
-		},
-		
-		"method" : {
-			"type" : "string",
-			"default" : "GET",
-			"optional" : true
-		},
-		
-		"enctype" : {
-			"type" : "string",
-			"requires" : "method",
-			"optional" : true
-		},
-		
-		"properties" : {
-			"type" : "object",
-			"additionalProperties" : {"$ref" : "http://json-schema.org/draft-01/hyper-schema#"},
-			"optional" : true
-		}
-	}
-}
\ No newline at end of file
diff --git a/node_modules/lodash/_baseWhile.js b/node_modules/lodash/_baseWhile.js
deleted file mode 100644
index 07eac61b9893bd238fd931d19f9f71ec469f1fd1..0000000000000000000000000000000000000000
--- a/node_modules/lodash/_baseWhile.js
+++ /dev/null
@@ -1,26 +0,0 @@
-var baseSlice = require('./_baseSlice');
-
-/**
- * The base implementation of methods like `_.dropWhile` and `_.takeWhile`
- * without support for iteratee shorthands.
- *
- * @private
- * @param {Array} array The array to query.
- * @param {Function} predicate The function invoked per iteration.
- * @param {boolean} [isDrop] Specify dropping elements instead of taking them.
- * @param {boolean} [fromRight] Specify iterating from right to left.
- * @returns {Array} Returns the slice of `array`.
- */
-function baseWhile(array, predicate, isDrop, fromRight) {
-  var length = array.length,
-      index = fromRight ? length : -1;
-
-  while ((fromRight ? index-- : ++index < length) &&
-    predicate(array[index], index, array)) {}
-
-  return isDrop
-    ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length))
-    : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index));
-}
-
-module.exports = baseWhile;
diff --git a/node_modules/lodash/findLast.js b/node_modules/lodash/findLast.js
deleted file mode 100644
index 70b4271dc365ff2ea2c7190252be369e8f886fb4..0000000000000000000000000000000000000000
--- a/node_modules/lodash/findLast.js
+++ /dev/null
@@ -1,25 +0,0 @@
-var createFind = require('./_createFind'),
-    findLastIndex = require('./findLastIndex');
-
-/**
- * This method is like `_.find` except that it iterates over elements of
- * `collection` from right to left.
- *
- * @static
- * @memberOf _
- * @since 2.0.0
- * @category Collection
- * @param {Array|Object} collection The collection to inspect.
- * @param {Function} [predicate=_.identity] The function invoked per iteration.
- * @param {number} [fromIndex=collection.length-1] The index to search from.
- * @returns {*} Returns the matched element, else `undefined`.
- * @example
- *
- * _.findLast([1, 2, 3, 4], function(n) {
- *   return n % 2 == 1;
- * });
- * // => 3
- */
-var findLast = createFind(findLastIndex);
-
-module.exports = findLast;
diff --git a/node_modules/lodash/fp/matches.js b/node_modules/lodash/fp/matches.js
deleted file mode 100644
index 29d1e1e4f13b243e9a7c1fa06f973c818a00d572..0000000000000000000000000000000000000000
--- a/node_modules/lodash/fp/matches.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./isMatch');
diff --git a/node_modules/lodash/isLength.js b/node_modules/lodash/isLength.js
deleted file mode 100644
index 3a95caa962554dfd35654d297e507200da1eaef2..0000000000000000000000000000000000000000
--- a/node_modules/lodash/isLength.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/** Used as references for various `Number` constants. */
-var MAX_SAFE_INTEGER = 9007199254740991;
-
-/**
- * Checks if `value` is a valid array-like length.
- *
- * **Note:** This method is loosely based on
- * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
- *
- * @static
- * @memberOf _
- * @since 4.0.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
- * @example
- *
- * _.isLength(3);
- * // => true
- *
- * _.isLength(Number.MIN_VALUE);
- * // => false
- *
- * _.isLength(Infinity);
- * // => false
- *
- * _.isLength('3');
- * // => false
- */
-function isLength(value) {
-  return typeof value == 'number' &&
-    value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
-}
-
-module.exports = isLength;
diff --git a/node_modules/merge/merge.js b/node_modules/merge/merge.js
deleted file mode 100644
index 43089c80fb2eaf6326ff2907a61306d223964e67..0000000000000000000000000000000000000000
--- a/node_modules/merge/merge.js
+++ /dev/null
@@ -1,175 +0,0 @@
-/*!
- * @name JavaScript/NodeJS Merge v1.2.0
- * @author yeikos
- * @repository https://github.com/yeikos/js.merge
-
- * Copyright 2014 yeikos - MIT license
- * https://raw.github.com/yeikos/js.merge/master/LICENSE
- */
-
-;(function(isNode) {
-
-	/**
-	 * Merge one or more objects 
-	 * @param bool? clone
-	 * @param mixed,... arguments
-	 * @return object
-	 */
-
-	var Public = function(clone) {
-
-		return merge(clone === true, false, arguments);
-
-	}, publicName = 'merge';
-
-	/**
-	 * Merge two or more objects recursively 
-	 * @param bool? clone
-	 * @param mixed,... arguments
-	 * @return object
-	 */
-
-	Public.recursive = function(clone) {
-
-		return merge(clone === true, true, arguments);
-
-	};
-
-	/**
-	 * Clone the input removing any reference
-	 * @param mixed input
-	 * @return mixed
-	 */
-
-	Public.clone = function(input) {
-
-		var output = input,
-			type = typeOf(input),
-			index, size;
-
-		if (type === 'array') {
-
-			output = [];
-			size = input.length;
-
-			for (index=0;index<size;++index)
-
-				output[index] = Public.clone(input[index]);
-
-		} else if (type === 'object') {
-
-			output = {};
-
-			for (index in input)
-
-				output[index] = Public.clone(input[index]);
-
-		}
-
-		return output;
-
-	};
-
-	/**
-	 * Merge two objects recursively
-	 * @param mixed input
-	 * @param mixed extend
-	 * @return mixed
-	 */
-
-	function merge_recursive(base, extend) {
-
-		if (typeOf(base) !== 'object')
-
-			return extend;
-
-		for (var key in extend) {
-
-			if (typeOf(base[key]) === 'object' && typeOf(extend[key]) === 'object') {
-
-				base[key] = merge_recursive(base[key], extend[key]);
-
-			} else {
-
-				base[key] = extend[key];
-
-			}
-
-		}
-
-		return base;
-
-	}
-
-	/**
-	 * Merge two or more objects
-	 * @param bool clone
-	 * @param bool recursive
-	 * @param array argv
-	 * @return object
-	 */
-
-	function merge(clone, recursive, argv) {
-
-		var result = argv[0],
-			size = argv.length;
-
-		if (clone || typeOf(result) !== 'object')
-
-			result = {};
-
-		for (var index=0;index<size;++index) {
-
-			var item = argv[index],
-
-				type = typeOf(item);
-
-			if (type !== 'object') continue;
-
-			for (var key in item) {
-
-				var sitem = clone ? Public.clone(item[key]) : item[key];
-
-				if (recursive) {
-
-					result[key] = merge_recursive(result[key], sitem);
-
-				} else {
-
-					result[key] = sitem;
-
-				}
-
-			}
-
-		}
-
-		return result;
-
-	}
-
-	/**
-	 * Get type of variable
-	 * @param mixed input
-	 * @return string
-	 *
-	 * @see http://jsperf.com/typeofvar
-	 */
-
-	function typeOf(input) {
-
-		return ({}).toString.call(input).slice(8, -1).toLowerCase();
-
-	}
-
-	if (isNode) {
-
-		module.exports = Public;
-
-	} else {
-
-		window[publicName] = Public;
-
-	}
-
-})(typeof module === 'object' && module && typeof module.exports === 'object' && module.exports);
\ No newline at end of file
diff --git a/node_modules/nanomatch/LICENSE b/node_modules/nanomatch/LICENSE
deleted file mode 100644
index 7c9987bc6cdd21688a84c1dffe85fd31975218f2..0000000000000000000000000000000000000000
--- a/node_modules/nanomatch/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2016-2018, Jon Schlinkert.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
diff --git a/node_modules/optimist/example/nonopt.js b/node_modules/optimist/example/nonopt.js
deleted file mode 100644
index ee633eedcdf9a20a50e6ada917af7b9e44784795..0000000000000000000000000000000000000000
--- a/node_modules/optimist/example/nonopt.js
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/usr/bin/env node
-var argv = require('optimist').argv;
-console.log('(%d,%d)', argv.x, argv.y);
-console.log(argv._);
diff --git a/node_modules/posix-character-classes/package.json b/node_modules/posix-character-classes/package.json
deleted file mode 100644
index b18d8bdc71ff86d5e2eec403fe617e7b15f3333a..0000000000000000000000000000000000000000
--- a/node_modules/posix-character-classes/package.json
+++ /dev/null
@@ -1,86 +0,0 @@
-{
-  "_from": "posix-character-classes@^0.1.0",
-  "_id": "posix-character-classes@0.1.1",
-  "_inBundle": false,
-  "_integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
-  "_location": "/posix-character-classes",
-  "_phantomChildren": {},
-  "_requested": {
-    "type": "range",
-    "registry": true,
-    "raw": "posix-character-classes@^0.1.0",
-    "name": "posix-character-classes",
-    "escapedName": "posix-character-classes",
-    "rawSpec": "^0.1.0",
-    "saveSpec": null,
-    "fetchSpec": "^0.1.0"
-  },
-  "_requiredBy": [
-    "/anymatch/expand-brackets",
-    "/sane/expand-brackets"
-  ],
-  "_resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
-  "_shasum": "01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab",
-  "_spec": "posix-character-classes@^0.1.0",
-  "_where": "/Users/maritj/Documents/Documents/Dataing2ndyear/Systemutvikling2/Ovinger/Oving5/DatabaseTest/node_modules/anymatch/node_modules/expand-brackets",
-  "author": {
-    "name": "Jon Schlinkert",
-    "url": "https://github.com/jonschlinkert"
-  },
-  "bugs": {
-    "url": "https://github.com/jonschlinkert/posix-character-classes/issues"
-  },
-  "bundleDependencies": false,
-  "deprecated": false,
-  "description": "POSIX character classes for creating regular expressions.",
-  "devDependencies": {
-    "gulp-format-md": "^0.1.12",
-    "mocha": "^3.2.0"
-  },
-  "engines": {
-    "node": ">=0.10.0"
-  },
-  "files": [
-    "index.js"
-  ],
-  "homepage": "https://github.com/jonschlinkert/posix-character-classes",
-  "keywords": [
-    "character",
-    "classes",
-    "posix"
-  ],
-  "license": "MIT",
-  "main": "index.js",
-  "name": "posix-character-classes",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/jonschlinkert/posix-character-classes.git"
-  },
-  "scripts": {
-    "test": "mocha"
-  },
-  "verb": {
-    "toc": false,
-    "layout": "default",
-    "tasks": [
-      "readme"
-    ],
-    "plugins": [
-      "gulp-format-md"
-    ],
-    "reflinks": [
-      "verb",
-      "verb-generate-readme"
-    ],
-    "lint": {
-      "reflinks": true
-    },
-    "related-list": [
-      "micromatch",
-      "nanomatch",
-      "extglob",
-      "expand-brackets"
-    ]
-  },
-  "version": "0.1.1"
-}
diff --git a/node_modules/regenerator-runtime/package.json b/node_modules/regenerator-runtime/package.json
deleted file mode 100644
index 9f0c114949e2b172073e8c8980456ded5239c48d..0000000000000000000000000000000000000000
--- a/node_modules/regenerator-runtime/package.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
-  "_from": "regenerator-runtime@^0.11.0",
-  "_id": "regenerator-runtime@0.11.1",
-  "_inBundle": false,
-  "_integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
-  "_location": "/regenerator-runtime",
-  "_phantomChildren": {},
-  "_requested": {
-    "type": "range",
-    "registry": true,
-    "raw": "regenerator-runtime@^0.11.0",
-    "name": "regenerator-runtime",
-    "escapedName": "regenerator-runtime",
-    "rawSpec": "^0.11.0",
-    "saveSpec": null,
-    "fetchSpec": "^0.11.0"
-  },
-  "_requiredBy": [
-    "/babel-runtime"
-  ],
-  "_resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
-  "_shasum": "be05ad7f9bf7d22e056f9726cee5017fbf19e2e9",
-  "_spec": "regenerator-runtime@^0.11.0",
-  "_where": "/Users/maritj/Documents/Documents/Dataing2ndyear/Systemutvikling2/Ovinger/Oving5/DatabaseTest/node_modules/babel-runtime",
-  "author": {
-    "name": "Ben Newman",
-    "email": "bn@cs.stanford.edu"
-  },
-  "bundleDependencies": false,
-  "deprecated": false,
-  "description": "Runtime for Regenerator-compiled generator and async functions.",
-  "keywords": [
-    "regenerator",
-    "runtime",
-    "generator",
-    "async"
-  ],
-  "license": "MIT",
-  "main": "runtime-module.js",
-  "name": "regenerator-runtime",
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/facebook/regenerator/tree/master/packages/regenerator-runtime"
-  },
-  "version": "0.11.1"
-}
diff --git a/node_modules/rsvp/lib/rsvp/all-settled.js b/node_modules/rsvp/lib/rsvp/all-settled.js
deleted file mode 100644
index 1e6b25d8565523a604d5a09eade005de286c2d78..0000000000000000000000000000000000000000
--- a/node_modules/rsvp/lib/rsvp/all-settled.js
+++ /dev/null
@@ -1,76 +0,0 @@
-import {
-  default as Enumerator,
-  makeSettledResult
-} from './enumerator';
-import Promise from './promise';
-import { isArray } from './utils';
-
-class AllSettled extends Enumerator {
-  constructor(Constructor, entries, label) {
-    super(Constructor, entries, false /* don't abort on reject */, label);
-  }
-}
-
-AllSettled.prototype._makeResult = makeSettledResult;
-
-  /**
-  `RSVP.allSettled` is similar to `RSVP.all`, but instead of implementing
-  a fail-fast method, it waits until all the promises have returned and
-  shows you all the results. This is useful if you want to handle multiple
-  promises' failure states together as a set.
-
-  Returns a promise that is fulfilled when all the given promises have been
-  settled. The return promise is fulfilled with an array of the states of
-  the promises passed into the `promises` array argument.
-
-  Each state object will either indicate fulfillment or rejection, and
-  provide the corresponding value or reason. The states will take one of
-  the following formats:
-
-  ```javascript
-  { state: 'fulfilled', value: value }
-    or
-  { state: 'rejected', reason: reason }
-  ```
-
-  Example:
-
-  ```javascript
-  let promise1 = RSVP.Promise.resolve(1);
-  let promise2 = RSVP.Promise.reject(new Error('2'));
-  let promise3 = RSVP.Promise.reject(new Error('3'));
-  let promises = [ promise1, promise2, promise3 ];
-
-  RSVP.allSettled(promises).then(function(array){
-    // array == [
-    //   { state: 'fulfilled', value: 1 },
-    //   { state: 'rejected', reason: Error },
-    //   { state: 'rejected', reason: Error }
-    // ]
-    // Note that for the second item, reason.message will be '2', and for the
-    // third item, reason.message will be '3'.
-  }, function(error) {
-    // Not run. (This block would only be called if allSettled had failed,
-    // for instance if passed an incorrect argument type.)
-  });
-  ```
-
-  @method allSettled
-  @static
-  @for RSVP
-  @param {Array} entries
-  @param {String} label - optional string that describes the promise.
-  Useful for tooling.
-  @return {Promise} promise that is fulfilled with an array of the settled
-  states of the constituent promises.
-  */
-
-export default function allSettled(entries, label) {
-  if (!isArray(entries)) {
-    return Promise.reject(new TypeError("Promise.allSettled must be called with an array"), label);
-  }
-
-  return new AllSettled(Promise, entries, label).promise;
-}
-
-
diff --git a/node_modules/sane/node_modules/is-accessor-descriptor/index.js b/node_modules/sane/node_modules/is-accessor-descriptor/index.js
deleted file mode 100644
index d2e6fe8b9ea991d9fa9338c90f40b2517b75582f..0000000000000000000000000000000000000000
--- a/node_modules/sane/node_modules/is-accessor-descriptor/index.js
+++ /dev/null
@@ -1,69 +0,0 @@
-/*!
- * is-accessor-descriptor <https://github.com/jonschlinkert/is-accessor-descriptor>
- *
- * Copyright (c) 2015-2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-var typeOf = require('kind-of');
-
-// accessor descriptor properties
-var accessor = {
-  get: 'function',
-  set: 'function',
-  configurable: 'boolean',
-  enumerable: 'boolean'
-};
-
-function isAccessorDescriptor(obj, prop) {
-  if (typeof prop === 'string') {
-    var val = Object.getOwnPropertyDescriptor(obj, prop);
-    return typeof val !== 'undefined';
-  }
-
-  if (typeOf(obj) !== 'object') {
-    return false;
-  }
-
-  if (has(obj, 'value') || has(obj, 'writable')) {
-    return false;
-  }
-
-  if (!has(obj, 'get') || typeof obj.get !== 'function') {
-    return false;
-  }
-
-  // tldr: it's valid to have "set" be undefined
-  // "set" might be undefined if `Object.getOwnPropertyDescriptor`
-  // was used to get the value, and only `get` was defined by the user
-  if (has(obj, 'set') && typeof obj[key] !== 'function' && typeof obj[key] !== 'undefined') {
-    return false;
-  }
-
-  for (var key in obj) {
-    if (!accessor.hasOwnProperty(key)) {
-      continue;
-    }
-
-    if (typeOf(obj[key]) === accessor[key]) {
-      continue;
-    }
-
-    if (typeof obj[key] !== 'undefined') {
-      return false;
-    }
-  }
-  return true;
-}
-
-function has(obj, key) {
-  return {}.hasOwnProperty.call(obj, key);
-}
-
-/**
- * Expose `isAccessorDescriptor`
- */
-
-module.exports = isAccessorDescriptor;
diff --git a/node_modules/snapdragon/index.js b/node_modules/snapdragon/index.js
deleted file mode 100644
index 235b464bac441f64e5d4caeae29bd127ce272783..0000000000000000000000000000000000000000
--- a/node_modules/snapdragon/index.js
+++ /dev/null
@@ -1,174 +0,0 @@
-'use strict';
-
-var Base = require('base');
-var define = require('define-property');
-var Compiler = require('./lib/compiler');
-var Parser = require('./lib/parser');
-var utils = require('./lib/utils');
-var regexCache = {};
-var cache = {};
-
-/**
- * Create a new instance of `Snapdragon` with the given `options`.
- *
- * ```js
- * var snapdragon = new Snapdragon();
- * ```
- *
- * @param {Object} `options`
- * @api public
- */
-
-function Snapdragon(options) {
-  Base.call(this, null, options);
-  this.options = utils.extend({source: 'string'}, this.options);
-  this.compiler = new Compiler(this.options);
-  this.parser = new Parser(this.options);
-
-  Object.defineProperty(this, 'compilers', {
-    get: function() {
-      return this.compiler.compilers;
-    }
-  });
-
-  Object.defineProperty(this, 'parsers', {
-    get: function() {
-      return this.parser.parsers;
-    }
-  });
-
-  Object.defineProperty(this, 'regex', {
-    get: function() {
-      return this.parser.regex;
-    }
-  });
-}
-
-/**
- * Inherit Base
- */
-
-Base.extend(Snapdragon);
-
-/**
- * Add a parser to `snapdragon.parsers` for capturing the given `type` using
- * the specified regex or parser function. A function is useful if you need
- * to customize how the token is created and/or have access to the parser
- * instance to check options, etc.
- *
- * ```js
- * snapdragon
- *   .capture('slash', /^\//)
- *   .capture('dot', function() {
- *     var pos = this.position();
- *     var m = this.match(/^\./);
- *     if (!m) return;
- *     return pos({
- *       type: 'dot',
- *       val: m[0]
- *     });
- *   });
- * ```
- * @param {String} `type`
- * @param {RegExp|Function} `regex`
- * @return {Object} Returns the parser instance for chaining
- * @api public
- */
-
-Snapdragon.prototype.capture = function() {
-  return this.parser.capture.apply(this.parser, arguments);
-};
-
-/**
- * Register a plugin `fn`.
- *
- * ```js
- * var snapdragon = new Snapdgragon([options]);
- * snapdragon.use(function() {
- *   console.log(this);          //<= snapdragon instance
- *   console.log(this.parser);   //<= parser instance
- *   console.log(this.compiler); //<= compiler instance
- * });
- * ```
- * @param {Object} `fn`
- * @api public
- */
-
-Snapdragon.prototype.use = function(fn) {
-  fn.call(this, this);
-  return this;
-};
-
-/**
- * Parse the given `str`.
- *
- * ```js
- * var snapdragon = new Snapdgragon([options]);
- * // register parsers
- * snapdragon.parser.use(function() {});
- *
- * // parse
- * var ast = snapdragon.parse('foo/bar');
- * console.log(ast);
- * ```
- * @param {String} `str`
- * @param {Object} `options` Set `options.sourcemap` to true to enable source maps.
- * @return {Object} Returns an AST.
- * @api public
- */
-
-Snapdragon.prototype.parse = function(str, options) {
-  this.options = utils.extend({}, this.options, options);
-  var parsed = this.parser.parse(str, this.options);
-
-  // add non-enumerable parser reference
-  define(parsed, 'parser', this.parser);
-  return parsed;
-};
-
-/**
- * Compile the given `AST`.
- *
- * ```js
- * var snapdragon = new Snapdgragon([options]);
- * // register plugins
- * snapdragon.use(function() {});
- * // register parser plugins
- * snapdragon.parser.use(function() {});
- * // register compiler plugins
- * snapdragon.compiler.use(function() {});
- *
- * // parse
- * var ast = snapdragon.parse('foo/bar');
- *
- * // compile
- * var res = snapdragon.compile(ast);
- * console.log(res.output);
- * ```
- * @param {Object} `ast`
- * @param {Object} `options`
- * @return {Object} Returns an object with an `output` property with the rendered string.
- * @api public
- */
-
-Snapdragon.prototype.compile = function(ast, options) {
-  this.options = utils.extend({}, this.options, options);
-  var compiled = this.compiler.compile(ast, this.options);
-
-  // add non-enumerable compiler reference
-  define(compiled, 'compiler', this.compiler);
-  return compiled;
-};
-
-/**
- * Expose `Snapdragon`
- */
-
-module.exports = Snapdragon;
-
-/**
- * Expose `Parser` and `Compiler`
- */
-
-module.exports.Compiler = Compiler;
-module.exports.Parser = Parser;
diff --git a/node_modules/strip-eof/index.js b/node_modules/strip-eof/index.js
deleted file mode 100644
index a17d0afd33fee8d56cda15fe58e49c8cc385596b..0000000000000000000000000000000000000000
--- a/node_modules/strip-eof/index.js
+++ /dev/null
@@ -1,15 +0,0 @@
-'use strict';
-module.exports = function (x) {
-	var lf = typeof x === 'string' ? '\n' : '\n'.charCodeAt();
-	var cr = typeof x === 'string' ? '\r' : '\r'.charCodeAt();
-
-	if (x[x.length - 1] === lf) {
-		x = x.slice(0, x.length - 1);
-	}
-
-	if (x[x.length - 1] === cr) {
-		x = x.slice(0, x.length - 1);
-	}
-
-	return x;
-};
diff --git a/node_modules/util-deprecate/History.md b/node_modules/util-deprecate/History.md
deleted file mode 100644
index acc8675372e980824723cfcfec09c0ba43a3195a..0000000000000000000000000000000000000000
--- a/node_modules/util-deprecate/History.md
+++ /dev/null
@@ -1,16 +0,0 @@
-
-1.0.2 / 2015-10-07
-==================
-
-  * use try/catch when checking `localStorage` (#3, @kumavis)
-
-1.0.1 / 2014-11-25
-==================
-
-  * browser: use `console.warn()` for deprecation calls
-  * browser: more jsdocs
-
-1.0.0 / 2014-04-30
-==================
-
-  * initial commit
diff --git a/node_modules/yargs-parser/CHANGELOG.md b/node_modules/yargs-parser/CHANGELOG.md
deleted file mode 100644
index a0186f2330f1c115584e92e6b68871f39773507f..0000000000000000000000000000000000000000
--- a/node_modules/yargs-parser/CHANGELOG.md
+++ /dev/null
@@ -1,300 +0,0 @@
-# Change Log
-
-All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
-
-<a name="9.0.2"></a>
-## [9.0.2](https://github.com/yargs/yargs-parser/compare/v9.0.1...v9.0.2) (2018-01-20)
-
-
-### Bug Fixes
-
-* nargs was still aggressively consuming too many arguments ([9b28aad](https://github.com/yargs/yargs-parser/commit/9b28aad))
-
-
-
-<a name="9.0.1"></a>
-## [9.0.1](https://github.com/yargs/yargs-parser/compare/v9.0.0...v9.0.1) (2018-01-20)
-
-
-### Bug Fixes
-
-* nargs was consuming too many arguments ([4fef206](https://github.com/yargs/yargs-parser/commit/4fef206))
-
-
-
-<a name="9.0.0"></a>
-# [9.0.0](https://github.com/yargs/yargs-parser/compare/v8.1.0...v9.0.0) (2018-01-20)
-
-
-### Features
-
-* narg arguments no longer consume flag arguments ([#114](https://github.com/yargs/yargs-parser/issues/114)) ([60bb9b3](https://github.com/yargs/yargs-parser/commit/60bb9b3))
-
-
-### BREAKING CHANGES
-
-* arguments of form --foo, -abc, will no longer be consumed by nargs
-
-
-
-<a name="8.1.0"></a>
-# [8.1.0](https://github.com/yargs/yargs-parser/compare/v8.0.0...v8.1.0) (2017-12-20)
-
-
-### Bug Fixes
-
-* allow null config values ([#108](https://github.com/yargs/yargs-parser/issues/108)) ([d8b14f9](https://github.com/yargs/yargs-parser/commit/d8b14f9))
-* ensure consistent parsing of dot-notation arguments ([#102](https://github.com/yargs/yargs-parser/issues/102)) ([c9bd79c](https://github.com/yargs/yargs-parser/commit/c9bd79c))
-* implement [@antoniom](https://github.com/antoniom)'s fix for camel-case expansion ([3087e1d](https://github.com/yargs/yargs-parser/commit/3087e1d))
-* only run coercion functions once, despite aliases. ([#76](https://github.com/yargs/yargs-parser/issues/76)) ([#103](https://github.com/yargs/yargs-parser/issues/103)) ([507aaef](https://github.com/yargs/yargs-parser/commit/507aaef))
-* scientific notation circumvented bounds check ([#110](https://github.com/yargs/yargs-parser/issues/110)) ([3571f57](https://github.com/yargs/yargs-parser/commit/3571f57))
-* tokenizer should ignore spaces at the beginning of the argString ([#106](https://github.com/yargs/yargs-parser/issues/106)) ([f34ead9](https://github.com/yargs/yargs-parser/commit/f34ead9))
-
-
-### Features
-
-* make combining arrays a configurable option ([#111](https://github.com/yargs/yargs-parser/issues/111)) ([c8bf536](https://github.com/yargs/yargs-parser/commit/c8bf536))
-* merge array from arguments with array from config ([#83](https://github.com/yargs/yargs-parser/issues/83)) ([806ddd6](https://github.com/yargs/yargs-parser/commit/806ddd6))
-
-
-
-<a name="8.0.0"></a>
-# [8.0.0](https://github.com/yargs/yargs-parser/compare/v7.0.0...v8.0.0) (2017-10-05)
-
-
-### Bug Fixes
-
-* Ignore multiple spaces between arguments. ([#100](https://github.com/yargs/yargs-parser/issues/100)) ([d137227](https://github.com/yargs/yargs-parser/commit/d137227))
-
-
-### Features
-
-* allow configuration of prefix for boolean negation ([#94](https://github.com/yargs/yargs-parser/issues/94)) ([00bde7d](https://github.com/yargs/yargs-parser/commit/00bde7d))
-* reworking how numbers are parsed ([#104](https://github.com/yargs/yargs-parser/issues/104)) ([fba00eb](https://github.com/yargs/yargs-parser/commit/fba00eb))
-
-
-### BREAKING CHANGES
-
-* strings that fail `Number.isSafeInteger()` are no longer coerced into numbers. 
-
-
-
-<a name="7.0.0"></a>
-# [7.0.0](https://github.com/yargs/yargs-parser/compare/v6.0.1...v7.0.0) (2017-05-02)
-
-
-### Chores
-
-* revert populate-- logic ([#91](https://github.com/yargs/yargs-parser/issues/91)) ([6003e6d](https://github.com/yargs/yargs-parser/commit/6003e6d))
-
-
-### BREAKING CHANGES
-
-* populate-- now defaults to false.
-
-
-
-<a name="6.0.1"></a>
-## [6.0.1](https://github.com/yargs/yargs-parser/compare/v6.0.0...v6.0.1) (2017-05-01)
-
-
-### Bug Fixes
-
-* default '--' to undefined when not provided; this is closer to the array API ([#90](https://github.com/yargs/yargs-parser/issues/90)) ([4e739cc](https://github.com/yargs/yargs-parser/commit/4e739cc))
-
-
-
-<a name="6.0.0"></a>
-# [6.0.0](https://github.com/yargs/yargs-parser/compare/v4.2.1...v6.0.0) (2017-05-01)
-
-
-### Bug Fixes
-
-* environment variables should take precedence over config file ([#81](https://github.com/yargs/yargs-parser/issues/81)) ([76cee1f](https://github.com/yargs/yargs-parser/commit/76cee1f))
-* parsing hints should apply for dot notation keys ([#86](https://github.com/yargs/yargs-parser/issues/86)) ([3e47d62](https://github.com/yargs/yargs-parser/commit/3e47d62))
-
-
-### Chores
-
-* upgrade to newest version of camelcase ([#87](https://github.com/yargs/yargs-parser/issues/87)) ([f1903aa](https://github.com/yargs/yargs-parser/commit/f1903aa))
-
-
-### Features
-
-* add -- option which allows arguments after the -- flag to be returned separated from positional arguments ([#84](https://github.com/yargs/yargs-parser/issues/84)) ([2572ca8](https://github.com/yargs/yargs-parser/commit/2572ca8))
-* when parsing stops, we now populate "--" by default ([#88](https://github.com/yargs/yargs-parser/issues/88)) ([cd666db](https://github.com/yargs/yargs-parser/commit/cd666db))
-
-
-### BREAKING CHANGES
-
-* rather than placing arguments in "_", when parsing is stopped via "--"; we now populate an array called "--" by default.
-* camelcase now requires Node 4+.
-* environment variables will now override config files (args, env, config-file, config-object)
-
-
-
-<a name="5.0.0"></a>
-# [5.0.0](https://github.com/yargs/yargs-parser/compare/v4.2.1...v5.0.0) (2017-02-18)
-
-
-### Bug Fixes
-
-* environment variables should take precedence over config file ([#81](https://github.com/yargs/yargs-parser/issues/81)) ([76cee1f](https://github.com/yargs/yargs-parser/commit/76cee1f))
-
-
-### BREAKING CHANGES
-
-* environment variables will now override config files (args, env, config-file, config-object)
-
-
-
-<a name="4.2.1"></a>
-## [4.2.1](https://github.com/yargs/yargs-parser/compare/v4.2.0...v4.2.1) (2017-01-02)
-
-
-### Bug Fixes
-
-* flatten/duplicate regression ([#75](https://github.com/yargs/yargs-parser/issues/75)) ([68d68a0](https://github.com/yargs/yargs-parser/commit/68d68a0))
-
-
-
-<a name="4.2.0"></a>
-# [4.2.0](https://github.com/yargs/yargs-parser/compare/v4.1.0...v4.2.0) (2016-12-01)
-
-
-### Bug Fixes
-
-* inner objects in configs had their keys appended to top-level key when dot-notation was disabled ([#72](https://github.com/yargs/yargs-parser/issues/72)) ([0b1b5f9](https://github.com/yargs/yargs-parser/commit/0b1b5f9))
-
-
-### Features
-
-* allow multiple arrays to be provided, rather than always combining ([#71](https://github.com/yargs/yargs-parser/issues/71)) ([0f0fb2d](https://github.com/yargs/yargs-parser/commit/0f0fb2d))
-
-
-
-<a name="4.1.0"></a>
-# [4.1.0](https://github.com/yargs/yargs-parser/compare/v4.0.2...v4.1.0) (2016-11-07)
-
-
-### Features
-
-* apply coercions to default options ([#65](https://github.com/yargs/yargs-parser/issues/65)) ([c79052b](https://github.com/yargs/yargs-parser/commit/c79052b))
-* handle dot notation boolean options ([#63](https://github.com/yargs/yargs-parser/issues/63)) ([02c3545](https://github.com/yargs/yargs-parser/commit/02c3545))
-
-
-
-<a name="4.0.2"></a>
-## [4.0.2](https://github.com/yargs/yargs-parser/compare/v4.0.1...v4.0.2) (2016-09-30)
-
-
-### Bug Fixes
-
-* whoops, let's make the assign not change the Object key order ([29d069a](https://github.com/yargs/yargs-parser/commit/29d069a))
-
-
-
-<a name="4.0.1"></a>
-## [4.0.1](https://github.com/yargs/yargs-parser/compare/v4.0.0...v4.0.1) (2016-09-30)
-
-
-### Bug Fixes
-
-* lodash.assign was deprecated ([#59](https://github.com/yargs/yargs-parser/issues/59)) ([5e7eb11](https://github.com/yargs/yargs-parser/commit/5e7eb11))
-
-
-
-<a name="4.0.0"></a>
-# [4.0.0](https://github.com/yargs/yargs-parser/compare/v3.2.0...v4.0.0) (2016-09-26)
-
-
-### Bug Fixes
-
-* coerce should be applied to the final objects and arrays created ([#57](https://github.com/yargs/yargs-parser/issues/57)) ([4ca69da](https://github.com/yargs/yargs-parser/commit/4ca69da))
-
-
-### BREAKING CHANGES
-
-* coerce is no longer applied to individual arguments in an implicit array.
-
-
-
-<a name="3.2.0"></a>
-# [3.2.0](https://github.com/yargs/yargs-parser/compare/v3.1.0...v3.2.0) (2016-08-13)
-
-
-### Features
-
-* coerce full array instead of each element ([#51](https://github.com/yargs/yargs-parser/issues/51)) ([cc4dc56](https://github.com/yargs/yargs-parser/commit/cc4dc56))
-
-
-
-<a name="3.1.0"></a>
-# [3.1.0](https://github.com/yargs/yargs-parser/compare/v3.0.0...v3.1.0) (2016-08-09)
-
-
-### Bug Fixes
-
-* address pkgConf parsing bug outlined in [#37](https://github.com/yargs/yargs-parser/issues/37) ([#45](https://github.com/yargs/yargs-parser/issues/45)) ([be76ee6](https://github.com/yargs/yargs-parser/commit/be76ee6))
-* better parsing of negative values ([#44](https://github.com/yargs/yargs-parser/issues/44)) ([2e43692](https://github.com/yargs/yargs-parser/commit/2e43692))
-* check aliases when guessing defaults for arguments fixes [#41](https://github.com/yargs/yargs-parser/issues/41) ([#43](https://github.com/yargs/yargs-parser/issues/43)) ([f3e4616](https://github.com/yargs/yargs-parser/commit/f3e4616))
-
-
-### Features
-
-* added coerce option, for providing specialized argument parsing ([#42](https://github.com/yargs/yargs-parser/issues/42)) ([7b49cd2](https://github.com/yargs/yargs-parser/commit/7b49cd2))
-
-
-
-<a name="3.0.0"></a>
-# [3.0.0](https://github.com/yargs/yargs-parser/compare/v2.4.1...v3.0.0) (2016-08-07)
-
-
-### Bug Fixes
-
-* parsing issue with numeric character in group of options ([#19](https://github.com/yargs/yargs-parser/issues/19)) ([f743236](https://github.com/yargs/yargs-parser/commit/f743236))
-* upgraded lodash.assign ([5d7fdf4](https://github.com/yargs/yargs-parser/commit/5d7fdf4))
-
-### BREAKING CHANGES
-
-* subtle change to how values are parsed in a group of single-character arguments.
-* _first released in 3.1.0, better handling of negative values should be considered a breaking change._
-
-
-
-<a name="2.4.1"></a>
-## [2.4.1](https://github.com/yargs/yargs-parser/compare/v2.4.0...v2.4.1) (2016-07-16)
-
-
-### Bug Fixes
-
-* **count:** do not increment a default value ([#39](https://github.com/yargs/yargs-parser/issues/39)) ([b04a189](https://github.com/yargs/yargs-parser/commit/b04a189))
-
-
-
-<a name="2.4.0"></a>
-# [2.4.0](https://github.com/yargs/yargs-parser/compare/v2.3.0...v2.4.0) (2016-04-11)
-
-
-### Features
-
-* **environment:** Support nested options in environment variables ([#26](https://github.com/yargs/yargs-parser/issues/26)) thanks [@elas7](https://github.com/elas7) \o/ ([020778b](https://github.com/yargs/yargs-parser/commit/020778b))
-
-
-
-<a name="2.3.0"></a>
-# [2.3.0](https://github.com/yargs/yargs-parser/compare/v2.2.0...v2.3.0) (2016-04-09)
-
-
-### Bug Fixes
-
-* **boolean:** fix for boolean options with non boolean defaults (#20) ([2dbe86b](https://github.com/yargs/yargs-parser/commit/2dbe86b)), closes [(#20](https://github.com/(/issues/20)
-* **package:** remove tests from tarball ([0353c0d](https://github.com/yargs/yargs-parser/commit/0353c0d))
-* **parsing:** handle calling short option with an empty string as the next value. ([a867165](https://github.com/yargs/yargs-parser/commit/a867165))
-* boolean flag when next value contains the strings 'true' or 'false'. ([69941a6](https://github.com/yargs/yargs-parser/commit/69941a6))
-* update dependencies; add standard-version bin for next release (#24) ([822d9d5](https://github.com/yargs/yargs-parser/commit/822d9d5))
-
-### Features
-
-* **configuration:** Allow to pass configuration objects to yargs-parser ([0780900](https://github.com/yargs/yargs-parser/commit/0780900))
-* **normalize:** allow normalize to work with arrays ([e0eaa1a](https://github.com/yargs/yargs-parser/commit/e0eaa1a))