diff --git a/node_modules/strip-outer/index.js b/node_modules/strip-outer/index.js
new file mode 100644
index 0000000..497186a
--- /dev/null
+++ b/node_modules/strip-outer/index.js
@@ -0,0 +1,11 @@
+'use strict';
+var escapeStringRegexp = require('escape-string-regexp');
+
+module.exports = function (str, sub) {
+	if (typeof str !== 'string' || typeof sub !== 'string') {
+		throw new TypeError();
+	}
+
+	sub = escapeStringRegexp(sub);
+	return str.replace(new RegExp('^' + sub + '|' + sub + '$', 'g'), '');
+};
diff --git a/node_modules/strip-outer/license b/node_modules/strip-outer/license
new file mode 100644
index 0000000..654d0bf
--- /dev/null
+++ b/node_modules/strip-outer/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/strip-outer/package.json b/node_modules/strip-outer/package.json
new file mode 100644
index 0000000..c86d676
--- /dev/null
+++ b/node_modules/strip-outer/package.json
@@ -0,0 +1,76 @@
+{
+  "_from": "strip-outer@^1.0.0",
+  "_id": "strip-outer@1.0.1",
+  "_inBundle": false,
+  "_integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==",
+  "_location": "/strip-outer",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "strip-outer@^1.0.0",
+    "name": "strip-outer",
+    "escapedName": "strip-outer",
+    "rawSpec": "^1.0.0",
+    "saveSpec": null,
+    "fetchSpec": "^1.0.0"
+  },
+  "_requiredBy": [
+    "/filenamify"
+  ],
+  "_resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz",
+  "_shasum": "b2fd2abf6604b9d1e6013057195df836b8a9d631",
+  "_spec": "strip-outer@^1.0.0",
+  "_where": "C:\\Users\\marcr\\Desktop\\KorAp\\Git\\Kalamar\\node_modules\\filenamify",
+  "author": {
+    "name": "Sindre Sorhus",
+    "email": "sindresorhus@gmail.com",
+    "url": "sindresorhus.com"
+  },
+  "bugs": {
+    "url": "https://github.com/sindresorhus/strip-outer/issues"
+  },
+  "bundleDependencies": false,
+  "dependencies": {
+    "escape-string-regexp": "^1.0.2"
+  },
+  "deprecated": false,
+  "description": "Strip a substring from the start/end of a string",
+  "devDependencies": {
+    "ava": "*",
+    "xo": "*"
+  },
+  "engines": {
+    "node": ">=0.10.0"
+  },
+  "files": [
+    "index.js"
+  ],
+  "homepage": "https://github.com/sindresorhus/strip-outer#readme",
+  "keywords": [
+    "strip",
+    "trim",
+    "remove",
+    "outer",
+    "str",
+    "string",
+    "substring",
+    "start",
+    "end",
+    "wrap",
+    "leading",
+    "trailing",
+    "regex",
+    "regexp"
+  ],
+  "license": "MIT",
+  "name": "strip-outer",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/sindresorhus/strip-outer.git"
+  },
+  "scripts": {
+    "test": "xo && ava"
+  },
+  "version": "1.0.1"
+}
diff --git a/node_modules/strip-outer/readme.md b/node_modules/strip-outer/readme.md
new file mode 100644
index 0000000..4f4bee2
--- /dev/null
+++ b/node_modules/strip-outer/readme.md
@@ -0,0 +1,28 @@
+# strip-outer [![Build Status](https://travis-ci.org/sindresorhus/strip-outer.svg?branch=master)](https://travis-ci.org/sindresorhus/strip-outer)
+
+> Strip a substring from the start/end of a string
+
+
+## Install
+
+```
+$ npm install --save strip-outer
+```
+
+
+## Usage
+
+```js
+const stripOuter = require('strip-outer');
+
+stripOuter('foobarfoo', 'foo');
+//=> 'bar'
+
+stripOuter('unicorncake', 'unicorn');
+//=> 'cake'
+```
+
+
+## License
+
+MIT © [Sindre Sorhus](https://sindresorhus.com)
