diff --git a/node_modules/camelcase-keys/index.js b/node_modules/camelcase-keys/index.js
new file mode 100644
index 0000000..0eca08c
--- /dev/null
+++ b/node_modules/camelcase-keys/index.js
@@ -0,0 +1,12 @@
+'use strict';
+var mapObj = require('map-obj');
+var camelCase = require('camelcase');
+
+module.exports = function (input, options) {
+	options = options || {};
+	var exclude = options.exclude || [];
+	return mapObj(input, function (key, val) {
+		key = exclude.indexOf(key) === -1 ? camelCase(key) : key;
+		return [key, val];
+	});
+};
diff --git a/node_modules/camelcase-keys/license b/node_modules/camelcase-keys/license
new file mode 100644
index 0000000..654d0bf
--- /dev/null
+++ b/node_modules/camelcase-keys/license
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
+
+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/camelcase-keys/package.json b/node_modules/camelcase-keys/package.json
new file mode 100644
index 0000000..6fb22af
--- /dev/null
+++ b/node_modules/camelcase-keys/package.json
@@ -0,0 +1,84 @@
+{
+  "_from": "camelcase-keys@^2.0.0",
+  "_id": "camelcase-keys@2.1.0",
+  "_inBundle": false,
+  "_integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
+  "_location": "/camelcase-keys",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "camelcase-keys@^2.0.0",
+    "name": "camelcase-keys",
+    "escapedName": "camelcase-keys",
+    "rawSpec": "^2.0.0",
+    "saveSpec": null,
+    "fetchSpec": "^2.0.0"
+  },
+  "_requiredBy": [
+    "/meow"
+  ],
+  "_resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
+  "_shasum": "308beeaffdf28119051efa1d932213c91b8f92e7",
+  "_spec": "camelcase-keys@^2.0.0",
+  "_where": "C:\\Users\\marcr\\Desktop\\KorAp\\Git\\Kalamar\\node_modules\\meow",
+  "author": {
+    "name": "Sindre Sorhus",
+    "email": "sindresorhus@gmail.com",
+    "url": "http://sindresorhus.com"
+  },
+  "bugs": {
+    "url": "https://github.com/sindresorhus/camelcase-keys/issues"
+  },
+  "bundleDependencies": false,
+  "dependencies": {
+    "camelcase": "^2.0.0",
+    "map-obj": "^1.0.0"
+  },
+  "deprecated": false,
+  "description": "Convert object keys to camelCase",
+  "devDependencies": {
+    "ava": "*",
+    "xo": "*"
+  },
+  "engines": {
+    "node": ">=0.10.0"
+  },
+  "files": [
+    "index.js"
+  ],
+  "homepage": "https://github.com/sindresorhus/camelcase-keys#readme",
+  "keywords": [
+    "map",
+    "obj",
+    "object",
+    "key",
+    "keys",
+    "value",
+    "values",
+    "val",
+    "iterate",
+    "camelcase",
+    "camel-case",
+    "camel",
+    "case",
+    "dash",
+    "hyphen",
+    "dot",
+    "underscore",
+    "separator",
+    "string",
+    "text",
+    "convert"
+  ],
+  "license": "MIT",
+  "name": "camelcase-keys",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/sindresorhus/camelcase-keys.git"
+  },
+  "scripts": {
+    "test": "xo && ava"
+  },
+  "version": "2.1.0"
+}
diff --git a/node_modules/camelcase-keys/readme.md b/node_modules/camelcase-keys/readme.md
new file mode 100644
index 0000000..ca37328
--- /dev/null
+++ b/node_modules/camelcase-keys/readme.md
@@ -0,0 +1,54 @@
+# camelcase-keys [![Build Status](https://travis-ci.org/sindresorhus/camelcase-keys.svg?branch=master)](https://travis-ci.org/sindresorhus/camelcase-keys)
+
+> Convert object keys to camelCase using [`camelcase`](https://github.com/sindresorhus/camelcase)
+
+
+## Install
+
+```
+$ npm install --save camelcase-keys
+```
+
+
+## Usage
+
+```js
+const camelcaseKeys = require('camelcase-keys');
+
+camelcaseKeys({'foo-bar': true});
+//=> {fooBar: true}
+
+
+const argv = require('minimist')(process.argv.slice(2));
+//=> {_: [], 'foo-bar': true}
+
+camelcaseKeys(argv);
+//=> {_: [], fooBar: true}
+```
+
+
+## API
+
+### camelcaseKeys(input, [options])
+
+#### input
+
+Type: `object`
+
+Object to camelCase.
+
+#### options
+
+Type: `object`
+
+##### exclude
+
+Type: `array`  
+Default: `[]`
+
+Exclude keys from being camelCased.
+
+
+## License
+
+MIT © [Sindre Sorhus](http://sindresorhus.com)
