diff --git a/node_modules/.bin/atob b/node_modules/.bin/atob
deleted file mode 120000
index a68344a..0000000
--- a/node_modules/.bin/atob
+++ /dev/null
@@ -1 +0,0 @@
-../atob/bin/atob.js
\ No newline at end of file
diff --git a/node_modules/.bin/color-support b/node_modules/.bin/color-support
deleted file mode 120000
index fcbcb28..0000000
--- a/node_modules/.bin/color-support
+++ /dev/null
@@ -1 +0,0 @@
-../color-support/bin.js
\ No newline at end of file
diff --git a/node_modules/.bin/gulp b/node_modules/.bin/gulp
deleted file mode 120000
index 5de7332..0000000
--- a/node_modules/.bin/gulp
+++ /dev/null
@@ -1 +0,0 @@
-../gulp/bin/gulp.js
\ No newline at end of file
diff --git a/node_modules/.bin/semver b/node_modules/.bin/semver
deleted file mode 120000
index 317eb29..0000000
--- a/node_modules/.bin/semver
+++ /dev/null
@@ -1 +0,0 @@
-../semver/bin/semver
\ No newline at end of file
diff --git a/node_modules/.bin/which b/node_modules/.bin/which
deleted file mode 120000
index f62471c..0000000
--- a/node_modules/.bin/which
+++ /dev/null
@@ -1 +0,0 @@
-../which/bin/which
\ No newline at end of file
diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json
deleted file mode 100644
index 392ffea..0000000
--- a/node_modules/.package-lock.json
+++ /dev/null
@@ -1,3578 +0,0 @@
-{
- "name": "find-the-culprit",
- "lockfileVersion": 2,
- "requires": true,
- "packages": {
- "node_modules/ansi-colors": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz",
- "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==",
- "dependencies": {
- "ansi-wrap": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/ansi-gray": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz",
- "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=",
- "dependencies": {
- "ansi-wrap": "0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/ansi-wrap": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz",
- "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/anymatch": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
- "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
- "dependencies": {
- "micromatch": "^3.1.4",
- "normalize-path": "^2.1.1"
- }
- },
- "node_modules/anymatch/node_modules/normalize-path": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
- "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
- "dependencies": {
- "remove-trailing-separator": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/append-buffer": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz",
- "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=",
- "dependencies": {
- "buffer-equal": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/archy": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
- "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA="
- },
- "node_modules/arr-diff": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
- "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/arr-filter": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz",
- "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=",
- "dependencies": {
- "make-iterator": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/arr-flatten": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
- "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/arr-map": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz",
- "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=",
- "dependencies": {
- "make-iterator": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/arr-union": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
- "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/array-each": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz",
- "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/array-initial": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz",
- "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=",
- "dependencies": {
- "array-slice": "^1.0.0",
- "is-number": "^4.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/array-initial/node_modules/is-number": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
- "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/array-last": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz",
- "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==",
- "dependencies": {
- "is-number": "^4.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/array-last/node_modules/is-number": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
- "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/array-slice": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz",
- "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/array-sort": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz",
- "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==",
- "dependencies": {
- "default-compare": "^1.0.0",
- "get-value": "^2.0.6",
- "kind-of": "^5.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/array-unique": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
- "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/assign-symbols": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
- "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/async-done": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz",
- "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==",
- "dependencies": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.2",
- "process-nextick-args": "^2.0.0",
- "stream-exhaust": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/async-each": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
- "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ=="
- },
- "node_modules/async-settle": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz",
- "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=",
- "dependencies": {
- "async-done": "^1.2.2"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/atob": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
- "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
- "bin": {
- "atob": "bin/atob.js"
- },
- "engines": {
- "node": ">= 4.5.0"
- }
- },
- "node_modules/bach": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz",
- "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=",
- "dependencies": {
- "arr-filter": "^1.1.1",
- "arr-flatten": "^1.0.1",
- "arr-map": "^2.0.0",
- "array-each": "^1.0.0",
- "array-initial": "^1.0.0",
- "array-last": "^1.1.1",
- "async-done": "^1.2.2",
- "async-settle": "^1.0.0",
- "now-and-later": "^2.0.0"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
- },
- "node_modules/base": {
- "version": "0.11.2",
- "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
- "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
- "dependencies": {
- "cache-base": "^1.0.1",
- "class-utils": "^0.3.5",
- "component-emitter": "^1.2.1",
- "define-property": "^1.0.0",
- "isobject": "^3.0.1",
- "mixin-deep": "^1.2.0",
- "pascalcase": "^0.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/base/node_modules/define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
- "dependencies": {
- "is-descriptor": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/binary-extensions": {
- "version": "1.13.1",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
- "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/braces": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
- "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
- "dependencies": {
- "arr-flatten": "^1.1.0",
- "array-unique": "^0.3.2",
- "extend-shallow": "^2.0.1",
- "fill-range": "^4.0.0",
- "isobject": "^3.0.1",
- "repeat-element": "^1.1.2",
- "snapdragon": "^0.8.1",
- "snapdragon-node": "^2.0.1",
- "split-string": "^3.0.2",
- "to-regex": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/buffer-equal": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz",
- "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=",
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/buffer-from": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
- "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
- },
- "node_modules/cache-base": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
- "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
- "dependencies": {
- "collection-visit": "^1.0.0",
- "component-emitter": "^1.2.1",
- "get-value": "^2.0.6",
- "has-value": "^1.0.0",
- "isobject": "^3.0.1",
- "set-value": "^2.0.0",
- "to-object-path": "^0.3.0",
- "union-value": "^1.0.0",
- "unset-value": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
- "dependencies": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/camelcase": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
- "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/chokidar": {
- "version": "2.1.8",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
- "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
- "deprecated": "Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.",
- "dependencies": {
- "anymatch": "^2.0.0",
- "async-each": "^1.0.1",
- "braces": "^2.3.2",
- "glob-parent": "^3.1.0",
- "inherits": "^2.0.3",
- "is-binary-path": "^1.0.0",
- "is-glob": "^4.0.0",
- "normalize-path": "^3.0.0",
- "path-is-absolute": "^1.0.0",
- "readdirp": "^2.2.1",
- "upath": "^1.1.1"
- },
- "optionalDependencies": {
- "fsevents": "^1.2.7"
- }
- },
- "node_modules/class-utils": {
- "version": "0.3.6",
- "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
- "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
- "dependencies": {
- "arr-union": "^3.1.0",
- "define-property": "^0.2.5",
- "isobject": "^3.0.0",
- "static-extend": "^0.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/class-utils/node_modules/define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
- "dependencies": {
- "is-descriptor": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/class-utils/node_modules/is-accessor-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
- "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/class-utils/node_modules/is-data-descriptor": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
- "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/class-utils/node_modules/is-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
- "dependencies": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/cliui": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
- "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
- "dependencies": {
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1",
- "wrap-ansi": "^2.0.0"
- }
- },
- "node_modules/clone": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
- "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=",
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/clone-buffer": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz",
- "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=",
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/clone-stats": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz",
- "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA="
- },
- "node_modules/cloneable-readable": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz",
- "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==",
- "dependencies": {
- "inherits": "^2.0.1",
- "process-nextick-args": "^2.0.0",
- "readable-stream": "^2.3.5"
- }
- },
- "node_modules/code-point-at": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
- "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/collection-map": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz",
- "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=",
- "dependencies": {
- "arr-map": "^2.0.2",
- "for-own": "^1.0.0",
- "make-iterator": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/collection-visit": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
- "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
- "dependencies": {
- "map-visit": "^1.0.0",
- "object-visit": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/color-support": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
- "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
- "bin": {
- "color-support": "bin.js"
- }
- },
- "node_modules/component-emitter": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
- "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg=="
- },
- "node_modules/concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
- },
- "node_modules/concat-stream": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
- "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
- "engines": [
- "node >= 0.8"
- ],
- "dependencies": {
- "buffer-from": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^2.2.2",
- "typedarray": "^0.0.6"
- }
- },
- "node_modules/convert-source-map": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
- "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
- "dependencies": {
- "safe-buffer": "~5.1.1"
- }
- },
- "node_modules/copy-descriptor": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
- "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/copy-props": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.5.tgz",
- "integrity": "sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==",
- "dependencies": {
- "each-props": "^1.3.2",
- "is-plain-object": "^5.0.0"
- }
- },
- "node_modules/core-util-is": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
- },
- "node_modules/d": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
- "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
- "dependencies": {
- "es5-ext": "^0.10.50",
- "type": "^1.0.1"
- }
- },
- "node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/decode-uri-component": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
- "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/default-compare": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz",
- "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==",
- "dependencies": {
- "kind-of": "^5.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/default-resolution": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz",
- "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=",
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/define-properties": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
- "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
- "dependencies": {
- "object-keys": "^1.0.12"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/define-property": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
- "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
- "dependencies": {
- "is-descriptor": "^1.0.2",
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/detect-file": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz",
- "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/duplexify": {
- "version": "3.7.1",
- "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
- "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
- "dependencies": {
- "end-of-stream": "^1.0.0",
- "inherits": "^2.0.1",
- "readable-stream": "^2.0.0",
- "stream-shift": "^1.0.0"
- }
- },
- "node_modules/each-props": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz",
- "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==",
- "dependencies": {
- "is-plain-object": "^2.0.1",
- "object.defaults": "^1.1.0"
- }
- },
- "node_modules/each-props/node_modules/is-plain-object": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
- "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/end-of-stream": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
- "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
- "dependencies": {
- "once": "^1.4.0"
- }
- },
- "node_modules/error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
- "dependencies": {
- "is-arrayish": "^0.2.1"
- }
- },
- "node_modules/es5-ext": {
- "version": "0.10.53",
- "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz",
- "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==",
- "dependencies": {
- "es6-iterator": "~2.0.3",
- "es6-symbol": "~3.1.3",
- "next-tick": "~1.0.0"
- }
- },
- "node_modules/es6-iterator": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
- "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
- "dependencies": {
- "d": "1",
- "es5-ext": "^0.10.35",
- "es6-symbol": "^3.1.1"
- }
- },
- "node_modules/es6-symbol": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz",
- "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==",
- "dependencies": {
- "d": "^1.0.1",
- "ext": "^1.1.2"
- }
- },
- "node_modules/es6-weak-map": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz",
- "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==",
- "dependencies": {
- "d": "1",
- "es5-ext": "^0.10.46",
- "es6-iterator": "^2.0.3",
- "es6-symbol": "^3.1.1"
- }
- },
- "node_modules/expand-brackets": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
- "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
- "dependencies": {
- "debug": "^2.3.3",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "posix-character-classes": "^0.1.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/expand-brackets/node_modules/define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
- "dependencies": {
- "is-descriptor": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/expand-brackets/node_modules/is-accessor-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
- "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/expand-brackets/node_modules/is-data-descriptor": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
- "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/expand-brackets/node_modules/is-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
- "dependencies": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/expand-tilde": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
- "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=",
- "dependencies": {
- "homedir-polyfill": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/ext": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz",
- "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==",
- "dependencies": {
- "type": "^2.0.0"
- }
- },
- "node_modules/ext/node_modules/type": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz",
- "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw=="
- },
- "node_modules/extend": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
- "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
- },
- "node_modules/extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dependencies": {
- "is-extendable": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/extglob": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
- "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
- "dependencies": {
- "array-unique": "^0.3.2",
- "define-property": "^1.0.0",
- "expand-brackets": "^2.1.4",
- "extend-shallow": "^2.0.1",
- "fragment-cache": "^0.2.1",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/extglob/node_modules/define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
- "dependencies": {
- "is-descriptor": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/fancy-log": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz",
- "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==",
- "dependencies": {
- "ansi-gray": "^0.1.1",
- "color-support": "^1.1.3",
- "parse-node-version": "^1.0.0",
- "time-stamp": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/fast-levenshtein": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz",
- "integrity": "sha1-5qdUzI8V5YmHqpy9J69m/W9OWvk="
- },
- "node_modules/fill-range": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
- "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
- "dependencies": {
- "extend-shallow": "^2.0.1",
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1",
- "to-regex-range": "^2.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/find-up": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
- "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
- "dependencies": {
- "path-exists": "^2.0.0",
- "pinkie-promise": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/findup-sync": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz",
- "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==",
- "dependencies": {
- "detect-file": "^1.0.0",
- "is-glob": "^4.0.0",
- "micromatch": "^3.0.4",
- "resolve-dir": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/fined": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz",
- "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==",
- "dependencies": {
- "expand-tilde": "^2.0.2",
- "is-plain-object": "^2.0.3",
- "object.defaults": "^1.1.0",
- "object.pick": "^1.2.0",
- "parse-filepath": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/fined/node_modules/is-plain-object": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
- "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/flagged-respawn": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz",
- "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==",
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/flush-write-stream": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz",
- "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==",
- "dependencies": {
- "inherits": "^2.0.3",
- "readable-stream": "^2.3.6"
- }
- },
- "node_modules/for-in": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
- "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/for-own": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
- "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
- "dependencies": {
- "for-in": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/fragment-cache": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
- "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
- "dependencies": {
- "map-cache": "^0.2.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/fs-mkdirp-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz",
- "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=",
- "dependencies": {
- "graceful-fs": "^4.1.11",
- "through2": "^2.0.3"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
- },
- "node_modules/function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
- },
- "node_modules/get-caller-file": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
- "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w=="
- },
- "node_modules/get-intrinsic": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
- "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
- "dependencies": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/get-value": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
- "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/glob": {
- "version": "7.1.7",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
- "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/glob-parent": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
- "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
- "dependencies": {
- "is-glob": "^3.1.0",
- "path-dirname": "^1.0.0"
- }
- },
- "node_modules/glob-parent/node_modules/is-glob": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
- "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
- "dependencies": {
- "is-extglob": "^2.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/glob-stream": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz",
- "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=",
- "dependencies": {
- "extend": "^3.0.0",
- "glob": "^7.1.1",
- "glob-parent": "^3.1.0",
- "is-negated-glob": "^1.0.0",
- "ordered-read-streams": "^1.0.0",
- "pumpify": "^1.3.5",
- "readable-stream": "^2.1.5",
- "remove-trailing-separator": "^1.0.1",
- "to-absolute-glob": "^2.0.0",
- "unique-stream": "^2.0.2"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/glob-watcher": {
- "version": "5.0.5",
- "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz",
- "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==",
- "dependencies": {
- "anymatch": "^2.0.0",
- "async-done": "^1.2.0",
- "chokidar": "^2.0.0",
- "is-negated-glob": "^1.0.0",
- "just-debounce": "^1.0.0",
- "normalize-path": "^3.0.0",
- "object.defaults": "^1.1.0"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/global-modules": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
- "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
- "dependencies": {
- "global-prefix": "^1.0.1",
- "is-windows": "^1.0.1",
- "resolve-dir": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/global-prefix": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
- "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=",
- "dependencies": {
- "expand-tilde": "^2.0.2",
- "homedir-polyfill": "^1.0.1",
- "ini": "^1.3.4",
- "is-windows": "^1.0.1",
- "which": "^1.2.14"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/glogg": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz",
- "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==",
- "dependencies": {
- "sparkles": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/graceful-fs": {
- "version": "4.2.6",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
- "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ=="
- },
- "node_modules/gulp": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz",
- "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==",
- "dependencies": {
- "glob-watcher": "^5.0.3",
- "gulp-cli": "^2.2.0",
- "undertaker": "^1.2.1",
- "vinyl-fs": "^3.0.0"
- },
- "bin": {
- "gulp": "bin/gulp.js"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/gulp-cli": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz",
- "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==",
- "dependencies": {
- "ansi-colors": "^1.0.1",
- "archy": "^1.0.0",
- "array-sort": "^1.0.0",
- "color-support": "^1.1.3",
- "concat-stream": "^1.6.0",
- "copy-props": "^2.0.1",
- "fancy-log": "^1.3.2",
- "gulplog": "^1.0.0",
- "interpret": "^1.4.0",
- "isobject": "^3.0.1",
- "liftoff": "^3.1.0",
- "matchdep": "^2.0.0",
- "mute-stdout": "^1.0.0",
- "pretty-hrtime": "^1.0.0",
- "replace-homedir": "^1.0.0",
- "semver-greatest-satisfied-range": "^1.1.0",
- "v8flags": "^3.2.0",
- "yargs": "^7.1.0"
- },
- "bin": {
- "gulp": "bin/gulp.js"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/gulplog": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz",
- "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=",
- "dependencies": {
- "glogg": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "dependencies": {
- "function-bind": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/has-symbols": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
- "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-value": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
- "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
- "dependencies": {
- "get-value": "^2.0.6",
- "has-values": "^1.0.0",
- "isobject": "^3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/has-values": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
- "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
- "dependencies": {
- "is-number": "^3.0.0",
- "kind-of": "^4.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/has-values/node_modules/kind-of": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
- "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/homedir-polyfill": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
- "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==",
- "dependencies": {
- "parse-passwd": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/hosted-git-info": {
- "version": "2.8.9",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
- "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw=="
- },
- "node_modules/inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
- "dependencies": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "node_modules/inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "node_modules/ini": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
- "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
- },
- "node_modules/interpret": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz",
- "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==",
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/invert-kv": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
- "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-absolute": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz",
- "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==",
- "dependencies": {
- "is-relative": "^1.0.0",
- "is-windows": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
- "dependencies": {
- "kind-of": "^6.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-accessor-descriptor/node_modules/kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
- },
- "node_modules/is-binary-path": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
- "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
- "dependencies": {
- "binary-extensions": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-buffer": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
- "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
- },
- "node_modules/is-core-module": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz",
- "integrity": "sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==",
- "dependencies": {
- "has": "^1.0.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
- "dependencies": {
- "kind-of": "^6.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-data-descriptor/node_modules/kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
- "dependencies": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-descriptor/node_modules/kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-extendable": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
- "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-fullwidth-code-point": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
- "dependencies": {
- "number-is-nan": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-glob": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
- "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
- "dependencies": {
- "is-extglob": "^2.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-negated-glob": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz",
- "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-number": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
- "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-number/node_modules/kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-plain-object": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
- "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-relative": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz",
- "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==",
- "dependencies": {
- "is-unc-path": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-unc-path": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz",
- "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==",
- "dependencies": {
- "unc-path-regex": "^0.1.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-utf8": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
- "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI="
- },
- "node_modules/is-valid-glob": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz",
- "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-windows": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
- "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
- },
- "node_modules/isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
- },
- "node_modules/isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/json-stable-stringify-without-jsonify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
- "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE="
- },
- "node_modules/just-debounce": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz",
- "integrity": "sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ=="
- },
- "node_modules/kind-of": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/last-run": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz",
- "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=",
- "dependencies": {
- "default-resolution": "^2.0.0",
- "es6-weak-map": "^2.0.1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/lazystream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz",
- "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=",
- "dependencies": {
- "readable-stream": "^2.0.5"
- },
- "engines": {
- "node": ">= 0.6.3"
- }
- },
- "node_modules/lcid": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
- "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
- "dependencies": {
- "invert-kv": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/lead": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz",
- "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=",
- "dependencies": {
- "flush-write-stream": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/liftoff": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz",
- "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==",
- "dependencies": {
- "extend": "^3.0.0",
- "findup-sync": "^3.0.0",
- "fined": "^1.0.1",
- "flagged-respawn": "^1.0.0",
- "is-plain-object": "^2.0.4",
- "object.map": "^1.0.0",
- "rechoir": "^0.6.2",
- "resolve": "^1.1.7"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/liftoff/node_modules/is-plain-object": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
- "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/load-json-file": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
- "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
- "dependencies": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^2.2.0",
- "pify": "^2.0.0",
- "pinkie-promise": "^2.0.0",
- "strip-bom": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/make-iterator": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz",
- "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==",
- "dependencies": {
- "kind-of": "^6.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/make-iterator/node_modules/kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/map-cache": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
- "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/map-visit": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
- "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
- "dependencies": {
- "object-visit": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/matchdep": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz",
- "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=",
- "dependencies": {
- "findup-sync": "^2.0.0",
- "micromatch": "^3.0.4",
- "resolve": "^1.4.0",
- "stack-trace": "0.0.10"
- },
- "engines": {
- "node": ">= 0.10.0"
- }
- },
- "node_modules/matchdep/node_modules/findup-sync": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz",
- "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=",
- "dependencies": {
- "detect-file": "^1.0.0",
- "is-glob": "^3.1.0",
- "micromatch": "^3.0.4",
- "resolve-dir": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/matchdep/node_modules/is-glob": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
- "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
- "dependencies": {
- "is-extglob": "^2.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/micromatch": {
- "version": "3.1.10",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
- "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
- "dependencies": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "braces": "^2.3.1",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "extglob": "^2.0.4",
- "fragment-cache": "^0.2.1",
- "kind-of": "^6.0.2",
- "nanomatch": "^1.2.9",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/micromatch/node_modules/extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
- "dependencies": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/micromatch/node_modules/is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "dependencies": {
- "is-plain-object": "^2.0.4"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/micromatch/node_modules/is-plain-object": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
- "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/micromatch/node_modules/kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/minimatch": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/mixin-deep": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
- "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
- "dependencies": {
- "for-in": "^1.0.2",
- "is-extendable": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/mixin-deep/node_modules/is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "dependencies": {
- "is-plain-object": "^2.0.4"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/mixin-deep/node_modules/is-plain-object": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
- "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- },
- "node_modules/mute-stdout": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz",
- "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==",
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/nanomatch": {
- "version": "1.2.13",
- "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
- "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
- "dependencies": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "fragment-cache": "^0.2.1",
- "is-windows": "^1.0.2",
- "kind-of": "^6.0.2",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/nanomatch/node_modules/extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
- "dependencies": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/nanomatch/node_modules/is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "dependencies": {
- "is-plain-object": "^2.0.4"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/nanomatch/node_modules/is-plain-object": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
- "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/nanomatch/node_modules/kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/next-tick": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
- "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
- },
- "node_modules/normalize-package-data": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
- "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
- "dependencies": {
- "hosted-git-info": "^2.1.4",
- "resolve": "^1.10.0",
- "semver": "2 || 3 || 4 || 5",
- "validate-npm-package-license": "^3.0.1"
- }
- },
- "node_modules/normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/now-and-later": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz",
- "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==",
- "dependencies": {
- "once": "^1.3.2"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/number-is-nan": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
- "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-copy": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
- "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
- "dependencies": {
- "copy-descriptor": "^0.1.0",
- "define-property": "^0.2.5",
- "kind-of": "^3.0.3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-copy/node_modules/define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
- "dependencies": {
- "is-descriptor": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-copy/node_modules/is-accessor-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
- "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-copy/node_modules/is-data-descriptor": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
- "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-copy/node_modules/is-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
- "dependencies": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-copy/node_modules/kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/object-visit": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
- "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
- "dependencies": {
- "isobject": "^3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object.assign": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
- "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
- "dependencies": {
- "call-bind": "^1.0.0",
- "define-properties": "^1.1.3",
- "has-symbols": "^1.0.1",
- "object-keys": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/object.defaults": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz",
- "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=",
- "dependencies": {
- "array-each": "^1.0.1",
- "array-slice": "^1.0.0",
- "for-own": "^1.0.0",
- "isobject": "^3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object.map": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz",
- "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=",
- "dependencies": {
- "for-own": "^1.0.0",
- "make-iterator": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object.pick": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
- "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object.reduce": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz",
- "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=",
- "dependencies": {
- "for-own": "^1.0.0",
- "make-iterator": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
- "dependencies": {
- "wrappy": "1"
- }
- },
- "node_modules/ordered-read-streams": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz",
- "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=",
- "dependencies": {
- "readable-stream": "^2.0.1"
- }
- },
- "node_modules/os-locale": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
- "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
- "dependencies": {
- "lcid": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/parse-filepath": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz",
- "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=",
- "dependencies": {
- "is-absolute": "^1.0.0",
- "map-cache": "^0.2.0",
- "path-root": "^0.1.1"
- },
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/parse-json": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
- "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
- "dependencies": {
- "error-ex": "^1.2.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/parse-node-version": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz",
- "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==",
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/parse-passwd": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
- "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/pascalcase": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
- "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/path-dirname": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
- "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA="
- },
- "node_modules/path-exists": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
- "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
- "dependencies": {
- "pinkie-promise": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
- },
- "node_modules/path-root": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz",
- "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=",
- "dependencies": {
- "path-root-regex": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/path-root-regex": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz",
- "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/path-type": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
- "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
- "dependencies": {
- "graceful-fs": "^4.1.2",
- "pify": "^2.0.0",
- "pinkie-promise": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/pinkie": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
- "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/pinkie-promise": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
- "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
- "dependencies": {
- "pinkie": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/posix-character-classes": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
- "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/pretty-hrtime": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz",
- "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/process-nextick-args": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
- "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
- },
- "node_modules/pump": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
- "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
- "dependencies": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.1"
- }
- },
- "node_modules/pumpify": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
- "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
- "dependencies": {
- "duplexify": "^3.6.0",
- "inherits": "^2.0.3",
- "pump": "^2.0.0"
- }
- },
- "node_modules/read-pkg": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
- "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
- "dependencies": {
- "load-json-file": "^1.0.0",
- "normalize-package-data": "^2.3.2",
- "path-type": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/read-pkg-up": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
- "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
- "dependencies": {
- "find-up": "^1.0.0",
- "read-pkg": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "node_modules/readdirp": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
- "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
- "dependencies": {
- "graceful-fs": "^4.1.11",
- "micromatch": "^3.1.10",
- "readable-stream": "^2.0.2"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/rechoir": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
- "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
- "dependencies": {
- "resolve": "^1.1.6"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/regex-not": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
- "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
- "dependencies": {
- "extend-shallow": "^3.0.2",
- "safe-regex": "^1.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/regex-not/node_modules/extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
- "dependencies": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/regex-not/node_modules/is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "dependencies": {
- "is-plain-object": "^2.0.4"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/regex-not/node_modules/is-plain-object": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
- "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/remove-bom-buffer": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz",
- "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==",
- "dependencies": {
- "is-buffer": "^1.1.5",
- "is-utf8": "^0.2.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/remove-bom-stream": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz",
- "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=",
- "dependencies": {
- "remove-bom-buffer": "^3.0.0",
- "safe-buffer": "^5.1.0",
- "through2": "^2.0.3"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/remove-trailing-separator": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
- "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8="
- },
- "node_modules/repeat-element": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz",
- "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/repeat-string": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
- "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/replace-ext": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz",
- "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==",
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/replace-homedir": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz",
- "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=",
- "dependencies": {
- "homedir-polyfill": "^1.0.1",
- "is-absolute": "^1.0.0",
- "remove-trailing-separator": "^1.1.0"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/require-main-filename": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
- "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE="
- },
- "node_modules/resolve": {
- "version": "1.20.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
- "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
- "dependencies": {
- "is-core-module": "^2.2.0",
- "path-parse": "^1.0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/resolve-dir": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
- "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=",
- "dependencies": {
- "expand-tilde": "^2.0.0",
- "global-modules": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/resolve-options": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz",
- "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=",
- "dependencies": {
- "value-or-function": "^3.0.0"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/resolve-url": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
- "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
- "deprecated": "https://github.com/lydell/resolve-url#deprecated"
- },
- "node_modules/ret": {
- "version": "0.1.15",
- "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
- "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
- "engines": {
- "node": ">=0.12"
- }
- },
- "node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- },
- "node_modules/safe-regex": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
- "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
- "dependencies": {
- "ret": "~0.1.10"
- }
- },
- "node_modules/semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "bin": {
- "semver": "bin/semver"
- }
- },
- "node_modules/semver-greatest-satisfied-range": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz",
- "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=",
- "dependencies": {
- "sver-compat": "^1.5.0"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/set-blocking": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
- },
- "node_modules/set-value": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
- "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
- "dependencies": {
- "extend-shallow": "^2.0.1",
- "is-extendable": "^0.1.1",
- "is-plain-object": "^2.0.3",
- "split-string": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/set-value/node_modules/is-plain-object": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
- "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon": {
- "version": "0.8.2",
- "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
- "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
- "dependencies": {
- "base": "^0.11.1",
- "debug": "^2.2.0",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "map-cache": "^0.2.2",
- "source-map": "^0.5.6",
- "source-map-resolve": "^0.5.0",
- "use": "^3.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon-node": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
- "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
- "dependencies": {
- "define-property": "^1.0.0",
- "isobject": "^3.0.0",
- "snapdragon-util": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon-node/node_modules/define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
- "dependencies": {
- "is-descriptor": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon-util": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
- "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
- "dependencies": {
- "kind-of": "^3.2.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon-util/node_modules/kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon/node_modules/define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
- "dependencies": {
- "is-descriptor": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon/node_modules/is-accessor-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
- "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon/node_modules/is-data-descriptor": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
- "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon/node_modules/is-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
- "dependencies": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/source-map-resolve": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
- "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
- "dependencies": {
- "atob": "^2.1.2",
- "decode-uri-component": "^0.2.0",
- "resolve-url": "^0.2.1",
- "source-map-url": "^0.4.0",
- "urix": "^0.1.0"
- }
- },
- "node_modules/source-map-url": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz",
- "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw=="
- },
- "node_modules/sparkles": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz",
- "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==",
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/spdx-correct": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
- "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==",
- "dependencies": {
- "spdx-expression-parse": "^3.0.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "node_modules/spdx-exceptions": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
- "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A=="
- },
- "node_modules/spdx-expression-parse": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
- "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
- "dependencies": {
- "spdx-exceptions": "^2.1.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "node_modules/spdx-license-ids": {
- "version": "3.0.9",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz",
- "integrity": "sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ=="
- },
- "node_modules/split-string": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
- "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
- "dependencies": {
- "extend-shallow": "^3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/split-string/node_modules/extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
- "dependencies": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/split-string/node_modules/is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "dependencies": {
- "is-plain-object": "^2.0.4"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/split-string/node_modules/is-plain-object": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
- "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/stack-trace": {
- "version": "0.0.10",
- "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
- "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=",
- "engines": {
- "node": "*"
- }
- },
- "node_modules/static-extend": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
- "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
- "dependencies": {
- "define-property": "^0.2.5",
- "object-copy": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/static-extend/node_modules/define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
- "dependencies": {
- "is-descriptor": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/static-extend/node_modules/is-accessor-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
- "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/static-extend/node_modules/is-data-descriptor": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
- "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/static-extend/node_modules/is-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
- "dependencies": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/stream-exhaust": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz",
- "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw=="
- },
- "node_modules/stream-shift": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz",
- "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ=="
- },
- "node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dependencies": {
- "safe-buffer": "~5.1.0"
- }
- },
- "node_modules/string-width": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
- "dependencies": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "dependencies": {
- "ansi-regex": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/strip-bom": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
- "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
- "dependencies": {
- "is-utf8": "^0.2.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/sver-compat": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz",
- "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=",
- "dependencies": {
- "es6-iterator": "^2.0.1",
- "es6-symbol": "^3.1.1"
- }
- },
- "node_modules/through2": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
- "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
- "dependencies": {
- "readable-stream": "~2.3.6",
- "xtend": "~4.0.1"
- }
- },
- "node_modules/through2-filter": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz",
- "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==",
- "dependencies": {
- "through2": "~2.0.0",
- "xtend": "~4.0.0"
- }
- },
- "node_modules/time-stamp": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz",
- "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/to-absolute-glob": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz",
- "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=",
- "dependencies": {
- "is-absolute": "^1.0.0",
- "is-negated-glob": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/to-object-path": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
- "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/to-object-path/node_modules/kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/to-regex": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
- "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
- "dependencies": {
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "regex-not": "^1.0.2",
- "safe-regex": "^1.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/to-regex-range": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
- "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
- "dependencies": {
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/to-regex/node_modules/extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
- "dependencies": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/to-regex/node_modules/is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "dependencies": {
- "is-plain-object": "^2.0.4"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/to-regex/node_modules/is-plain-object": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
- "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/to-through": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz",
- "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=",
- "dependencies": {
- "through2": "^2.0.3"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/type": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
- "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg=="
- },
- "node_modules/typedarray": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
- "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
- },
- "node_modules/unc-path-regex": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
- "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/undertaker": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz",
- "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==",
- "dependencies": {
- "arr-flatten": "^1.0.1",
- "arr-map": "^2.0.0",
- "bach": "^1.0.0",
- "collection-map": "^1.0.0",
- "es6-weak-map": "^2.0.1",
- "fast-levenshtein": "^1.0.0",
- "last-run": "^1.1.0",
- "object.defaults": "^1.0.0",
- "object.reduce": "^1.0.0",
- "undertaker-registry": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/undertaker-registry": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz",
- "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=",
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/union-value": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
- "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
- "dependencies": {
- "arr-union": "^3.1.0",
- "get-value": "^2.0.6",
- "is-extendable": "^0.1.1",
- "set-value": "^2.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/unique-stream": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz",
- "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==",
- "dependencies": {
- "json-stable-stringify-without-jsonify": "^1.0.1",
- "through2-filter": "^3.0.0"
- }
- },
- "node_modules/unset-value": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
- "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
- "dependencies": {
- "has-value": "^0.3.1",
- "isobject": "^3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/unset-value/node_modules/has-value": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
- "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
- "dependencies": {
- "get-value": "^2.0.3",
- "has-values": "^0.1.4",
- "isobject": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/unset-value/node_modules/has-value/node_modules/isobject": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
- "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
- "dependencies": {
- "isarray": "1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/unset-value/node_modules/has-values": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
- "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/upath": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
- "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
- "engines": {
- "node": ">=4",
- "yarn": "*"
- }
- },
- "node_modules/urix": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
- "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
- "deprecated": "Please see https://github.com/lydell/urix#deprecated"
- },
- "node_modules/use": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
- "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
- },
- "node_modules/v8flags": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz",
- "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==",
- "dependencies": {
- "homedir-polyfill": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/validate-npm-package-license": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
- "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
- "dependencies": {
- "spdx-correct": "^3.0.0",
- "spdx-expression-parse": "^3.0.0"
- }
- },
- "node_modules/value-or-function": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz",
- "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=",
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/vinyl": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz",
- "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==",
- "dependencies": {
- "clone": "^2.1.1",
- "clone-buffer": "^1.0.0",
- "clone-stats": "^1.0.0",
- "cloneable-readable": "^1.0.0",
- "remove-trailing-separator": "^1.0.1",
- "replace-ext": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/vinyl-fs": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz",
- "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==",
- "dependencies": {
- "fs-mkdirp-stream": "^1.0.0",
- "glob-stream": "^6.1.0",
- "graceful-fs": "^4.0.0",
- "is-valid-glob": "^1.0.0",
- "lazystream": "^1.0.0",
- "lead": "^1.0.0",
- "object.assign": "^4.0.4",
- "pumpify": "^1.3.5",
- "readable-stream": "^2.3.3",
- "remove-bom-buffer": "^3.0.0",
- "remove-bom-stream": "^1.2.0",
- "resolve-options": "^1.1.0",
- "through2": "^2.0.0",
- "to-through": "^2.0.0",
- "value-or-function": "^3.0.0",
- "vinyl": "^2.0.0",
- "vinyl-sourcemap": "^1.1.0"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/vinyl-sourcemap": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz",
- "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=",
- "dependencies": {
- "append-buffer": "^1.0.2",
- "convert-source-map": "^1.5.0",
- "graceful-fs": "^4.1.6",
- "normalize-path": "^2.1.1",
- "now-and-later": "^2.0.0",
- "remove-bom-buffer": "^3.0.0",
- "vinyl": "^2.0.0"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/vinyl-sourcemap/node_modules/normalize-path": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
- "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
- "dependencies": {
- "remove-trailing-separator": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/which": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "which": "bin/which"
- }
- },
- "node_modules/which-module": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
- "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8="
- },
- "node_modules/wrap-ansi": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
- "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
- "dependencies": {
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
- },
- "node_modules/xtend": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
- "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
- "engines": {
- "node": ">=0.4"
- }
- },
- "node_modules/y18n": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz",
- "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ=="
- },
- "node_modules/yargs": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.2.tgz",
- "integrity": "sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==",
- "dependencies": {
- "camelcase": "^3.0.0",
- "cliui": "^3.2.0",
- "decamelize": "^1.1.1",
- "get-caller-file": "^1.0.1",
- "os-locale": "^1.4.0",
- "read-pkg-up": "^1.0.1",
- "require-directory": "^2.1.1",
- "require-main-filename": "^1.0.1",
- "set-blocking": "^2.0.0",
- "string-width": "^1.0.2",
- "which-module": "^1.0.0",
- "y18n": "^3.2.1",
- "yargs-parser": "^5.0.1"
- }
- },
- "node_modules/yargs-parser": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz",
- "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==",
- "dependencies": {
- "camelcase": "^3.0.0",
- "object.assign": "^4.1.0"
- }
- }
- }
-}
diff --git a/node_modules/ansi-colors/LICENSE b/node_modules/ansi-colors/LICENSE
deleted file mode 100644
index b70671f..0000000
--- a/node_modules/ansi-colors/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015-2017, Brian Woodward.
-
-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/ansi-colors/README.md b/node_modules/ansi-colors/README.md
deleted file mode 100644
index 2e669fe..0000000
--- a/node_modules/ansi-colors/README.md
+++ /dev/null
@@ -1,105 +0,0 @@
-# ansi-colors [![NPM version](https://img.shields.io/npm/v/ansi-colors.svg?style=flat)](https://www.npmjs.com/package/ansi-colors) [![NPM monthly downloads](https://img.shields.io/npm/dm/ansi-colors.svg?style=flat)](https://npmjs.org/package/ansi-colors) [![NPM total downloads](https://img.shields.io/npm/dt/ansi-colors.svg?style=flat)](https://npmjs.org/package/ansi-colors) [![Linux Build Status](https://img.shields.io/travis/doowb/ansi-colors.svg?style=flat&label=Travis)](https://travis-ci.org/doowb/ansi-colors) [![Windows Build Status](https://img.shields.io/appveyor/ci/doowb/ansi-colors.svg?style=flat&label=AppVeyor)](https://ci.appveyor.com/project/doowb/ansi-colors)
-
-> Collection of ansi colors and styles.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save ansi-colors
-```
-
-## Usage
-
-This module exports an object of functions. Each function wraps a string with the ansi codes used to display the string with that color (or style). Use the wrapped string with `console.log`:
-
-```js
-var colors = require('ansi-colors');
-console.log(colors.bold(colors.cyan('[info]')), colors.cyan('This is some information'));
-console.log(colors.bold(colors.yellow('[warning]')), colors.yellow('This is a warning'));
-console.error(colors.bold(colors.red('[ERROR]')), colors.red('Danger! There was an error!'));
-```
-
-![image](https://user-images.githubusercontent.com/995160/34897845-3150daae-f7be-11e7-9706-38c42461e0ee.png)
-
-## Example
-
-See the [example](./example.js) for more colors and styles.
-
-## About
-
-### Related projects
-
-* [ansi-bgblack](https://www.npmjs.com/package/ansi-bgblack): The color bgblack, in ansi. | [homepage](https://github.com/jonschlinkert/ansi-bgblack "The color bgblack, in ansi.")
-* [ansi-bgblue](https://www.npmjs.com/package/ansi-bgblue): The color bgblue, in ansi. | [homepage](https://github.com/jonschlinkert/ansi-bgblue "The color bgblue, in ansi.")
-* [ansi-bgcyan](https://www.npmjs.com/package/ansi-bgcyan): The color bgcyan, in ansi. | [homepage](https://github.com/jonschlinkert/ansi-bgcyan "The color bgcyan, in ansi.")
-* [ansi-bggreen](https://www.npmjs.com/package/ansi-bggreen): The color bggreen, in ansi. | [homepage](https://github.com/jonschlinkert/ansi-bggreen "The color bggreen, in ansi.")
-* [ansi-bgmagenta](https://www.npmjs.com/package/ansi-bgmagenta): The color bgmagenta, in ansi. | [homepage](https://github.com/jonschlinkert/ansi-bgmagenta "The color bgmagenta, in ansi.")
-* [ansi-bgred](https://www.npmjs.com/package/ansi-bgred): The color bgred, in ansi. | [homepage](https://github.com/jonschlinkert/ansi-bgred "The color bgred, in ansi.")
-* [ansi-bgwhite](https://www.npmjs.com/package/ansi-bgwhite): The color bgwhite, in ansi. | [homepage](https://github.com/jonschlinkert/ansi-bgwhite "The color bgwhite, in ansi.")
-* [ansi-bgyellow](https://www.npmjs.com/package/ansi-bgyellow): The color bgyellow, in ansi. | [homepage](https://github.com/jonschlinkert/ansi-bgyellow "The color bgyellow, in ansi.")
-* [ansi-black](https://www.npmjs.com/package/ansi-black): The color black, in ansi. | [homepage](https://github.com/jonschlinkert/ansi-black "The color black, in ansi.")
-* [ansi-blue](https://www.npmjs.com/package/ansi-blue): The color blue, in ansi. | [homepage](https://github.com/jonschlinkert/ansi-blue "The color blue, in ansi.")
-* [ansi-bold](https://www.npmjs.com/package/ansi-bold): The color bold, in ansi. | [homepage](https://github.com/jonschlinkert/ansi-bold "The color bold, in ansi.")
-* [ansi-cyan](https://www.npmjs.com/package/ansi-cyan): The color cyan, in ansi. | [homepage](https://github.com/jonschlinkert/ansi-cyan "The color cyan, in ansi.")
-* [ansi-dim](https://www.npmjs.com/package/ansi-dim): The color dim, in ansi. | [homepage](https://github.com/jonschlinkert/ansi-dim "The color dim, in ansi.")
-* [ansi-gray](https://www.npmjs.com/package/ansi-gray): The color gray, in ansi. | [homepage](https://github.com/jonschlinkert/ansi-gray "The color gray, in ansi.")
-* [ansi-green](https://www.npmjs.com/package/ansi-green): The color green, in ansi. | [homepage](https://github.com/jonschlinkert/ansi-green "The color green, in ansi.")
-* [ansi-grey](https://www.npmjs.com/package/ansi-grey): The color grey, in ansi. | [homepage](https://github.com/jonschlinkert/ansi-grey "The color grey, in ansi.")
-* [ansi-hidden](https://www.npmjs.com/package/ansi-hidden): The color hidden, in ansi. | [homepage](https://github.com/jonschlinkert/ansi-hidden "The color hidden, in ansi.")
-* [ansi-inverse](https://www.npmjs.com/package/ansi-inverse): The color inverse, in ansi. | [homepage](https://github.com/jonschlinkert/ansi-inverse "The color inverse, in ansi.")
-* [ansi-italic](https://www.npmjs.com/package/ansi-italic): The color italic, in ansi. | [homepage](https://github.com/jonschlinkert/ansi-italic "The color italic, in ansi.")
-* [ansi-magenta](https://www.npmjs.com/package/ansi-magenta): The color magenta, in ansi. | [homepage](https://github.com/jonschlinkert/ansi-magenta "The color magenta, in ansi.")
-* [ansi-red](https://www.npmjs.com/package/ansi-red): The color red, in ansi. | [homepage](https://github.com/jonschlinkert/ansi-red "The color red, in ansi.")
-* [ansi-reset](https://www.npmjs.com/package/ansi-reset): The color reset, in ansi. | [homepage](https://github.com/jonschlinkert/ansi-reset "The color reset, in ansi.")
-* [ansi-strikethrough](https://www.npmjs.com/package/ansi-strikethrough): The color strikethrough, in ansi. | [homepage](https://github.com/jonschlinkert/ansi-strikethrough "The color strikethrough, in ansi.")
-* [ansi-underline](https://www.npmjs.com/package/ansi-underline): The color underline, in ansi. | [homepage](https://github.com/jonschlinkert/ansi-underline "The color underline, in ansi.")
-* [ansi-white](https://www.npmjs.com/package/ansi-white): The color white, in ansi. | [homepage](https://github.com/jonschlinkert/ansi-white "The color white, in ansi.")
-* [ansi-wrap](https://www.npmjs.com/package/ansi-wrap): Create ansi colors by passing the open and close codes. | [homepage](https://github.com/jonschlinkert/ansi-wrap "Create ansi colors by passing the open and close codes.")
-* [ansi-yellow](https://www.npmjs.com/package/ansi-yellow): The color yellow, in ansi. | [homepage](https://github.com/jonschlinkert/ansi-yellow "The color yellow, in ansi.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 10 | [doowb](https://github.com/doowb) |
-| 3 | [jonschlinkert](https://github.com/jonschlinkert) |
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Brian Woodward**
-
-* [github/doowb](https://github.com/doowb)
-* [twitter/doowb](https://twitter.com/doowb)
-
-### License
-
-Copyright © 2018, [Brian Woodward](https://github.com/doowb).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on January 12, 2018._
\ No newline at end of file
diff --git a/node_modules/ansi-colors/index.js b/node_modules/ansi-colors/index.js
deleted file mode 100644
index 37da67f..0000000
--- a/node_modules/ansi-colors/index.js
+++ /dev/null
@@ -1,456 +0,0 @@
-/*!
- * ansi-colors
- *
- * Copyright (c) 2015-2017, Brian Woodward.
- * Released under the MIT License.
- */
-
-'use strict';
-
-/**
- * Module dependencies
- */
-
-var wrap = require('ansi-wrap');
-
-/**
- * Wrap a string with ansi codes to create a black background.
- *
- * ```js
- * console.log(colors.bgblack('some string'));
- * ```
- *
- * @param {string} message String to wrap with ansi codes.
- * @return {string} Wrapped string
- * @api public
- * @name bgblack
- */
-
-exports.bgblack = function bgblack(message) {
- return wrap(40, 49, message);
-};
-
-/**
- * Wrap a string with ansi codes to create a blue background.
- *
- * ```js
- * console.log(colors.bgblue('some string'));
- * ```
- *
- * @param {string} message String to wrap with ansi codes.
- * @return {string} Wrapped string
- * @api public
- * @name bgblue
- */
-
-exports.bgblue = function bgblue(message) {
- return wrap(44, 49, message);
-};
-
-/**
- * Wrap a string with ansi codes to create a cyan background.
- *
- * ```js
- * console.log(colors.bgcyan('some string'));
- * ```
- *
- * @param {string} message String to wrap with ansi codes.
- * @return {string} Wrapped string
- * @api public
- * @name bgcyan
- */
-
-exports.bgcyan = function bgcyan(message) {
- return wrap(46, 49, message);
-};
-
-/**
- * Wrap a string with ansi codes to create a green background.
- *
- * ```js
- * console.log(colors.bggreen('some string'));
- * ```
- *
- * @param {string} message String to wrap with ansi codes.
- * @return {string} Wrapped string
- * @api public
- * @name bggreen
- */
-
-exports.bggreen = function bggreen(message) {
- return wrap(42, 49, message);
-};
-
-/**
- * Wrap a string with ansi codes to create a magenta background.
- *
- * ```js
- * console.log(colors.bgmagenta('some string'));
- * ```
- *
- * @param {string} message String to wrap with ansi codes.
- * @return {string} Wrapped string
- * @api public
- * @name bgmagenta
- */
-
-exports.bgmagenta = function bgmagenta(message) {
- return wrap(45, 49, message);
-};
-
-/**
- * Wrap a string with ansi codes to create a red background.
- *
- * ```js
- * console.log(colors.bgred('some string'));
- * ```
- *
- * @param {string} message String to wrap with ansi codes.
- * @return {string} Wrapped string
- * @api public
- * @name bgred
- */
-
-exports.bgred = function bgred(message) {
- return wrap(41, 49, message);
-};
-
-/**
- * Wrap a string with ansi codes to create a white background.
- *
- * ```js
- * console.log(colors.bgwhite('some string'));
- * ```
- *
- * @param {string} message String to wrap with ansi codes.
- * @return {string} Wrapped string
- * @api public
- * @name bgwhite
- */
-
-exports.bgwhite = function bgwhite(message) {
- return wrap(47, 49, message);
-};
-
-/**
- * Wrap a string with ansi codes to create a yellow background.
- *
- * ```js
- * console.log(colors.bgyellow('some string'));
- * ```
- *
- * @param {string} message String to wrap with ansi codes.
- * @return {string} Wrapped string
- * @api public
- * @name bgyellow
- */
-
-exports.bgyellow = function bgyellow(message) {
- return wrap(43, 49, message);
-};
-
-/**
- * Wrap a string with ansi codes to create black text.
- *
- * ```js
- * console.log(colors.black('some string'));
- * ```
- *
- * @param {string} message String to wrap with ansi codes.
- * @return {string} Wrapped string
- * @api public
- * @name black
- */
-
-exports.black = function black(message) {
- return wrap(30, 39, message);
-};
-
-/**
- * Wrap a string with ansi codes to create blue text.
- *
- * ```js
- * console.log(colors.blue('some string'));
- * ```
- *
- * @param {string} message String to wrap with ansi codes.
- * @return {string} Wrapped string
- * @api public
- * @name blue
- */
-
-exports.blue = function blue(message) {
- return wrap(34, 39, message);
-};
-
-/**
- * Wrap a string with ansi codes to create bold text.
- *
- * ```js
- * console.log(colors.bold('some string'));
- * ```
- *
- * @param {string} message String to wrap with ansi codes.
- * @return {string} Wrapped string
- * @api public
- * @name bold
- */
-
-exports.bold = function bold(message) {
- return wrap(1, 22, message);
-};
-
-/**
- * Wrap a string with ansi codes to create cyan text.
- *
- * ```js
- * console.log(colors.cyan('some string'));
- * ```
- *
- * @param {string} message String to wrap with ansi codes.
- * @return {string} Wrapped string
- * @api public
- * @name cyan
- */
-
-exports.cyan = function cyan(message) {
- return wrap(36, 39, message);
-};
-
-/**
- * Wrap a string with ansi codes to create dim text.
- *
- * ```js
- * console.log(colors.dim('some string'));
- * ```
- *
- * @param {string} message String to wrap with ansi codes.
- * @return {string} Wrapped string
- * @api public
- * @name dim
- */
-
-exports.dim = function dim(message) {
- return wrap(2, 22, message);
-};
-
-/**
- * Wrap a string with ansi codes to create gray text.
- *
- * ```js
- * console.log(colors.gray('some string'));
- * ```
- *
- * @param {string} message String to wrap with ansi codes.
- * @return {string} Wrapped string
- * @api public
- * @name gray
- */
-
-exports.gray = function gray(message) {
- return wrap(90, 39, message);
-};
-
-/**
- * Wrap a string with ansi codes to create green text.
- *
- * ```js
- * console.log(colors.green('some string'));
- * ```
- *
- * @param {string} message String to wrap with ansi codes.
- * @return {string} Wrapped string
- * @api public
- * @name green
- */
-
-exports.green = function green(message) {
- return wrap(32, 39, message);
-};
-
-/**
- * Wrap a string with ansi codes to create grey text.
- *
- * ```js
- * console.log(colors.grey('some string'));
- * ```
- *
- * @param {string} message String to wrap with ansi codes.
- * @return {string} Wrapped string
- * @api public
- * @name grey
- */
-
-exports.grey = function grey(message) {
- return wrap(90, 39, message);
-};
-
-/**
- * Wrap a string with ansi codes to create hidden text.
- *
- * ```js
- * console.log(colors.hidden('some string'));
- * ```
- *
- * @param {string} message String to wrap with ansi codes.
- * @return {string} Wrapped string
- * @api public
- * @name hidden
- */
-
-exports.hidden = function hidden(message) {
- return wrap(8, 28, message);
-};
-
-/**
- * Wrap a string with ansi codes to create inverse text.
- *
- * ```js
- * console.log(colors.inverse('some string'));
- * ```
- *
- * @param {string} message String to wrap with ansi codes.
- * @return {string} Wrapped string
- * @api public
- * @name inverse
- */
-
-exports.inverse = function inverse(message) {
- return wrap(7, 27, message);
-};
-
-/**
- * Wrap a string with ansi codes to create italic text.
- *
- * ```js
- * console.log(colors.italic('some string'));
- * ```
- *
- * @param {string} message String to wrap with ansi codes.
- * @return {string} Wrapped string
- * @api public
- * @name italic
- */
-
-exports.italic = function italic(message) {
- return wrap(3, 23, message);
-};
-
-/**
- * Wrap a string with ansi codes to create magenta text.
- *
- * ```js
- * console.log(colors.magenta('some string'));
- * ```
- *
- * @param {string} message String to wrap with ansi codes.
- * @return {string} Wrapped string
- * @api public
- * @name magenta
- */
-
-exports.magenta = function magenta(message) {
- return wrap(35, 39, message);
-};
-
-/**
- * Wrap a string with ansi codes to create red text.
- *
- * ```js
- * console.log(colors.red('some string'));
- * ```
- *
- * @param {string} message String to wrap with ansi codes.
- * @return {string} Wrapped string
- * @api public
- * @name red
- */
-
-exports.red = function red(message) {
- return wrap(31, 39, message);
-};
-
-/**
- * Wrap a string with ansi codes to reset ansi colors currently on the string.
- *
- * ```js
- * console.log(colors.reset('some string'));
- * ```
- *
- * @param {string} message String to wrap with ansi codes.
- * @return {string} Wrapped string
- * @api public
- * @name reset
- */
-
-exports.reset = function reset(message) {
- return wrap(0, 0, message);
-};
-
-/**
- * Wrap a string with ansi codes to add a strikethrough to the text.
- *
- * ```js
- * console.log(colors.strikethrough('some string'));
- * ```
- *
- * @param {string} message String to wrap with ansi codes.
- * @return {string} Wrapped string
- * @api public
- * @name strikethrough
- */
-
-exports.strikethrough = function strikethrough(message) {
- return wrap(9, 29, message);
-};
-
-/**
- * Wrap a string with ansi codes to underline the text.
- *
- * ```js
- * console.log(colors.underline('some string'));
- * ```
- *
- * @param {string} message String to wrap with ansi codes.
- * @return {string} Wrapped string
- * @api public
- * @name underline
- */
-
-exports.underline = function underline(message) {
- return wrap(4, 24, message);
-};
-
-/**
- * Wrap a string with ansi codes to create white text.
- *
- * ```js
- * console.log(colors.white('some string'));
- * ```
- *
- * @param {string} message String to wrap with ansi codes.
- * @return {string} Wrapped string
- * @api public
- * @name white
- */
-
-exports.white = function white(message) {
- return wrap(37, 39, message);
-};
-
-/**
- * Wrap a string with ansi codes to create yellow text.
- *
- * ```js
- * console.log(colors.yellow('some string'));
- * ```
- *
- * @param {string} message String to wrap with ansi codes.
- * @return {string} Wrapped string
- * @api public
- * @name yellow
- */
-
-exports.yellow = function yellow(message) {
- return wrap(33, 39, message);
-};
diff --git a/node_modules/ansi-colors/package.json b/node_modules/ansi-colors/package.json
deleted file mode 100644
index a042a34..0000000
--- a/node_modules/ansi-colors/package.json
+++ /dev/null
@@ -1,138 +0,0 @@
-{
- "name": "ansi-colors",
- "description": "Collection of ansi colors and styles.",
- "version": "1.1.0",
- "homepage": "https://github.com/doowb/ansi-colors",
- "author": "Brian Woodward (https://github.com/doowb)",
- "contributors": [
- "Brian Woodward (https://twitter.com/doowb)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)"
- ],
- "repository": "doowb/ansi-colors",
- "bugs": {
- "url": "https://github.com/doowb/ansi-colors/issues"
- },
- "license": "MIT",
- "files": [
- "index.js",
- "types/index.d.ts"
- ],
- "main": "index.js",
- "types": "./types/index.d.ts",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha && tsc --project types"
- },
- "dependencies": {
- "ansi-wrap": "^0.1.0"
- },
- "devDependencies": {
- "gulp-format-md": "^1.0.0",
- "mocha": "^3.5.3",
- "typescript": "^2.7.1"
- },
- "keywords": [
- "ansi-bgblack",
- "ansi-bgblue",
- "ansi-bgcyan",
- "ansi-bggreen",
- "ansi-bgmagenta",
- "ansi-bgred",
- "ansi-bgwhite",
- "ansi-bgyellow",
- "ansi-black",
- "ansi-blue",
- "ansi-bold",
- "ansi-cyan",
- "ansi-dim",
- "ansi-gray",
- "ansi-green",
- "ansi-grey",
- "ansi-hidden",
- "ansi-inverse",
- "ansi-italic",
- "ansi-magenta",
- "ansi-red",
- "ansi-reset",
- "ansi-strikethrough",
- "ansi-underline",
- "ansi-white",
- "ansi-yellow",
- "bgblack",
- "bgblue",
- "bgcyan",
- "bggreen",
- "bgmagenta",
- "bgred",
- "bgwhite",
- "bgyellow",
- "black",
- "blue",
- "bold",
- "cyan",
- "dim",
- "gray",
- "green",
- "grey",
- "hidden",
- "inverse",
- "italic",
- "magenta",
- "red",
- "reset",
- "strikethrough",
- "underline",
- "white",
- "yellow"
- ],
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- },
- "reflinks": [
- "verb-readme-generator",
- "verb"
- ],
- "related": {
- "list": [
- "ansi-bgblack",
- "ansi-bgblue",
- "ansi-bgcyan",
- "ansi-bggreen",
- "ansi-bgmagenta",
- "ansi-bgred",
- "ansi-bgwhite",
- "ansi-bgyellow",
- "ansi-black",
- "ansi-blue",
- "ansi-bold",
- "ansi-cyan",
- "ansi-dim",
- "ansi-gray",
- "ansi-green",
- "ansi-grey",
- "ansi-hidden",
- "ansi-inverse",
- "ansi-italic",
- "ansi-magenta",
- "ansi-red",
- "ansi-reset",
- "ansi-strikethrough",
- "ansi-underline",
- "ansi-white",
- "ansi-wrap",
- "ansi-yellow"
- ]
- }
- }
-}
diff --git a/node_modules/ansi-colors/types/index.d.ts b/node_modules/ansi-colors/types/index.d.ts
deleted file mode 100644
index 5f216a8..0000000
--- a/node_modules/ansi-colors/types/index.d.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-// Imported from from DefinitelyTyped project.
-// TypeScript definitions for ansi-colors
-// Definitions by: Rogier Schouten
-// Integrated by: Jordan Mele
-
-export function bgblack(message: string): string;
-export function bgblue(message: string): string;
-export function bgcyan(message: string): string;
-export function bggreen(message: string): string;
-export function bgmagenta(message: string): string;
-export function bgred(message: string): string;
-export function bgwhite(message: string): string;
-export function bgyellow(message: string): string;
-export function black(message: string): string;
-export function blue(message: string): string;
-export function bold(message: string): string;
-export function cyan(message: string): string;
-export function dim(message: string): string;
-export function gray(message: string): string;
-export function green(message: string): string;
-export function grey(message: string): string;
-export function hidden(message: string): string;
-export function inverse(message: string): string;
-export function italic(message: string): string;
-export function magenta(message: string): string;
-export function red(message: string): string;
-export function reset(message: string): string;
-export function strikethrough(message: string): string;
-export function underline(message: string): string;
-export function white(message: string): string;
-export function yellow(message: string): string;
diff --git a/node_modules/ansi-gray/LICENSE b/node_modules/ansi-gray/LICENSE
deleted file mode 100644
index 41283c9..0000000
--- a/node_modules/ansi-gray/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) <%= year() %>, 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/ansi-gray/index.js b/node_modules/ansi-gray/index.js
deleted file mode 100644
index c22176a..0000000
--- a/node_modules/ansi-gray/index.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/*!
- * ansi-gray
- *
- * Copyright (c) 2015, Jon Schlinkert.
- * Licensed under the MIT License.
- */
-
-'use strict';
-
-var wrap = require('ansi-wrap');
-
-module.exports = function gray(message) {
- return wrap(90, 39, message);
-};
diff --git a/node_modules/ansi-gray/package.json b/node_modules/ansi-gray/package.json
deleted file mode 100644
index a35e962..0000000
--- a/node_modules/ansi-gray/package.json
+++ /dev/null
@@ -1,55 +0,0 @@
-{
- "name": "ansi-gray",
- "description": "The color gray, in ansi.",
- "version": "0.1.1",
- "homepage": "https://github.com/jonschlinkert/ansi-gray",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/ansi-gray",
- "bugs": {
- "url": "https://github.com/jonschlinkert/ansi-gray/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "ansi-wrap": "0.1.0"
- },
- "devDependencies": {
- "mocha": "*"
- },
- "keywords": [
- "gray",
- "256",
- "ansi",
- "cli",
- "color",
- "colors",
- "colour",
- "command",
- "command-line",
- "console",
- "format",
- "formatting",
- "iterm",
- "log",
- "logging",
- "rgb",
- "shell",
- "string",
- "style",
- "styles",
- "styling",
- "terminal",
- "text",
- "tty",
- "xterm"
- ]
-}
diff --git a/node_modules/ansi-gray/readme.md b/node_modules/ansi-gray/readme.md
deleted file mode 100644
index 9b59a29..0000000
--- a/node_modules/ansi-gray/readme.md
+++ /dev/null
@@ -1,74 +0,0 @@
-# ansi-gray [![NPM version](https://badge.fury.io/js/ansi-gray.svg)](http://badge.fury.io/js/ansi-gray)
-
-> The color gray, in ansi.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/)
-
-```sh
-$ npm i ansi-gray --save
-```
-
-## Usage
-
-```js
-var gray = require('ansi-gray');
-```
-
-## Related projects
-
-* [ansi-reset](https://github.com/jonschlinkert/ansi-reset)
-* [ansi-bold](https://github.com/jonschlinkert/ansi-bold)
-* [ansi-dim](https://github.com/jonschlinkert/ansi-dim)
-* [ansi-italic](https://github.com/jonschlinkert/ansi-italic)
-* [ansi-underline](https://github.com/jonschlinkert/ansi-underline)
-* [ansi-inverse](https://github.com/jonschlinkert/ansi-inverse)
-* [ansi-hidden](https://github.com/jonschlinkert/ansi-hidden)
-* [ansi-strikethrough](https://github.com/jonschlinkert/ansi-strikethrough)
-* [ansi-black](https://github.com/jonschlinkert/ansi-black)
-* [ansi-red](https://github.com/jonschlinkert/ansi-red)
-* [ansi-green](https://github.com/jonschlinkert/ansi-green)
-* [ansi-yellow](https://github.com/jonschlinkert/ansi-yellow)
-* [ansi-blue](https://github.com/jonschlinkert/ansi-blue)
-* [ansi-magenta](https://github.com/jonschlinkert/ansi-magenta)
-* [ansi-cyan](https://github.com/jonschlinkert/ansi-cyan)
-* [ansi-white](https://github.com/jonschlinkert/ansi-white)
-* [ansi-gray](https://github.com/jonschlinkert/ansi-gray)
-* [ansi-grey](https://github.com/jonschlinkert/ansi-grey)
-* [ansi-bgblack](https://github.com/jonschlinkert/ansi-bgblack)
-* [ansi-bgred](https://github.com/jonschlinkert/ansi-bgred)
-* [ansi-bggreen](https://github.com/jonschlinkert/ansi-bggreen)
-* [ansi-bgyellow](https://github.com/jonschlinkert/ansi-bgyellow)
-* [ansi-bgblue](https://github.com/jonschlinkert/ansi-bgblue)
-* [ansi-bgmagenta](https://github.com/jonschlinkert/ansi-bgmagenta)
-* [ansi-bgcyan](https://github.com/jonschlinkert/ansi-bgcyan)
-* [ansi-bgwhite](https://github.com/jonschlinkert/ansi-bgwhite)
-
-## Running tests
-
-Install dev dependencies:
-
-```sh
-$ npm i -d && npm test
-```
-
-## Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/ansi-gray/issues/new)
-
-## 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 May 21, 2015._
\ No newline at end of file
diff --git a/node_modules/ansi-regex/index.js b/node_modules/ansi-regex/index.js
deleted file mode 100644
index b9574ed..0000000
--- a/node_modules/ansi-regex/index.js
+++ /dev/null
@@ -1,4 +0,0 @@
-'use strict';
-module.exports = function () {
- return /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-PRZcf-nqry=><]/g;
-};
diff --git a/node_modules/ansi-regex/license b/node_modules/ansi-regex/license
deleted file mode 100644
index 654d0bf..0000000
--- a/node_modules/ansi-regex/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus (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/ansi-regex/package.json b/node_modules/ansi-regex/package.json
deleted file mode 100644
index eb44fb5..0000000
--- a/node_modules/ansi-regex/package.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{
- "name": "ansi-regex",
- "version": "2.1.1",
- "description": "Regular expression for matching ANSI escape codes",
- "license": "MIT",
- "repository": "chalk/ansi-regex",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "maintainers": [
- "Sindre Sorhus (sindresorhus.com)",
- "Joshua Appelman (jbnicolai.com)",
- "JD Ballard (github.com/qix-)"
- ],
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "xo && ava --verbose",
- "view-supported": "node fixtures/view-codes.js"
- },
- "files": [
- "index.js"
- ],
- "keywords": [
- "ansi",
- "styles",
- "color",
- "colour",
- "colors",
- "terminal",
- "console",
- "cli",
- "string",
- "tty",
- "escape",
- "formatting",
- "rgb",
- "256",
- "shell",
- "xterm",
- "command-line",
- "text",
- "regex",
- "regexp",
- "re",
- "match",
- "test",
- "find",
- "pattern"
- ],
- "devDependencies": {
- "ava": "0.17.0",
- "xo": "0.16.0"
- },
- "xo": {
- "rules": {
- "guard-for-in": 0,
- "no-loop-func": 0
- }
- }
-}
diff --git a/node_modules/ansi-regex/readme.md b/node_modules/ansi-regex/readme.md
deleted file mode 100644
index 6a928ed..0000000
--- a/node_modules/ansi-regex/readme.md
+++ /dev/null
@@ -1,39 +0,0 @@
-# ansi-regex [![Build Status](https://travis-ci.org/chalk/ansi-regex.svg?branch=master)](https://travis-ci.org/chalk/ansi-regex)
-
-> Regular expression for matching [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code)
-
-
-## Install
-
-```
-$ npm install --save ansi-regex
-```
-
-
-## Usage
-
-```js
-const ansiRegex = require('ansi-regex');
-
-ansiRegex().test('\u001b[4mcake\u001b[0m');
-//=> true
-
-ansiRegex().test('cake');
-//=> false
-
-'\u001b[4mcake\u001b[0m'.match(ansiRegex());
-//=> ['\u001b[4m', '\u001b[0m']
-```
-
-## FAQ
-
-### Why do you test for codes not in the ECMA 48 standard?
-
-Some of the codes we run as a test are codes that we acquired finding various lists of non-standard or manufacturer specific codes. If I recall correctly, we test for both standard and non-standard codes, as most of them follow the same or similar format and can be safely matched in strings without the risk of removing actual string content. There are a few non-standard control codes that do not follow the traditional format (i.e. they end in numbers) thus forcing us to exclude them from the test because we cannot reliably match them.
-
-On the historical side, those ECMA standards were established in the early 90's whereas the VT100, for example, was designed in the mid/late 70's. At that point in time, control codes were still pretty ungoverned and engineers used them for a multitude of things, namely to activate hardware ports that may have been proprietary. Somewhere else you see a similar 'anarchy' of codes is in the x86 architecture for processors; there are a ton of "interrupts" that can mean different things on certain brands of processors, most of which have been phased out.
-
-
-## License
-
-MIT © [Sindre Sorhus](http://sindresorhus.com)
diff --git a/node_modules/ansi-wrap/LICENSE b/node_modules/ansi-wrap/LICENSE
deleted file mode 100644
index 65f90ac..0000000
--- a/node_modules/ansi-wrap/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015, 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/ansi-wrap/README.md b/node_modules/ansi-wrap/README.md
deleted file mode 100644
index 032c1e6..0000000
--- a/node_modules/ansi-wrap/README.md
+++ /dev/null
@@ -1,89 +0,0 @@
-# ansi-wrap [![NPM version](https://badge.fury.io/js/ansi-wrap.svg)](http://badge.fury.io/js/ansi-wrap)
-
-> Create ansi colors by passing the open and close codes.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/)
-
-```sh
-$ npm i ansi-wrap --save
-```
-
-## Usage
-
-```js
-var wrap = require('ansi-wrap');
-```
-
-**Example**
-
-Pass codes for [ansi magenta background](https://github.com/jonschlinkert/ansi-bgmagenta):
-
-```js
-console.log(wrap(45, 49, 'This is a message...'));
-//=> '\u001b[45mfoo\u001b[49m'
-```
-
-Which prints out...
-
-[![screen shot 2015-05-21 at 8 28 32 pm](https://cloud.githubusercontent.com/assets/383994/7761769/12488afa-fff8-11e4-9cc1-71a8a6ec14a4.png)](https://www.npmjs.com/)
-
-## Related projects
-
-This is used in these projects:
-
-* [ansi-reset](https://github.com/jonschlinkert/ansi-reset)
-* [ansi-bold](https://github.com/jonschlinkert/ansi-bold)
-* [ansi-dim](https://github.com/jonschlinkert/ansi-dim)
-* [ansi-italic](https://github.com/jonschlinkert/ansi-italic)
-* [ansi-underline](https://github.com/jonschlinkert/ansi-underline)
-* [ansi-inverse](https://github.com/jonschlinkert/ansi-inverse)
-* [ansi-hidden](https://github.com/jonschlinkert/ansi-hidden)
-* [ansi-strikethrough](https://github.com/jonschlinkert/ansi-strikethrough)
-* [ansi-black](https://github.com/jonschlinkert/ansi-black)
-* [ansi-red](https://github.com/jonschlinkert/ansi-red)
-* [ansi-green](https://github.com/jonschlinkert/ansi-green)
-* [ansi-yellow](https://github.com/jonschlinkert/ansi-yellow)
-* [ansi-blue](https://github.com/jonschlinkert/ansi-blue)
-* [ansi-magenta](https://github.com/jonschlinkert/ansi-magenta)
-* [ansi-cyan](https://github.com/jonschlinkert/ansi-cyan)
-* [ansi-white](https://github.com/jonschlinkert/ansi-white)
-* [ansi-gray](https://github.com/jonschlinkert/ansi-gray)
-* [ansi-grey](https://github.com/jonschlinkert/ansi-grey)
-* [ansi-bgblack](https://github.com/jonschlinkert/ansi-bgblack)
-* [ansi-bgred](https://github.com/jonschlinkert/ansi-bgred)
-* [ansi-bggreen](https://github.com/jonschlinkert/ansi-bggreen)
-* [ansi-bgyellow](https://github.com/jonschlinkert/ansi-bgyellow)
-* [ansi-bgblue](https://github.com/jonschlinkert/ansi-bgblue)
-* [ansi-bgmagenta](https://github.com/jonschlinkert/ansi-bgmagenta)
-* [ansi-bgcyan](https://github.com/jonschlinkert/ansi-bgcyan)
-* [ansi-bgwhite](https://github.com/jonschlinkert/ansi-bgwhite)
-
-## Running tests
-
-Install dev dependencies:
-
-```sh
-$ npm i -d && npm test
-```
-
-## Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/ansi-wrap/issues/new)
-
-## 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 May 21, 2015._
\ No newline at end of file
diff --git a/node_modules/ansi-wrap/index.js b/node_modules/ansi-wrap/index.js
deleted file mode 100644
index ffc52d7..0000000
--- a/node_modules/ansi-wrap/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-'use strict';
-
-module.exports = function(a, b, msg) {
- return '\u001b['+ a + 'm' + msg + '\u001b[' + b + 'm';
-};
diff --git a/node_modules/ansi-wrap/package.json b/node_modules/ansi-wrap/package.json
deleted file mode 100644
index f3c2916..0000000
--- a/node_modules/ansi-wrap/package.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "name": "ansi-wrap",
- "description": "Create ansi colors by passing the open and close codes.",
- "version": "0.1.0",
- "homepage": "https://github.com/jonschlinkert/ansi-wrap",
- "author": {
- "name": "Jon Schlinkert",
- "url": "https://github.com/jonschlinkert"
- },
- "repository": {
- "type": "git",
- "url": "https://github.com/jonschlinkert/ansi-wrap.git"
- },
- "bugs": {
- "url": "https://github.com/jonschlinkert/ansi-wrap/issues"
- },
- "license": {
- "type": "MIT",
- "url": "https://github.com/jonschlinkert/ansi-wrap/blob/master/LICENSE"
- },
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {},
- "devDependencies": {},
- "keywords": []
-}
\ No newline at end of file
diff --git a/node_modules/anymatch/LICENSE b/node_modules/anymatch/LICENSE
deleted file mode 100644
index bc42470..0000000
--- a/node_modules/anymatch/LICENSE
+++ /dev/null
@@ -1,15 +0,0 @@
-The ISC License
-
-Copyright (c) 2014 Elan Shanker
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/node_modules/anymatch/README.md b/node_modules/anymatch/README.md
deleted file mode 100644
index f674f40..0000000
--- a/node_modules/anymatch/README.md
+++ /dev/null
@@ -1,99 +0,0 @@
-anymatch [![Build Status](https://travis-ci.org/micromatch/anymatch.svg?branch=master)](https://travis-ci.org/micromatch/anymatch) [![Coverage Status](https://img.shields.io/coveralls/micromatch/anymatch.svg?branch=master)](https://coveralls.io/r/micromatch/anymatch?branch=master)
-======
-Javascript module to match a string against a regular expression, glob, string,
-or function that takes the string as an argument and returns a truthy or falsy
-value. The matcher can also be an array of any or all of these. Useful for
-allowing a very flexible user-defined config to define things like file paths.
-
-__Note: This module has Bash-parity, please be aware that Windows-style backslashes are not supported as separators. See https://github.com/micromatch/micromatch#backslashes for more information.__
-
-[![NPM](https://nodei.co/npm/anymatch.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/anymatch/)
-[![NPM](https://nodei.co/npm-dl/anymatch.png?height=3&months=9)](https://nodei.co/npm-dl/anymatch/)
-
-Usage
------
-```sh
-npm install anymatch --save
-```
-
-#### anymatch (matchers, testString, [returnIndex], [startIndex], [endIndex])
-* __matchers__: (_Array|String|RegExp|Function_)
-String to be directly matched, string with glob patterns, regular expression
-test, function that takes the testString as an argument and returns a truthy
-value if it should be matched, or an array of any number and mix of these types.
-* __testString__: (_String|Array_) The string to test against the matchers. If
-passed as an array, the first element of the array will be used as the
-`testString` for non-function matchers, while the entire array will be applied
-as the arguments for function matchers.
-* __returnIndex__: (_Boolean [optional]_) If true, return the array index of
-the first matcher that that testString matched, or -1 if no match, instead of a
-boolean result.
-* __startIndex, endIndex__: (_Integer [optional]_) Can be used to define a
-subset out of the array of provided matchers to test against. Can be useful
-with bound matcher functions (see below). When used with `returnIndex = true`
-preserves original indexing. Behaves the same as `Array.prototype.slice` (i.e.
-includes array members up to, but not including endIndex).
-
-```js
-var anymatch = require('anymatch');
-
-var matchers = [
- 'path/to/file.js',
- 'path/anyjs/**/*.js',
- /foo\.js$/,
- function (string) {
- return string.indexOf('bar') !== -1 && string.length > 10
- }
-];
-
-anymatch(matchers, 'path/to/file.js'); // true
-anymatch(matchers, 'path/anyjs/baz.js'); // true
-anymatch(matchers, 'path/to/foo.js'); // true
-anymatch(matchers, 'path/to/bar.js'); // true
-anymatch(matchers, 'bar.js'); // false
-
-// returnIndex = true
-anymatch(matchers, 'foo.js', true); // 2
-anymatch(matchers, 'path/anyjs/foo.js', true); // 1
-
-// skip matchers
-anymatch(matchers, 'path/to/file.js', false, 1); // false
-anymatch(matchers, 'path/anyjs/foo.js', true, 2, 3); // 2
-anymatch(matchers, 'path/to/bar.js', true, 0, 3); // -1
-
-// using globs to match directories and their children
-anymatch('node_modules', 'node_modules'); // true
-anymatch('node_modules', 'node_modules/somelib/index.js'); // false
-anymatch('node_modules/**', 'node_modules/somelib/index.js'); // true
-anymatch('node_modules/**', '/absolute/path/to/node_modules/somelib/index.js'); // false
-anymatch('**/node_modules/**', '/absolute/path/to/node_modules/somelib/index.js'); // true
-```
-
-#### anymatch (matchers)
-You can also pass in only your matcher(s) to get a curried function that has
-already been bound to the provided matching criteria. This can be used as an
-`Array.prototype.filter` callback.
-
-```js
-var matcher = anymatch(matchers);
-
-matcher('path/to/file.js'); // true
-matcher('path/anyjs/baz.js', true); // 1
-matcher('path/anyjs/baz.js', true, 2); // -1
-
-['foo.js', 'bar.js'].filter(matcher); // ['foo.js']
-```
-
-Change Log
-----------
-[See release notes page on GitHub](https://github.com/micromatch/anymatch/releases)
-
-NOTE: As of v2.0.0, [micromatch](https://github.com/jonschlinkert/micromatch) moves away from minimatch-parity and inline with Bash. This includes handling backslashes differently (see https://github.com/micromatch/micromatch#backslashes for more information).
-
-NOTE: As of v1.2.0, anymatch uses [micromatch](https://github.com/jonschlinkert/micromatch)
-for glob pattern matching. Issues with glob pattern matching should be
-reported directly to the [micromatch issue tracker](https://github.com/jonschlinkert/micromatch/issues).
-
-License
--------
-[ISC](https://raw.github.com/micromatch/anymatch/master/LICENSE)
diff --git a/node_modules/anymatch/index.js b/node_modules/anymatch/index.js
deleted file mode 100644
index e411618..0000000
--- a/node_modules/anymatch/index.js
+++ /dev/null
@@ -1,67 +0,0 @@
-'use strict';
-
-var micromatch = require('micromatch');
-var normalize = require('normalize-path');
-var path = require('path'); // required for tests.
-var arrify = function(a) { return a == null ? [] : (Array.isArray(a) ? a : [a]); };
-
-var anymatch = function(criteria, value, returnIndex, startIndex, endIndex) {
- criteria = arrify(criteria);
- value = arrify(value);
- if (arguments.length === 1) {
- return anymatch.bind(null, criteria.map(function(criterion) {
- return typeof criterion === 'string' && criterion[0] !== '!' ?
- micromatch.matcher(criterion) : criterion;
- }));
- }
- startIndex = startIndex || 0;
- var string = value[0];
- var altString, altValue;
- var matched = false;
- var matchIndex = -1;
- function testCriteria(criterion, index) {
- var result;
- switch (Object.prototype.toString.call(criterion)) {
- case '[object String]':
- result = string === criterion || altString && altString === criterion;
- result = result || micromatch.isMatch(string, criterion);
- break;
- case '[object RegExp]':
- result = criterion.test(string) || altString && criterion.test(altString);
- break;
- case '[object Function]':
- result = criterion.apply(null, value);
- result = result || altValue && criterion.apply(null, altValue);
- break;
- default:
- result = false;
- }
- if (result) {
- matchIndex = index + startIndex;
- }
- return result;
- }
- var crit = criteria;
- var negGlobs = crit.reduce(function(arr, criterion, index) {
- if (typeof criterion === 'string' && criterion[0] === '!') {
- if (crit === criteria) {
- // make a copy before modifying
- crit = crit.slice();
- }
- crit[index] = null;
- arr.push(criterion.substr(1));
- }
- return arr;
- }, []);
- if (!negGlobs.length || !micromatch.any(string, negGlobs)) {
- if (path.sep === '\\' && typeof string === 'string') {
- altString = normalize(string);
- altString = altString === string ? null : altString;
- if (altString) altValue = [altString].concat(value.slice(1));
- }
- matched = crit.slice(startIndex, endIndex).some(testCriteria);
- }
- return returnIndex === true ? matchIndex : matched;
-};
-
-module.exports = anymatch;
diff --git a/node_modules/anymatch/node_modules/normalize-path/LICENSE b/node_modules/anymatch/node_modules/normalize-path/LICENSE
deleted file mode 100644
index d734237..0000000
--- a/node_modules/anymatch/node_modules/normalize-path/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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/anymatch/node_modules/normalize-path/README.md b/node_modules/anymatch/node_modules/normalize-path/README.md
deleted file mode 100644
index daa0edd..0000000
--- a/node_modules/anymatch/node_modules/normalize-path/README.md
+++ /dev/null
@@ -1,92 +0,0 @@
-# normalize-path [![NPM version](https://img.shields.io/npm/v/normalize-path.svg?style=flat)](https://www.npmjs.com/package/normalize-path) [![NPM monthly downloads](https://img.shields.io/npm/dm/normalize-path.svg?style=flat)](https://npmjs.org/package/normalize-path) [![NPM total downloads](https://img.shields.io/npm/dt/normalize-path.svg?style=flat)](https://npmjs.org/package/normalize-path) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/normalize-path.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/normalize-path)
-
-> Normalize file path slashes to be unix-like forward slashes. Also condenses repeat slashes to a single slash and removes and trailing slashes unless disabled.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save normalize-path
-```
-
-## Usage
-
-```js
-var normalize = require('normalize-path');
-
-normalize('\\foo\\bar\\baz\\');
-//=> '/foo/bar/baz'
-
-normalize('./foo/bar/baz/');
-//=> './foo/bar/baz'
-```
-
-Pass `false` as the last argument to **keep** trailing slashes:
-
-```js
-normalize('./foo/bar/baz/', false);
-//=> './foo/bar/baz/'
-
-normalize('foo\\bar\\baz\\', false);
-//=> 'foo/bar/baz/'
-```
-
-## About
-
-### Related projects
-
-* [contains-path](https://www.npmjs.com/package/contains-path): Return true if a file path contains the given path. | [homepage](https://github.com/jonschlinkert/contains-path "Return true if a file path contains the given path.")
-* [ends-with](https://www.npmjs.com/package/ends-with): Returns `true` if the given `string` or `array` ends with `suffix` using strict equality for… [more](https://github.com/jonschlinkert/ends-with) | [homepage](https://github.com/jonschlinkert/ends-with "Returns `true` if the given `string` or `array` ends with `suffix` using strict equality for comparisons.")
-* [is-absolute](https://www.npmjs.com/package/is-absolute): Polyfill for node.js `path.isAbolute`. Returns true if a file path is absolute. | [homepage](https://github.com/jonschlinkert/is-absolute "Polyfill for node.js `path.isAbolute`. Returns true if a file path is absolute.")
-* [is-relative](https://www.npmjs.com/package/is-relative): Returns `true` if the path appears to be relative. | [homepage](https://github.com/jonschlinkert/is-relative "Returns `true` if the path appears to be relative.")
-* [parse-filepath](https://www.npmjs.com/package/parse-filepath): Pollyfill for node.js `path.parse`, parses a filepath into an object. | [homepage](https://github.com/jonschlinkert/parse-filepath "Pollyfill for node.js `path.parse`, parses a filepath into an object.")
-* [path-ends-with](https://www.npmjs.com/package/path-ends-with): Return `true` if a file path ends with the given string/suffix. | [homepage](https://github.com/jonschlinkert/path-ends-with "Return `true` if a file path ends with the given string/suffix.")
-* [path-segments](https://www.npmjs.com/package/path-segments): Get n specific segments of a file path, e.g. first 2, last 3, etc. | [homepage](https://github.com/jonschlinkert/path-segments "Get n specific segments of a file path, e.g. first 2, last 3, etc.")
-* [rewrite-ext](https://www.npmjs.com/package/rewrite-ext): Automatically re-write the destination extension of a filepath based on the source extension. e.g… [more](https://github.com/jonschlinkert/rewrite-ext) | [homepage](https://github.com/jonschlinkert/rewrite-ext "Automatically re-write the destination extension of a filepath based on the source extension. e.g `.coffee` => `.js`. This will only rename the ext, no other path parts are modified.")
-* [unixify](https://www.npmjs.com/package/unixify): Convert Windows file paths to unix paths. | [homepage](https://github.com/jonschlinkert/unixify "Convert Windows file paths to unix paths.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 31 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 1 | [phated](https://github.com/phated) |
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.4.3, on March 29, 2017._
\ No newline at end of file
diff --git a/node_modules/anymatch/node_modules/normalize-path/index.js b/node_modules/anymatch/node_modules/normalize-path/index.js
deleted file mode 100644
index 4a4f8cc..0000000
--- a/node_modules/anymatch/node_modules/normalize-path/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/*!
- * normalize-path
- *
- * Copyright (c) 2014-2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-var removeTrailingSeparator = require('remove-trailing-separator');
-
-module.exports = function normalizePath(str, stripTrailing) {
- if (typeof str !== 'string') {
- throw new TypeError('expected a string');
- }
- str = str.replace(/[\\\/]+/g, '/');
- if (stripTrailing !== false) {
- str = removeTrailingSeparator(str);
- }
- return str;
-};
diff --git a/node_modules/anymatch/node_modules/normalize-path/package.json b/node_modules/anymatch/node_modules/normalize-path/package.json
deleted file mode 100644
index c16ef9d..0000000
--- a/node_modules/anymatch/node_modules/normalize-path/package.json
+++ /dev/null
@@ -1,78 +0,0 @@
-{
- "name": "normalize-path",
- "description": "Normalize file path slashes to be unix-like forward slashes. Also condenses repeat slashes to a single slash and removes and trailing slashes unless disabled.",
- "version": "2.1.1",
- "homepage": "https://github.com/jonschlinkert/normalize-path",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Blaine Bublitz (https://twitter.com/BlaineBublitz)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)"
- ],
- "repository": "jonschlinkert/normalize-path",
- "bugs": {
- "url": "https://github.com/jonschlinkert/normalize-path/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "remove-trailing-separator": "^1.0.1"
- },
- "devDependencies": {
- "benchmarked": "^0.1.1",
- "gulp-format-md": "^0.1.11",
- "minimist": "^1.2.0",
- "mocha": "*"
- },
- "keywords": [
- "backslash",
- "file",
- "filepath",
- "fix",
- "forward",
- "fp",
- "fs",
- "normalize",
- "path",
- "slash",
- "slashes",
- "trailing",
- "unix",
- "urix"
- ],
- "verb": {
- "related": {
- "list": [
- "contains-path",
- "ends-with",
- "is-absolute",
- "is-relative",
- "parse-filepath",
- "path-ends-with",
- "path-segments",
- "rewrite-ext",
- "unixify"
- ],
- "description": "Other useful libraries for working with paths in node.js:"
- },
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/anymatch/package.json b/node_modules/anymatch/package.json
deleted file mode 100644
index fdbafd7..0000000
--- a/node_modules/anymatch/package.json
+++ /dev/null
@@ -1,47 +0,0 @@
-{
- "name": "anymatch",
- "version": "2.0.0",
- "description": "Matches strings against configurable strings, globs, regular expressions, and/or functions",
- "files": [
- "index.js"
- ],
- "author": {
- "name": "Elan Shanker",
- "url": "http://github.com/es128"
- },
- "license": "ISC",
- "homepage": "https://github.com/micromatch/anymatch",
- "repository": {
- "type": "git",
- "url": "https://github.com/micromatch/anymatch"
- },
- "bugs": {
- "url": "https://github.com/micromatch/anymatch/issues"
- },
- "keywords": [
- "match",
- "any",
- "string",
- "file",
- "fs",
- "list",
- "glob",
- "regex",
- "regexp",
- "regular",
- "expression",
- "function"
- ],
- "scripts": {
- "test": "istanbul cover _mocha && cat ./coverage/lcov.info | coveralls"
- },
- "dependencies": {
- "micromatch": "^3.1.4",
- "normalize-path": "^2.1.1"
- },
- "devDependencies": {
- "coveralls": "^2.7.0",
- "istanbul": "^0.4.5",
- "mocha": "^3.0.0"
- }
-}
diff --git a/node_modules/append-buffer/LICENSE b/node_modules/append-buffer/LICENSE
deleted file mode 100644
index ffb7ec5..0000000
--- a/node_modules/append-buffer/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2017, Brian Woodward.
-
-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.
\ No newline at end of file
diff --git a/node_modules/append-buffer/README.md b/node_modules/append-buffer/README.md
deleted file mode 100644
index 681a3c3..0000000
--- a/node_modules/append-buffer/README.md
+++ /dev/null
@@ -1,95 +0,0 @@
-# append-buffer [![NPM version](https://img.shields.io/npm/v/append-buffer.svg?style=flat)](https://www.npmjs.com/package/append-buffer) [![NPM monthly downloads](https://img.shields.io/npm/dm/append-buffer.svg?style=flat)](https://npmjs.org/package/append-buffer) [![NPM total downloads](https://img.shields.io/npm/dt/append-buffer.svg?style=flat)](https://npmjs.org/package/append-buffer) [![Linux Build Status](https://img.shields.io/travis/doowb/append-buffer.svg?style=flat&label=Travis)](https://travis-ci.org/doowb/append-buffer) [![Windows Build Status](https://img.shields.io/appveyor/ci/doowb/append-buffer.svg?style=flat&label=AppVeyor)](https://ci.appveyor.com/project/doowb/append-buffer)
-
-> Append a buffer to another buffer ensuring to preserve line ending characters.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save append-buffer
-```
-
-Install with [yarn](https://yarnpkg.com):
-
-```sh
-$ yarn add append-buffer
-```
-
-## Usage
-
-```js
-var appendBuffer = require('append-buffer');
-```
-
-## API
-
-### [appendBuffer](index.js#L28)
-
-Append a buffer to another buffer ensuring to preserve line ending characters.
-
-**Params**
-
-* `buf` **{Buffer}**: Buffer that will be used to check for an existing line ending. The suffix is appended to this.
-* `suffix` **{Buffer}**: Buffer that will be appended to the buf.
-* `returns` **{Buffer}**: Final Buffer
-
-**Example**
-
-```js
-console.log([appendBuffer(new Buffer('abc\r\n'), new Buffer('def')).toString()]);
-//=> [ 'abc\r\ndef\r\n' ]
-
-console.log([appendBuffer(new Buffer('abc\n'), new Buffer('def')).toString()]);
-//=> [ 'abc\ndef\n' ]
-
-// uses os.EOL when a line ending is not found
-console.log([appendBuffer(new Buffer('abc'), new Buffer('def')).toString()]);
-//=> [ 'abc\ndef' ]
-```
-
-## Attribution
-
-The code in this module was originally added in a [PR](https://github.com/jonschlinkert/file-normalize/pull/3) to [file-normalize](https://github.com/jonschlinkert/file-normalize). It has been split out to allow for standalone use cases.
-
-## About
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-Please read the [contributing guide](.github/contributing.md) for advice on opening issues, pull requests, and coding standards.
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Brian Woodward**
-
-* [github/doowb](https://github.com/doowb)
-* [twitter/doowb](https://twitter.com/doowb)
-
-### License
-
-Copyright © 2017, [Brian Woodward](https://doowb.com).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on August 01, 2017._
\ No newline at end of file
diff --git a/node_modules/append-buffer/index.js b/node_modules/append-buffer/index.js
deleted file mode 100644
index a385570..0000000
--- a/node_modules/append-buffer/index.js
+++ /dev/null
@@ -1,41 +0,0 @@
-'use strict';
-
-var os = require('os');
-var equals = require('buffer-equal');
-var cr = new Buffer('\r\n');
-var nl = new Buffer('\n');
-
-/**
- * Append a buffer to another buffer ensuring to preserve line ending characters.
- *
- * ```js
- * console.log([appendBuffer(new Buffer('abc\r\n'), new Buffer('def')).toString()]);
- * //=> [ 'abc\r\ndef\r\n' ]
- *
- * console.log([appendBuffer(new Buffer('abc\n'), new Buffer('def')).toString()]);
- * //=> [ 'abc\ndef\n' ]
- *
- * // uses os.EOL when a line ending is not found
- * console.log([appendBuffer(new Buffer('abc'), new Buffer('def')).toString()]);
- * //=> [ 'abc\ndef' ]
- * * ```
- * @param {Buffer} `buf` Buffer that will be used to check for an existing line ending. The suffix is appended to this.
- * @param {Buffer} `suffix` Buffer that will be appended to the buf.
- * @return {Buffer} Final Buffer
- * @api public
- */
-
-module.exports = function appendBuffer(buf, suffix) {
- if (!suffix || !suffix.length) {
- return buf;
- }
- var eol;
- if (equals(buf.slice(-2), cr)) {
- eol = cr;
- } else if (equals(buf.slice(-1), nl)) {
- eol = nl;
- } else {
- return Buffer.concat([buf, new Buffer(os.EOL), new Buffer(suffix)]);
- }
- return Buffer.concat([buf, new Buffer(suffix), eol]);
-};
diff --git a/node_modules/append-buffer/package.json b/node_modules/append-buffer/package.json
deleted file mode 100644
index 7264b84..0000000
--- a/node_modules/append-buffer/package.json
+++ /dev/null
@@ -1,53 +0,0 @@
-{
- "name": "append-buffer",
- "description": "Append a buffer to another buffer ensuring to preserve line ending characters.",
- "version": "1.0.2",
- "homepage": "https://github.com/doowb/append-buffer",
- "author": "Brian Woodward (https://doowb.com)",
- "repository": "doowb/append-buffer",
- "bugs": {
- "url": "https://github.com/doowb/append-buffer/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "keywords": [
- "append",
- "append-buffer",
- "concat",
- "concat-buffer",
- "eol",
- "join",
- "join-buffer",
- "normalize",
- "buffer"
- ],
- "devDependencies": {
- "gulp-format-md": "^1.0.0",
- "mocha": "^3.5.0"
- },
- "dependencies": {
- "buffer-equal": "^1.0.0"
- },
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/archy/.travis.yml b/node_modules/archy/.travis.yml
deleted file mode 100644
index 895dbd3..0000000
--- a/node_modules/archy/.travis.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-language: node_js
-node_js:
- - 0.6
- - 0.8
diff --git a/node_modules/archy/LICENSE b/node_modules/archy/LICENSE
deleted file mode 100644
index ee27ba4..0000000
--- a/node_modules/archy/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/archy/examples/beep.js b/node_modules/archy/examples/beep.js
deleted file mode 100644
index 9c07047..0000000
--- a/node_modules/archy/examples/beep.js
+++ /dev/null
@@ -1,24 +0,0 @@
-var archy = require('../');
-var s = archy({
- label : 'beep',
- nodes : [
- 'ity',
- {
- label : 'boop',
- nodes : [
- {
- label : 'o_O',
- nodes : [
- {
- label : 'oh',
- nodes : [ 'hello', 'puny' ]
- },
- 'human'
- ]
- },
- 'party\ntime!'
- ]
- }
- ]
-});
-console.log(s);
diff --git a/node_modules/archy/examples/multi_line.js b/node_modules/archy/examples/multi_line.js
deleted file mode 100644
index 8afdfad..0000000
--- a/node_modules/archy/examples/multi_line.js
+++ /dev/null
@@ -1,25 +0,0 @@
-var archy = require('../');
-
-var s = archy({
- label : 'beep\none\ntwo',
- nodes : [
- 'ity',
- {
- label : 'boop',
- nodes : [
- {
- label : 'o_O\nwheee',
- nodes : [
- {
- label : 'oh',
- nodes : [ 'hello', 'puny\nmeat' ]
- },
- 'creature'
- ]
- },
- 'party\ntime!'
- ]
- }
- ]
-});
-console.log(s);
diff --git a/node_modules/archy/index.js b/node_modules/archy/index.js
deleted file mode 100644
index 869d64e..0000000
--- a/node_modules/archy/index.js
+++ /dev/null
@@ -1,35 +0,0 @@
-module.exports = function archy (obj, prefix, opts) {
- if (prefix === undefined) prefix = '';
- if (!opts) opts = {};
- var chr = function (s) {
- var chars = {
- '│' : '|',
- '└' : '`',
- '├' : '+',
- '─' : '-',
- '┬' : '-'
- };
- return opts.unicode === false ? chars[s] : s;
- };
-
- if (typeof obj === 'string') obj = { label : obj };
-
- var nodes = obj.nodes || [];
- var lines = (obj.label || '').split('\n');
- var splitter = '\n' + prefix + (nodes.length ? chr('│') : ' ') + ' ';
-
- return prefix
- + lines.join(splitter) + '\n'
- + nodes.map(function (node, ix) {
- var last = ix === nodes.length - 1;
- var more = node.nodes && node.nodes.length;
- var prefix_ = prefix + (last ? ' ' : chr('│')) + ' ';
-
- return prefix
- + (last ? chr('└') : chr('├')) + chr('─')
- + (more ? chr('┬') : chr('─')) + ' '
- + archy(node, prefix_, opts).slice(prefix.length + 2)
- ;
- }).join('')
- ;
-};
diff --git a/node_modules/archy/package.json b/node_modules/archy/package.json
deleted file mode 100644
index 0ce3149..0000000
--- a/node_modules/archy/package.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- "name" : "archy",
- "version" : "1.0.0",
- "description" : "render nested hierarchies `npm ls` style with unicode pipes",
- "main" : "index.js",
- "devDependencies" : {
- "tap" : "~0.3.3",
- "tape" : "~0.1.1"
- },
- "scripts" : {
- "test" : "tap test"
- },
- "testling" : {
- "files" : "test/*.js",
- "browsers" : {
- "iexplore" : [ "6.0", "7.0", "8.0", "9.0" ],
- "chrome" : [ "20.0" ],
- "firefox" : [ "10.0", "15.0" ],
- "safari" : [ "5.1" ],
- "opera" : [ "12.0" ]
- }
- },
- "repository" : {
- "type" : "git",
- "url" : "http://github.com/substack/node-archy.git"
- },
- "keywords" : [
- "hierarchy",
- "npm ls",
- "unicode",
- "pretty",
- "print"
- ],
- "author" : {
- "name" : "James Halliday",
- "email" : "mail@substack.net",
- "url" : "http://substack.net"
- },
- "license" : "MIT"
-}
diff --git a/node_modules/archy/readme.markdown b/node_modules/archy/readme.markdown
deleted file mode 100644
index ef7a5cf..0000000
--- a/node_modules/archy/readme.markdown
+++ /dev/null
@@ -1,88 +0,0 @@
-# archy
-
-Render nested hierarchies `npm ls` style with unicode pipes.
-
-[![browser support](http://ci.testling.com/substack/node-archy.png)](http://ci.testling.com/substack/node-archy)
-
-[![build status](https://secure.travis-ci.org/substack/node-archy.png)](http://travis-ci.org/substack/node-archy)
-
-# example
-
-``` js
-var archy = require('archy');
-var s = archy({
- label : 'beep',
- nodes : [
- 'ity',
- {
- label : 'boop',
- nodes : [
- {
- label : 'o_O',
- nodes : [
- {
- label : 'oh',
- nodes : [ 'hello', 'puny' ]
- },
- 'human'
- ]
- },
- 'party\ntime!'
- ]
- }
- ]
-});
-console.log(s);
-```
-
-output
-
-```
-beep
-├── ity
-└─┬ boop
- ├─┬ o_O
- │ ├─┬ oh
- │ │ ├── hello
- │ │ └── puny
- │ └── human
- └── party
- time!
-```
-
-# methods
-
-var archy = require('archy')
-
-## archy(obj, prefix='', opts={})
-
-Return a string representation of `obj` with unicode pipe characters like how
-`npm ls` looks.
-
-`obj` should be a tree of nested objects with `'label'` and `'nodes'` fields.
-`'label'` is a string of text to display at a node level and `'nodes'` is an
-array of the descendents of the current node.
-
-If a node is a string, that string will be used as the `'label'` and an empty
-array of `'nodes'` will be used.
-
-`prefix` gets prepended to all the lines and is used by the algorithm to
-recursively update.
-
-If `'label'` has newlines they will be indented at the present indentation level
-with the current prefix.
-
-To disable unicode results in favor of all-ansi output set `opts.unicode` to
-`false`.
-
-# install
-
-With [npm](http://npmjs.org) do:
-
-```
-npm install archy
-```
-
-# license
-
-MIT
diff --git a/node_modules/archy/test/beep.js b/node_modules/archy/test/beep.js
deleted file mode 100644
index 4ea74f9..0000000
--- a/node_modules/archy/test/beep.js
+++ /dev/null
@@ -1,40 +0,0 @@
-var test = require('tape');
-var archy = require('../');
-
-test('beep', function (t) {
- var s = archy({
- label : 'beep',
- nodes : [
- 'ity',
- {
- label : 'boop',
- nodes : [
- {
- label : 'o_O',
- nodes : [
- {
- label : 'oh',
- nodes : [ 'hello', 'puny' ]
- },
- 'human'
- ]
- },
- 'party!'
- ]
- }
- ]
- });
- t.equal(s, [
- 'beep',
- '├── ity',
- '└─┬ boop',
- ' ├─┬ o_O',
- ' │ ├─┬ oh',
- ' │ │ ├── hello',
- ' │ │ └── puny',
- ' │ └── human',
- ' └── party!',
- ''
- ].join('\n'));
- t.end();
-});
diff --git a/node_modules/archy/test/multi_line.js b/node_modules/archy/test/multi_line.js
deleted file mode 100644
index 2cf2154..0000000
--- a/node_modules/archy/test/multi_line.js
+++ /dev/null
@@ -1,45 +0,0 @@
-var test = require('tape');
-var archy = require('../');
-
-test('multi-line', function (t) {
- var s = archy({
- label : 'beep\none\ntwo',
- nodes : [
- 'ity',
- {
- label : 'boop',
- nodes : [
- {
- label : 'o_O\nwheee',
- nodes : [
- {
- label : 'oh',
- nodes : [ 'hello', 'puny\nmeat' ]
- },
- 'creature'
- ]
- },
- 'party\ntime!'
- ]
- }
- ]
- });
- t.equal(s, [
- 'beep',
- '│ one',
- '│ two',
- '├── ity',
- '└─┬ boop',
- ' ├─┬ o_O',
- ' │ │ wheee',
- ' │ ├─┬ oh',
- ' │ │ ├── hello',
- ' │ │ └── puny',
- ' │ │ meat',
- ' │ └── creature',
- ' └── party',
- ' time!',
- ''
- ].join('\n'));
- t.end();
-});
diff --git a/node_modules/archy/test/non_unicode.js b/node_modules/archy/test/non_unicode.js
deleted file mode 100644
index 7204d33..0000000
--- a/node_modules/archy/test/non_unicode.js
+++ /dev/null
@@ -1,40 +0,0 @@
-var test = require('tape');
-var archy = require('../');
-
-test('beep', function (t) {
- var s = archy({
- label : 'beep',
- nodes : [
- 'ity',
- {
- label : 'boop',
- nodes : [
- {
- label : 'o_O',
- nodes : [
- {
- label : 'oh',
- nodes : [ 'hello', 'puny' ]
- },
- 'human'
- ]
- },
- 'party!'
- ]
- }
- ]
- }, '', { unicode : false });
- t.equal(s, [
- 'beep',
- '+-- ity',
- '`-- boop',
- ' +-- o_O',
- ' | +-- oh',
- ' | | +-- hello',
- ' | | `-- puny',
- ' | `-- human',
- ' `-- party!',
- ''
- ].join('\n'));
- t.end();
-});
diff --git a/node_modules/arr-diff/LICENSE b/node_modules/arr-diff/LICENSE
deleted file mode 100755
index d734237..0000000
--- a/node_modules/arr-diff/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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/arr-diff/README.md b/node_modules/arr-diff/README.md
deleted file mode 100644
index 961f5c3..0000000
--- a/node_modules/arr-diff/README.md
+++ /dev/null
@@ -1,130 +0,0 @@
-# arr-diff [![NPM version](https://img.shields.io/npm/v/arr-diff.svg?style=flat)](https://www.npmjs.com/package/arr-diff) [![NPM monthly downloads](https://img.shields.io/npm/dm/arr-diff.svg?style=flat)](https://npmjs.org/package/arr-diff) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/arr-diff.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/arr-diff)
-
-> Returns an array with only the unique values from the first array, by excluding all values from additional arrays using strict equality for comparisons.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save arr-diff
-```
-
-Install with [yarn](https://yarnpkg.com):
-
-```sh
-$ yarn add arr-diff
-```
-
-Install with [bower](https://bower.io/)
-
-```sh
-$ bower install arr-diff --save
-```
-
-## Usage
-
-Returns the difference between the first array and additional arrays.
-
-```js
-var diff = require('arr-diff');
-
-var a = ['a', 'b', 'c', 'd'];
-var b = ['b', 'c'];
-
-console.log(diff(a, b))
-//=> ['a', 'd']
-```
-
-## Benchmarks
-
-This library versus [array-differ](https://github.com/sindresorhus/array-differ), on April 14, 2017:
-
-```
-Benchmarking: (4 of 4)
- · long-dupes
- · long
- · med
- · short
-
-# benchmark/fixtures/long-dupes.js (100804 bytes)
- arr-diff-3.0.0 x 822 ops/sec ±0.67% (86 runs sampled)
- arr-diff-4.0.0 x 2,141 ops/sec ±0.42% (89 runs sampled)
- array-differ x 708 ops/sec ±0.70% (89 runs sampled)
-
- fastest is arr-diff-4.0.0
-
-# benchmark/fixtures/long.js (94529 bytes)
- arr-diff-3.0.0 x 882 ops/sec ±0.60% (87 runs sampled)
- arr-diff-4.0.0 x 2,329 ops/sec ±0.97% (83 runs sampled)
- array-differ x 769 ops/sec ±0.61% (90 runs sampled)
-
- fastest is arr-diff-4.0.0
-
-# benchmark/fixtures/med.js (708 bytes)
- arr-diff-3.0.0 x 856,150 ops/sec ±0.42% (89 runs sampled)
- arr-diff-4.0.0 x 4,665,249 ops/sec ±1.06% (89 runs sampled)
- array-differ x 653,888 ops/sec ±1.02% (86 runs sampled)
-
- fastest is arr-diff-4.0.0
-
-# benchmark/fixtures/short.js (60 bytes)
- arr-diff-3.0.0 x 3,078,467 ops/sec ±0.77% (93 runs sampled)
- arr-diff-4.0.0 x 9,213,296 ops/sec ±0.65% (89 runs sampled)
- array-differ x 1,337,051 ops/sec ±0.91% (92 runs sampled)
-
- fastest is arr-diff-4.0.0
-```
-
-## About
-
-### Related projects
-
-* [arr-flatten](https://www.npmjs.com/package/arr-flatten): Recursively flatten an array or arrays. This is the fastest implementation of array flatten. | [homepage](https://github.com/jonschlinkert/arr-flatten "Recursively flatten an array or arrays. This is the fastest implementation of array flatten.")
-* [array-filter](https://www.npmjs.com/package/array-filter): Array#filter for older browsers. | [homepage](https://github.com/juliangruber/array-filter "Array#filter for older browsers.")
-* [array-intersection](https://www.npmjs.com/package/array-intersection): Return an array with the unique values present in _all_ given arrays using strict equality… [more](https://github.com/jonschlinkert/array-intersection) | [homepage](https://github.com/jonschlinkert/array-intersection "Return an array with the unique values present in _all_ given arrays using strict equality for comparisons.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 33 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 2 | [paulmillr](https://github.com/paulmillr) |
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.5.0, on April 14, 2017._
\ No newline at end of file
diff --git a/node_modules/arr-diff/index.js b/node_modules/arr-diff/index.js
deleted file mode 100644
index 90f2807..0000000
--- a/node_modules/arr-diff/index.js
+++ /dev/null
@@ -1,47 +0,0 @@
-/*!
- * arr-diff
- *
- * Copyright (c) 2014-2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-module.exports = function diff(arr/*, arrays*/) {
- var len = arguments.length;
- var idx = 0;
- while (++idx < len) {
- arr = diffArray(arr, arguments[idx]);
- }
- return arr;
-};
-
-function diffArray(one, two) {
- if (!Array.isArray(two)) {
- return one.slice();
- }
-
- var tlen = two.length
- var olen = one.length;
- var idx = -1;
- var arr = [];
-
- while (++idx < olen) {
- var ele = one[idx];
-
- var hasEle = false;
- for (var i = 0; i < tlen; i++) {
- var val = two[i];
-
- if (ele === val) {
- hasEle = true;
- break;
- }
- }
-
- if (hasEle === false) {
- arr.push(ele);
- }
- }
- return arr;
-}
diff --git a/node_modules/arr-diff/package.json b/node_modules/arr-diff/package.json
deleted file mode 100644
index c106813..0000000
--- a/node_modules/arr-diff/package.json
+++ /dev/null
@@ -1,69 +0,0 @@
-{
- "name": "arr-diff",
- "description": "Returns an array with only the unique values from the first array, by excluding all values from additional arrays using strict equality for comparisons.",
- "version": "4.0.0",
- "homepage": "https://github.com/jonschlinkert/arr-diff",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Paul Miller (paulmillr.com)"
- ],
- "repository": "jonschlinkert/arr-diff",
- "bugs": {
- "url": "https://github.com/jonschlinkert/arr-diff/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {},
- "devDependencies": {
- "ansi-bold": "^0.1.1",
- "arr-flatten": "^1.0.1",
- "array-differ": "^1.0.0",
- "benchmarked": "^0.2.4",
- "gulp-format-md": "^0.1.9",
- "minimist": "^1.2.0",
- "mocha": "^2.4.5"
- },
- "keywords": [
- "arr",
- "array",
- "array differ",
- "array-differ",
- "diff",
- "differ",
- "difference"
- ],
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "arr-flatten",
- "array-filter",
- "array-intersection"
- ]
- },
- "reflinks": [
- "array-differ",
- "verb"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/arr-filter/LICENSE b/node_modules/arr-filter/LICENSE
deleted file mode 100755
index d290fe0..0000000
--- a/node_modules/arr-filter/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2015, 2017, 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/arr-filter/README.md b/node_modules/arr-filter/README.md
deleted file mode 100755
index 96435ae..0000000
--- a/node_modules/arr-filter/README.md
+++ /dev/null
@@ -1,72 +0,0 @@
-# arr-filter [![NPM version](https://img.shields.io/npm/v/arr-filter.svg?style=flat)](https://www.npmjs.com/package/arr-filter) [![NPM monthly downloads](https://img.shields.io/npm/dm/arr-filter.svg?style=flat)](https://npmjs.org/package/arr-filter) [![NPM total downloads](https://img.shields.io/npm/dt/arr-filter.svg?style=flat)](https://npmjs.org/package/arr-filter) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/arr-filter.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/arr-filter)
-
-> Faster alternative to javascript's native filter method.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save arr-filter
-```
-
-## Usage
-
-```js
-var filter = require('arr-filter');
-
-filter(['a', {a: 'b'}, 1, 'b', 2, {c: 'd'}, 'c'], function (ele) {
- return typeof ele === 'string';
-});
-//=> ['a', 'b', 'c']
-```
-
-## Why another array filter?
-
-[array-filter](https://github.com/juliangruber/array-filter) is pretty popular, but it's tuned to be used in older browsers and it falls back on native `.filter()` when available, which is much slower. See [jsperf results](http://jsperf.com/array-filter-while-vs-for/2). The functions used in the benchmarks are the top performers from a dozen or so other functions.
-
-## About
-
-### Related projects
-
-* [arr-map](https://www.npmjs.com/package/arr-map): Faster, node.js focused alternative to JavaScript's native array map. | [homepage](https://github.com/jonschlinkert/arr-map "Faster, node.js focused alternative to JavaScript's native array map.")
-* [array-each](https://www.npmjs.com/package/array-each): Loop over each item in an array and call the given function on every element. | [homepage](https://github.com/jonschlinkert/array-each "Loop over each item in an array and call the given function on every element.")
-* [collection-map](https://www.npmjs.com/package/collection-map): Returns an array of mapped values from an array or object. | [homepage](https://github.com/jonschlinkert/collection-map "Returns an array of mapped values from an array or object.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.4.2, on February 26, 2017._
\ No newline at end of file
diff --git a/node_modules/arr-filter/index.js b/node_modules/arr-filter/index.js
deleted file mode 100755
index 29b8c3c..0000000
--- a/node_modules/arr-filter/index.js
+++ /dev/null
@@ -1,33 +0,0 @@
-/*!
- * arr-filter
- *
- * Copyright (c) 2014-2015, 2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-var makeIterator = require('make-iterator');
-
-module.exports = function filter(arr, fn, thisArg) {
- if (arr == null) {
- return [];
- }
-
- if (typeof fn !== 'function') {
- throw new TypeError('expected callback to be a function');
- }
-
- var iterator = makeIterator(fn, thisArg);
- var len = arr.length;
- var res = arr.slice();
- var i = -1;
-
- while (len--) {
- if (!iterator(arr[len], i++)) {
- res.splice(len, 1);
- }
- }
- return res;
-};
-
diff --git a/node_modules/arr-filter/package.json b/node_modules/arr-filter/package.json
deleted file mode 100644
index 7fb0bf1..0000000
--- a/node_modules/arr-filter/package.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{
- "name": "arr-filter",
- "description": "Faster alternative to javascript's native filter method.",
- "version": "1.1.2",
- "homepage": "https://github.com/jonschlinkert/arr-filter",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/arr-filter",
- "bugs": {
- "url": "https://github.com/jonschlinkert/arr-filter/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "make-iterator": "^1.0.0"
- },
- "devDependencies": {
- "array-filter": "^1.0.0",
- "benchmarked": "^0.2.5",
- "chalk": "^1.1.3",
- "gulp-format-md": "^0.1.11",
- "micromatch": "^2.3.11",
- "minimist": "^1.2.0",
- "mocha": "^3.2.0"
- },
- "keywords": [
- "arr",
- "array",
- "collection",
- "filter",
- "util"
- ],
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "collection-map",
- "arr-map",
- "array-each"
- ]
- },
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/arr-flatten/LICENSE b/node_modules/arr-flatten/LICENSE
deleted file mode 100755
index 3f2eca1..0000000
--- a/node_modules/arr-flatten/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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/arr-flatten/README.md b/node_modules/arr-flatten/README.md
deleted file mode 100755
index 7dc7a97..0000000
--- a/node_modules/arr-flatten/README.md
+++ /dev/null
@@ -1,86 +0,0 @@
-# arr-flatten [![NPM version](https://img.shields.io/npm/v/arr-flatten.svg?style=flat)](https://www.npmjs.com/package/arr-flatten) [![NPM monthly downloads](https://img.shields.io/npm/dm/arr-flatten.svg?style=flat)](https://npmjs.org/package/arr-flatten) [![NPM total downloads](https://img.shields.io/npm/dt/arr-flatten.svg?style=flat)](https://npmjs.org/package/arr-flatten) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/arr-flatten.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/arr-flatten) [![Windows Build Status](https://img.shields.io/appveyor/ci/jonschlinkert/arr-flatten.svg?style=flat&label=AppVeyor)](https://ci.appveyor.com/project/jonschlinkert/arr-flatten)
-
-> Recursively flatten an array or arrays.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save arr-flatten
-```
-
-## Install
-
-Install with [bower](https://bower.io/)
-
-```sh
-$ bower install arr-flatten --save
-```
-
-## Usage
-
-```js
-var flatten = require('arr-flatten');
-
-flatten(['a', ['b', ['c']], 'd', ['e']]);
-//=> ['a', 'b', 'c', 'd', 'e']
-```
-
-## Why another flatten utility?
-
-I wanted the fastest implementation I could find, with implementation choices that should work for 95% of use cases, but no cruft to cover the other 5%.
-
-## About
-
-### Related projects
-
-* [arr-filter](https://www.npmjs.com/package/arr-filter): Faster alternative to javascript's native filter method. | [homepage](https://github.com/jonschlinkert/arr-filter "Faster alternative to javascript's native filter method.")
-* [arr-union](https://www.npmjs.com/package/arr-union): Combines a list of arrays, returning a single array with unique values, using strict equality… [more](https://github.com/jonschlinkert/arr-union) | [homepage](https://github.com/jonschlinkert/arr-union "Combines a list of arrays, returning a single array with unique values, using strict equality for comparisons.")
-* [array-each](https://www.npmjs.com/package/array-each): Loop over each item in an array and call the given function on every element. | [homepage](https://github.com/jonschlinkert/array-each "Loop over each item in an array and call the given function on every element.")
-* [array-unique](https://www.npmjs.com/package/array-unique): Remove duplicate values from an array. Fastest ES5 implementation. | [homepage](https://github.com/jonschlinkert/array-unique "Remove duplicate values from an array. Fastest ES5 implementation.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 20 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 1 | [lukeed](https://github.com/lukeed) |
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on July 05, 2017._
\ No newline at end of file
diff --git a/node_modules/arr-flatten/index.js b/node_modules/arr-flatten/index.js
deleted file mode 100644
index 0cb4ea4..0000000
--- a/node_modules/arr-flatten/index.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/*!
- * arr-flatten
- *
- * Copyright (c) 2014-2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-module.exports = function (arr) {
- return flat(arr, []);
-};
-
-function flat(arr, res) {
- var i = 0, cur;
- var len = arr.length;
- for (; i < len; i++) {
- cur = arr[i];
- Array.isArray(cur) ? flat(cur, res) : res.push(cur);
- }
- return res;
-}
diff --git a/node_modules/arr-flatten/package.json b/node_modules/arr-flatten/package.json
deleted file mode 100644
index d2d33e9..0000000
--- a/node_modules/arr-flatten/package.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "name": "arr-flatten",
- "description": "Recursively flatten an array or arrays.",
- "version": "1.1.0",
- "homepage": "https://github.com/jonschlinkert/arr-flatten",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Luke Edwards (https://lukeed.com)"
- ],
- "repository": "jonschlinkert/arr-flatten",
- "bugs": {
- "url": "https://github.com/jonschlinkert/arr-flatten/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "devDependencies": {
- "ansi-bold": "^0.1.1",
- "array-flatten": "^2.1.1",
- "array-slice": "^1.0.0",
- "benchmarked": "^1.0.0",
- "compute-flatten": "^1.0.0",
- "flatit": "^1.1.1",
- "flatten": "^1.0.2",
- "flatten-array": "^1.0.0",
- "glob": "^7.1.1",
- "gulp-format-md": "^0.1.12",
- "just-flatten-it": "^1.1.23",
- "lodash.flattendeep": "^4.4.0",
- "m_flattened": "^1.0.1",
- "mocha": "^3.2.0",
- "utils-flatten": "^1.0.0",
- "write": "^0.3.3"
- },
- "keywords": [
- "arr",
- "array",
- "elements",
- "flat",
- "flatten",
- "nested",
- "recurse",
- "recursive",
- "recursively"
- ],
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "arr-filter",
- "arr-union",
- "array-each",
- "array-unique"
- ]
- },
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/arr-map/LICENSE b/node_modules/arr-map/LICENSE
deleted file mode 100644
index ec85897..0000000
--- a/node_modules/arr-map/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015, 2017, 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/arr-map/README.md b/node_modules/arr-map/README.md
deleted file mode 100644
index 04e9910..0000000
--- a/node_modules/arr-map/README.md
+++ /dev/null
@@ -1,78 +0,0 @@
-# arr-map [![NPM version](https://img.shields.io/npm/v/arr-map.svg?style=flat)](https://www.npmjs.com/package/arr-map) [![NPM monthly downloads](https://img.shields.io/npm/dm/arr-map.svg?style=flat)](https://npmjs.org/package/arr-map) [![NPM total downloads](https://img.shields.io/npm/dt/arr-map.svg?style=flat)](https://npmjs.org/package/arr-map) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/arr-map.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/arr-map)
-
-> Faster, node.js focused alternative to JavaScript's native array map.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save arr-map
-```
-
-## Why use this?
-
-JavaScript's native `Array.map()` is slow, and other popular array map libraries are focused on browser compatibility, which makes them bloated or less than idea for non-browser usage. This implementation is focused on node.js usage keeping it light and fast.
-
-## Usage
-
-```js
-var map = require('arr-map');
-
-map(['a', 'b', 'c'], function(ele) {
- return ele + ele;
-});
-//=> ['aa', 'bb', 'cc']
-
-map(['a', 'b', 'c'], function(ele, i) {
- return i + ele;
-});
-//=> ['0a', '1b', '2c']
-```
-
-## About
-
-### Related projects
-
-* [arr-diff](https://www.npmjs.com/package/arr-diff): Returns an array with only the unique values from the first array, by excluding all… [more](https://github.com/jonschlinkert/arr-diff) | [homepage](https://github.com/jonschlinkert/arr-diff "Returns an array with only the unique values from the first array, by excluding all values from additional arrays using strict equality for comparisons.")
-* [arr-filter](https://www.npmjs.com/package/arr-filter): Faster alternative to javascript's native filter method. | [homepage](https://github.com/jonschlinkert/arr-filter "Faster alternative to javascript's native filter method.")
-* [arr-flatten](https://www.npmjs.com/package/arr-flatten): Recursively flatten an array or arrays. This is the fastest implementation of array flatten. | [homepage](https://github.com/jonschlinkert/arr-flatten "Recursively flatten an array or arrays. This is the fastest implementation of array flatten.")
-* [arr-reduce](https://www.npmjs.com/package/arr-reduce): Fast array reduce that also loops over sparse elements. | [homepage](https://github.com/jonschlinkert/arr-reduce "Fast array reduce that also loops over sparse elements.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.4.2, on February 28, 2017._
\ No newline at end of file
diff --git a/node_modules/arr-map/index.js b/node_modules/arr-map/index.js
deleted file mode 100644
index 8bfb360..0000000
--- a/node_modules/arr-map/index.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/*!
- * arr-map
- *
- * Copyright (c) 2015, 2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-var iterator = require('make-iterator');
-
-module.exports = function map(arr, fn, thisArg) {
- if (arr == null) return [];
- fn = iterator(fn, thisArg);
-
- var len = arr.length;
- var res = new Array(len);
-
- for (var i = 0; i < len; i++) {
- res[i] = fn(arr[i], i, arr);
- }
- return res;
-};
diff --git a/node_modules/arr-map/package.json b/node_modules/arr-map/package.json
deleted file mode 100644
index 34dcab6..0000000
--- a/node_modules/arr-map/package.json
+++ /dev/null
@@ -1,62 +0,0 @@
-{
- "name": "arr-map",
- "description": "Faster, node.js focused alternative to JavaScript's native array map.",
- "version": "2.0.2",
- "homepage": "https://github.com/jonschlinkert/arr-map",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/arr-map",
- "bugs": {
- "url": "https://github.com/jonschlinkert/arr-map/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha",
- "benchmark": "node benchmark"
- },
- "dependencies": {
- "make-iterator": "^1.0.0"
- },
- "devDependencies": {
- "array-map": "^0.0.0",
- "benchmarked": "^0.2.5",
- "braces": "^2.0.3",
- "chalk": "^1.1.3",
- "glob": "^7.1.1",
- "gulp-format-md": "^0.1.11",
- "micromatch": "^2.3.11",
- "mocha": "^3.2.0"
- },
- "keywords": [
- "arr",
- "array",
- "map"
- ],
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "related": {
- "list": [
- "arr-diff",
- "arr-filter",
- "arr-flatten",
- "arr-reduce"
- ]
- },
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/arr-union/LICENSE b/node_modules/arr-union/LICENSE
deleted file mode 100644
index 39245ac..0000000
--- a/node_modules/arr-union/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2016, 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/arr-union/README.md b/node_modules/arr-union/README.md
deleted file mode 100644
index b3cd4f4..0000000
--- a/node_modules/arr-union/README.md
+++ /dev/null
@@ -1,99 +0,0 @@
-# arr-union [![NPM version](https://img.shields.io/npm/v/arr-union.svg)](https://www.npmjs.com/package/arr-union) [![Build Status](https://img.shields.io/travis/jonschlinkert/arr-union.svg)](https://travis-ci.org/jonschlinkert/arr-union)
-
-> Combines a list of arrays, returning a single array with unique values, using strict equality for comparisons.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm i arr-union --save
-```
-
-## Benchmarks
-
-This library is **10-20 times faster** and more performant than [array-union](https://github.com/sindresorhus/array-union).
-
-See the [benchmarks](./benchmark).
-
-```sh
-#1: five-arrays
- array-union x 511,121 ops/sec ±0.80% (96 runs sampled)
- arr-union x 5,716,039 ops/sec ±0.86% (93 runs sampled)
-
-#2: ten-arrays
- array-union x 245,196 ops/sec ±0.69% (94 runs sampled)
- arr-union x 1,850,786 ops/sec ±0.84% (97 runs sampled)
-
-#3: two-arrays
- array-union x 563,869 ops/sec ±0.97% (94 runs sampled)
- arr-union x 9,602,852 ops/sec ±0.87% (92 runs sampled)
-```
-
-## Usage
-
-```js
-var union = require('arr-union');
-
-union(['a'], ['b', 'c'], ['d', 'e', 'f']);
-//=> ['a', 'b', 'c', 'd', 'e', 'f']
-```
-
-Returns only unique elements:
-
-```js
-union(['a', 'a'], ['b', 'c']);
-//=> ['a', 'b', 'c']
-```
-
-## Related projects
-
-* [arr-diff](https://www.npmjs.com/package/arr-diff): Returns an array with only the unique values from the first array, by excluding all… [more](https://www.npmjs.com/package/arr-diff) | [homepage](https://github.com/jonschlinkert/arr-diff)
-* [arr-filter](https://www.npmjs.com/package/arr-filter): Faster alternative to javascript's native filter method. | [homepage](https://github.com/jonschlinkert/arr-filter)
-* [arr-flatten](https://www.npmjs.com/package/arr-flatten): Recursively flatten an array or arrays. This is the fastest implementation of array flatten. | [homepage](https://github.com/jonschlinkert/arr-flatten)
-* [arr-map](https://www.npmjs.com/package/arr-map): Faster, node.js focused alternative to JavaScript's native array map. | [homepage](https://github.com/jonschlinkert/arr-map)
-* [arr-pluck](https://www.npmjs.com/package/arr-pluck): Retrieves the value of a specified property from all elements in the collection. | [homepage](https://github.com/jonschlinkert/arr-pluck)
-* [arr-reduce](https://www.npmjs.com/package/arr-reduce): Fast array reduce that also loops over sparse elements. | [homepage](https://github.com/jonschlinkert/arr-reduce)
-* [array-unique](https://www.npmjs.com/package/array-unique): Return an array free of duplicate values. Fastest ES5 implementation. | [homepage](https://github.com/jonschlinkert/array-unique)
-
-## Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/arr-union/issues/new).
-
-## Building docs
-
-Generate readme and API documentation with [verb](https://github.com/verbose/verb):
-
-```sh
-$ npm i verb && npm run docs
-```
-
-Or, if [verb](https://github.com/verbose/verb) is installed globally:
-
-```sh
-$ verb
-```
-
-## 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 © 2016 [Jon Schlinkert](https://github.com/jonschlinkert)
-Released under the [MIT license](https://github.com/jonschlinkert/arr-union/blob/master/LICENSE).
-
-***
-
-_This file was generated by [verb](https://github.com/verbose/verb), v0.9.0, on February 23, 2016._
\ No newline at end of file
diff --git a/node_modules/arr-union/index.js b/node_modules/arr-union/index.js
deleted file mode 100644
index 5ae6c4a..0000000
--- a/node_modules/arr-union/index.js
+++ /dev/null
@@ -1,29 +0,0 @@
-'use strict';
-
-module.exports = function union(init) {
- if (!Array.isArray(init)) {
- throw new TypeError('arr-union expects the first argument to be an array.');
- }
-
- var len = arguments.length;
- var i = 0;
-
- while (++i < len) {
- var arg = arguments[i];
- if (!arg) continue;
-
- if (!Array.isArray(arg)) {
- arg = [arg];
- }
-
- for (var j = 0; j < arg.length; j++) {
- var ele = arg[j];
-
- if (init.indexOf(ele) >= 0) {
- continue;
- }
- init.push(ele);
- }
- }
- return init;
-};
diff --git a/node_modules/arr-union/package.json b/node_modules/arr-union/package.json
deleted file mode 100644
index 5ee87fd..0000000
--- a/node_modules/arr-union/package.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "name": "arr-union",
- "description": "Combines a list of arrays, returning a single array with unique values, using strict equality for comparisons.",
- "version": "3.1.0",
- "homepage": "https://github.com/jonschlinkert/arr-union",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/arr-union",
- "bugs": {
- "url": "https://github.com/jonschlinkert/arr-union/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "devDependencies": {
- "ansi-bold": "^0.1.1",
- "array-union": "^1.0.1",
- "array-unique": "^0.2.1",
- "benchmarked": "^0.1.4",
- "gulp-format-md": "^0.1.7",
- "minimist": "^1.1.1",
- "mocha": "*",
- "should": "*"
- },
- "keywords": [
- "add",
- "append",
- "array",
- "arrays",
- "combine",
- "concat",
- "extend",
- "union",
- "uniq",
- "unique",
- "util",
- "utility",
- "utils"
- ],
- "verb": {
- "run": true,
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "arr-diff",
- "arr-flatten",
- "arr-filter",
- "arr-map",
- "arr-pluck",
- "arr-reduce",
- "array-unique"
- ]
- },
- "reflinks": [
- "verb",
- "array-union"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/array-each/LICENSE b/node_modules/array-each/LICENSE
deleted file mode 100644
index ec85897..0000000
--- a/node_modules/array-each/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015, 2017, 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/array-each/README.md b/node_modules/array-each/README.md
deleted file mode 100644
index e8602a1..0000000
--- a/node_modules/array-each/README.md
+++ /dev/null
@@ -1,84 +0,0 @@
-# array-each [![NPM version](https://img.shields.io/npm/v/array-each.svg?style=flat)](https://www.npmjs.com/package/array-each) [![NPM monthly downloads](https://img.shields.io/npm/dm/array-each.svg?style=flat)](https://npmjs.org/package/array-each) [![NPM total downloads](https://img.shields.io/npm/dt/array-each.svg?style=flat)](https://npmjs.org/package/array-each) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/array-each.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/array-each)
-
-> Loop over each item in an array and call the given function on every element.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save array-each
-```
-
-## Usage
-
-### [each](index.js#L34)
-
-Loop over each item in an array and call the given function on every element.
-
-**Params**
-
-* `array` **{Array}**
-* `fn` **{Function}**
-* `thisArg` **{Object}**: (optional) pass a `thisArg` to be used as the context in which to call the function.
-* `returns` **{undefined}**
-
-**Example**
-
-```js
-each(['a', 'b', 'c'], function(ele) {
- return ele + ele;
-});
-//=> ['aa', 'bb', 'cc']
-
-each(['a', 'b', 'c'], function(ele, i) {
- return i + ele;
-});
-//=> ['0a', '1b', '2c']
-```
-
-## About
-
-### Related projects
-
-* [arr-filter](https://www.npmjs.com/package/arr-filter): Faster alternative to javascript's native filter method. | [homepage](https://github.com/jonschlinkert/arr-filter "Faster alternative to javascript's native filter method.")
-* [arr-map](https://www.npmjs.com/package/arr-map): Faster, node.js focused alternative to JavaScript's native array map. | [homepage](https://github.com/jonschlinkert/arr-map "Faster, node.js focused alternative to JavaScript's native array map.")
-* [collection-map](https://www.npmjs.com/package/collection-map): Returns an array of mapped values from an array or object. | [homepage](https://github.com/jonschlinkert/collection-map "Returns an array of mapped values from an array or object.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.4.2, on February 26, 2017._
\ No newline at end of file
diff --git a/node_modules/array-each/index.js b/node_modules/array-each/index.js
deleted file mode 100644
index 12afef4..0000000
--- a/node_modules/array-each/index.js
+++ /dev/null
@@ -1,46 +0,0 @@
-/*!
- * array-each
- *
- * Copyright (c) 2015, 2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-/**
- * Loop over each item in an array and call the given function on every element.
- *
- * ```js
- * each(['a', 'b', 'c'], function(ele) {
- * return ele + ele;
- * });
- * //=> ['aa', 'bb', 'cc']
- *
- * each(['a', 'b', 'c'], function(ele, i) {
- * return i + ele;
- * });
- * //=> ['0a', '1b', '2c']
- * ```
- *
- * @name each
- * @alias forEach
- * @param {Array} `array`
- * @param {Function} `fn`
- * @param {Object} `thisArg` (optional) pass a `thisArg` to be used as the context in which to call the function.
- * @return {undefined}
- * @api public
- */
-
-module.exports = function each(arr, cb, thisArg) {
- if (arr == null) return;
-
- var len = arr.length;
- var idx = -1;
-
- while (++idx < len) {
- var ele = arr[idx];
- if (cb.call(thisArg, ele, idx, arr) === false) {
- break;
- }
- }
-};
diff --git a/node_modules/array-each/package.json b/node_modules/array-each/package.json
deleted file mode 100644
index 212fb80..0000000
--- a/node_modules/array-each/package.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{
- "name": "array-each",
- "description": "Loop over each item in an array and call the given function on every element.",
- "version": "1.0.1",
- "homepage": "https://github.com/jonschlinkert/array-each",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/array-each",
- "bugs": {
- "url": "https://github.com/jonschlinkert/array-each/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "devDependencies": {
- "gulp-format-md": "^0.1.11",
- "mocha": "^3.2.0"
- },
- "keywords": [
- "array",
- "each"
- ],
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "collection-map",
- "arr-filter",
- "arr-map"
- ]
- },
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/array-initial/.jshintrc b/node_modules/array-initial/.jshintrc
deleted file mode 100644
index ffd6173..0000000
--- a/node_modules/array-initial/.jshintrc
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "esnext": true,
- "boss": true,
- "curly": true,
- "eqeqeq": true,
- "eqnull": true,
- "immed": true,
- "indent": 2,
- "latedef": true,
- "newcap": true,
- "noarg": true,
- "node": true,
- "sub": true,
- "undef": true,
- "unused": true,
- "mocha": true
-}
diff --git a/node_modules/array-initial/.npmignore b/node_modules/array-initial/.npmignore
deleted file mode 100644
index cbe37ae..0000000
--- a/node_modules/array-initial/.npmignore
+++ /dev/null
@@ -1,59 +0,0 @@
-# Numerous always-ignore extensions
-*.csv
-*.dat
-*.diff
-*.err
-*.gz
-*.log
-*.orig
-*.out
-*.pid
-*.rar
-*.rej
-*.seed
-*.swo
-*.swp
-*.vi
-*.yo-rc.json
-*.zip
-*~
-.ruby-version
-lib-cov
-npm-debug.log
-
-# Always-ignore dirs
-/bower_components/
-/node_modules/
-/temp/
-/tmp/
-/vendor/
-_gh_pages
-
-# OS or Editor folders
-*.esproj
-*.komodoproject
-.komodotools
-*.sublime-*
-._*
-.cache
-.DS_Store
-.idea
-.project
-.settings
-.tmproj
-nbproject
-Thumbs.db
-
-# grunt-html-validation
-validation-status.json
-validation-report.json
-
-# misc
-TODO.md
-
-# npmignore
-test
-test.js
-.verb.md
-.gitattributes
-.editorconfig
diff --git a/node_modules/array-initial/.travis.yml b/node_modules/array-initial/.travis.yml
deleted file mode 100644
index 67decb2..0000000
--- a/node_modules/array-initial/.travis.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-sudo: false
-os:
- - linux
- - osx
-language: node_js
-node_js:
- - node
- - '8'
- - '7'
- - '6'
- - '5'
- - '4'
- - '0.12'
- - '0.10'
diff --git a/node_modules/array-initial/LICENSE-MIT b/node_modules/array-initial/LICENSE-MIT
deleted file mode 100644
index f8c06df..0000000
--- a/node_modules/array-initial/LICENSE-MIT
+++ /dev/null
@@ -1,24 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014 Jon Schlinkert, contributors.
-
-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/array-initial/README.md b/node_modules/array-initial/README.md
deleted file mode 100644
index 5b95675..0000000
--- a/node_modules/array-initial/README.md
+++ /dev/null
@@ -1,39 +0,0 @@
-# array-initial [![NPM version](https://badge.fury.io/js/array-initial.svg)](http://badge.fury.io/js/array-initial)
-
-> Get all but the last element or last n elements of an array.
-
-## Install with [npm](npmjs.org)
-
-```bash
-npm i array-initial --save
-```
-
-## Usage
-
-```js
-var initial = require('array-initial');
-
-initial(['a', 'b', 'c', 'd', 'e', 'f']);
-//=> ['a', 'b', 'c', 'd', 'e']
-
-initial(['a', 'b', 'c', 'd', 'e', 'f'], 1);
-//=> ['a', 'b', 'c', 'd', 'e']
-
-initial(['a', 'b', 'c', 'd', 'e', 'f'], 2);
-//=> ['a', 'b', 'c', 'd']
-```
-
-## Author
-
-**Jon Schlinkert**
-
-+ [github/jonschlinkert](https://github.com/jonschlinkert)
-+ [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
-
-## License
-Copyright (c) 2014 Jon Schlinkert
-Released under the MIT license
-
-***
-
-_This file was generated by [verb](https://github.com/assemble/verb) on December 12, 2014. To update, run `npm i -g verb && verb`._
diff --git a/node_modules/array-initial/index.js b/node_modules/array-initial/index.js
deleted file mode 100644
index 239e8c6..0000000
--- a/node_modules/array-initial/index.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/*!
- * array-initial
- *
- * Copyright (c) 2014 Jon Schlinkert, contributors.
- * Licensed under the MIT license.
- */
-
-var isNumber = require('is-number');
-var slice = require('array-slice');
-
-module.exports = function arrayInitial(arr, num) {
- if (!Array.isArray(arr)) {
- throw new Error('array-initial expects an array as the first argument.');
- }
-
- if (arr.length === 0) {
- return null;
- }
-
- return slice(arr, 0, arr.length - (isNumber(num) ? num : 1));
-};
diff --git a/node_modules/array-initial/node_modules/is-number/LICENSE b/node_modules/array-initial/node_modules/is-number/LICENSE
deleted file mode 100644
index 3f2eca1..0000000
--- a/node_modules/array-initial/node_modules/is-number/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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/array-initial/node_modules/is-number/README.md b/node_modules/array-initial/node_modules/is-number/README.md
deleted file mode 100644
index 6436992..0000000
--- a/node_modules/array-initial/node_modules/is-number/README.md
+++ /dev/null
@@ -1,135 +0,0 @@
-# is-number [![NPM version](https://img.shields.io/npm/v/is-number.svg?style=flat)](https://www.npmjs.com/package/is-number) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-number.svg?style=flat)](https://npmjs.org/package/is-number) [![NPM total downloads](https://img.shields.io/npm/dt/is-number.svg?style=flat)](https://npmjs.org/package/is-number) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-number.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-number)
-
-> Returns true if the value is a number. comprehensive tests.
-
-Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save is-number
-```
-
-## Usage
-
-To understand some of the rationale behind the decisions made in this library (and to learn about some oddities of number evaluation in JavaScript), [see this gist](https://gist.github.com/jonschlinkert/e30c70c713da325d0e81).
-
-```js
-var isNumber = require('is-number');
-```
-
-### true
-
-See the [tests](./test.js) for more examples.
-
-```js
-isNumber(5e3) //=> 'true'
-isNumber(0xff) //=> 'true'
-isNumber(-1.1) //=> 'true'
-isNumber(0) //=> 'true'
-isNumber(1) //=> 'true'
-isNumber(1.1) //=> 'true'
-isNumber(10) //=> 'true'
-isNumber(10.10) //=> 'true'
-isNumber(100) //=> 'true'
-isNumber('-1.1') //=> 'true'
-isNumber('0') //=> 'true'
-isNumber('012') //=> 'true'
-isNumber('0xff') //=> 'true'
-isNumber('1') //=> 'true'
-isNumber('1.1') //=> 'true'
-isNumber('10') //=> 'true'
-isNumber('10.10') //=> 'true'
-isNumber('100') //=> 'true'
-isNumber('5e3') //=> 'true'
-isNumber(parseInt('012')) //=> 'true'
-isNumber(parseFloat('012')) //=> 'true'
-```
-
-### False
-
-See the [tests](./test.js) for more examples.
-
-```js
-isNumber('foo') //=> 'false'
-isNumber([1]) //=> 'false'
-isNumber([]) //=> 'false'
-isNumber(function () {}) //=> 'false'
-isNumber(Infinity) //=> 'false'
-isNumber(NaN) //=> 'false'
-isNumber(new Array('abc')) //=> 'false'
-isNumber(new Array(2)) //=> 'false'
-isNumber(new Buffer('abc')) //=> 'false'
-isNumber(null) //=> 'false'
-isNumber(undefined) //=> 'false'
-isNumber({abc: 'abc'}) //=> 'false'
-```
-
-## About
-
-
-Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-
-
-
-Running Tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-
-
-
-Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-
-
-### Related projects
-
-You might also be interested in these projects:
-
-* [even](https://www.npmjs.com/package/even): Get the even numbered items from an array. | [homepage](https://github.com/jonschlinkert/even "Get the even numbered items from an array.")
-* [is-even](https://www.npmjs.com/package/is-even): Return true if the given number is even. | [homepage](https://github.com/jonschlinkert/is-even "Return true if the given number is even.")
-* [is-odd](https://www.npmjs.com/package/is-odd): Returns true if the given number is odd. | [homepage](https://github.com/jonschlinkert/is-odd "Returns true if the given number is odd.")
-* [is-primitive](https://www.npmjs.com/package/is-primitive): Returns `true` if the value is a primitive. | [homepage](https://github.com/jonschlinkert/is-primitive "Returns `true` if the value is a primitive. ")
-* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.")
-* [odd](https://www.npmjs.com/package/odd): Get the odd numbered items from an array. | [homepage](https://github.com/jonschlinkert/odd "Get the odd numbered items from an array.")
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 38 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 5 | [charlike](https://github.com/charlike) |
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on October 17, 2017._
\ No newline at end of file
diff --git a/node_modules/array-initial/node_modules/is-number/index.js b/node_modules/array-initial/node_modules/is-number/index.js
deleted file mode 100644
index 5221f40..0000000
--- a/node_modules/array-initial/node_modules/is-number/index.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/*!
- * is-number
- *
- * Copyright (c) 2014-2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-module.exports = function isNumber(num) {
- var type = typeof num;
-
- if (type === 'string' || num instanceof String) {
- // an empty string would be coerced to true with the below logic
- if (!num.trim()) return false;
- } else if (type !== 'number' && !(num instanceof Number)) {
- return false;
- }
-
- return (num - num + 1) >= 0;
-};
diff --git a/node_modules/array-initial/node_modules/is-number/package.json b/node_modules/array-initial/node_modules/is-number/package.json
deleted file mode 100644
index c8a7af1..0000000
--- a/node_modules/array-initial/node_modules/is-number/package.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "name": "is-number",
- "description": "Returns true if the value is a number. comprehensive tests.",
- "version": "4.0.0",
- "homepage": "https://github.com/jonschlinkert/is-number",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "tunnckoCore (https://i.am.charlike.online)"
- ],
- "repository": "jonschlinkert/is-number",
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-number/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "devDependencies": {
- "benchmarked": "^2.0.0",
- "chalk": "^2.1.0",
- "gulp-format-md": "^1.0.0",
- "mocha": "^3.0.1"
- },
- "keywords": [
- "check",
- "coerce",
- "coercion",
- "integer",
- "is",
- "is-nan",
- "is-num",
- "is-number",
- "istype",
- "kind",
- "math",
- "nan",
- "num",
- "number",
- "numeric",
- "test",
- "type",
- "typeof",
- "value"
- ],
- "verb": {
- "related": {
- "list": [
- "even",
- "is-even",
- "is-odd",
- "is-primitive",
- "kind-of",
- "odd"
- ]
- },
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/array-initial/package.json b/node_modules/array-initial/package.json
deleted file mode 100644
index 2f70ba0..0000000
--- a/node_modules/array-initial/package.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
- "name": "array-initial",
- "description": "Get all but the last element or last n elements of an array.",
- "version": "1.1.0",
- "homepage": "https://github.com/jonschlinkert/array-initial",
- "author": {
- "name": "Jon Schlinkert",
- "url": "https://github.com/jonschlinkert"
- },
- "repository": {
- "type": "git",
- "url": "git://github.com/jonschlinkert/array-initial.git"
- },
- "bugs": {
- "url": "https://github.com/jonschlinkert/array-initial/issues"
- },
- "license": "MIT",
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha -R spec"
- },
- "devDependencies": {
- "mocha": "^2.0.0",
- "should": "^11.2.1"
- },
- "dependencies": {
- "array-slice": "^1.0.0",
- "is-number": "^4.0.0"
- },
- "keywords": [
- "array",
- "fast",
- "first",
- "initial",
- "javascript",
- "js",
- "last",
- "rest",
- "util",
- "utility",
- "utils"
- ]
-}
diff --git a/node_modules/array-last/LICENSE b/node_modules/array-last/LICENSE
deleted file mode 100644
index 3f2eca1..0000000
--- a/node_modules/array-last/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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/array-last/README.md b/node_modules/array-last/README.md
deleted file mode 100755
index d976c93..0000000
--- a/node_modules/array-last/README.md
+++ /dev/null
@@ -1,94 +0,0 @@
-# array-last [![NPM version](https://img.shields.io/npm/v/array-last.svg?style=flat)](https://www.npmjs.com/package/array-last) [![NPM monthly downloads](https://img.shields.io/npm/dm/array-last.svg?style=flat)](https://npmjs.org/package/array-last) [![NPM total downloads](https://img.shields.io/npm/dt/array-last.svg?style=flat)](https://npmjs.org/package/array-last) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/array-last.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/array-last)
-
-> Get the last or last n elements in an array.
-
-Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save array-last
-```
-
-## Usage
-
-```js
-var last = require('array-last');
-
-last(['a', 'b', 'c', 'd', 'e', 'f']);
-//=> 'f'
-
-last(['a', 'b', 'c', 'd', 'e', 'f'], 1);
-//=> 'f'
-
-last(['a', 'b', 'c', 'd', 'e', 'f'], 3);
-//=> ['d', 'e', 'f']
-```
-
-## About
-
-
-Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-
-
-
-Running Tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-
-
-
-Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-
-
-### Related projects
-
-You might also be interested in these projects:
-
-* [arr-union](https://www.npmjs.com/package/arr-union): Combines a list of arrays, returning a single array with unique values, using strict equality… [more](https://github.com/jonschlinkert/arr-union) | [homepage](https://github.com/jonschlinkert/arr-union)
-* [array-unique](https://www.npmjs.com/package/array-unique): Remove duplicate values from an array. Fastest ES5 implementation. | [homepage](https://github.com/jonschlinkert/array-unique)
-* [array-xor](https://www.npmjs.com/package/array-xor): Returns the symmetric difference (exclusive-or) of an array of elements (elements that are present in… [more](https://github.com/jonschlinkert/array-xor) | [homepage](https://github.com/jonschlinkert/array-xor)
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 19 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 3 | [SpyMaster356](https://github.com/SpyMaster356) |
-| 2 | [bendrucker](https://github.com/bendrucker) |
-| 2 | [phated](https://github.com/phated) |
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on November 30, 2017._
\ No newline at end of file
diff --git a/node_modules/array-last/index.js b/node_modules/array-last/index.js
deleted file mode 100644
index 5b02f18..0000000
--- a/node_modules/array-last/index.js
+++ /dev/null
@@ -1,30 +0,0 @@
-/*!
- * array-last
- *
- * Copyright (c) 2014-2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-var isNumber = require('is-number');
-
-module.exports = function last(arr, n) {
- if (!Array.isArray(arr)) {
- throw new Error('expected the first argument to be an array');
- }
-
- var len = arr.length;
- if (len === 0) {
- return null;
- }
-
- n = isNumber(n) ? +n : 1;
- if (n === 1) {
- return arr[len - 1];
- }
-
- var res = new Array(n);
- while (n--) {
- res[n] = arr[--len];
- }
- return res;
-};
diff --git a/node_modules/array-last/node_modules/is-number/LICENSE b/node_modules/array-last/node_modules/is-number/LICENSE
deleted file mode 100644
index 3f2eca1..0000000
--- a/node_modules/array-last/node_modules/is-number/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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/array-last/node_modules/is-number/README.md b/node_modules/array-last/node_modules/is-number/README.md
deleted file mode 100644
index 6436992..0000000
--- a/node_modules/array-last/node_modules/is-number/README.md
+++ /dev/null
@@ -1,135 +0,0 @@
-# is-number [![NPM version](https://img.shields.io/npm/v/is-number.svg?style=flat)](https://www.npmjs.com/package/is-number) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-number.svg?style=flat)](https://npmjs.org/package/is-number) [![NPM total downloads](https://img.shields.io/npm/dt/is-number.svg?style=flat)](https://npmjs.org/package/is-number) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-number.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-number)
-
-> Returns true if the value is a number. comprehensive tests.
-
-Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save is-number
-```
-
-## Usage
-
-To understand some of the rationale behind the decisions made in this library (and to learn about some oddities of number evaluation in JavaScript), [see this gist](https://gist.github.com/jonschlinkert/e30c70c713da325d0e81).
-
-```js
-var isNumber = require('is-number');
-```
-
-### true
-
-See the [tests](./test.js) for more examples.
-
-```js
-isNumber(5e3) //=> 'true'
-isNumber(0xff) //=> 'true'
-isNumber(-1.1) //=> 'true'
-isNumber(0) //=> 'true'
-isNumber(1) //=> 'true'
-isNumber(1.1) //=> 'true'
-isNumber(10) //=> 'true'
-isNumber(10.10) //=> 'true'
-isNumber(100) //=> 'true'
-isNumber('-1.1') //=> 'true'
-isNumber('0') //=> 'true'
-isNumber('012') //=> 'true'
-isNumber('0xff') //=> 'true'
-isNumber('1') //=> 'true'
-isNumber('1.1') //=> 'true'
-isNumber('10') //=> 'true'
-isNumber('10.10') //=> 'true'
-isNumber('100') //=> 'true'
-isNumber('5e3') //=> 'true'
-isNumber(parseInt('012')) //=> 'true'
-isNumber(parseFloat('012')) //=> 'true'
-```
-
-### False
-
-See the [tests](./test.js) for more examples.
-
-```js
-isNumber('foo') //=> 'false'
-isNumber([1]) //=> 'false'
-isNumber([]) //=> 'false'
-isNumber(function () {}) //=> 'false'
-isNumber(Infinity) //=> 'false'
-isNumber(NaN) //=> 'false'
-isNumber(new Array('abc')) //=> 'false'
-isNumber(new Array(2)) //=> 'false'
-isNumber(new Buffer('abc')) //=> 'false'
-isNumber(null) //=> 'false'
-isNumber(undefined) //=> 'false'
-isNumber({abc: 'abc'}) //=> 'false'
-```
-
-## About
-
-
-Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-
-
-
-Running Tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-
-
-
-Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-
-
-### Related projects
-
-You might also be interested in these projects:
-
-* [even](https://www.npmjs.com/package/even): Get the even numbered items from an array. | [homepage](https://github.com/jonschlinkert/even "Get the even numbered items from an array.")
-* [is-even](https://www.npmjs.com/package/is-even): Return true if the given number is even. | [homepage](https://github.com/jonschlinkert/is-even "Return true if the given number is even.")
-* [is-odd](https://www.npmjs.com/package/is-odd): Returns true if the given number is odd. | [homepage](https://github.com/jonschlinkert/is-odd "Returns true if the given number is odd.")
-* [is-primitive](https://www.npmjs.com/package/is-primitive): Returns `true` if the value is a primitive. | [homepage](https://github.com/jonschlinkert/is-primitive "Returns `true` if the value is a primitive. ")
-* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.")
-* [odd](https://www.npmjs.com/package/odd): Get the odd numbered items from an array. | [homepage](https://github.com/jonschlinkert/odd "Get the odd numbered items from an array.")
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 38 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 5 | [charlike](https://github.com/charlike) |
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on October 17, 2017._
\ No newline at end of file
diff --git a/node_modules/array-last/node_modules/is-number/index.js b/node_modules/array-last/node_modules/is-number/index.js
deleted file mode 100644
index 5221f40..0000000
--- a/node_modules/array-last/node_modules/is-number/index.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/*!
- * is-number
- *
- * Copyright (c) 2014-2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-module.exports = function isNumber(num) {
- var type = typeof num;
-
- if (type === 'string' || num instanceof String) {
- // an empty string would be coerced to true with the below logic
- if (!num.trim()) return false;
- } else if (type !== 'number' && !(num instanceof Number)) {
- return false;
- }
-
- return (num - num + 1) >= 0;
-};
diff --git a/node_modules/array-last/node_modules/is-number/package.json b/node_modules/array-last/node_modules/is-number/package.json
deleted file mode 100644
index c8a7af1..0000000
--- a/node_modules/array-last/node_modules/is-number/package.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "name": "is-number",
- "description": "Returns true if the value is a number. comprehensive tests.",
- "version": "4.0.0",
- "homepage": "https://github.com/jonschlinkert/is-number",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "tunnckoCore (https://i.am.charlike.online)"
- ],
- "repository": "jonschlinkert/is-number",
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-number/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "devDependencies": {
- "benchmarked": "^2.0.0",
- "chalk": "^2.1.0",
- "gulp-format-md": "^1.0.0",
- "mocha": "^3.0.1"
- },
- "keywords": [
- "check",
- "coerce",
- "coercion",
- "integer",
- "is",
- "is-nan",
- "is-num",
- "is-number",
- "istype",
- "kind",
- "math",
- "nan",
- "num",
- "number",
- "numeric",
- "test",
- "type",
- "typeof",
- "value"
- ],
- "verb": {
- "related": {
- "list": [
- "even",
- "is-even",
- "is-odd",
- "is-primitive",
- "kind-of",
- "odd"
- ]
- },
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/array-last/package.json b/node_modules/array-last/package.json
deleted file mode 100644
index 591edb6..0000000
--- a/node_modules/array-last/package.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "name": "array-last",
- "description": "Get the last or last n elements in an array.",
- "version": "1.3.0",
- "homepage": "https://github.com/jonschlinkert/array-last",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Ben Drucker (http://www.bendrucker.me)",
- "Blaine Bublitz (https://twitter.com/BlaineBublitz)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Stephen A. Wilson (https://github.com/SpyMaster356)"
- ],
- "repository": "jonschlinkert/array-last",
- "bugs": {
- "url": "https://github.com/jonschlinkert/array-last/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "is-number": "^4.0.0"
- },
- "devDependencies": {
- "ansi-bold": "^0.1.1",
- "array-slice": "^1.0.0",
- "benchmarked": "^1.1.1",
- "gulp-format-md": "^1.0.0",
- "matched": "^1.0.2",
- "mocha": "^3.5.0"
- },
- "keywords": [
- "array",
- "fast",
- "first",
- "initial",
- "javascript",
- "js",
- "last",
- "rest",
- "util",
- "utility",
- "utils"
- ],
- "verb": {
- "run": true,
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "arr-union",
- "array-unique",
- "array-xor"
- ]
- },
- "reflinks": [
- "verb"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/array-slice/LICENSE b/node_modules/array-slice/LICENSE
deleted file mode 100755
index 3f2eca1..0000000
--- a/node_modules/array-slice/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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/array-slice/README.md b/node_modules/array-slice/README.md
deleted file mode 100755
index e175ca0..0000000
--- a/node_modules/array-slice/README.md
+++ /dev/null
@@ -1,82 +0,0 @@
-# array-slice [![NPM version](https://img.shields.io/npm/v/array-slice.svg?style=flat)](https://www.npmjs.com/package/array-slice) [![NPM monthly downloads](https://img.shields.io/npm/dm/array-slice.svg?style=flat)](https://npmjs.org/package/array-slice) [![NPM total downloads](https://img.shields.io/npm/dt/array-slice.svg?style=flat)](https://npmjs.org/package/array-slice) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/array-slice.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/array-slice)
-
-> Array-slice method. Slices `array` from the `start` index up to, but not including, the `end` index.
-
-Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save array-slice
-```
-
-This function is used instead of `Array#slice` to support node lists in IE < 9 and to ensure dense arrays are returned. This is also faster than native slice in some cases.
-
-## Usage
-
-```js
-var slice = require('array-slice');
-var arr = ['a', 'b', 'd', 'e', 'f', 'g', 'h', 'i', 'j'];
-
-slice(arr, 3, 6);
-//=> ['e', 'f', 'g']
-```
-
-## About
-
-
-Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-
-
-
-Running Tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-
-
-
-Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-
-
-### Related projects
-
-You might also be interested in these projects:
-
-* [arr-flatten](https://www.npmjs.com/package/arr-flatten): Recursively flatten an array or arrays. | [homepage](https://github.com/jonschlinkert/arr-flatten "Recursively flatten an array or arrays.")
-* [array-unique](https://www.npmjs.com/package/array-unique): Remove duplicate values from an array. Fastest ES5 implementation. | [homepage](https://github.com/jonschlinkert/array-unique "Remove duplicate values from an array. Fastest ES5 implementation.")
-* [array-xor](https://www.npmjs.com/package/array-xor): Returns the symmetric difference (exclusive-or) of an array of elements (elements that are present in… [more](https://github.com/jonschlinkert/array-xor) | [homepage](https://github.com/jonschlinkert/array-xor "Returns the symmetric difference (exclusive-or) of an array of elements (elements that are present in all given arrays and not in their intersections).")
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on November 30, 2017._
\ No newline at end of file
diff --git a/node_modules/array-slice/index.js b/node_modules/array-slice/index.js
deleted file mode 100644
index 15cdb77..0000000
--- a/node_modules/array-slice/index.js
+++ /dev/null
@@ -1,33 +0,0 @@
-/*!
- * array-slice
- *
- * Copyright (c) 2014-2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-module.exports = function slice(arr, start, end) {
- var len = arr.length;
- var range = [];
-
- start = idx(len, start);
- end = idx(len, end, len);
-
- while (start < end) {
- range.push(arr[start++]);
- }
- return range;
-};
-
-function idx(len, pos, end) {
- if (pos == null) {
- pos = end || 0;
- } else if (pos < 0) {
- pos = Math.max(len + pos, 0);
- } else {
- pos = Math.min(pos, len);
- }
-
- return pos;
-}
diff --git a/node_modules/array-slice/package.json b/node_modules/array-slice/package.json
deleted file mode 100644
index 7fedf0c..0000000
--- a/node_modules/array-slice/package.json
+++ /dev/null
@@ -1,54 +0,0 @@
-{
- "name": "array-slice",
- "description": "Array-slice method. Slices `array` from the `start` index up to, but not including, the `end` index.",
- "version": "1.1.0",
- "homepage": "https://github.com/jonschlinkert/array-slice",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/array-slice",
- "bugs": {
- "url": "https://github.com/jonschlinkert/array-slice/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "devDependencies": {
- "gulp-format-md": "^1.0.0",
- "mocha": "^3.5.3"
- },
- "keywords": [
- "array",
- "javascript",
- "js",
- "slice",
- "util",
- "utils"
- ],
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "arr-flatten",
- "array-unique",
- "array-xor"
- ]
- },
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/array-sort/LICENSE b/node_modules/array-sort/LICENSE
deleted file mode 100644
index c0d7f13..0000000
--- a/node_modules/array-sort/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015-2017, 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.
\ No newline at end of file
diff --git a/node_modules/array-sort/README.md b/node_modules/array-sort/README.md
deleted file mode 100644
index 94d9ba7..0000000
--- a/node_modules/array-sort/README.md
+++ /dev/null
@@ -1,203 +0,0 @@
-# array-sort [![NPM version](https://img.shields.io/npm/v/array-sort.svg?style=flat)](https://www.npmjs.com/package/array-sort) [![NPM monthly downloads](https://img.shields.io/npm/dm/array-sort.svg?style=flat)](https://npmjs.org/package/array-sort) [![NPM total downloads](https://img.shields.io/npm/dt/array-sort.svg?style=flat)](https://npmjs.org/package/array-sort) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/array-sort.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/array-sort) [![Windows Build Status](https://img.shields.io/appveyor/ci/jonschlinkert/array-sort.svg?style=flat&label=AppVeyor)](https://ci.appveyor.com/project/jonschlinkert/array-sort)
-
-> Fast and powerful array sorting. Sort an array of objects by one or more properties. Any number of nested properties or custom comparison functions may be used.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save array-sort
-```
-
-Install with [yarn](https://yarnpkg.com):
-
-```sh
-$ yarn add array-sort
-```
-
-## Usage
-
-Sort an array by the given object property:
-
-```js
-var arraySort = require('array-sort');
-
-arraySort([{foo: 'y'}, {foo: 'z'}, {foo: 'x'}], 'foo');
-//=> [{foo: 'x'}, {foo: 'y'}, {foo: 'z'}]
-```
-
-**Reverse order**
-
-```js
-arraySort([{foo: 'y'}, {foo: 'z'}, {foo: 'x'}], 'foo', {reverse: true});
-//=> [{foo: 'z'}, {foo: 'y'}, {foo: 'x'}]
-```
-
-## Params
-
-```js
-arraySort(array, comparisonArgs);
-```
-
-* `array`: **{Array}** The array to sort
-* `comparisonArgs`: **{Function|String|Array}**: One or more functions or object paths to use for sorting.
-
-## Examples
-
-**[Sort blog posts](examples/blog-posts.js)**
-
-```js
-var arraySort = require('array-sort');
-
-var posts = [
- { path: 'c.md', locals: { date: '2014-01-09' } },
- { path: 'a.md', locals: { date: '2014-01-02' } },
- { path: 'b.md', locals: { date: '2013-05-06' } },
-];
-
-// sort by `locals.date`
-console.log(arraySort(posts, 'locals.date'));
-
-// sort by `path`
-console.log(arraySort(posts, 'path'));
-```
-
-**[Sort by multiple properties](examples/multiple-props.js)**
-
-```js
-var arraySort = require('array-sort');
-
-var posts = [
- { locals: { foo: 'bbb', date: '2013-05-06' }},
- { locals: { foo: 'aaa', date: '2012-01-02' }},
- { locals: { foo: 'ccc', date: '2014-01-02' }},
- { locals: { foo: 'ccc', date: '2015-01-02' }},
- { locals: { foo: 'bbb', date: '2014-06-01' }},
- { locals: { foo: 'aaa', date: '2014-02-02' }},
-];
-
-// sort by `locals.foo`, then `locals.date`
-var result = arraySort(posts, ['locals.foo', 'locals.date']);
-
-console.log(result);
-// [ { locals: { foo: 'aaa', date: '2012-01-02' } },
-// { locals: { foo: 'aaa', date: '2014-02-02' } },
-// { locals: { foo: 'bbb', date: '2013-05-06' } },
-// { locals: { foo: 'bbb', date: '2014-06-01' } },
-// { locals: { foo: 'ccc', date: '2014-01-02' } },
-// { locals: { foo: 'ccc', date: '2015-01-02' } } ]
-```
-
-**[Custom function](examples/custom-function.js)**
-
-If custom functions are supplied, array elements are sorted according to the return value of the compare function. See the [docs for ](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort)`Array.sort()` for more details.
-
-```js
-var arr = [
- {one: 'w', two: 'b'},
- {one: 'z', two: 'a'},
- {one: 'x', two: 'c'},
- {one: 'y', two: 'd'},
-];
-
-function compare(prop) {
- return function (a, b) {
- return a[prop].localeCompare(b[prop]);
- };
-}
-
-var result = arraySort(arr, function (a, b) {
- return a.two.localeCompare(b.two);
-});
-
-console.log(result);
-// [ { one: 'z', two: 'a' },
-// { one: 'w', two: 'b' },
-// { one: 'x', two: 'c' },
-// { one: 'y', two: 'd' } ]
-```
-
-**[Multiple custom functions](examples/custom-functions.js)**
-
-```js
-var arr = [
- {foo: 'w', bar: 'y', baz: 'w'},
- {foo: 'x', bar: 'y', baz: 'w'},
- {foo: 'x', bar: 'y', baz: 'z'},
- {foo: 'x', bar: 'x', baz: 'w'},
-];
-
-// reusable compare function
-function compare(prop) {
- return function (a, b) {
- return a[prop].localeCompare(b[prop]);
- };
-}
-
-// the `compare` functions can be a list or array
-var result = arraySort(arr, compare('foo'), compare('bar'), compare('baz'));
-
-console.log(result);
-// [ { foo: 'w', bar: 'y', baz: 'w' },
-// { foo: 'x', bar: 'x', baz: 'w' },
-// { foo: 'x', bar: 'y', baz: 'w' },
-// { foo: 'x', bar: 'y', baz: 'z' } ]
-```
-
-## About
-
-### Related projects
-
-* [get-value](https://www.npmjs.com/package/get-value): Use property paths (`a.b.c`) to get a nested value from an object. | [homepage](https://github.com/jonschlinkert/get-value "Use property paths (`a.b.c`) to get a nested value from an object.")
-* [set-value](https://www.npmjs.com/package/set-value): Create nested values and any intermediaries using dot notation (`'a.b.c'`) paths. | [homepage](https://github.com/jonschlinkert/set-value "Create nested values and any intermediaries using dot notation (`'a.b.c'`) paths.")
-* [sort-asc](https://www.npmjs.com/package/sort-asc): Sort array elements in ascending order. | [homepage](https://github.com/jonschlinkert/sort-asc "Sort array elements in ascending order.")
-* [sort-desc](https://www.npmjs.com/package/sort-desc): Sort array elements in descending order. | [homepage](https://github.com/jonschlinkert/sort-desc "Sort array elements in descending order.")
-* [sort-object](https://www.npmjs.com/package/sort-object): Sort the keys in an object. | [homepage](https://github.com/doowb/sort-object "Sort the keys in an object.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 10 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 4 | [doowb](https://github.com/doowb) |
-| 1 | [iamstolis](https://github.com/iamstolis) |
-| 1 | [wkevina](https://github.com/wkevina) |
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on September 11, 2017._
\ No newline at end of file
diff --git a/node_modules/array-sort/index.js b/node_modules/array-sort/index.js
deleted file mode 100644
index 01880e1..0000000
--- a/node_modules/array-sort/index.js
+++ /dev/null
@@ -1,105 +0,0 @@
-/*!
- * array-sort
- *
- * Copyright (c) 2015-2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-var defaultCompare = require('default-compare');
-var typeOf = require('kind-of');
-var get = require('get-value');
-
-/**
- * Sort an array of objects by one or more properties.
- *
- * @param {Array} `arr` The Array to sort.
- * @param {String|Array|Function} `props` One or more object paths or comparison functions.
- * @param {Object} `opts` Pass `{ reverse: true }` to reverse the sort order.
- * @return {Array} Returns a sorted array.
- * @api public
- */
-
-function arraySort(arr, props, opts) {
- if (arr == null) {
- return [];
- }
-
- if (!Array.isArray(arr)) {
- throw new TypeError('array-sort expects an array.');
- }
-
- if (arguments.length === 1) {
- return arr.sort();
- }
-
- var args = flatten([].slice.call(arguments, 1));
-
- // if the last argument appears to be a plain object,
- // it's not a valid `compare` arg, so it must be options.
- if (typeOf(args[args.length - 1]) === 'object') {
- opts = args.pop();
- }
- return arr.sort(sortBy(args, opts));
-}
-
-/**
- * Iterate over each comparison property or function until `1` or `-1`
- * is returned.
- *
- * @param {String|Array|Function} `props` One or more object paths or comparison functions.
- * @param {Object} `opts` Pass `{ reverse: true }` to reverse the sort order.
- * @return {Array}
- */
-
-function sortBy(props, opts) {
- opts = opts || {};
-
- return function compareFn(a, b) {
- var len = props.length, i = -1;
- var result;
-
- while (++i < len) {
- result = compare(props[i], a, b);
- if (result !== 0) {
- break;
- }
- }
- if (opts.reverse === true) {
- return result * -1;
- }
- return result;
- };
-}
-
-/**
- * Compare `a` to `b`. If an object `prop` is passed, then
- * `a[prop]` is compared to `b[prop]`
- */
-
-function compare(prop, a, b) {
- if (typeof prop === 'function') {
- // expose `compare` to custom function
- return prop(a, b, compare.bind(null, null));
- }
- // compare object values
- if (prop && typeof a === 'object' && typeof b === 'object') {
- return compare(null, get(a, prop), get(b, prop));
- }
- return defaultCompare(a, b);
-}
-
-/**
- * Flatten the given array.
- */
-
-function flatten(arr) {
- return [].concat.apply([], arr);
-}
-
-/**
- * Expose `arraySort`
- */
-
-module.exports = arraySort;
diff --git a/node_modules/array-sort/package.json b/node_modules/array-sort/package.json
deleted file mode 100644
index 19e02d7..0000000
--- a/node_modules/array-sort/package.json
+++ /dev/null
@@ -1,94 +0,0 @@
-{
- "name": "array-sort",
- "description": "Fast and powerful array sorting. Sort an array of objects by one or more properties. Any number of nested properties or custom comparison functions may be used.",
- "version": "1.0.0",
- "homepage": "https://github.com/jonschlinkert/array-sort",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Brian Woodward (https://twitter.com/doowb)",
- "Jan Stola (https://github.com/iamstolis)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Kevin Ward (https://github.com/wkevina)"
- ],
- "repository": "jonschlinkert/array-sort",
- "bugs": {
- "url": "https://github.com/jonschlinkert/array-sort/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "default-compare": "^1.0.0",
- "get-value": "^2.0.6",
- "kind-of": "^5.0.2"
- },
- "devDependencies": {
- "ansi-bold": "^0.1.1",
- "benchmarked": "^0.1.5",
- "glob": "^7.0.3",
- "gulp-format-md": "^0.1.8",
- "lodash.sortbyorder": "^3.4.4",
- "mocha": "^2.4.5",
- "should": "^8.3.1"
- },
- "keywords": [
- "arr",
- "array",
- "asc",
- "ascend",
- "ascending",
- "desc",
- "descend",
- "descending",
- "dot",
- "element",
- "elements",
- "get",
- "multiple",
- "nested",
- "obj",
- "object",
- "order",
- "ordered",
- "path",
- "prop",
- "properties",
- "property",
- "sort",
- "sorted",
- "sorting"
- ],
- "verb": {
- "reflinks": [
- "verb"
- ],
- "related": {
- "list": [
- "get-value",
- "set-value",
- "sort-asc",
- "sort-desc",
- "sort-object"
- ]
- },
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/array-unique/LICENSE b/node_modules/array-unique/LICENSE
deleted file mode 100755
index 842218c..0000000
--- a/node_modules/array-unique/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2016, 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/array-unique/README.md b/node_modules/array-unique/README.md
deleted file mode 100755
index 41c8c90..0000000
--- a/node_modules/array-unique/README.md
+++ /dev/null
@@ -1,77 +0,0 @@
-# array-unique [![NPM version](https://img.shields.io/npm/v/array-unique.svg?style=flat)](https://www.npmjs.com/package/array-unique) [![NPM downloads](https://img.shields.io/npm/dm/array-unique.svg?style=flat)](https://npmjs.org/package/array-unique) [![Build Status](https://img.shields.io/travis/jonschlinkert/array-unique.svg?style=flat)](https://travis-ci.org/jonschlinkert/array-unique)
-
-Remove duplicate values from an array. Fastest ES5 implementation.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save array-unique
-```
-
-## Usage
-
-```js
-var unique = require('array-unique');
-
-var arr = ['a', 'b', 'c', 'c'];
-console.log(unique(arr)) //=> ['a', 'b', 'c']
-console.log(arr) //=> ['a', 'b', 'c']
-
-/* The above modifies the input array. To prevent that at a slight performance cost: */
-var unique = require("array-unique").immutable;
-
-var arr = ['a', 'b', 'c', 'c'];
-console.log(unique(arr)) //=> ['a', 'b', 'c']
-console.log(arr) //=> ['a', 'b', 'c', 'c']
-```
-
-## About
-
-### Related projects
-
-* [arr-diff](https://www.npmjs.com/package/arr-diff): Returns an array with only the unique values from the first array, by excluding all… [more](https://github.com/jonschlinkert/arr-diff) | [homepage](https://github.com/jonschlinkert/arr-diff "Returns an array with only the unique values from the first array, by excluding all values from additional arrays using strict equality for comparisons.")
-* [arr-flatten](https://www.npmjs.com/package/arr-flatten): Recursively flatten an array or arrays. This is the fastest implementation of array flatten. | [homepage](https://github.com/jonschlinkert/arr-flatten "Recursively flatten an array or arrays. This is the fastest implementation of array flatten.")
-* [arr-map](https://www.npmjs.com/package/arr-map): Faster, node.js focused alternative to JavaScript's native array map. | [homepage](https://github.com/jonschlinkert/arr-map "Faster, node.js focused alternative to JavaScript's native array map.")
-* [arr-pluck](https://www.npmjs.com/package/arr-pluck): Retrieves the value of a specified property from all elements in the collection. | [homepage](https://github.com/jonschlinkert/arr-pluck "Retrieves the value of a specified property from all elements in the collection.")
-* [arr-reduce](https://www.npmjs.com/package/arr-reduce): Fast array reduce that also loops over sparse elements. | [homepage](https://github.com/jonschlinkert/arr-reduce "Fast array reduce that also loops over sparse elements.")
-* [arr-union](https://www.npmjs.com/package/arr-union): Combines a list of arrays, returning a single array with unique values, using strict equality… [more](https://github.com/jonschlinkert/arr-union) | [homepage](https://github.com/jonschlinkert/arr-union "Combines a list of arrays, returning a single array with unique values, using strict equality for comparisons.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Building docs
-
-_(This document was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme) (a [verb](https://github.com/verbose/verb) generator), please don't edit the readme directly. Any changes to the readme must be made in [.verb.md](.verb.md).)_
-
-To generate the readme and API documentation with [verb](https://github.com/verbose/verb):
-
-```sh
-$ npm install -g verb verb-generate-readme && verb
-```
-
-### Running tests
-
-Install dev dependencies:
-
-```sh
-$ npm install -d && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT license](https://github.com/jonschlinkert/array-unique/blob/master/LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.1.28, on July 31, 2016._
\ No newline at end of file
diff --git a/node_modules/array-unique/index.js b/node_modules/array-unique/index.js
deleted file mode 100644
index 7e481e0..0000000
--- a/node_modules/array-unique/index.js
+++ /dev/null
@@ -1,43 +0,0 @@
-/*!
- * array-unique
- *
- * Copyright (c) 2014-2015, Jon Schlinkert.
- * Licensed under the MIT License.
- */
-
-'use strict';
-
-module.exports = function unique(arr) {
- if (!Array.isArray(arr)) {
- throw new TypeError('array-unique expects an array.');
- }
-
- var len = arr.length;
- var i = -1;
-
- while (i++ < len) {
- var j = i + 1;
-
- for (; j < arr.length; ++j) {
- if (arr[i] === arr[j]) {
- arr.splice(j--, 1);
- }
- }
- }
- return arr;
-};
-
-module.exports.immutable = function uniqueImmutable(arr) {
- if (!Array.isArray(arr)) {
- throw new TypeError('array-unique expects an array.');
- }
-
- var arrLen = arr.length;
- var newArr = new Array(arrLen);
-
- for (var i = 0; i < arrLen; i++) {
- newArr[i] = arr[i];
- }
-
- return module.exports(newArr);
-};
diff --git a/node_modules/array-unique/package.json b/node_modules/array-unique/package.json
deleted file mode 100644
index d87640a..0000000
--- a/node_modules/array-unique/package.json
+++ /dev/null
@@ -1,62 +0,0 @@
-{
- "name": "array-unique",
- "description": "Remove duplicate values from an array. Fastest ES5 implementation.",
- "version": "0.3.2",
- "homepage": "https://github.com/jonschlinkert/array-unique",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/array-unique",
- "bugs": {
- "url": "https://github.com/jonschlinkert/array-unique/issues"
- },
- "license": "MIT",
- "files": [
- "index.js",
- "LICENSE",
- "README.md"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "devDependencies": {
- "array-uniq": "^1.0.2",
- "benchmarked": "^0.1.3",
- "gulp-format-md": "^0.1.9",
- "mocha": "^2.5.3",
- "should": "^10.0.0"
- },
- "keywords": [
- "array",
- "unique"
- ],
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "arr-diff",
- "arr-union",
- "arr-flatten",
- "arr-reduce",
- "arr-map",
- "arr-pluck"
- ]
- },
- "reflinks": [
- "verb",
- "verb-generate-readme"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/assign-symbols/LICENSE b/node_modules/assign-symbols/LICENSE
deleted file mode 100644
index 65f90ac..0000000
--- a/node_modules/assign-symbols/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015, 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/assign-symbols/README.md b/node_modules/assign-symbols/README.md
deleted file mode 100644
index 422729d..0000000
--- a/node_modules/assign-symbols/README.md
+++ /dev/null
@@ -1,73 +0,0 @@
-# assign-symbols [![NPM version](https://badge.fury.io/js/assign-symbols.svg)](http://badge.fury.io/js/assign-symbols)
-
-> Assign the enumerable es6 Symbol properties from an object (or objects) to the first object passed on the arguments. Can be used as a supplement to other extend, assign or merge methods as a polyfill for the Symbols part of the es6 Object.assign method.
-
-From the [Mozilla Developer docs for Symbol](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol):
-
-> A symbol is a unique and immutable data type and may be used as an identifier for object properties. The symbol object is an implicit object wrapper for the symbol primitive data type.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/)
-
-```sh
-$ npm i assign-symbols --save
-```
-
-## Usage
-
-```js
-var assignSymbols = require('assign-symbols');
-var obj = {};
-
-var one = {};
-var symbolOne = Symbol('aaa');
-one[symbolOne] = 'bbb';
-
-var two = {};
-var symbolTwo = Symbol('ccc');
-two[symbolTwo] = 'ddd';
-
-assignSymbols(obj, one, two);
-
-console.log(obj[symbolOne]);
-//=> 'bbb'
-console.log(obj[symbolTwo]);
-//=> 'ddd'
-```
-
-## Similar projects
-
-* [assign-deep](https://www.npmjs.com/package/assign-deep): Deeply assign the enumerable properties of source objects to a destination object. | [homepage](https://github.com/jonschlinkert/assign-deep)
-* [clone-deep](https://www.npmjs.com/package/clone-deep): Recursively (deep) clone JavaScript native types, like Object, Array, RegExp, Date as well as primitives. | [homepage](https://github.com/jonschlinkert/clone-deep)
-* [extend-shallow](https://www.npmjs.com/package/extend-shallow): Extend an object with the properties of additional objects. node.js/javascript util. | [homepage](https://github.com/jonschlinkert/extend-shallow)
-* [merge-deep](https://www.npmjs.com/package/merge-deep): Recursively merge values in a javascript object. | [homepage](https://github.com/jonschlinkert/merge-deep)
-* [mixin-deep](https://www.npmjs.com/package/mixin-deep): Deeply mix the properties of objects into the first object. Like merge-deep, but doesn't clone. | [homepage](https://github.com/jonschlinkert/mixin-deep)
-
-## Running tests
-
-Install dev dependencies:
-
-```sh
-$ npm i -d && npm test
-```
-
-## Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/assign-symbols/issues/new).
-
-## 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 November 06, 2015._
\ No newline at end of file
diff --git a/node_modules/assign-symbols/index.js b/node_modules/assign-symbols/index.js
deleted file mode 100644
index c08a232..0000000
--- a/node_modules/assign-symbols/index.js
+++ /dev/null
@@ -1,40 +0,0 @@
-/*!
- * assign-symbols
- *
- * Copyright (c) 2015, Jon Schlinkert.
- * Licensed under the MIT License.
- */
-
-'use strict';
-
-module.exports = function(receiver, objects) {
- if (receiver === null || typeof receiver === 'undefined') {
- throw new TypeError('expected first argument to be an object.');
- }
-
- if (typeof objects === 'undefined' || typeof Symbol === 'undefined') {
- return receiver;
- }
-
- if (typeof Object.getOwnPropertySymbols !== 'function') {
- return receiver;
- }
-
- var isEnumerable = Object.prototype.propertyIsEnumerable;
- var target = Object(receiver);
- var len = arguments.length, i = 0;
-
- while (++i < len) {
- var provider = Object(arguments[i]);
- var names = Object.getOwnPropertySymbols(provider);
-
- for (var j = 0; j < names.length; j++) {
- var key = names[j];
-
- if (isEnumerable.call(provider, key)) {
- target[key] = provider[key];
- }
- }
- }
- return target;
-};
diff --git a/node_modules/assign-symbols/package.json b/node_modules/assign-symbols/package.json
deleted file mode 100644
index 7f77b58..0000000
--- a/node_modules/assign-symbols/package.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- "name": "assign-symbols",
- "description": "Assign the enumerable es6 Symbol properties from an object (or objects) to the first object passed on the arguments. Can be used as a supplement to other extend, assign or merge methods as a polyfill for the Symbols part of the es6 Object.assign method.",
- "version": "1.0.0",
- "homepage": "https://github.com/jonschlinkert/assign-symbols",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/assign-symbols",
- "bugs": {
- "url": "https://github.com/jonschlinkert/assign-symbols/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "devDependencies": {
- "mocha": "^3.0.0"
- },
- "keywords": [
- "assign",
- "symbols"
- ],
- "verb": {
- "related": {
- "list": [
- "assign-deep",
- "mixin-deep",
- "merge-deep",
- "extend-shallow",
- "clone-deep"
- ]
- }
- }
-}
diff --git a/node_modules/async-done/LICENSE b/node_modules/async-done/LICENSE
deleted file mode 100644
index 9aedc0d..0000000
--- a/node_modules/async-done/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015 Blaine Bublitz, Eric Schoffstall and other contributors
-
-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/async-done/README.md b/node_modules/async-done/README.md
deleted file mode 100644
index 93545c2..0000000
--- a/node_modules/async-done/README.md
+++ /dev/null
@@ -1,121 +0,0 @@
-
-
-
-
-
-
-# async-done
-
-[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Azure Pipelines Build Status][azure-pipelines-image]][azure-pipelines-url] [![Travis Build Status][travis-image]][travis-url] [![AppVeyor Build Status][appveyor-image]][appveyor-url] [![Coveralls Status][coveralls-image]][coveralls-url] [![Gitter chat][gitter-image]][gitter-url]
-
-Allows libraries to handle various caller provided asynchronous functions uniformly. Maps promises, observables, child processes and streams, and callbacks to callback style.
-
-As async conventions evolve, it is useful to be able to deal with several different *styles* of async completion uniformly. With this module you can handle completion using a node-style callback, regardless of a return value that's a promise, observable, child process or stream.
-
-## Usage
-
-### Successful completion
-
-```js
-var asyncDone = require('async-done');
-
-asyncDone(function(done){
- // do async things
- done(null, 2);
-}, function(error, result){
- // `error` will be null on successful execution of the first function.
- // `result` will be the result from the first function.
-});
-```
-
-### Failed completion
-
-```js
-var asyncDone = require('async-done');
-
-asyncDone(function(done){
- // do async things
- done(new Error('Some Error Occurred'));
-}, function(error, result){
- // `error` will be an error from the first function.
- // `result` will be undefined on failed execution of the first function.
-});
-```
-
-## API
-
-### `asyncDone(fn, callback)`
-
-Takes a function to execute (`fn`) and a function to call on completion (`callback`).
-
-#### `fn([done])`
-
-Optionally takes a callback to call when async tasks are complete.
-
-#### Completion and Error Resolution
-
-* `Callback` (`done`) called
- - Completion: called with null error
- - Error: called with non-null error
-* `Stream` or `EventEmitter` returned
- - Completion: [end-of-stream][end-of-stream] module
- - Error: [domains][domains]
- - __Note:__ Only actual streams are supported, not faux-streams; Therefore, modules like [`event-stream`][event-stream] are not supported.
-* `Child Process` returned
- - Completion [end-of-stream][end-of-stream] module
- - Error: [domains][domains]
-* `Promise` returned
- - Completion: [onFulfilled][promise-onfulfilled] method called
- - Error: [onRejected][promise-onrejected] method called
-* `Observable` (e.g. from [RxJS v5][rxjs5-observable] or [RxJS v4][rxjs5-observable]) returned
- - Completion: [complete][rxjs5-observer-complete] method called
- - Error: [error][rxjs5-observer-error] method called
-
-__Warning:__ Sync tasks are __not supported__ and your function will never complete if the one of the above strategies is not used to signal completion. However, thrown errors will be caught by the domain.
-
-#### `callback(error, result)`
-
-If an error doesn't occur in the execution of the `fn` function, the `callback` method will receive the results as its second argument. Note: Some streams don't received any results.
-
-If an error occurred in the execution of the `fn` function, The `callback` method will receive an error as its first argument.
-
-Errors can be caused by:
-
-* A thrown error
-* An error passed to a `done` callback
-* An `error` event emitted on a returned `Stream`, `EventEmitter` or `Child Process`
-* A rejection of a returned `Promise` - If the `Promise` is not rejected with a value, we generate a new `Error`
-* The `onError` handler being called on an `Observable`
-
-## License
-
-MIT
-
-[downloads-image]: https://img.shields.io/npm/dm/async-done.svg
-[npm-url]: https://www.npmjs.com/package/async-done
-[npm-image]: https://img.shields.io/npm/v/async-done.svg
-
-[azure-pipelines-url]: https://dev.azure.com/gulpjs/gulp/_build/latest?definitionId=6&branchName=master
-[azure-pipelines-image]: https://dev.azure.com/gulpjs/gulp/_apis/build/status/async-done?branchName=master
-
-[travis-url]: https://travis-ci.org/gulpjs/async-done
-[travis-image]: https://img.shields.io/travis/gulpjs/async-done.svg?label=travis-ci
-
-[appveyor-url]: https://ci.appveyor.com/project/gulpjs/async-done
-[appveyor-image]: https://img.shields.io/appveyor/ci/gulpjs/async-done.svg?label=appveyor
-
-[coveralls-url]: https://coveralls.io/r/gulpjs/async-done
-[coveralls-image]: https://img.shields.io/coveralls/gulpjs/async-done/master.svg
-
-[gitter-url]: https://gitter.im/gulpjs/gulp
-[gitter-image]: https://badges.gitter.im/gulpjs/gulp.svg
-
-[end-of-stream]: https://www.npmjs.com/package/end-of-stream
-[domains]: http://nodejs.org/api/domain.html
-[event-stream]: https://github.com/dominictarr/event-stream
-[promise-onfulfilled]: http://promisesaplus.com/#point-26
-[promise-onrejected]: http://promisesaplus.com/#point-30
-[rx4-observable]: https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/observable.md
-[rxjs5-observable]: http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html
-[rxjs5-observer-complete]: http://reactivex.io/rxjs/class/es6/MiscJSDoc.js~ObserverDoc.html#instance-method-complete
-[rxjs5-observer-error]: http://reactivex.io/rxjs/class/es6/MiscJSDoc.js~ObserverDoc.html#instance-method-error
diff --git a/node_modules/async-done/index.d.ts b/node_modules/async-done/index.d.ts
deleted file mode 100644
index 2c4ab93..0000000
--- a/node_modules/async-done/index.d.ts
+++ /dev/null
@@ -1,101 +0,0 @@
-/**
- * Notes about these type definitions:
- *
- * - Callbacks returning multiple completion values using multiple arguments are not supported by these types.
- * Prefer to use Node's style by grouping your values in a single object or array.
- * Support for this kind of callback is blocked by Microsoft/TypeScript#5453
- *
- * - For ease of use, `asyncDone` lets you pass callback functions with a result type `T` instead of `T | undefined`.
- * This matches Node's types but can lead to unsound code being typechecked.
- *
- * The following code typechecks but fails at runtime:
- * ```typescript
- * async function getString(): Promise {
- * return "Hello, World!";
- * }
- *
- * async function evilGetString(): Promise {
- * throw new Error("Hello, World!");
- * }
- *
- * function cb(err: Error | null, result: string): void {
- * // This is unsound because `result` is `undefined` when `err` is not `null`.
- * console.log(result.toLowerCase());
- * }
- *
- * asyncDone(getString, cb); // Prints `hello, world!`
- * asyncDone(evilGetString, cb); // Runtime error: `TypeError: Cannot read property 'toLowerCase' of undefined`
- * ```
- *
- * Enforcing stricter callbacks would require developers to use `result?: string` and assert the existence
- * of the result either by checking it directly or using the `!` assertion operator after testing for errors.
- * ```typescript
- * function stricterCb1(err: Error | null, result?: string): void {
- * if (err !== null) {
- * console.error(err);
- * return;
- * }
- * console.log(result!.toLowerCase());
- * }
- *
- * function stricterCb2(err: Error | null, result?: string): void {
- * if (result === undefined) {
- * console.error("Undefined result. Error:);
- * console.error(err);
- * return;
- * }
- * console.log(result.toLowerCase());
- * }
- * ```
- */
-import { ChildProcess } from "child_process";
-import { EventEmitter } from "events";
-import { Stream } from "stream";
-
-declare namespace asyncDone {
-
- /**
- * Represents a callback function used to signal the completion of a
- * task without any result value.
- */
- type VoidCallback = (err: Error | null) => void;
-
- /**
- * Represents a callback function used to signal the completion of a
- * task with a single result value.
- */
- interface Callback {
- (err: null, result: T): void;
-
- // Use `result?: T` or `result: undefined` to require the consumer to assert the existence of the result
- // (even in case of success). See comment at the top of the file.
- (err: Error, result?: any): void;
- }
-
- /**
- * Minimal `Observable` interface compatible with `async-done`.
- *
- * @see https://github.com/ReactiveX/rxjs/blob/c3c56867eaf93f302ac7cd588034c7d8712f2834/src/internal/Observable.ts#L77
- */
- interface Observable {
- subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): any;
- }
-
- /**
- * Represents an async operation.
- */
- export type AsyncTask =
- ((done: VoidCallback) => void)
- | ((done: Callback) => void)
- | (() => ChildProcess | EventEmitter | Observable | PromiseLike | Stream);
-}
-
-/**
- * Takes a function to execute (`fn`) and a function to call on completion (`callback`).
- *
- * @param fn Function to execute.
- * @param callback Function to call on completion.
- */
-declare function asyncDone(fn: asyncDone.AsyncTask, callback: asyncDone.Callback): void;
-
-export = asyncDone;
diff --git a/node_modules/async-done/index.js b/node_modules/async-done/index.js
deleted file mode 100644
index e5be989..0000000
--- a/node_modules/async-done/index.js
+++ /dev/null
@@ -1,88 +0,0 @@
-'use strict';
-
-var domain = require('domain');
-
-var eos = require('end-of-stream');
-var p = require('process-nextick-args');
-var once = require('once');
-var exhaust = require('stream-exhaust');
-
-var eosConfig = {
- error: false,
-};
-
-function rethrowAsync(err) {
- process.nextTick(rethrow);
-
- function rethrow() {
- throw err;
- }
-}
-
-function tryCatch(fn, args) {
- try {
- return fn.apply(null, args);
- } catch (err) {
- rethrowAsync(err);
- }
-}
-
-function asyncDone(fn, cb) {
- cb = once(cb);
-
- var d = domain.create();
- d.once('error', onError);
- var domainBoundFn = d.bind(fn);
-
- function done() {
- d.removeListener('error', onError);
- d.exit();
- return tryCatch(cb, arguments);
- }
-
- function onSuccess(result) {
- done(null, result);
- }
-
- function onError(error) {
- if (!error) {
- error = new Error('Promise rejected without Error');
- }
- done(error);
- }
-
- function asyncRunner() {
- var result = domainBoundFn(done);
-
- function onNext(state) {
- onNext.state = state;
- }
-
- function onCompleted() {
- onSuccess(onNext.state);
- }
-
- if (result && typeof result.on === 'function') {
- // Assume node stream
- d.add(result);
- eos(exhaust(result), eosConfig, done);
- return;
- }
-
- if (result && typeof result.subscribe === 'function') {
- // Assume RxJS observable
- result.subscribe(onNext, onError, onCompleted);
- return;
- }
-
- if (result && typeof result.then === 'function') {
- // Assume promise
- result.then(onSuccess, onError);
- return;
- }
- }
-
- p.nextTick(asyncRunner);
-}
-
-module.exports = asyncDone;
diff --git a/node_modules/async-done/package.json b/node_modules/async-done/package.json
deleted file mode 100644
index 774c733..0000000
--- a/node_modules/async-done/package.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "name": "async-done",
- "version": "1.3.2",
- "description": "Allows libraries to handle various caller provided asynchronous functions uniformly. Maps promises, observables, child processes and streams, and callbacks to callback style.",
- "author": "Gulp Team (https://gulpjs.com/)",
- "contributors": [
- "Blaine Bublitz ",
- "Pawel Kozlowski ",
- "Matthew Podwysocki ",
- "Charles Samborski "
- ],
- "repository": "gulpjs/async-done",
- "license": "MIT",
- "engines": {
- "node": ">= 0.10"
- },
- "main": "index.js",
- "types": "index.d.ts",
- "files": [
- "index.js",
- "index.d.ts",
- "LICENSE"
- ],
- "scripts": {
- "lint": "eslint .",
- "pretest": "npm run lint",
- "test": "nyc mocha --async-only",
- "test-types": "tsc -p test/types",
- "azure-pipelines": "nyc mocha --async-only --reporter xunit -O output=test.xunit",
- "coveralls": "nyc report --reporter=text-lcov | coveralls"
- },
- "dependencies": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.2",
- "process-nextick-args": "^2.0.0",
- "stream-exhaust": "^1.0.1"
- },
- "devDependencies": {
- "@types/node": "^9.3.0",
- "coveralls": "github:phated/node-coveralls#2.x",
- "eslint": "^2.13.1",
- "eslint-config-gulp": "^3.0.1",
- "expect": "^1.20.2",
- "mocha": "^3.0.0",
- "nyc": "^10.3.2",
- "pumpify": "^1.3.6",
- "rxjs": "^5.5.6",
- "through2": "^2.0.0",
- "typescript": "^2.6.2",
- "when": "^3.7.3"
- },
- "keywords": [
- "promises",
- "callbacks",
- "observables",
- "streams",
- "end",
- "completion",
- "complete",
- "finish",
- "done",
- "async",
- "error handling"
- ]
-}
diff --git a/node_modules/async-each/README.md b/node_modules/async-each/README.md
deleted file mode 100644
index 6444d95..0000000
--- a/node_modules/async-each/README.md
+++ /dev/null
@@ -1,52 +0,0 @@
-# async-each
-
-No-bullshit, ultra-simple, 35-lines-of-code async parallel forEach function for JavaScript.
-
-We don't need junky 30K async libs. Really.
-
-For browsers and node.js.
-
-## Installation
-* Just include async-each before your scripts.
-* `npm install async-each` if you’re using node.js.
-
-## Usage
-
-* `each(array, iterator, callback);` — `Array`, `Function`, `(optional) Function`
-* `iterator(item, next)` receives current item and a callback that will mark the item as done. `next` callback receives optional `error, transformedItem` arguments.
-* `callback(error, transformedArray)` optionally receives first error and transformed result `Array`.
-
-```javascript
-var each = require('async-each');
-each(['a.js', 'b.js', 'c.js'], fs.readFile, function(error, contents) {
- if (error) console.error(error);
- console.log('Contents for a, b and c:', contents);
-});
-
-// Alternatively in browser:
-asyncEach(list, fn, callback);
-```
-
-## License
-
-The MIT License (MIT)
-
-Copyright (c) 2016 Paul Miller [(paulmillr.com)](http://paulmillr.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/async-each/index.js b/node_modules/async-each/index.js
deleted file mode 100644
index 277217d..0000000
--- a/node_modules/async-each/index.js
+++ /dev/null
@@ -1,38 +0,0 @@
-// async-each MIT license (by Paul Miller from https://paulmillr.com).
-(function(globals) {
- 'use strict';
- var each = function(items, next, callback) {
- if (!Array.isArray(items)) throw new TypeError('each() expects array as first argument');
- if (typeof next !== 'function') throw new TypeError('each() expects function as second argument');
- if (typeof callback !== 'function') callback = Function.prototype; // no-op
-
- if (items.length === 0) return callback(undefined, items);
-
- var transformed = new Array(items.length);
- var count = 0;
- var returned = false;
-
- items.forEach(function(item, index) {
- next(item, function(error, transformedItem) {
- if (returned) return;
- if (error) {
- returned = true;
- return callback(error);
- }
- transformed[index] = transformedItem;
- count += 1;
- if (count === items.length) return callback(undefined, transformed);
- });
- });
- };
-
- if (typeof define !== 'undefined' && define.amd) {
- define([], function() {
- return each;
- }); // RequireJS
- } else if (typeof module !== 'undefined' && module.exports) {
- module.exports = each; // CommonJS
- } else {
- globals.asyncEach = each; //
-```
-
-## Usage
-
-Copy *src* to *dst* simply (and return *dst*) :
-
-```js
-var src = { a: 1, b: { b1: 'bbb' }, c: 'ccc' };
-var dst = { a: 2, b: { b1: 'xxx', b2: 'yyy' } };
-
-copyProps(src, dst);
-// => { a: 1, b: { b1: 'bbb', b2: 'yyy' }, c: 'ccc' }
-```
-
-Copy *src* to *dst* with property mapping (and return *dst*) :
-
-```js
-var src = { a: 1, b: { b1: 'bbb' }, c: 'ccc', d: 'ddd' };
-var dst = { f: { a: 2, b1: 'xxx', b2: 'yyy' }, e: 'zzz' };
-
-copyProps(src, dst, {
- a: 'f.a',
- 'b.b1': 'f.b1',
- 'b.b2': 'f.b2',
- 'c': 'f.c',
-});
-// => { f: { a: 1, b1: 'bbb', b2: 'yyy', c: 'ccc' }, e: 'zzz' }
-```
-
-Copy *src* to *dst* with convert function (and return *dst*) :
-
-```js
-var src = { a: 1, b: { b1: 'bbb' } };
-var dst = { a: 0 };
-
-copyProps(src, dst, function(srcInfo) {
- if (srcInfo.keyChain === 'a') {
- return srcInfo.value * 2;
- }
- if (srcInfo.keyChain === 'b.b1') {
- return srcInfo.value.toUpperCase();
- }
-});
-// => { a: 2, b: { b1: 'BBB' } }
-```
-
-Can use an array instead of a map as property mapping :
-
-```js
-var src = { a: 1, b: { c: 'CCC' }, d: { e: 'EEE' } };
-var dst = { a: 9, b: { c: 'xxx' }, d: { e: 'yyy' } };
-var fromto = [ 'b.c', 'd.e' ];
-copyProps(src, dst, fromto);
-// => { a: 9, b: { c: 'CCC' }, d: { e: 'EEE' } }
-```
-
-Can copy reversively (from *dst* to *src*) by reverse flag (and return *src*):
-
-```js
-var src = { a: 1, b: { b1: 'bbb' }, c: 'ccc' };
-var dst = { a: 2, b: { b1: 'xxx', b2: 'yyy' } };
-
-copyProps(src, dst, true);
-// => { a: 2, b: { b1: 'xxx', b2: 'yyy' }, c: 'ccc' }
-```
-
-```js
-var src = { a: 1, b: { b1: 'bbb' }, c: 'ccc', d: 'ddd' };
-var dst = { f: { a: 2, b1: 'xxx', b2: 'yyy' }, e: 'zzz' };
-
-copyProps(src, dst, {
- a: 'f.a',
- 'b.b2': 'f.b2',
- 'c': 'f.c',
-}, true);
-// => { a: 2, b: { b1: 'bbb', b2: 'yyy' }, c: 'ccc', d: 'ddd' }
-```
-
-If a value of source property is undefined (when not using converter), or a result of converter is undefined (when using converter), the value is not copied.
-
-```js
-var src = { a: 'A', b: undefined, c: null, d: 1 };
-var dst = { a: 'a', b: 'b', c: 'c' };
-
-copyProps(src, dst, function(srcInfo) {
- if (srcInfo.keyChain === 'd') {
- return undefined;
- } else {
- return srcInfo.value;
- }
-});
-// => { a: 'A', b: 'b', c: null }
-```
-
-You can operate the parent node object directly in converter.
-
-```js
-var src = { a: 1, b: 2 };
-var dst = {};
-
-copyProps(src, dst, function(srcInfo, dstInfo) {
- Object.defineProperty(dstInfo.parent, dstInfo.key, {
- writable: false,
- enumerable: true,
- configurable: false,
- value: srcInfo.value * 2
- })
-}); // => { a: 2, b: 4 }
-
-dst // => { a: 2, b: 4 }
-dst.a = 9
-dst // -> { a: 2, b: 4 }
-```
-
-## API
-
-### copyProps(src, dst [, fromto] [, converter] [, reverse]) => object
-
-Copy properties of *src* to *dst* deeply.
-If *fromto* is given, it is able to copy between different properties.
-If *converter* is given, it is able to convert the terminal values.
-
-#### Parameters:
-
-| Parameter | Type | Description |
-|:------------|:------:|:-------------------------------------------------|
-| *src* | object | A source object of copy. |
-| *dst* | object | A destinate object of copy. |
-| *fromto* | object | array | An object mapping properties between *src* and *dst*. (Optional) |
-| *converter* |function| A function to convert terminal values in *src*. (Optional) |
-| *reverse* |boolean | True, if copying reversively from dst to src and returns src object. `fromto` is also reversively used from value to key. This default value is `false`. (Optional) |
-
-#### Returns:
-
-*dst* object after copying.
-
-**Type:** object
-
-* **Format of fromto **
-
- *fromto* is a non-nested key-value object. And the *key*s are property key chains of *src* and the *value*s are property key chains of *dst*.
- The key chain is a string which is concatenated property keys on each level with dots, like `'aaa.bbb.ccc'`.
-
- The following example copys the value of `src.aaa.bbb.ccc` to `dst.xxx.yyy`.
-
- ```js
- copyProps(src, dst, {
- 'aaa.bbb.ccc' : 'xxx.yyy'
- })
- ```
-
- *fromto* can be an array. In that case, the array works as a map which has pairs of same key and value.
-
-* **API of converter **
-
- **converter(srcInfo, dstInfo) : Any **
-
- *converter* is a function to convert terminal values of propeerties of *src*.
-
- **Parameters:**
-
- | Parameter | Type | Description |
- |:------------|:------:|:---------------------------------------------|
- | *srcInfo* | object | An object which has informations about the current node of *src*. |
- | *dstInfo* | object | An object which has informations about the current node of *dst*. |
-
- **Return:**
-
- The converted value to be set as a destination property value. If this value is undefined, the destination property is not set to the destination node object.
-
- **Type:** *Any*
-
- * **Properties of srcInfo and dstInfo **
-
- *srcInfo* and *dstInfo* has same properties, as follows:
-
- | Property | Type | Description |
- |:-----------|:------:|:------------------------------------------|
- | *value* | *Any* | The value of the current node. |
- | *key* | string | The key name of the current node. |
- | *keyChain* | string | The full key of the current node concatenated with dot. |
- | *depth* | number | The depth of the current node. |
- | *parent* | object | The parent node of the current node. |
-
-
-## License
-
-Copyright (C) 2016-2021 Gulp Team.
-
-This program is free software under [MIT][mit-url] License.
-See the file LICENSE in this distribution for more details.
-
-[repo-url]: https://github.com/gulpjs/copy-props/
-[npm-img]: https://img.shields.io/badge/npm-v2.0.5-blue.svg
-[npm-url]: https://www.npmjs.org/package/copy-props/
-[mit-img]: https://img.shields.io/badge/license-MIT-green.svg
-[mit-url]: https://opensource.org/licenses.MIT
-[travis-img]: https://travis-ci.org/gulpjs/copy-props.svg?branch=master
-[travis-url]: https://travis-ci.org/gulpjs/copy-props
-[appveyor-img]: https://ci.appveyor.com/api/projects/status/github/gulpjs/copy-props?branch=master&svg=true
-[appveyor-url]: https://ci.appveyor.com/project/gulpjs/copy-props
-[coverage-img]: https://coveralls.io/repos/github/gulpjs/copy-props/badge.svg?branch=master
-[coverage-url]: https://coveralls.io/github/gulpjs/copy-props?branch=master
diff --git a/node_modules/copy-props/index.js b/node_modules/copy-props/index.js
deleted file mode 100644
index 994807e..0000000
--- a/node_modules/copy-props/index.js
+++ /dev/null
@@ -1,234 +0,0 @@
-'use strict';
-
-var eachProps = require('each-props');
-var isPlainObject = require('is-plain-object').isPlainObject;
-
-module.exports = function(src, dst, fromto, converter, reverse) {
-
- if (!isObject(src)) {
- src = {};
- }
-
- if (!isObject(dst)) {
- dst = {};
- }
-
- if (isPlainObject(fromto)) {
- fromto = onlyValueIsString(fromto);
- } else if (Array.isArray(fromto)) {
- fromto = arrayToObject(fromto);
- } else if (typeof fromto === 'boolean') {
- reverse = fromto;
- converter = noop;
- fromto = null;
- } else if (typeof fromto === 'function') {
- reverse = converter;
- converter = fromto;
- fromto = null;
- } else {
- fromto = null;
- }
-
- if (typeof converter !== 'function') {
- if (typeof converter === 'boolean') {
- reverse = converter;
- converter = noop;
- } else {
- converter = noop;
- }
- }
-
- if (typeof reverse !== 'boolean') {
- reverse = false;
- }
-
- if (reverse) {
- var tmp = src;
- src = dst;
- dst = tmp;
-
- if (fromto) {
- fromto = invert(fromto);
- }
- }
-
- var opts = {
- dest: dst,
- fromto: fromto,
- convert: converter,
- };
-
- if (fromto) {
- eachProps(src, copyWithFromto, opts);
- setParentEmptyObject(dst, fromto);
- } else {
- eachProps(src, copyWithoutFromto, opts);
- }
-
- return dst;
-};
-
-function copyWithFromto(value, keyChain, nodeInfo) {
- if (isPlainObject(value)) {
- return;
- }
-
- var dstKeyChains = nodeInfo.fromto[keyChain];
- if (!dstKeyChains) {
- return;
- }
- delete nodeInfo.fromto[keyChain];
-
- if (!Array.isArray(dstKeyChains)) {
- dstKeyChains = [dstKeyChains];
- }
-
- var srcInfo = {
- keyChain: keyChain,
- value: value,
- key: nodeInfo.name,
- depth: nodeInfo.depth,
- parent: nodeInfo.parent,
- };
-
- for (var i = 0, n = dstKeyChains.length; i < n; i++) {
- setDeep(nodeInfo.dest, dstKeyChains[i], function(parent, key, depth) {
- var dstInfo = {
- keyChain: dstKeyChains[i],
- value: parent[key],
- key: key,
- depth: depth,
- parent: parent,
- };
-
- return nodeInfo.convert(srcInfo, dstInfo);
- });
- }
-}
-
-function copyWithoutFromto(value, keyChain, nodeInfo) {
- if (isPlainObject(value)) {
- for (var k in value) {
- return;
- }
- setDeep(nodeInfo.dest, keyChain, newObject);
- return;
- }
-
- var srcInfo = {
- keyChain: keyChain,
- value: value,
- key: nodeInfo.name,
- depth: nodeInfo.depth,
- parent: nodeInfo.parent,
- };
-
- setDeep(nodeInfo.dest, keyChain, function(parent, key, depth) {
- var dstInfo = {
- keyChain: keyChain,
- value: parent[key],
- key: key,
- depth: depth,
- parent: parent,
- };
-
- return nodeInfo.convert(srcInfo, dstInfo);
- });
-}
-
-function newObject() {
- return {};
-}
-
-function noop(srcInfo) {
- return srcInfo.value;
-}
-
-function onlyValueIsString(obj) {
- var newObj = {};
- for (var key in obj) {
- var val = obj[key];
- if (typeof val === 'string') {
- newObj[key] = val;
- }
- }
- return newObj;
-}
-
-function arrayToObject(arr) {
- var obj = {};
- for (var i = 0, n = arr.length; i < n; i++) {
- var elm = arr[i];
- if (typeof elm === 'string') {
- obj[elm] = elm;
- }
- }
- return obj;
-}
-
-function invert(fromto) {
- var inv = {};
- for (var key in fromto) {
- var val = fromto[key];
- if (!inv[val]) {
- inv[val] = [];
- }
- inv[val].push(key);
- }
- return inv;
-}
-
-function setDeep(obj, keyChain, valueCreator) {
- _setDeep(obj, keyChain.split('.'), 1, valueCreator);
-}
-
-function _setDeep(obj, keyElems, depth, valueCreator) {
- var key = keyElems.shift();
- if (isPossibilityOfPrototypePollution(key)) {
- return;
- }
-
- if (!keyElems.length) {
- var value = valueCreator(obj, key, depth);
- if (value === undefined) {
- return;
- }
- if (isPlainObject(value)) { // value is always an empty object.
- if (isPlainObject(obj[key])) {
- return;
- }
- }
- obj[key] = value;
- return;
- }
-
- if (!isPlainObject(obj[key])) {
- obj[key] = {};
- }
- _setDeep(obj[key], keyElems, depth + 1, valueCreator);
-}
-
-function setParentEmptyObject(obj, fromto) {
- for (var srcKeyChain in fromto) {
- var dstKeyChains = fromto[srcKeyChain];
- if (!Array.isArray(dstKeyChains)) {
- dstKeyChains = [dstKeyChains];
- }
-
- for (var i = 0, n = dstKeyChains.length; i < n; i++) {
- setDeep(obj, dstKeyChains[i], newUndefined);
- }
- }
-}
-
-function newUndefined() {
- return undefined;
-}
-
-function isObject(v) {
- return Object.prototype.toString.call(v) === '[object Object]';
-}
-
-function isPossibilityOfPrototypePollution(key) {
- return (key === '__proto__' || key === 'constructor');
-}
diff --git a/node_modules/copy-props/package.json b/node_modules/copy-props/package.json
deleted file mode 100644
index 6b2a51e..0000000
--- a/node_modules/copy-props/package.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
- "name": "copy-props",
- "version": "2.0.5",
- "description": "Copy properties deeply between two objects.",
- "main": "index.js",
- "files": [
- "index.js"
- ],
- "scripts": {
- "lint": "eslint .",
- "test": "mocha",
- "coverage": "nyc --reporter=lcov --reporter=text-summary npm test",
- "coveralls": "nyc --reporter=text-lcov npm test | coveralls",
- "web:build": "browserify index.js --standalone copyProps -o web/copy-props.js && cd web && uglifyjs copy-props.js --compress --mangle -o copy-props.min.js --source-map url=copy-props.min.js.map",
- "chrome:install": "npm i --no-save mocha-chrome",
- "chrome:test": "mocha-chrome test/web/browser-test.html",
- "build": "npm run lint && npm run coverage && npm run web:build && node test/web/make.js"
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/gulpjs/copy-props.git"
- },
- "keywords": [
- "object",
- "property",
- "copy",
- "deep",
- "map",
- "convert"
- ],
- "author": "Gulp Team (https://gulpjs.com/)",
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/gulpjs/copy-props/issues"
- },
- "homepage": "https://github.com/gulpjs/copy-props#readme",
- "dependencies": {
- "each-props": "^1.3.2",
- "is-plain-object": "^5.0.0"
- },
- "devDependencies": {
- "browserify": "^16.5.2",
- "chai": "^3.5.0",
- "coveralls": "^3.1.0",
- "eslint": "^7.9.0",
- "eslint-config-gulp": "^5.0.1",
- "mocha": "^3.5.3",
- "nyc": "^15.1.0",
- "uglify-js": "^3.10.4"
- }
-}
diff --git a/node_modules/core-util-is/LICENSE b/node_modules/core-util-is/LICENSE
deleted file mode 100644
index d8d7f94..0000000
--- a/node_modules/core-util-is/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright Node.js contributors. All rights reserved.
-
-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/core-util-is/README.md b/node_modules/core-util-is/README.md
deleted file mode 100644
index 5a76b41..0000000
--- a/node_modules/core-util-is/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# core-util-is
-
-The `util.is*` functions introduced in Node v0.12.
diff --git a/node_modules/core-util-is/float.patch b/node_modules/core-util-is/float.patch
deleted file mode 100644
index a06d5c0..0000000
--- a/node_modules/core-util-is/float.patch
+++ /dev/null
@@ -1,604 +0,0 @@
-diff --git a/lib/util.js b/lib/util.js
-index a03e874..9074e8e 100644
---- a/lib/util.js
-+++ b/lib/util.js
-@@ -19,430 +19,6 @@
- // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- // USE OR OTHER DEALINGS IN THE SOFTWARE.
-
--var formatRegExp = /%[sdj%]/g;
--exports.format = function(f) {
-- if (!isString(f)) {
-- var objects = [];
-- for (var i = 0; i < arguments.length; i++) {
-- objects.push(inspect(arguments[i]));
-- }
-- return objects.join(' ');
-- }
--
-- var i = 1;
-- var args = arguments;
-- var len = args.length;
-- var str = String(f).replace(formatRegExp, function(x) {
-- if (x === '%%') return '%';
-- if (i >= len) return x;
-- switch (x) {
-- case '%s': return String(args[i++]);
-- case '%d': return Number(args[i++]);
-- case '%j':
-- try {
-- return JSON.stringify(args[i++]);
-- } catch (_) {
-- return '[Circular]';
-- }
-- default:
-- return x;
-- }
-- });
-- for (var x = args[i]; i < len; x = args[++i]) {
-- if (isNull(x) || !isObject(x)) {
-- str += ' ' + x;
-- } else {
-- str += ' ' + inspect(x);
-- }
-- }
-- return str;
--};
--
--
--// Mark that a method should not be used.
--// Returns a modified function which warns once by default.
--// If --no-deprecation is set, then it is a no-op.
--exports.deprecate = function(fn, msg) {
-- // Allow for deprecating things in the process of starting up.
-- if (isUndefined(global.process)) {
-- return function() {
-- return exports.deprecate(fn, msg).apply(this, arguments);
-- };
-- }
--
-- if (process.noDeprecation === true) {
-- return fn;
-- }
--
-- var warned = false;
-- function deprecated() {
-- if (!warned) {
-- if (process.throwDeprecation) {
-- throw new Error(msg);
-- } else if (process.traceDeprecation) {
-- console.trace(msg);
-- } else {
-- console.error(msg);
-- }
-- warned = true;
-- }
-- return fn.apply(this, arguments);
-- }
--
-- return deprecated;
--};
--
--
--var debugs = {};
--var debugEnviron;
--exports.debuglog = function(set) {
-- if (isUndefined(debugEnviron))
-- debugEnviron = process.env.NODE_DEBUG || '';
-- set = set.toUpperCase();
-- if (!debugs[set]) {
-- if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
-- var pid = process.pid;
-- debugs[set] = function() {
-- var msg = exports.format.apply(exports, arguments);
-- console.error('%s %d: %s', set, pid, msg);
-- };
-- } else {
-- debugs[set] = function() {};
-- }
-- }
-- return debugs[set];
--};
--
--
--/**
-- * Echos the value of a value. Trys to print the value out
-- * in the best way possible given the different types.
-- *
-- * @param {Object} obj The object to print out.
-- * @param {Object} opts Optional options object that alters the output.
-- */
--/* legacy: obj, showHidden, depth, colors*/
--function inspect(obj, opts) {
-- // default options
-- var ctx = {
-- seen: [],
-- stylize: stylizeNoColor
-- };
-- // legacy...
-- if (arguments.length >= 3) ctx.depth = arguments[2];
-- if (arguments.length >= 4) ctx.colors = arguments[3];
-- if (isBoolean(opts)) {
-- // legacy...
-- ctx.showHidden = opts;
-- } else if (opts) {
-- // got an "options" object
-- exports._extend(ctx, opts);
-- }
-- // set default options
-- if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
-- if (isUndefined(ctx.depth)) ctx.depth = 2;
-- if (isUndefined(ctx.colors)) ctx.colors = false;
-- if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
-- if (ctx.colors) ctx.stylize = stylizeWithColor;
-- return formatValue(ctx, obj, ctx.depth);
--}
--exports.inspect = inspect;
--
--
--// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
--inspect.colors = {
-- 'bold' : [1, 22],
-- 'italic' : [3, 23],
-- 'underline' : [4, 24],
-- 'inverse' : [7, 27],
-- 'white' : [37, 39],
-- 'grey' : [90, 39],
-- 'black' : [30, 39],
-- 'blue' : [34, 39],
-- 'cyan' : [36, 39],
-- 'green' : [32, 39],
-- 'magenta' : [35, 39],
-- 'red' : [31, 39],
-- 'yellow' : [33, 39]
--};
--
--// Don't use 'blue' not visible on cmd.exe
--inspect.styles = {
-- 'special': 'cyan',
-- 'number': 'yellow',
-- 'boolean': 'yellow',
-- 'undefined': 'grey',
-- 'null': 'bold',
-- 'string': 'green',
-- 'date': 'magenta',
-- // "name": intentionally not styling
-- 'regexp': 'red'
--};
--
--
--function stylizeWithColor(str, styleType) {
-- var style = inspect.styles[styleType];
--
-- if (style) {
-- return '\u001b[' + inspect.colors[style][0] + 'm' + str +
-- '\u001b[' + inspect.colors[style][1] + 'm';
-- } else {
-- return str;
-- }
--}
--
--
--function stylizeNoColor(str, styleType) {
-- return str;
--}
--
--
--function arrayToHash(array) {
-- var hash = {};
--
-- array.forEach(function(val, idx) {
-- hash[val] = true;
-- });
--
-- return hash;
--}
--
--
--function formatValue(ctx, value, recurseTimes) {
-- // Provide a hook for user-specified inspect functions.
-- // Check that value is an object with an inspect function on it
-- if (ctx.customInspect &&
-- value &&
-- isFunction(value.inspect) &&
-- // Filter out the util module, it's inspect function is special
-- value.inspect !== exports.inspect &&
-- // Also filter out any prototype objects using the circular check.
-- !(value.constructor && value.constructor.prototype === value)) {
-- var ret = value.inspect(recurseTimes, ctx);
-- if (!isString(ret)) {
-- ret = formatValue(ctx, ret, recurseTimes);
-- }
-- return ret;
-- }
--
-- // Primitive types cannot have properties
-- var primitive = formatPrimitive(ctx, value);
-- if (primitive) {
-- return primitive;
-- }
--
-- // Look up the keys of the object.
-- var keys = Object.keys(value);
-- var visibleKeys = arrayToHash(keys);
--
-- if (ctx.showHidden) {
-- keys = Object.getOwnPropertyNames(value);
-- }
--
-- // Some type of object without properties can be shortcutted.
-- if (keys.length === 0) {
-- if (isFunction(value)) {
-- var name = value.name ? ': ' + value.name : '';
-- return ctx.stylize('[Function' + name + ']', 'special');
-- }
-- if (isRegExp(value)) {
-- return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
-- }
-- if (isDate(value)) {
-- return ctx.stylize(Date.prototype.toString.call(value), 'date');
-- }
-- if (isError(value)) {
-- return formatError(value);
-- }
-- }
--
-- var base = '', array = false, braces = ['{', '}'];
--
-- // Make Array say that they are Array
-- if (isArray(value)) {
-- array = true;
-- braces = ['[', ']'];
-- }
--
-- // Make functions say that they are functions
-- if (isFunction(value)) {
-- var n = value.name ? ': ' + value.name : '';
-- base = ' [Function' + n + ']';
-- }
--
-- // Make RegExps say that they are RegExps
-- if (isRegExp(value)) {
-- base = ' ' + RegExp.prototype.toString.call(value);
-- }
--
-- // Make dates with properties first say the date
-- if (isDate(value)) {
-- base = ' ' + Date.prototype.toUTCString.call(value);
-- }
--
-- // Make error with message first say the error
-- if (isError(value)) {
-- base = ' ' + formatError(value);
-- }
--
-- if (keys.length === 0 && (!array || value.length == 0)) {
-- return braces[0] + base + braces[1];
-- }
--
-- if (recurseTimes < 0) {
-- if (isRegExp(value)) {
-- return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
-- } else {
-- return ctx.stylize('[Object]', 'special');
-- }
-- }
--
-- ctx.seen.push(value);
--
-- var output;
-- if (array) {
-- output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
-- } else {
-- output = keys.map(function(key) {
-- return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
-- });
-- }
--
-- ctx.seen.pop();
--
-- return reduceToSingleString(output, base, braces);
--}
--
--
--function formatPrimitive(ctx, value) {
-- if (isUndefined(value))
-- return ctx.stylize('undefined', 'undefined');
-- if (isString(value)) {
-- var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
-- .replace(/'/g, "\\'")
-- .replace(/\\"/g, '"') + '\'';
-- return ctx.stylize(simple, 'string');
-- }
-- if (isNumber(value)) {
-- // Format -0 as '-0'. Strict equality won't distinguish 0 from -0,
-- // so instead we use the fact that 1 / -0 < 0 whereas 1 / 0 > 0 .
-- if (value === 0 && 1 / value < 0)
-- return ctx.stylize('-0', 'number');
-- return ctx.stylize('' + value, 'number');
-- }
-- if (isBoolean(value))
-- return ctx.stylize('' + value, 'boolean');
-- // For some reason typeof null is "object", so special case here.
-- if (isNull(value))
-- return ctx.stylize('null', 'null');
--}
--
--
--function formatError(value) {
-- return '[' + Error.prototype.toString.call(value) + ']';
--}
--
--
--function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
-- var output = [];
-- for (var i = 0, l = value.length; i < l; ++i) {
-- if (hasOwnProperty(value, String(i))) {
-- output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
-- String(i), true));
-- } else {
-- output.push('');
-- }
-- }
-- keys.forEach(function(key) {
-- if (!key.match(/^\d+$/)) {
-- output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
-- key, true));
-- }
-- });
-- return output;
--}
--
--
--function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
-- var name, str, desc;
-- desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
-- if (desc.get) {
-- if (desc.set) {
-- str = ctx.stylize('[Getter/Setter]', 'special');
-- } else {
-- str = ctx.stylize('[Getter]', 'special');
-- }
-- } else {
-- if (desc.set) {
-- str = ctx.stylize('[Setter]', 'special');
-- }
-- }
-- if (!hasOwnProperty(visibleKeys, key)) {
-- name = '[' + key + ']';
-- }
-- if (!str) {
-- if (ctx.seen.indexOf(desc.value) < 0) {
-- if (isNull(recurseTimes)) {
-- str = formatValue(ctx, desc.value, null);
-- } else {
-- str = formatValue(ctx, desc.value, recurseTimes - 1);
-- }
-- if (str.indexOf('\n') > -1) {
-- if (array) {
-- str = str.split('\n').map(function(line) {
-- return ' ' + line;
-- }).join('\n').substr(2);
-- } else {
-- str = '\n' + str.split('\n').map(function(line) {
-- return ' ' + line;
-- }).join('\n');
-- }
-- }
-- } else {
-- str = ctx.stylize('[Circular]', 'special');
-- }
-- }
-- if (isUndefined(name)) {
-- if (array && key.match(/^\d+$/)) {
-- return str;
-- }
-- name = JSON.stringify('' + key);
-- if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) {
-- name = name.substr(1, name.length - 2);
-- name = ctx.stylize(name, 'name');
-- } else {
-- name = name.replace(/'/g, "\\'")
-- .replace(/\\"/g, '"')
-- .replace(/(^"|"$)/g, "'");
-- name = ctx.stylize(name, 'string');
-- }
-- }
--
-- return name + ': ' + str;
--}
--
--
--function reduceToSingleString(output, base, braces) {
-- var numLinesEst = 0;
-- var length = output.reduce(function(prev, cur) {
-- numLinesEst++;
-- if (cur.indexOf('\n') >= 0) numLinesEst++;
-- return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1;
-- }, 0);
--
-- if (length > 60) {
-- return braces[0] +
-- (base === '' ? '' : base + '\n ') +
-- ' ' +
-- output.join(',\n ') +
-- ' ' +
-- braces[1];
-- }
--
-- return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];
--}
--
--
- // NOTE: These type checking functions intentionally don't use `instanceof`
- // because it is fragile and can be easily faked with `Object.create()`.
- function isArray(ar) {
-@@ -522,166 +98,10 @@ function isPrimitive(arg) {
- exports.isPrimitive = isPrimitive;
-
- function isBuffer(arg) {
-- return arg instanceof Buffer;
-+ return Buffer.isBuffer(arg);
- }
- exports.isBuffer = isBuffer;
-
- function objectToString(o) {
- return Object.prototype.toString.call(o);
--}
--
--
--function pad(n) {
-- return n < 10 ? '0' + n.toString(10) : n.toString(10);
--}
--
--
--var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
-- 'Oct', 'Nov', 'Dec'];
--
--// 26 Feb 16:19:34
--function timestamp() {
-- var d = new Date();
-- var time = [pad(d.getHours()),
-- pad(d.getMinutes()),
-- pad(d.getSeconds())].join(':');
-- return [d.getDate(), months[d.getMonth()], time].join(' ');
--}
--
--
--// log is just a thin wrapper to console.log that prepends a timestamp
--exports.log = function() {
-- console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
--};
--
--
--/**
-- * Inherit the prototype methods from one constructor into another.
-- *
-- * The Function.prototype.inherits from lang.js rewritten as a standalone
-- * function (not on Function.prototype). NOTE: If this file is to be loaded
-- * during bootstrapping this function needs to be rewritten using some native
-- * functions as prototype setup using normal JavaScript does not work as
-- * expected during bootstrapping (see mirror.js in r114903).
-- *
-- * @param {function} ctor Constructor function which needs to inherit the
-- * prototype.
-- * @param {function} superCtor Constructor function to inherit prototype from.
-- */
--exports.inherits = function(ctor, superCtor) {
-- ctor.super_ = superCtor;
-- ctor.prototype = Object.create(superCtor.prototype, {
-- constructor: {
-- value: ctor,
-- enumerable: false,
-- writable: true,
-- configurable: true
-- }
-- });
--};
--
--exports._extend = function(origin, add) {
-- // Don't do anything if add isn't an object
-- if (!add || !isObject(add)) return origin;
--
-- var keys = Object.keys(add);
-- var i = keys.length;
-- while (i--) {
-- origin[keys[i]] = add[keys[i]];
-- }
-- return origin;
--};
--
--function hasOwnProperty(obj, prop) {
-- return Object.prototype.hasOwnProperty.call(obj, prop);
--}
--
--
--// Deprecated old stuff.
--
--exports.p = exports.deprecate(function() {
-- for (var i = 0, len = arguments.length; i < len; ++i) {
-- console.error(exports.inspect(arguments[i]));
-- }
--}, 'util.p: Use console.error() instead');
--
--
--exports.exec = exports.deprecate(function() {
-- return require('child_process').exec.apply(this, arguments);
--}, 'util.exec is now called `child_process.exec`.');
--
--
--exports.print = exports.deprecate(function() {
-- for (var i = 0, len = arguments.length; i < len; ++i) {
-- process.stdout.write(String(arguments[i]));
-- }
--}, 'util.print: Use console.log instead');
--
--
--exports.puts = exports.deprecate(function() {
-- for (var i = 0, len = arguments.length; i < len; ++i) {
-- process.stdout.write(arguments[i] + '\n');
-- }
--}, 'util.puts: Use console.log instead');
--
--
--exports.debug = exports.deprecate(function(x) {
-- process.stderr.write('DEBUG: ' + x + '\n');
--}, 'util.debug: Use console.error instead');
--
--
--exports.error = exports.deprecate(function(x) {
-- for (var i = 0, len = arguments.length; i < len; ++i) {
-- process.stderr.write(arguments[i] + '\n');
-- }
--}, 'util.error: Use console.error instead');
--
--
--exports.pump = exports.deprecate(function(readStream, writeStream, callback) {
-- var callbackCalled = false;
--
-- function call(a, b, c) {
-- if (callback && !callbackCalled) {
-- callback(a, b, c);
-- callbackCalled = true;
-- }
-- }
--
-- readStream.addListener('data', function(chunk) {
-- if (writeStream.write(chunk) === false) readStream.pause();
-- });
--
-- writeStream.addListener('drain', function() {
-- readStream.resume();
-- });
--
-- readStream.addListener('end', function() {
-- writeStream.end();
-- });
--
-- readStream.addListener('close', function() {
-- call();
-- });
--
-- readStream.addListener('error', function(err) {
-- writeStream.end();
-- call(err);
-- });
--
-- writeStream.addListener('error', function(err) {
-- readStream.destroy();
-- call(err);
-- });
--}, 'util.pump(): Use readableStream.pipe() instead');
--
--
--var uv;
--exports._errnoException = function(err, syscall) {
-- if (isUndefined(uv)) uv = process.binding('uv');
-- var errname = uv.errname(err);
-- var e = new Error(syscall + ' ' + errname);
-- e.code = errname;
-- e.errno = errname;
-- e.syscall = syscall;
-- return e;
--};
-+}
\ No newline at end of file
diff --git a/node_modules/core-util-is/lib/util.js b/node_modules/core-util-is/lib/util.js
deleted file mode 100644
index ff4c851..0000000
--- a/node_modules/core-util-is/lib/util.js
+++ /dev/null
@@ -1,107 +0,0 @@
-// Copyright Joyent, Inc. and other Node contributors.
-//
-// 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.
-
-// NOTE: These type checking functions intentionally don't use `instanceof`
-// because it is fragile and can be easily faked with `Object.create()`.
-
-function isArray(arg) {
- if (Array.isArray) {
- return Array.isArray(arg);
- }
- return objectToString(arg) === '[object Array]';
-}
-exports.isArray = isArray;
-
-function isBoolean(arg) {
- return typeof arg === 'boolean';
-}
-exports.isBoolean = isBoolean;
-
-function isNull(arg) {
- return arg === null;
-}
-exports.isNull = isNull;
-
-function isNullOrUndefined(arg) {
- return arg == null;
-}
-exports.isNullOrUndefined = isNullOrUndefined;
-
-function isNumber(arg) {
- return typeof arg === 'number';
-}
-exports.isNumber = isNumber;
-
-function isString(arg) {
- return typeof arg === 'string';
-}
-exports.isString = isString;
-
-function isSymbol(arg) {
- return typeof arg === 'symbol';
-}
-exports.isSymbol = isSymbol;
-
-function isUndefined(arg) {
- return arg === void 0;
-}
-exports.isUndefined = isUndefined;
-
-function isRegExp(re) {
- return objectToString(re) === '[object RegExp]';
-}
-exports.isRegExp = isRegExp;
-
-function isObject(arg) {
- return typeof arg === 'object' && arg !== null;
-}
-exports.isObject = isObject;
-
-function isDate(d) {
- return objectToString(d) === '[object Date]';
-}
-exports.isDate = isDate;
-
-function isError(e) {
- return (objectToString(e) === '[object Error]' || e instanceof Error);
-}
-exports.isError = isError;
-
-function isFunction(arg) {
- return typeof arg === 'function';
-}
-exports.isFunction = isFunction;
-
-function isPrimitive(arg) {
- return arg === null ||
- typeof arg === 'boolean' ||
- typeof arg === 'number' ||
- typeof arg === 'string' ||
- typeof arg === 'symbol' || // ES6 symbol
- typeof arg === 'undefined';
-}
-exports.isPrimitive = isPrimitive;
-
-exports.isBuffer = Buffer.isBuffer;
-
-function objectToString(o) {
- return Object.prototype.toString.call(o);
-}
diff --git a/node_modules/core-util-is/package.json b/node_modules/core-util-is/package.json
deleted file mode 100644
index 3368e95..0000000
--- a/node_modules/core-util-is/package.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- "name": "core-util-is",
- "version": "1.0.2",
- "description": "The `util.is*` functions introduced in Node v0.12.",
- "main": "lib/util.js",
- "repository": {
- "type": "git",
- "url": "git://github.com/isaacs/core-util-is"
- },
- "keywords": [
- "util",
- "isBuffer",
- "isArray",
- "isNumber",
- "isString",
- "isRegExp",
- "isThis",
- "isThat",
- "polyfill"
- ],
- "author": "Isaac Z. Schlueter (http://blog.izs.me/)",
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/isaacs/core-util-is/issues"
- },
- "scripts": {
- "test": "tap test.js"
- },
- "devDependencies": {
- "tap": "^2.3.0"
- }
-}
diff --git a/node_modules/core-util-is/test.js b/node_modules/core-util-is/test.js
deleted file mode 100644
index 1a490c6..0000000
--- a/node_modules/core-util-is/test.js
+++ /dev/null
@@ -1,68 +0,0 @@
-var assert = require('tap');
-
-var t = require('./lib/util');
-
-assert.equal(t.isArray([]), true);
-assert.equal(t.isArray({}), false);
-
-assert.equal(t.isBoolean(null), false);
-assert.equal(t.isBoolean(true), true);
-assert.equal(t.isBoolean(false), true);
-
-assert.equal(t.isNull(null), true);
-assert.equal(t.isNull(undefined), false);
-assert.equal(t.isNull(false), false);
-assert.equal(t.isNull(), false);
-
-assert.equal(t.isNullOrUndefined(null), true);
-assert.equal(t.isNullOrUndefined(undefined), true);
-assert.equal(t.isNullOrUndefined(false), false);
-assert.equal(t.isNullOrUndefined(), true);
-
-assert.equal(t.isNumber(null), false);
-assert.equal(t.isNumber('1'), false);
-assert.equal(t.isNumber(1), true);
-
-assert.equal(t.isString(null), false);
-assert.equal(t.isString('1'), true);
-assert.equal(t.isString(1), false);
-
-assert.equal(t.isSymbol(null), false);
-assert.equal(t.isSymbol('1'), false);
-assert.equal(t.isSymbol(1), false);
-assert.equal(t.isSymbol(Symbol()), true);
-
-assert.equal(t.isUndefined(null), false);
-assert.equal(t.isUndefined(undefined), true);
-assert.equal(t.isUndefined(false), false);
-assert.equal(t.isUndefined(), true);
-
-assert.equal(t.isRegExp(null), false);
-assert.equal(t.isRegExp('1'), false);
-assert.equal(t.isRegExp(new RegExp()), true);
-
-assert.equal(t.isObject({}), true);
-assert.equal(t.isObject([]), true);
-assert.equal(t.isObject(new RegExp()), true);
-assert.equal(t.isObject(new Date()), true);
-
-assert.equal(t.isDate(null), false);
-assert.equal(t.isDate('1'), false);
-assert.equal(t.isDate(new Date()), true);
-
-assert.equal(t.isError(null), false);
-assert.equal(t.isError({ err: true }), false);
-assert.equal(t.isError(new Error()), true);
-
-assert.equal(t.isFunction(null), false);
-assert.equal(t.isFunction({ }), false);
-assert.equal(t.isFunction(function() {}), true);
-
-assert.equal(t.isPrimitive(null), true);
-assert.equal(t.isPrimitive(''), true);
-assert.equal(t.isPrimitive(0), true);
-assert.equal(t.isPrimitive(new Date()), false);
-
-assert.equal(t.isBuffer(null), false);
-assert.equal(t.isBuffer({}), false);
-assert.equal(t.isBuffer(new Buffer(0)), true);
diff --git a/node_modules/d/.editorconfig b/node_modules/d/.editorconfig
deleted file mode 100755
index cbfa577..0000000
--- a/node_modules/d/.editorconfig
+++ /dev/null
@@ -1,15 +0,0 @@
-# EditorConfig is awesome: http://EditorConfig.org
-
-# top-most EditorConfig file
-root = true
-
-[*]
-charset = utf-8
-end_of_line = lf
-insert_final_newline = true
-indent_style = tab
-trim_trailing_whitespace = true
-
-[{*.md,*.yml}]
-indent_size = 2
-indent_style = space
diff --git a/node_modules/d/.github/FUNDING.yml b/node_modules/d/.github/FUNDING.yml
deleted file mode 100644
index bd80ae6..0000000
--- a/node_modules/d/.github/FUNDING.yml
+++ /dev/null
@@ -1 +0,0 @@
-tidelift: "npm/d"
diff --git a/node_modules/d/CHANGELOG.md b/node_modules/d/CHANGELOG.md
deleted file mode 100644
index d30cc82..0000000
--- a/node_modules/d/CHANGELOG.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# Changelog
-
-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.
-
-### [1.0.1](https://github.com/medikoo/d/compare/v0.1.1...v1.0.1) (2019-06-14)
-
-## Changelog for previous versions
-
-See `CHANGES` file
diff --git a/node_modules/d/CHANGES b/node_modules/d/CHANGES
deleted file mode 100644
index 73234d5..0000000
--- a/node_modules/d/CHANGES
+++ /dev/null
@@ -1,17 +0,0 @@
-For recent changelog see CHANGELOG.md
-
------
-
-v1.0.0 -- 2015.12.04
-- autoBind changes:
- - replace `bindTo` argument with options and `resolveContext` option
- - Add support `overwriteDefinition`
-- Introduce IE11 bug workaround in `lazy` handler
-
-v0.1.1 -- 2014.04.24
-- Add `autoBind` and `lazy` utilities
-- Allow to pass other options to be merged onto created descriptor.
- Useful when used with other custom utilties
-
-v0.1.0 -- 2013.06.20
-Initial (derived from es5-ext project)
diff --git a/node_modules/d/LICENSE b/node_modules/d/LICENSE
deleted file mode 100644
index 44745e2..0000000
--- a/node_modules/d/LICENSE
+++ /dev/null
@@ -1,15 +0,0 @@
-ISC License
-
-Copyright (c) 2013-2019, Mariusz Nowak, @medikoo, medikoo.com
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
diff --git a/node_modules/d/README.md b/node_modules/d/README.md
deleted file mode 100644
index 95097d4..0000000
--- a/node_modules/d/README.md
+++ /dev/null
@@ -1,134 +0,0 @@
-# D
-
-## Property descriptor factory
-
-_Originally derived from [es5-ext](https://github.com/medikoo/es5-ext) package._
-
-Defining properties with descriptors is very verbose:
-
-```javascript
-var Account = function () {};
-Object.defineProperties(Account.prototype, {
- deposit: {
- value: function () {
- /* ... */
- },
- configurable: true,
- enumerable: false,
- writable: true
- },
- withdraw: {
- value: function () {
- /* ... */
- },
- configurable: true,
- enumerable: false,
- writable: true
- },
- balance: {
- get: function () {
- /* ... */
- },
- configurable: true,
- enumerable: false
- }
-});
-```
-
-D cuts that to:
-
-```javascript
-var d = require("d");
-
-var Account = function () {};
-Object.defineProperties(Account.prototype, {
- deposit: d(function () {
- /* ... */
- }),
- withdraw: d(function () {
- /* ... */
- }),
- balance: d.gs(function () {
- /* ... */
- })
-});
-```
-
-By default, created descriptor follow characteristics of native ES5 properties, and defines values as:
-
-```javascript
-{ configurable: true, enumerable: false, writable: true }
-```
-
-You can overwrite it by preceding _value_ argument with instruction:
-
-```javascript
-d("c", value); // { configurable: true, enumerable: false, writable: false }
-d("ce", value); // { configurable: true, enumerable: true, writable: false }
-d("e", value); // { configurable: false, enumerable: true, writable: false }
-
-// Same way for get/set:
-d.gs("e", value); // { configurable: false, enumerable: true }
-```
-
-### Installation
-
- $ npm install d
-
-To port it to Browser or any other (non CJS) environment, use your favorite CJS bundler. No favorite yet? Try: [Browserify](http://browserify.org/), [Webmake](https://github.com/medikoo/modules-webmake) or [Webpack](http://webpack.github.io/)
-
-### Other utilities
-
-#### autoBind(obj, props) _(d/auto-bind)_
-
-Define methods which will be automatically bound to its instances
-
-```javascript
-var d = require('d');
-var autoBind = require('d/auto-bind');
-
-var Foo = function () { this._count = 0; };
-Object.defineProperties(Foo.prototype, autoBind({
- increment: d(function () { ++this._count; });
-}));
-
-var foo = new Foo();
-
-// Increment foo counter on each domEl click
-domEl.addEventListener('click', foo.increment, false);
-```
-
-#### lazy(obj, props) _(d/lazy)_
-
-Define lazy properties, which will be resolved on first access
-
-```javascript
-var d = require("d");
-var lazy = require("d/lazy");
-
-var Foo = function () {};
-Object.defineProperties(Foo.prototype, lazy({ items: d(function () { return []; }) }));
-
-var foo = new Foo();
-foo.items.push(1, 2); // foo.items array created and defined directly on foo
-```
-
-## Tests [![Build Status](https://travis-ci.org/medikoo/d.png)](https://travis-ci.org/medikoo/d)
-
- $ npm test
-
-## Security contact information
-
-To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security). Tidelift will coordinate the fix and disclosure.
-
----
-
-
diff --git a/node_modules/d/auto-bind.js b/node_modules/d/auto-bind.js
deleted file mode 100644
index a0037fa..0000000
--- a/node_modules/d/auto-bind.js
+++ /dev/null
@@ -1,33 +0,0 @@
-"use strict";
-
-var isValue = require("type/value/is")
- , ensureValue = require("type/value/ensure")
- , ensurePlainFunction = require("type/plain-function/ensure")
- , copy = require("es5-ext/object/copy")
- , normalizeOptions = require("es5-ext/object/normalize-options")
- , map = require("es5-ext/object/map");
-
-var bind = Function.prototype.bind
- , defineProperty = Object.defineProperty
- , hasOwnProperty = Object.prototype.hasOwnProperty
- , define;
-
-define = function (name, desc, options) {
- var value = ensureValue(desc) && ensurePlainFunction(desc.value), dgs;
- dgs = copy(desc);
- delete dgs.writable;
- delete dgs.value;
- dgs.get = function () {
- if (!options.overwriteDefinition && hasOwnProperty.call(this, name)) return value;
- desc.value = bind.call(value, options.resolveContext ? options.resolveContext(this) : this);
- defineProperty(this, name, desc);
- return this[name];
- };
- return dgs;
-};
-
-module.exports = function (props/*, options*/) {
- var options = normalizeOptions(arguments[1]);
- if (isValue(options.resolveContext)) ensurePlainFunction(options.resolveContext);
- return map(props, function (desc, name) { return define(name, desc, options); });
-};
diff --git a/node_modules/d/index.js b/node_modules/d/index.js
deleted file mode 100644
index b05448b..0000000
--- a/node_modules/d/index.js
+++ /dev/null
@@ -1,62 +0,0 @@
-"use strict";
-
-var isValue = require("type/value/is")
- , isPlainFunction = require("type/plain-function/is")
- , assign = require("es5-ext/object/assign")
- , normalizeOpts = require("es5-ext/object/normalize-options")
- , contains = require("es5-ext/string/#/contains");
-
-var d = (module.exports = function (dscr, value/*, options*/) {
- var c, e, w, options, desc;
- if (arguments.length < 2 || typeof dscr !== "string") {
- options = value;
- value = dscr;
- dscr = null;
- } else {
- options = arguments[2];
- }
- if (isValue(dscr)) {
- c = contains.call(dscr, "c");
- e = contains.call(dscr, "e");
- w = contains.call(dscr, "w");
- } else {
- c = w = true;
- e = false;
- }
-
- desc = { value: value, configurable: c, enumerable: e, writable: w };
- return !options ? desc : assign(normalizeOpts(options), desc);
-});
-
-d.gs = function (dscr, get, set/*, options*/) {
- var c, e, options, desc;
- if (typeof dscr !== "string") {
- options = set;
- set = get;
- get = dscr;
- dscr = null;
- } else {
- options = arguments[3];
- }
- if (!isValue(get)) {
- get = undefined;
- } else if (!isPlainFunction(get)) {
- options = get;
- get = set = undefined;
- } else if (!isValue(set)) {
- set = undefined;
- } else if (!isPlainFunction(set)) {
- options = set;
- set = undefined;
- }
- if (isValue(dscr)) {
- c = contains.call(dscr, "c");
- e = contains.call(dscr, "e");
- } else {
- c = true;
- e = false;
- }
-
- desc = { get: get, set: set, configurable: c, enumerable: e };
- return !options ? desc : assign(normalizeOpts(options), desc);
-};
diff --git a/node_modules/d/lazy.js b/node_modules/d/lazy.js
deleted file mode 100644
index bae0d6a..0000000
--- a/node_modules/d/lazy.js
+++ /dev/null
@@ -1,115 +0,0 @@
-"use strict";
-
-var isPlainFunction = require("type/plain-function/is")
- , ensureValue = require("type/value/ensure")
- , isValue = require("type/value/is")
- , map = require("es5-ext/object/map")
- , contains = require("es5-ext/string/#/contains");
-
-var call = Function.prototype.call
- , defineProperty = Object.defineProperty
- , getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor
- , getPrototypeOf = Object.getPrototypeOf
- , hasOwnProperty = Object.prototype.hasOwnProperty
- , cacheDesc = { configurable: false, enumerable: false, writable: false, value: null }
- , define;
-
-define = function (name, options) {
- var value, dgs, cacheName, desc, writable = false, resolvable, flat;
- options = Object(ensureValue(options));
- cacheName = options.cacheName;
- flat = options.flat;
- if (!isValue(cacheName)) cacheName = name;
- delete options.cacheName;
- value = options.value;
- resolvable = isPlainFunction(value);
- delete options.value;
- dgs = { configurable: Boolean(options.configurable), enumerable: Boolean(options.enumerable) };
- if (name !== cacheName) {
- dgs.get = function () {
- if (hasOwnProperty.call(this, cacheName)) return this[cacheName];
- cacheDesc.value = resolvable ? call.call(value, this, options) : value;
- cacheDesc.writable = writable;
- defineProperty(this, cacheName, cacheDesc);
- cacheDesc.value = null;
- if (desc) defineProperty(this, name, desc);
- return this[cacheName];
- };
- } else if (!flat) {
- dgs.get = function self() {
- var ownDesc;
- if (hasOwnProperty.call(this, name)) {
- ownDesc = getOwnPropertyDescriptor(this, name);
- // It happens in Safari, that getter is still called after property
- // was defined with a value, following workarounds that
- // While in IE11 it may happen that here ownDesc is undefined (go figure)
- if (ownDesc) {
- if (ownDesc.hasOwnProperty("value")) return ownDesc.value;
- if (typeof ownDesc.get === "function" && ownDesc.get !== self) {
- return ownDesc.get.call(this);
- }
- return value;
- }
- }
- desc.value = resolvable ? call.call(value, this, options) : value;
- defineProperty(this, name, desc);
- desc.value = null;
- return this[name];
- };
- } else {
- dgs.get = function self() {
- var base = this, ownDesc;
- if (hasOwnProperty.call(this, name)) {
- // It happens in Safari, that getter is still called after property
- // was defined with a value, following workarounds that
- ownDesc = getOwnPropertyDescriptor(this, name);
- if (ownDesc.hasOwnProperty("value")) return ownDesc.value;
- if (typeof ownDesc.get === "function" && ownDesc.get !== self) {
- return ownDesc.get.call(this);
- }
- }
- while (!hasOwnProperty.call(base, name)) base = getPrototypeOf(base);
- desc.value = resolvable ? call.call(value, base, options) : value;
- defineProperty(base, name, desc);
- desc.value = null;
- return base[name];
- };
- }
- dgs.set = function (value) {
- if (hasOwnProperty.call(this, name)) {
- throw new TypeError("Cannot assign to lazy defined '" + name + "' property of " + this);
- }
- dgs.get.call(this);
- this[cacheName] = value;
- };
- if (options.desc) {
- desc = {
- configurable: contains.call(options.desc, "c"),
- enumerable: contains.call(options.desc, "e")
- };
- if (cacheName === name) {
- desc.writable = contains.call(options.desc, "w");
- desc.value = null;
- } else {
- writable = contains.call(options.desc, "w");
- desc.get = dgs.get;
- desc.set = dgs.set;
- }
- delete options.desc;
- } else if (cacheName === name) {
- desc = {
- configurable: Boolean(options.configurable),
- enumerable: Boolean(options.enumerable),
- writable: Boolean(options.writable),
- value: null
- };
- }
- delete options.configurable;
- delete options.enumerable;
- delete options.writable;
- return dgs;
-};
-
-module.exports = function (props) {
- return map(props, function (desc, name) { return define(name, desc); });
-};
diff --git a/node_modules/d/package.json b/node_modules/d/package.json
deleted file mode 100644
index e0370df..0000000
--- a/node_modules/d/package.json
+++ /dev/null
@@ -1,72 +0,0 @@
-{
- "name": "d",
- "version": "1.0.1",
- "description": "Property descriptor factory",
- "author": "Mariusz Nowak (http://www.medikoo.com/)",
- "keywords": [
- "descriptor",
- "es",
- "ecmascript",
- "ecma",
- "property",
- "descriptors",
- "meta",
- "properties"
- ],
- "repository": {
- "type": "git",
- "url": "git://github.com/medikoo/d.git"
- },
- "dependencies": {
- "es5-ext": "^0.10.50",
- "type": "^1.0.1"
- },
- "devDependencies": {
- "eslint": "^5.16.0",
- "eslint-config-medikoo": "^2.3.0",
- "git-list-updated": "^1.1.2",
- "husky": "^2.4.1",
- "lint-staged": "^8.2.1",
- "prettier-elastic": "^1.18.2",
- "tad": "^2.0.1"
- },
- "husky": {
- "hooks": {
- "pre-commit": "lint-staged"
- }
- },
- "lint-staged": {
- "*.js": [
- "eslint"
- ],
- "*.{css,html,js,json,md,yaml,yml}": [
- "prettier -c"
- ]
- },
- "eslintConfig": {
- "extends": "medikoo/es5",
- "root": true
- },
- "prettier": {
- "printWidth": 100,
- "tabWidth": 4,
- "overrides": [
- {
- "files": [
- "*.md"
- ],
- "options": {
- "tabWidth": 2
- }
- }
- ]
- },
- "scripts": {
- "lint": "eslint --ignore-path=.gitignore .",
- "lint-updated": "pipe-git-updated --ext=js -- eslint --ignore-pattern '!*'",
- "prettier-check-updated": "pipe-git-updated --ext=css --ext=html --ext=js --ext=json --ext=md --ext=yaml --ext=yml -- prettier -c",
- "prettify": "prettier --write --ignore-path .gitignore '**/*.{css,html,js,json,md,yaml,yml}'",
- "test": "node node_modules/tad/bin/tad"
- },
- "license": "ISC"
-}
diff --git a/node_modules/d/test/auto-bind.js b/node_modules/d/test/auto-bind.js
deleted file mode 100644
index 993308e..0000000
--- a/node_modules/d/test/auto-bind.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-var d = require("../");
-
-module.exports = function (t, a) {
- var o = Object.defineProperties(
- {}, t({ bar: d(function () { return this === o; }), bar2: d(function () { return this; }) })
- );
-
- a.deep([o.bar(), o.bar2()], [true, o]);
-};
diff --git a/node_modules/d/test/index.js b/node_modules/d/test/index.js
deleted file mode 100644
index 43e61a3..0000000
--- a/node_modules/d/test/index.js
+++ /dev/null
@@ -1,209 +0,0 @@
-"use strict";
-
-var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
-
-module.exports = function (t, a) {
- var o, c, cg, cs, ce, ceg, ces, cew, cw, e, eg, es, ew, v, vg, vs, w, df, dfg, dfs;
-
- o = Object.create(Object.prototype, {
- c: t("c", (c = {})),
- cgs: t.gs("c", (cg = function () {}), (cs = function () {})),
- ce: t("ce", (ce = {})),
- cegs: t.gs("ce", (ceg = function () {}), (ces = function () {})),
- cew: t("cew", (cew = {})),
- cw: t("cw", (cw = {})),
- e: t("e", (e = {})),
- egs: t.gs("e", (eg = function () {}), (es = function () {})),
- ew: t("ew", (ew = {})),
- v: t("", (v = {})),
- vgs: t.gs("", (vg = function () {}), (vs = function () {})),
- w: t("w", (w = {})),
-
- df: t((df = {})),
- dfgs: t.gs((dfg = function () {}), (dfs = function () {}))
- });
-
- return {
- c: function (a) {
- var d = getOwnPropertyDescriptor(o, "c");
- a(d.value, c, "Value");
- a(d.get, undefined, "Get");
- a(d.set, undefined, "Set");
- a(d.configurable, true, "Configurable");
- a(d.enumerable, false, "Enumerable");
- a(d.writable, false, "Writable");
-
- d = getOwnPropertyDescriptor(o, "cgs");
- a(d.value, undefined, "GS Value");
- a(d.get, cg, "GS Get");
- a(d.set, cs, "GS Set");
- a(d.configurable, true, "GS Configurable");
- a(d.enumerable, false, "GS Enumerable");
- a(d.writable, undefined, "GS Writable");
- },
- ce: function (a) {
- var d = getOwnPropertyDescriptor(o, "ce");
- a(d.value, ce, "Value");
- a(d.get, undefined, "Get");
- a(d.set, undefined, "Set");
- a(d.configurable, true, "Configurable");
- a(d.enumerable, true, "Enumerable");
- a(d.writable, false, "Writable");
-
- d = getOwnPropertyDescriptor(o, "cegs");
- a(d.value, undefined, "GS Value");
- a(d.get, ceg, "GS Get");
- a(d.set, ces, "GS Set");
- a(d.configurable, true, "GS Configurable");
- a(d.enumerable, true, "GS Enumerable");
- a(d.writable, undefined, "GS Writable");
- },
- cew: function (a) {
- var d = getOwnPropertyDescriptor(o, "cew");
- a(d.value, cew, "Value");
- a(d.get, undefined, "Get");
- a(d.set, undefined, "Set");
- a(d.configurable, true, "Configurable");
- a(d.enumerable, true, "Enumerable");
- a(d.writable, true, "Writable");
- },
- cw: function (a) {
- var d = getOwnPropertyDescriptor(o, "cw");
- a(d.value, cw, "Value");
- a(d.get, undefined, "Get");
- a(d.set, undefined, "Set");
- a(d.configurable, true, "Configurable");
- a(d.enumerable, false, "Enumerable");
- a(d.writable, true, "Writable");
- },
- e: function (a) {
- var d = getOwnPropertyDescriptor(o, "e");
- a(d.value, e, "Value");
- a(d.get, undefined, "Get");
- a(d.set, undefined, "Set");
- a(d.configurable, false, "Configurable");
- a(d.enumerable, true, "Enumerable");
- a(d.writable, false, "Writable");
-
- d = getOwnPropertyDescriptor(o, "egs");
- a(d.value, undefined, "GS Value");
- a(d.get, eg, "GS Get");
- a(d.set, es, "GS Set");
- a(d.configurable, false, "GS Configurable");
- a(d.enumerable, true, "GS Enumerable");
- a(d.writable, undefined, "GS Writable");
- },
- ew: function (a) {
- var d = getOwnPropertyDescriptor(o, "ew");
- a(d.value, ew, "Value");
- a(d.get, undefined, "Get");
- a(d.set, undefined, "Set");
- a(d.configurable, false, "Configurable");
- a(d.enumerable, true, "Enumerable");
- a(d.writable, true, "Writable");
- },
- v: function (a) {
- var d = getOwnPropertyDescriptor(o, "v");
- a(d.value, v, "Value");
- a(d.get, undefined, "Get");
- a(d.set, undefined, "Set");
- a(d.configurable, false, "Configurable");
- a(d.enumerable, false, "Enumerable");
- a(d.writable, false, "Writable");
-
- d = getOwnPropertyDescriptor(o, "vgs");
- a(d.value, undefined, "GS Value");
- a(d.get, vg, "GS Get");
- a(d.set, vs, "GS Set");
- a(d.configurable, false, "GS Configurable");
- a(d.enumerable, false, "GS Enumerable");
- a(d.writable, undefined, "GS Writable");
- },
- w: function (a) {
- var d = getOwnPropertyDescriptor(o, "w");
- a(d.value, w, "Value");
- a(d.get, undefined, "Get");
- a(d.set, undefined, "Set");
- a(d.configurable, false, "Configurable");
- a(d.enumerable, false, "Enumerable");
- a(d.writable, true, "Writable");
- },
- d: function (a) {
- var d = getOwnPropertyDescriptor(o, "df");
- a(d.value, df, "Value");
- a(d.get, undefined, "Get");
- a(d.set, undefined, "Set");
- a(d.configurable, true, "Configurable");
- a(d.enumerable, false, "Enumerable");
- a(d.writable, true, "Writable");
-
- d = getOwnPropertyDescriptor(o, "dfgs");
- a(d.value, undefined, "GS Value");
- a(d.get, dfg, "GS Get");
- a(d.set, dfs, "GS Set");
- a(d.configurable, true, "GS Configurable");
- a(d.enumerable, false, "GS Enumerable");
- a(d.writable, undefined, "GS Writable");
- },
- Options: {
- v: function (a) {
- var x = {}, d = t(x, { foo: true });
- a.deep(
- d,
- { configurable: true, enumerable: false, writable: true, value: x, foo: true },
- "No descriptor"
- );
- d = t("c", "foo", { marko: "elo" });
- a.deep(
- d,
- {
- configurable: true,
- enumerable: false,
- writable: false,
- value: "foo",
- marko: "elo"
- },
- "Descriptor"
- );
- },
- gs: function (a) {
- var gFn = function () {}, sFn = function () {}, d;
- d = t.gs(gFn, sFn, { foo: true });
- a.deep(
- d, { configurable: true, enumerable: false, get: gFn, set: sFn, foo: true },
- "No descriptor"
- );
- d = t.gs(null, sFn, { foo: true });
- a.deep(
- d,
- { configurable: true, enumerable: false, get: undefined, set: sFn, foo: true },
- "No descriptor: Just set"
- );
- d = t.gs(gFn, { foo: true });
- a.deep(
- d,
- { configurable: true, enumerable: false, get: gFn, set: undefined, foo: true },
- "No descriptor: Just get"
- );
-
- d = t.gs("e", gFn, sFn, { bar: true });
- a.deep(
- d, { configurable: false, enumerable: true, get: gFn, set: sFn, bar: true },
- "Descriptor"
- );
- d = t.gs("e", null, sFn, { bar: true });
- a.deep(
- d,
- { configurable: false, enumerable: true, get: undefined, set: sFn, bar: true },
- "Descriptor: Just set"
- );
- d = t.gs("e", gFn, { bar: true });
- a.deep(
- d,
- { configurable: false, enumerable: true, get: gFn, set: undefined, bar: true },
- "Descriptor: Just get"
- );
- }
- }
- };
-};
diff --git a/node_modules/d/test/lazy.js b/node_modules/d/test/lazy.js
deleted file mode 100644
index e446dd5..0000000
--- a/node_modules/d/test/lazy.js
+++ /dev/null
@@ -1,97 +0,0 @@
-"use strict";
-
-var d = require("../")
- , getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
-
-module.exports = function (t, a) {
- var Foo = function () {}, i = 1, o, o2, desc;
- Object.defineProperties(
- Foo.prototype,
- t({
- bar: d(function () { return ++i; }),
- bar2: d(function () { return this.bar + 23; }),
- bar3: d(function () { return this.bar2 + 34; }, { desc: "ew" }),
- bar4: d(function () { return this.bar3 + 12; }, { cacheName: "_bar4_" }),
- bar5: d(function () { return this.bar4 + 3; }, { cacheName: "_bar5_", desc: "e" })
- })
- );
-
- desc = getOwnPropertyDescriptor(Foo.prototype, "bar");
- a(desc.configurable, true, "Configurable: default");
- a(desc.enumerable, false, "Enumerable: default");
-
- o = new Foo();
- a.deep([o.bar, o.bar2, o.bar3, o.bar4, o.bar5], [2, 25, 59, 71, 74], "Values");
-
- a.deep(
- getOwnPropertyDescriptor(o, "bar3"),
- { configurable: false, enumerable: true, writable: true, value: 59 }, "Desc"
- );
- a(o.hasOwnProperty("bar4"), false, "Cache not exposed");
- desc = getOwnPropertyDescriptor(o, "bar5");
- a.deep(
- desc, { configurable: false, enumerable: true, get: desc.get, set: desc.set },
- "Cache & Desc: desc"
- );
-
- o2 = Object.create(o);
- o2.bar = 30;
- o2.bar3 = 100;
-
- a.deep(
- [o2.bar, o2.bar2, o2.bar3, o2.bar4, o2.bar5], [30, 25, 100, 112, 115], "Extension Values"
- );
-
- Foo = function () {};
- Object.defineProperties(
- Foo.prototype,
- t({
- test: d("w", function () { return "raz"; }),
- test2: d("", function () { return "raz"; }, { desc: "w" }),
- test3: d("", function () { return "raz"; }, { cacheName: "__test3__", desc: "w" }),
- test4: d("w", "bar")
- })
- );
-
- o = new Foo();
- o.test = "marko";
- a.deep(
- getOwnPropertyDescriptor(o, "test"),
- { configurable: false, enumerable: false, writable: true, value: "marko" }, "Set before get"
- );
- o.test2 = "marko2";
- a.deep(
- getOwnPropertyDescriptor(o, "test2"),
- { configurable: false, enumerable: false, writable: true, value: "marko2" },
- "Set before get: Custom desc"
- );
- o.test3 = "marko3";
- a.deep(
- getOwnPropertyDescriptor(o, "__test3__"),
- { configurable: false, enumerable: false, writable: true, value: "marko3" },
- "Set before get: Custom cache name"
- );
- a(o.test4, "bar", "Resolve by value");
-
- a.h1("Flat");
- Object.defineProperties(
- Foo.prototype,
- t({
- flat: d(function () { return "foo"; }, { flat: true }),
- flat2: d(function () { return "bar"; }, { flat: true })
- })
- );
-
- a.h2("Instance");
- a(o.flat, "foo", "Value");
- a(o.hasOwnProperty("flat"), false, "Instance");
- a(Foo.prototype.flat, "foo", "Prototype");
-
- a.h2("Direct");
- a(Foo.prototype.flat2, "bar");
-
- a.h2("Reset direct");
- Object.defineProperties(Foo.prototype, t({ testResetDirect: d(false) }));
-
- a.throws(function () { Foo.prototype.testResetDirect = false; }, TypeError);
-};
diff --git a/node_modules/debug/.coveralls.yml b/node_modules/debug/.coveralls.yml
deleted file mode 100644
index 20a7068..0000000
--- a/node_modules/debug/.coveralls.yml
+++ /dev/null
@@ -1 +0,0 @@
-repo_token: SIAeZjKYlHK74rbcFvNHMUzjRiMpflxve
diff --git a/node_modules/debug/.eslintrc b/node_modules/debug/.eslintrc
deleted file mode 100644
index 8a37ae2..0000000
--- a/node_modules/debug/.eslintrc
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "env": {
- "browser": true,
- "node": true
- },
- "rules": {
- "no-console": 0,
- "no-empty": [1, { "allowEmptyCatch": true }]
- },
- "extends": "eslint:recommended"
-}
diff --git a/node_modules/debug/.npmignore b/node_modules/debug/.npmignore
deleted file mode 100644
index 5f60eec..0000000
--- a/node_modules/debug/.npmignore
+++ /dev/null
@@ -1,9 +0,0 @@
-support
-test
-examples
-example
-*.sock
-dist
-yarn.lock
-coverage
-bower.json
diff --git a/node_modules/debug/.travis.yml b/node_modules/debug/.travis.yml
deleted file mode 100644
index 6c6090c..0000000
--- a/node_modules/debug/.travis.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-language: node_js
-node_js:
- - "6"
- - "5"
- - "4"
-
-install:
- - make node_modules
-
-script:
- - make lint
- - make test
- - make coveralls
diff --git a/node_modules/debug/CHANGELOG.md b/node_modules/debug/CHANGELOG.md
deleted file mode 100644
index eadaa18..0000000
--- a/node_modules/debug/CHANGELOG.md
+++ /dev/null
@@ -1,362 +0,0 @@
-
-2.6.9 / 2017-09-22
-==================
-
- * remove ReDoS regexp in %o formatter (#504)
-
-2.6.8 / 2017-05-18
-==================
-
- * Fix: Check for undefined on browser globals (#462, @marbemac)
-
-2.6.7 / 2017-05-16
-==================
-
- * Fix: Update ms to 2.0.0 to fix regular expression denial of service vulnerability (#458, @hubdotcom)
- * Fix: Inline extend function in node implementation (#452, @dougwilson)
- * Docs: Fix typo (#455, @msasad)
-
-2.6.5 / 2017-04-27
-==================
-
- * Fix: null reference check on window.documentElement.style.WebkitAppearance (#447, @thebigredgeek)
- * Misc: clean up browser reference checks (#447, @thebigredgeek)
- * Misc: add npm-debug.log to .gitignore (@thebigredgeek)
-
-
-2.6.4 / 2017-04-20
-==================
-
- * Fix: bug that would occure if process.env.DEBUG is a non-string value. (#444, @LucianBuzzo)
- * Chore: ignore bower.json in npm installations. (#437, @joaovieira)
- * Misc: update "ms" to v0.7.3 (@tootallnate)
-
-2.6.3 / 2017-03-13
-==================
-
- * Fix: Electron reference to `process.env.DEBUG` (#431, @paulcbetts)
- * Docs: Changelog fix (@thebigredgeek)
-
-2.6.2 / 2017-03-10
-==================
-
- * Fix: DEBUG_MAX_ARRAY_LENGTH (#420, @slavaGanzin)
- * Docs: Add backers and sponsors from Open Collective (#422, @piamancini)
- * Docs: Add Slackin invite badge (@tootallnate)
-
-2.6.1 / 2017-02-10
-==================
-
- * Fix: Module's `export default` syntax fix for IE8 `Expected identifier` error
- * Fix: Whitelist DEBUG_FD for values 1 and 2 only (#415, @pi0)
- * Fix: IE8 "Expected identifier" error (#414, @vgoma)
- * Fix: Namespaces would not disable once enabled (#409, @musikov)
-
-2.6.0 / 2016-12-28
-==================
-
- * Fix: added better null pointer checks for browser useColors (@thebigredgeek)
- * Improvement: removed explicit `window.debug` export (#404, @tootallnate)
- * Improvement: deprecated `DEBUG_FD` environment variable (#405, @tootallnate)
-
-2.5.2 / 2016-12-25
-==================
-
- * Fix: reference error on window within webworkers (#393, @KlausTrainer)
- * Docs: fixed README typo (#391, @lurch)
- * Docs: added notice about v3 api discussion (@thebigredgeek)
-
-2.5.1 / 2016-12-20
-==================
-
- * Fix: babel-core compatibility
-
-2.5.0 / 2016-12-20
-==================
-
- * Fix: wrong reference in bower file (@thebigredgeek)
- * Fix: webworker compatibility (@thebigredgeek)
- * Fix: output formatting issue (#388, @kribblo)
- * Fix: babel-loader compatibility (#383, @escwald)
- * Misc: removed built asset from repo and publications (@thebigredgeek)
- * Misc: moved source files to /src (#378, @yamikuronue)
- * Test: added karma integration and replaced babel with browserify for browser tests (#378, @yamikuronue)
- * Test: coveralls integration (#378, @yamikuronue)
- * Docs: simplified language in the opening paragraph (#373, @yamikuronue)
-
-2.4.5 / 2016-12-17
-==================
-
- * Fix: `navigator` undefined in Rhino (#376, @jochenberger)
- * Fix: custom log function (#379, @hsiliev)
- * Improvement: bit of cleanup + linting fixes (@thebigredgeek)
- * Improvement: rm non-maintainted `dist/` dir (#375, @freewil)
- * Docs: simplified language in the opening paragraph. (#373, @yamikuronue)
-
-2.4.4 / 2016-12-14
-==================
-
- * Fix: work around debug being loaded in preload scripts for electron (#368, @paulcbetts)
-
-2.4.3 / 2016-12-14
-==================
-
- * Fix: navigation.userAgent error for react native (#364, @escwald)
-
-2.4.2 / 2016-12-14
-==================
-
- * Fix: browser colors (#367, @tootallnate)
- * Misc: travis ci integration (@thebigredgeek)
- * Misc: added linting and testing boilerplate with sanity check (@thebigredgeek)
-
-2.4.1 / 2016-12-13
-==================
-
- * Fix: typo that broke the package (#356)
-
-2.4.0 / 2016-12-13
-==================
-
- * Fix: bower.json references unbuilt src entry point (#342, @justmatt)
- * Fix: revert "handle regex special characters" (@tootallnate)
- * Feature: configurable util.inspect()`options for NodeJS (#327, @tootallnate)
- * Feature: %O`(big O) pretty-prints objects (#322, @tootallnate)
- * Improvement: allow colors in workers (#335, @botverse)
- * Improvement: use same color for same namespace. (#338, @lchenay)
-
-2.3.3 / 2016-11-09
-==================
-
- * Fix: Catch `JSON.stringify()` errors (#195, Jovan Alleyne)
- * Fix: Returning `localStorage` saved values (#331, Levi Thomason)
- * Improvement: Don't create an empty object when no `process` (Nathan Rajlich)
-
-2.3.2 / 2016-11-09
-==================
-
- * Fix: be super-safe in index.js as well (@TooTallNate)
- * Fix: should check whether process exists (Tom Newby)
-
-2.3.1 / 2016-11-09
-==================
-
- * Fix: Added electron compatibility (#324, @paulcbetts)
- * Improvement: Added performance optimizations (@tootallnate)
- * Readme: Corrected PowerShell environment variable example (#252, @gimre)
- * Misc: Removed yarn lock file from source control (#321, @fengmk2)
-
-2.3.0 / 2016-11-07
-==================
-
- * Fix: Consistent placement of ms diff at end of output (#215, @gorangajic)
- * Fix: Escaping of regex special characters in namespace strings (#250, @zacronos)
- * Fix: Fixed bug causing crash on react-native (#282, @vkarpov15)
- * Feature: Enabled ES6+ compatible import via default export (#212 @bucaran)
- * Feature: Added %O formatter to reflect Chrome's console.log capability (#279, @oncletom)
- * Package: Update "ms" to 0.7.2 (#315, @DevSide)
- * Package: removed superfluous version property from bower.json (#207 @kkirsche)
- * Readme: fix USE_COLORS to DEBUG_COLORS
- * Readme: Doc fixes for format string sugar (#269, @mlucool)
- * Readme: Updated docs for DEBUG_FD and DEBUG_COLORS environment variables (#232, @mattlyons0)
- * Readme: doc fixes for PowerShell (#271 #243, @exoticknight @unreadable)
- * Readme: better docs for browser support (#224, @matthewmueller)
- * Tooling: Added yarn integration for development (#317, @thebigredgeek)
- * Misc: Renamed History.md to CHANGELOG.md (@thebigredgeek)
- * Misc: Added license file (#226 #274, @CantemoInternal @sdaitzman)
- * Misc: Updated contributors (@thebigredgeek)
-
-2.2.0 / 2015-05-09
-==================
-
- * package: update "ms" to v0.7.1 (#202, @dougwilson)
- * README: add logging to file example (#193, @DanielOchoa)
- * README: fixed a typo (#191, @amir-s)
- * browser: expose `storage` (#190, @stephenmathieson)
- * Makefile: add a `distclean` target (#189, @stephenmathieson)
-
-2.1.3 / 2015-03-13
-==================
-
- * Updated stdout/stderr example (#186)
- * Updated example/stdout.js to match debug current behaviour
- * Renamed example/stderr.js to stdout.js
- * Update Readme.md (#184)
- * replace high intensity foreground color for bold (#182, #183)
-
-2.1.2 / 2015-03-01
-==================
-
- * dist: recompile
- * update "ms" to v0.7.0
- * package: update "browserify" to v9.0.3
- * component: fix "ms.js" repo location
- * changed bower package name
- * updated documentation about using debug in a browser
- * fix: security error on safari (#167, #168, @yields)
-
-2.1.1 / 2014-12-29
-==================
-
- * browser: use `typeof` to check for `console` existence
- * browser: check for `console.log` truthiness (fix IE 8/9)
- * browser: add support for Chrome apps
- * Readme: added Windows usage remarks
- * Add `bower.json` to properly support bower install
-
-2.1.0 / 2014-10-15
-==================
-
- * node: implement `DEBUG_FD` env variable support
- * package: update "browserify" to v6.1.0
- * package: add "license" field to package.json (#135, @panuhorsmalahti)
-
-2.0.0 / 2014-09-01
-==================
-
- * package: update "browserify" to v5.11.0
- * node: use stderr rather than stdout for logging (#29, @stephenmathieson)
-
-1.0.4 / 2014-07-15
-==================
-
- * dist: recompile
- * example: remove `console.info()` log usage
- * example: add "Content-Type" UTF-8 header to browser example
- * browser: place %c marker after the space character
- * browser: reset the "content" color via `color: inherit`
- * browser: add colors support for Firefox >= v31
- * debug: prefer an instance `log()` function over the global one (#119)
- * Readme: update documentation about styled console logs for FF v31 (#116, @wryk)
-
-1.0.3 / 2014-07-09
-==================
-
- * Add support for multiple wildcards in namespaces (#122, @seegno)
- * browser: fix lint
-
-1.0.2 / 2014-06-10
-==================
-
- * browser: update color palette (#113, @gscottolson)
- * common: make console logging function configurable (#108, @timoxley)
- * node: fix %o colors on old node <= 0.8.x
- * Makefile: find node path using shell/which (#109, @timoxley)
-
-1.0.1 / 2014-06-06
-==================
-
- * browser: use `removeItem()` to clear localStorage
- * browser, node: don't set DEBUG if namespaces is undefined (#107, @leedm777)
- * package: add "contributors" section
- * node: fix comment typo
- * README: list authors
-
-1.0.0 / 2014-06-04
-==================
-
- * make ms diff be global, not be scope
- * debug: ignore empty strings in enable()
- * node: make DEBUG_COLORS able to disable coloring
- * *: export the `colors` array
- * npmignore: don't publish the `dist` dir
- * Makefile: refactor to use browserify
- * package: add "browserify" as a dev dependency
- * Readme: add Web Inspector Colors section
- * node: reset terminal color for the debug content
- * node: map "%o" to `util.inspect()`
- * browser: map "%j" to `JSON.stringify()`
- * debug: add custom "formatters"
- * debug: use "ms" module for humanizing the diff
- * Readme: add "bash" syntax highlighting
- * browser: add Firebug color support
- * browser: add colors for WebKit browsers
- * node: apply log to `console`
- * rewrite: abstract common logic for Node & browsers
- * add .jshintrc file
-
-0.8.1 / 2014-04-14
-==================
-
- * package: re-add the "component" section
-
-0.8.0 / 2014-03-30
-==================
-
- * add `enable()` method for nodejs. Closes #27
- * change from stderr to stdout
- * remove unnecessary index.js file
-
-0.7.4 / 2013-11-13
-==================
-
- * remove "browserify" key from package.json (fixes something in browserify)
-
-0.7.3 / 2013-10-30
-==================
-
- * fix: catch localStorage security error when cookies are blocked (Chrome)
- * add debug(err) support. Closes #46
- * add .browser prop to package.json. Closes #42
-
-0.7.2 / 2013-02-06
-==================
-
- * fix package.json
- * fix: Mobile Safari (private mode) is broken with debug
- * fix: Use unicode to send escape character to shell instead of octal to work with strict mode javascript
-
-0.7.1 / 2013-02-05
-==================
-
- * add repository URL to package.json
- * add DEBUG_COLORED to force colored output
- * add browserify support
- * fix component. Closes #24
-
-0.7.0 / 2012-05-04
-==================
-
- * Added .component to package.json
- * Added debug.component.js build
-
-0.6.0 / 2012-03-16
-==================
-
- * Added support for "-" prefix in DEBUG [Vinay Pulim]
- * Added `.enabled` flag to the node version [TooTallNate]
-
-0.5.0 / 2012-02-02
-==================
-
- * Added: humanize diffs. Closes #8
- * Added `debug.disable()` to the CS variant
- * Removed padding. Closes #10
- * Fixed: persist client-side variant again. Closes #9
-
-0.4.0 / 2012-02-01
-==================
-
- * Added browser variant support for older browsers [TooTallNate]
- * Added `debug.enable('project:*')` to browser variant [TooTallNate]
- * Added padding to diff (moved it to the right)
-
-0.3.0 / 2012-01-26
-==================
-
- * Added millisecond diff when isatty, otherwise UTC string
-
-0.2.0 / 2012-01-22
-==================
-
- * Added wildcard support
-
-0.1.0 / 2011-12-02
-==================
-
- * Added: remove colors unless stderr isatty [TooTallNate]
-
-0.0.1 / 2010-01-03
-==================
-
- * Initial release
diff --git a/node_modules/debug/LICENSE b/node_modules/debug/LICENSE
deleted file mode 100644
index 658c933..0000000
--- a/node_modules/debug/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-(The MIT License)
-
-Copyright (c) 2014 TJ Holowaychuk
-
-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/debug/Makefile b/node_modules/debug/Makefile
deleted file mode 100644
index 584da8b..0000000
--- a/node_modules/debug/Makefile
+++ /dev/null
@@ -1,50 +0,0 @@
-# get Makefile directory name: http://stackoverflow.com/a/5982798/376773
-THIS_MAKEFILE_PATH:=$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
-THIS_DIR:=$(shell cd $(dir $(THIS_MAKEFILE_PATH));pwd)
-
-# BIN directory
-BIN := $(THIS_DIR)/node_modules/.bin
-
-# Path
-PATH := node_modules/.bin:$(PATH)
-SHELL := /bin/bash
-
-# applications
-NODE ?= $(shell which node)
-YARN ?= $(shell which yarn)
-PKG ?= $(if $(YARN),$(YARN),$(NODE) $(shell which npm))
-BROWSERIFY ?= $(NODE) $(BIN)/browserify
-
-.FORCE:
-
-install: node_modules
-
-node_modules: package.json
- @NODE_ENV= $(PKG) install
- @touch node_modules
-
-lint: .FORCE
- eslint browser.js debug.js index.js node.js
-
-test-node: .FORCE
- istanbul cover node_modules/mocha/bin/_mocha -- test/**.js
-
-test-browser: .FORCE
- mkdir -p dist
-
- @$(BROWSERIFY) \
- --standalone debug \
- . > dist/debug.js
-
- karma start --single-run
- rimraf dist
-
-test: .FORCE
- concurrently \
- "make test-node" \
- "make test-browser"
-
-coveralls:
- cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js
-
-.PHONY: all install clean distclean
diff --git a/node_modules/debug/README.md b/node_modules/debug/README.md
deleted file mode 100644
index f67be6b..0000000
--- a/node_modules/debug/README.md
+++ /dev/null
@@ -1,312 +0,0 @@
-# debug
-[![Build Status](https://travis-ci.org/visionmedia/debug.svg?branch=master)](https://travis-ci.org/visionmedia/debug) [![Coverage Status](https://coveralls.io/repos/github/visionmedia/debug/badge.svg?branch=master)](https://coveralls.io/github/visionmedia/debug?branch=master) [![Slack](https://visionmedia-community-slackin.now.sh/badge.svg)](https://visionmedia-community-slackin.now.sh/) [![OpenCollective](https://opencollective.com/debug/backers/badge.svg)](#backers)
-[![OpenCollective](https://opencollective.com/debug/sponsors/badge.svg)](#sponsors)
-
-
-
-A tiny node.js debugging utility modelled after node core's debugging technique.
-
-**Discussion around the V3 API is under way [here](https://github.com/visionmedia/debug/issues/370)**
-
-## Installation
-
-```bash
-$ npm install debug
-```
-
-## Usage
-
-`debug` exposes a function; simply pass this function the name of your module, and it will return a decorated version of `console.error` for you to pass debug statements to. This will allow you to toggle the debug output for different parts of your module as well as the module as a whole.
-
-Example _app.js_:
-
-```js
-var debug = require('debug')('http')
- , http = require('http')
- , name = 'My App';
-
-// fake app
-
-debug('booting %s', name);
-
-http.createServer(function(req, res){
- debug(req.method + ' ' + req.url);
- res.end('hello\n');
-}).listen(3000, function(){
- debug('listening');
-});
-
-// fake worker of some kind
-
-require('./worker');
-```
-
-Example _worker.js_:
-
-```js
-var debug = require('debug')('worker');
-
-setInterval(function(){
- debug('doing some work');
-}, 1000);
-```
-
- The __DEBUG__ environment variable is then used to enable these based on space or comma-delimited names. Here are some examples:
-
- ![debug http and worker](http://f.cl.ly/items/18471z1H402O24072r1J/Screenshot.png)
-
- ![debug worker](http://f.cl.ly/items/1X413v1a3M0d3C2c1E0i/Screenshot.png)
-
-#### Windows note
-
- On Windows the environment variable is set using the `set` command.
-
- ```cmd
- set DEBUG=*,-not_this
- ```
-
- Note that PowerShell uses different syntax to set environment variables.
-
- ```cmd
- $env:DEBUG = "*,-not_this"
- ```
-
-Then, run the program to be debugged as usual.
-
-## Millisecond diff
-
- When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the "+NNNms" will show you how much time was spent between calls.
-
- ![](http://f.cl.ly/items/2i3h1d3t121M2Z1A3Q0N/Screenshot.png)
-
- When stdout is not a TTY, `Date#toUTCString()` is used, making it more useful for logging the debug information as shown below:
-
- ![](http://f.cl.ly/items/112H3i0e0o0P0a2Q2r11/Screenshot.png)
-
-## Conventions
-
- If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use ":" to separate features. For example "bodyParser" from Connect would then be "connect:bodyParser".
-
-## Wildcards
-
- The `*` character may be used as a wildcard. Suppose for example your library has debuggers named "connect:bodyParser", "connect:compress", "connect:session", instead of listing all three with `DEBUG=connect:bodyParser,connect:compress,connect:session`, you may simply do `DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`.
-
- You can also exclude specific debuggers by prefixing them with a "-" character. For example, `DEBUG=*,-connect:*` would include all debuggers except those starting with "connect:".
-
-## Environment Variables
-
- When running through Node.js, you can set a few environment variables that will
- change the behavior of the debug logging:
-
-| Name | Purpose |
-|-----------|-------------------------------------------------|
-| `DEBUG` | Enables/disables specific debugging namespaces. |
-| `DEBUG_COLORS`| Whether or not to use colors in the debug output. |
-| `DEBUG_DEPTH` | Object inspection depth. |
-| `DEBUG_SHOW_HIDDEN` | Shows hidden properties on inspected objects. |
-
-
- __Note:__ The environment variables beginning with `DEBUG_` end up being
- converted into an Options object that gets used with `%o`/`%O` formatters.
- See the Node.js documentation for
- [`util.inspect()`](https://nodejs.org/api/util.html#util_util_inspect_object_options)
- for the complete list.
-
-## Formatters
-
-
- Debug uses [printf-style](https://wikipedia.org/wiki/Printf_format_string) formatting. Below are the officially supported formatters:
-
-| Formatter | Representation |
-|-----------|----------------|
-| `%O` | Pretty-print an Object on multiple lines. |
-| `%o` | Pretty-print an Object all on a single line. |
-| `%s` | String. |
-| `%d` | Number (both integer and float). |
-| `%j` | JSON. Replaced with the string '[Circular]' if the argument contains circular references. |
-| `%%` | Single percent sign ('%'). This does not consume an argument. |
-
-### Custom formatters
-
- You can add custom formatters by extending the `debug.formatters` object. For example, if you wanted to add support for rendering a Buffer as hex with `%h`, you could do something like:
-
-```js
-const createDebug = require('debug')
-createDebug.formatters.h = (v) => {
- return v.toString('hex')
-}
-
-// …elsewhere
-const debug = createDebug('foo')
-debug('this is hex: %h', new Buffer('hello world'))
-// foo this is hex: 68656c6c6f20776f726c6421 +0ms
-```
-
-## Browser support
- You can build a browser-ready script using [browserify](https://github.com/substack/node-browserify),
- or just use the [browserify-as-a-service](https://wzrd.in/) [build](https://wzrd.in/standalone/debug@latest),
- if you don't want to build it yourself.
-
- Debug's enable state is currently persisted by `localStorage`.
- Consider the situation shown below where you have `worker:a` and `worker:b`,
- and wish to debug both. You can enable this using `localStorage.debug`:
-
-```js
-localStorage.debug = 'worker:*'
-```
-
-And then refresh the page.
-
-```js
-a = debug('worker:a');
-b = debug('worker:b');
-
-setInterval(function(){
- a('doing some work');
-}, 1000);
-
-setInterval(function(){
- b('doing some work');
-}, 1200);
-```
-
-#### Web Inspector Colors
-
- Colors are also enabled on "Web Inspectors" that understand the `%c` formatting
- option. These are WebKit web inspectors, Firefox ([since version
- 31](https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/))
- and the Firebug plugin for Firefox (any version).
-
- Colored output looks something like:
-
- ![](https://cloud.githubusercontent.com/assets/71256/3139768/b98c5fd8-e8ef-11e3-862a-f7253b6f47c6.png)
-
-
-## Output streams
-
- By default `debug` will log to stderr, however this can be configured per-namespace by overriding the `log` method:
-
-Example _stdout.js_:
-
-```js
-var debug = require('debug');
-var error = debug('app:error');
-
-// by default stderr is used
-error('goes to stderr!');
-
-var log = debug('app:log');
-// set this namespace to log via console.log
-log.log = console.log.bind(console); // don't forget to bind to console!
-log('goes to stdout');
-error('still goes to stderr!');
-
-// set all output to go via console.info
-// overrides all per-namespace log settings
-debug.log = console.info.bind(console);
-error('now goes to stdout via console.info');
-log('still goes to stdout, but via console.info now');
-```
-
-
-## Authors
-
- - TJ Holowaychuk
- - Nathan Rajlich
- - Andrew Rhyne
-
-## Backers
-
-Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/debug#backer)]
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-## Sponsors
-
-Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/debug#sponsor)]
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-## License
-
-(The MIT License)
-
-Copyright (c) 2014-2016 TJ Holowaychuk <tj@vision-media.ca>
-
-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/debug/component.json b/node_modules/debug/component.json
deleted file mode 100644
index 9de2641..0000000
--- a/node_modules/debug/component.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "name": "debug",
- "repo": "visionmedia/debug",
- "description": "small debugging utility",
- "version": "2.6.9",
- "keywords": [
- "debug",
- "log",
- "debugger"
- ],
- "main": "src/browser.js",
- "scripts": [
- "src/browser.js",
- "src/debug.js"
- ],
- "dependencies": {
- "rauchg/ms.js": "0.7.1"
- }
-}
diff --git a/node_modules/debug/karma.conf.js b/node_modules/debug/karma.conf.js
deleted file mode 100644
index 103a82d..0000000
--- a/node_modules/debug/karma.conf.js
+++ /dev/null
@@ -1,70 +0,0 @@
-// Karma configuration
-// Generated on Fri Dec 16 2016 13:09:51 GMT+0000 (UTC)
-
-module.exports = function(config) {
- config.set({
-
- // base path that will be used to resolve all patterns (eg. files, exclude)
- basePath: '',
-
-
- // frameworks to use
- // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
- frameworks: ['mocha', 'chai', 'sinon'],
-
-
- // list of files / patterns to load in the browser
- files: [
- 'dist/debug.js',
- 'test/*spec.js'
- ],
-
-
- // list of files to exclude
- exclude: [
- 'src/node.js'
- ],
-
-
- // preprocess matching files before serving them to the browser
- // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
- preprocessors: {
- },
-
- // test results reporter to use
- // possible values: 'dots', 'progress'
- // available reporters: https://npmjs.org/browse/keyword/karma-reporter
- reporters: ['progress'],
-
-
- // web server port
- port: 9876,
-
-
- // enable / disable colors in the output (reporters and logs)
- colors: true,
-
-
- // level of logging
- // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
- logLevel: config.LOG_INFO,
-
-
- // enable / disable watching file and executing tests whenever any file changes
- autoWatch: true,
-
-
- // start these browsers
- // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
- browsers: ['PhantomJS'],
-
-
- // Continuous Integration mode
- // if true, Karma captures browsers, runs the tests and exits
- singleRun: false,
-
- // Concurrency level
- // how many browser should be started simultaneous
- concurrency: Infinity
- })
-}
diff --git a/node_modules/debug/node.js b/node_modules/debug/node.js
deleted file mode 100644
index 7fc36fe..0000000
--- a/node_modules/debug/node.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./src/node');
diff --git a/node_modules/debug/package.json b/node_modules/debug/package.json
deleted file mode 100644
index dc787ba..0000000
--- a/node_modules/debug/package.json
+++ /dev/null
@@ -1,49 +0,0 @@
-{
- "name": "debug",
- "version": "2.6.9",
- "repository": {
- "type": "git",
- "url": "git://github.com/visionmedia/debug.git"
- },
- "description": "small debugging utility",
- "keywords": [
- "debug",
- "log",
- "debugger"
- ],
- "author": "TJ Holowaychuk ",
- "contributors": [
- "Nathan Rajlich (http://n8.io)",
- "Andrew Rhyne "
- ],
- "license": "MIT",
- "dependencies": {
- "ms": "2.0.0"
- },
- "devDependencies": {
- "browserify": "9.0.3",
- "chai": "^3.5.0",
- "concurrently": "^3.1.0",
- "coveralls": "^2.11.15",
- "eslint": "^3.12.1",
- "istanbul": "^0.4.5",
- "karma": "^1.3.0",
- "karma-chai": "^0.1.0",
- "karma-mocha": "^1.3.0",
- "karma-phantomjs-launcher": "^1.0.2",
- "karma-sinon": "^1.0.5",
- "mocha": "^3.2.0",
- "mocha-lcov-reporter": "^1.2.0",
- "rimraf": "^2.5.4",
- "sinon": "^1.17.6",
- "sinon-chai": "^2.8.0"
- },
- "main": "./src/index.js",
- "browser": "./src/browser.js",
- "component": {
- "scripts": {
- "debug/index.js": "browser.js",
- "debug/debug.js": "debug.js"
- }
- }
-}
diff --git a/node_modules/debug/src/browser.js b/node_modules/debug/src/browser.js
deleted file mode 100644
index 7106924..0000000
--- a/node_modules/debug/src/browser.js
+++ /dev/null
@@ -1,185 +0,0 @@
-/**
- * This is the web browser implementation of `debug()`.
- *
- * Expose `debug()` as the module.
- */
-
-exports = module.exports = require('./debug');
-exports.log = log;
-exports.formatArgs = formatArgs;
-exports.save = save;
-exports.load = load;
-exports.useColors = useColors;
-exports.storage = 'undefined' != typeof chrome
- && 'undefined' != typeof chrome.storage
- ? chrome.storage.local
- : localstorage();
-
-/**
- * Colors.
- */
-
-exports.colors = [
- 'lightseagreen',
- 'forestgreen',
- 'goldenrod',
- 'dodgerblue',
- 'darkorchid',
- 'crimson'
-];
-
-/**
- * Currently only WebKit-based Web Inspectors, Firefox >= v31,
- * and the Firebug extension (any Firefox version) are known
- * to support "%c" CSS customizations.
- *
- * TODO: add a `localStorage` variable to explicitly enable/disable colors
- */
-
-function useColors() {
- // NB: In an Electron preload script, document will be defined but not fully
- // initialized. Since we know we're in Chrome, we'll just detect this case
- // explicitly
- if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {
- return true;
- }
-
- // is webkit? http://stackoverflow.com/a/16459606/376773
- // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632
- return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||
- // is firebug? http://stackoverflow.com/a/398120/376773
- (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||
- // is firefox >= v31?
- // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
- (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||
- // double check webkit in userAgent just in case we are in a worker
- (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/));
-}
-
-/**
- * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.
- */
-
-exports.formatters.j = function(v) {
- try {
- return JSON.stringify(v);
- } catch (err) {
- return '[UnexpectedJSONParseError]: ' + err.message;
- }
-};
-
-
-/**
- * Colorize log arguments if enabled.
- *
- * @api public
- */
-
-function formatArgs(args) {
- var useColors = this.useColors;
-
- args[0] = (useColors ? '%c' : '')
- + this.namespace
- + (useColors ? ' %c' : ' ')
- + args[0]
- + (useColors ? '%c ' : ' ')
- + '+' + exports.humanize(this.diff);
-
- if (!useColors) return;
-
- var c = 'color: ' + this.color;
- args.splice(1, 0, c, 'color: inherit')
-
- // the final "%c" is somewhat tricky, because there could be other
- // arguments passed either before or after the %c, so we need to
- // figure out the correct index to insert the CSS into
- var index = 0;
- var lastC = 0;
- args[0].replace(/%[a-zA-Z%]/g, function(match) {
- if ('%%' === match) return;
- index++;
- if ('%c' === match) {
- // we only are interested in the *last* %c
- // (the user may have provided their own)
- lastC = index;
- }
- });
-
- args.splice(lastC, 0, c);
-}
-
-/**
- * Invokes `console.log()` when available.
- * No-op when `console.log` is not a "function".
- *
- * @api public
- */
-
-function log() {
- // this hackery is required for IE8/9, where
- // the `console.log` function doesn't have 'apply'
- return 'object' === typeof console
- && console.log
- && Function.prototype.apply.call(console.log, console, arguments);
-}
-
-/**
- * Save `namespaces`.
- *
- * @param {String} namespaces
- * @api private
- */
-
-function save(namespaces) {
- try {
- if (null == namespaces) {
- exports.storage.removeItem('debug');
- } else {
- exports.storage.debug = namespaces;
- }
- } catch(e) {}
-}
-
-/**
- * Load `namespaces`.
- *
- * @return {String} returns the previously persisted debug modes
- * @api private
- */
-
-function load() {
- var r;
- try {
- r = exports.storage.debug;
- } catch(e) {}
-
- // If debug isn't set in LS, and we're in Electron, try to load $DEBUG
- if (!r && typeof process !== 'undefined' && 'env' in process) {
- r = process.env.DEBUG;
- }
-
- return r;
-}
-
-/**
- * Enable namespaces listed in `localStorage.debug` initially.
- */
-
-exports.enable(load());
-
-/**
- * Localstorage attempts to return the localstorage.
- *
- * This is necessary because safari throws
- * when a user disables cookies/localstorage
- * and you attempt to access it.
- *
- * @return {LocalStorage}
- * @api private
- */
-
-function localstorage() {
- try {
- return window.localStorage;
- } catch (e) {}
-}
diff --git a/node_modules/debug/src/debug.js b/node_modules/debug/src/debug.js
deleted file mode 100644
index 6a5e3fc..0000000
--- a/node_modules/debug/src/debug.js
+++ /dev/null
@@ -1,202 +0,0 @@
-
-/**
- * This is the common logic for both the Node.js and web browser
- * implementations of `debug()`.
- *
- * Expose `debug()` as the module.
- */
-
-exports = module.exports = createDebug.debug = createDebug['default'] = createDebug;
-exports.coerce = coerce;
-exports.disable = disable;
-exports.enable = enable;
-exports.enabled = enabled;
-exports.humanize = require('ms');
-
-/**
- * The currently active debug mode names, and names to skip.
- */
-
-exports.names = [];
-exports.skips = [];
-
-/**
- * Map of special "%n" handling functions, for the debug "format" argument.
- *
- * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N".
- */
-
-exports.formatters = {};
-
-/**
- * Previous log timestamp.
- */
-
-var prevTime;
-
-/**
- * Select a color.
- * @param {String} namespace
- * @return {Number}
- * @api private
- */
-
-function selectColor(namespace) {
- var hash = 0, i;
-
- for (i in namespace) {
- hash = ((hash << 5) - hash) + namespace.charCodeAt(i);
- hash |= 0; // Convert to 32bit integer
- }
-
- return exports.colors[Math.abs(hash) % exports.colors.length];
-}
-
-/**
- * Create a debugger with the given `namespace`.
- *
- * @param {String} namespace
- * @return {Function}
- * @api public
- */
-
-function createDebug(namespace) {
-
- function debug() {
- // disabled?
- if (!debug.enabled) return;
-
- var self = debug;
-
- // set `diff` timestamp
- var curr = +new Date();
- var ms = curr - (prevTime || curr);
- self.diff = ms;
- self.prev = prevTime;
- self.curr = curr;
- prevTime = curr;
-
- // turn the `arguments` into a proper Array
- var args = new Array(arguments.length);
- for (var i = 0; i < args.length; i++) {
- args[i] = arguments[i];
- }
-
- args[0] = exports.coerce(args[0]);
-
- if ('string' !== typeof args[0]) {
- // anything else let's inspect with %O
- args.unshift('%O');
- }
-
- // apply any `formatters` transformations
- var index = 0;
- args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {
- // if we encounter an escaped % then don't increase the array index
- if (match === '%%') return match;
- index++;
- var formatter = exports.formatters[format];
- if ('function' === typeof formatter) {
- var val = args[index];
- match = formatter.call(self, val);
-
- // now we need to remove `args[index]` since it's inlined in the `format`
- args.splice(index, 1);
- index--;
- }
- return match;
- });
-
- // apply env-specific formatting (colors, etc.)
- exports.formatArgs.call(self, args);
-
- var logFn = debug.log || exports.log || console.log.bind(console);
- logFn.apply(self, args);
- }
-
- debug.namespace = namespace;
- debug.enabled = exports.enabled(namespace);
- debug.useColors = exports.useColors();
- debug.color = selectColor(namespace);
-
- // env-specific initialization logic for debug instances
- if ('function' === typeof exports.init) {
- exports.init(debug);
- }
-
- return debug;
-}
-
-/**
- * Enables a debug mode by namespaces. This can include modes
- * separated by a colon and wildcards.
- *
- * @param {String} namespaces
- * @api public
- */
-
-function enable(namespaces) {
- exports.save(namespaces);
-
- exports.names = [];
- exports.skips = [];
-
- var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/);
- var len = split.length;
-
- for (var i = 0; i < len; i++) {
- if (!split[i]) continue; // ignore empty strings
- namespaces = split[i].replace(/\*/g, '.*?');
- if (namespaces[0] === '-') {
- exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));
- } else {
- exports.names.push(new RegExp('^' + namespaces + '$'));
- }
- }
-}
-
-/**
- * Disable debug output.
- *
- * @api public
- */
-
-function disable() {
- exports.enable('');
-}
-
-/**
- * Returns true if the given mode name is enabled, false otherwise.
- *
- * @param {String} name
- * @return {Boolean}
- * @api public
- */
-
-function enabled(name) {
- var i, len;
- for (i = 0, len = exports.skips.length; i < len; i++) {
- if (exports.skips[i].test(name)) {
- return false;
- }
- }
- for (i = 0, len = exports.names.length; i < len; i++) {
- if (exports.names[i].test(name)) {
- return true;
- }
- }
- return false;
-}
-
-/**
- * Coerce `val`.
- *
- * @param {Mixed} val
- * @return {Mixed}
- * @api private
- */
-
-function coerce(val) {
- if (val instanceof Error) return val.stack || val.message;
- return val;
-}
diff --git a/node_modules/debug/src/index.js b/node_modules/debug/src/index.js
deleted file mode 100644
index e12cf4d..0000000
--- a/node_modules/debug/src/index.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/**
- * Detect Electron renderer process, which is node, but we should
- * treat as a browser.
- */
-
-if (typeof process !== 'undefined' && process.type === 'renderer') {
- module.exports = require('./browser.js');
-} else {
- module.exports = require('./node.js');
-}
diff --git a/node_modules/debug/src/inspector-log.js b/node_modules/debug/src/inspector-log.js
deleted file mode 100644
index 60ea6c0..0000000
--- a/node_modules/debug/src/inspector-log.js
+++ /dev/null
@@ -1,15 +0,0 @@
-module.exports = inspectorLog;
-
-// black hole
-const nullStream = new (require('stream').Writable)();
-nullStream._write = () => {};
-
-/**
- * Outputs a `console.log()` to the Node.js Inspector console *only*.
- */
-function inspectorLog() {
- const stdout = console._stdout;
- console._stdout = nullStream;
- console.log.apply(console, arguments);
- console._stdout = stdout;
-}
diff --git a/node_modules/debug/src/node.js b/node_modules/debug/src/node.js
deleted file mode 100644
index b15109c..0000000
--- a/node_modules/debug/src/node.js
+++ /dev/null
@@ -1,248 +0,0 @@
-/**
- * Module dependencies.
- */
-
-var tty = require('tty');
-var util = require('util');
-
-/**
- * This is the Node.js implementation of `debug()`.
- *
- * Expose `debug()` as the module.
- */
-
-exports = module.exports = require('./debug');
-exports.init = init;
-exports.log = log;
-exports.formatArgs = formatArgs;
-exports.save = save;
-exports.load = load;
-exports.useColors = useColors;
-
-/**
- * Colors.
- */
-
-exports.colors = [6, 2, 3, 4, 5, 1];
-
-/**
- * Build up the default `inspectOpts` object from the environment variables.
- *
- * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js
- */
-
-exports.inspectOpts = Object.keys(process.env).filter(function (key) {
- return /^debug_/i.test(key);
-}).reduce(function (obj, key) {
- // camel-case
- var prop = key
- .substring(6)
- .toLowerCase()
- .replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() });
-
- // coerce string value into JS value
- var val = process.env[key];
- if (/^(yes|on|true|enabled)$/i.test(val)) val = true;
- else if (/^(no|off|false|disabled)$/i.test(val)) val = false;
- else if (val === 'null') val = null;
- else val = Number(val);
-
- obj[prop] = val;
- return obj;
-}, {});
-
-/**
- * The file descriptor to write the `debug()` calls to.
- * Set the `DEBUG_FD` env variable to override with another value. i.e.:
- *
- * $ DEBUG_FD=3 node script.js 3>debug.log
- */
-
-var fd = parseInt(process.env.DEBUG_FD, 10) || 2;
-
-if (1 !== fd && 2 !== fd) {
- util.deprecate(function(){}, 'except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)')()
-}
-
-var stream = 1 === fd ? process.stdout :
- 2 === fd ? process.stderr :
- createWritableStdioStream(fd);
-
-/**
- * Is stdout a TTY? Colored output is enabled when `true`.
- */
-
-function useColors() {
- return 'colors' in exports.inspectOpts
- ? Boolean(exports.inspectOpts.colors)
- : tty.isatty(fd);
-}
-
-/**
- * Map %o to `util.inspect()`, all on a single line.
- */
-
-exports.formatters.o = function(v) {
- this.inspectOpts.colors = this.useColors;
- return util.inspect(v, this.inspectOpts)
- .split('\n').map(function(str) {
- return str.trim()
- }).join(' ');
-};
-
-/**
- * Map %o to `util.inspect()`, allowing multiple lines if needed.
- */
-
-exports.formatters.O = function(v) {
- this.inspectOpts.colors = this.useColors;
- return util.inspect(v, this.inspectOpts);
-};
-
-/**
- * Adds ANSI color escape codes if enabled.
- *
- * @api public
- */
-
-function formatArgs(args) {
- var name = this.namespace;
- var useColors = this.useColors;
-
- if (useColors) {
- var c = this.color;
- var prefix = ' \u001b[3' + c + ';1m' + name + ' ' + '\u001b[0m';
-
- args[0] = prefix + args[0].split('\n').join('\n' + prefix);
- args.push('\u001b[3' + c + 'm+' + exports.humanize(this.diff) + '\u001b[0m');
- } else {
- args[0] = new Date().toUTCString()
- + ' ' + name + ' ' + args[0];
- }
-}
-
-/**
- * Invokes `util.format()` with the specified arguments and writes to `stream`.
- */
-
-function log() {
- return stream.write(util.format.apply(util, arguments) + '\n');
-}
-
-/**
- * Save `namespaces`.
- *
- * @param {String} namespaces
- * @api private
- */
-
-function save(namespaces) {
- if (null == namespaces) {
- // If you set a process.env field to null or undefined, it gets cast to the
- // string 'null' or 'undefined'. Just delete instead.
- delete process.env.DEBUG;
- } else {
- process.env.DEBUG = namespaces;
- }
-}
-
-/**
- * Load `namespaces`.
- *
- * @return {String} returns the previously persisted debug modes
- * @api private
- */
-
-function load() {
- return process.env.DEBUG;
-}
-
-/**
- * Copied from `node/src/node.js`.
- *
- * XXX: It's lame that node doesn't expose this API out-of-the-box. It also
- * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame.
- */
-
-function createWritableStdioStream (fd) {
- var stream;
- var tty_wrap = process.binding('tty_wrap');
-
- // Note stream._type is used for test-module-load-list.js
-
- switch (tty_wrap.guessHandleType(fd)) {
- case 'TTY':
- stream = new tty.WriteStream(fd);
- stream._type = 'tty';
-
- // Hack to have stream not keep the event loop alive.
- // See https://github.com/joyent/node/issues/1726
- if (stream._handle && stream._handle.unref) {
- stream._handle.unref();
- }
- break;
-
- case 'FILE':
- var fs = require('fs');
- stream = new fs.SyncWriteStream(fd, { autoClose: false });
- stream._type = 'fs';
- break;
-
- case 'PIPE':
- case 'TCP':
- var net = require('net');
- stream = new net.Socket({
- fd: fd,
- readable: false,
- writable: true
- });
-
- // FIXME Should probably have an option in net.Socket to create a
- // stream from an existing fd which is writable only. But for now
- // we'll just add this hack and set the `readable` member to false.
- // Test: ./node test/fixtures/echo.js < /etc/passwd
- stream.readable = false;
- stream.read = null;
- stream._type = 'pipe';
-
- // FIXME Hack to have stream not keep the event loop alive.
- // See https://github.com/joyent/node/issues/1726
- if (stream._handle && stream._handle.unref) {
- stream._handle.unref();
- }
- break;
-
- default:
- // Probably an error on in uv_guess_handle()
- throw new Error('Implement me. Unknown stream file type!');
- }
-
- // For supporting legacy API we put the FD here.
- stream.fd = fd;
-
- stream._isStdio = true;
-
- return stream;
-}
-
-/**
- * Init logic for `debug` instances.
- *
- * Create a new `inspectOpts` object in case `useColors` is set
- * differently for a particular `debug` instance.
- */
-
-function init (debug) {
- debug.inspectOpts = {};
-
- var keys = Object.keys(exports.inspectOpts);
- for (var i = 0; i < keys.length; i++) {
- debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];
- }
-}
-
-/**
- * Enable namespaces listed in `process.env.DEBUG` initially.
- */
-
-exports.enable(load());
diff --git a/node_modules/decamelize/index.js b/node_modules/decamelize/index.js
deleted file mode 100644
index 8d5bab7..0000000
--- a/node_modules/decamelize/index.js
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-module.exports = function (str, sep) {
- if (typeof str !== 'string') {
- throw new TypeError('Expected a string');
- }
-
- sep = typeof sep === 'undefined' ? '_' : sep;
-
- return str
- .replace(/([a-z\d])([A-Z])/g, '$1' + sep + '$2')
- .replace(/([A-Z]+)([A-Z][a-z\d]+)/g, '$1' + sep + '$2')
- .toLowerCase();
-};
diff --git a/node_modules/decamelize/license b/node_modules/decamelize/license
deleted file mode 100644
index 654d0bf..0000000
--- a/node_modules/decamelize/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus (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/decamelize/package.json b/node_modules/decamelize/package.json
deleted file mode 100644
index ca35790..0000000
--- a/node_modules/decamelize/package.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "name": "decamelize",
- "version": "1.2.0",
- "description": "Convert a camelized string into a lowercased one with a custom separator: unicornRainbow → unicorn_rainbow",
- "license": "MIT",
- "repository": "sindresorhus/decamelize",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "files": [
- "index.js"
- ],
- "keywords": [
- "decamelize",
- "decamelcase",
- "camelcase",
- "lowercase",
- "case",
- "dash",
- "hyphen",
- "string",
- "str",
- "text",
- "convert"
- ],
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- }
-}
diff --git a/node_modules/decamelize/readme.md b/node_modules/decamelize/readme.md
deleted file mode 100644
index 624c7ee..0000000
--- a/node_modules/decamelize/readme.md
+++ /dev/null
@@ -1,48 +0,0 @@
-# decamelize [![Build Status](https://travis-ci.org/sindresorhus/decamelize.svg?branch=master)](https://travis-ci.org/sindresorhus/decamelize)
-
-> Convert a camelized string into a lowercased one with a custom separator
-> Example: `unicornRainbow` → `unicorn_rainbow`
-
-
-## Install
-
-```
-$ npm install --save decamelize
-```
-
-
-## Usage
-
-```js
-const decamelize = require('decamelize');
-
-decamelize('unicornRainbow');
-//=> 'unicorn_rainbow'
-
-decamelize('unicornRainbow', '-');
-//=> 'unicorn-rainbow'
-```
-
-
-## API
-
-### decamelize(input, [separator])
-
-#### input
-
-Type: `string`
-
-#### separator
-
-Type: `string`
-Default: `_`
-
-
-## Related
-
-See [`camelcase`](https://github.com/sindresorhus/camelcase) for the inverse.
-
-
-## License
-
-MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/node_modules/decode-uri-component/index.js b/node_modules/decode-uri-component/index.js
deleted file mode 100644
index 691499b..0000000
--- a/node_modules/decode-uri-component/index.js
+++ /dev/null
@@ -1,94 +0,0 @@
-'use strict';
-var token = '%[a-f0-9]{2}';
-var singleMatcher = new RegExp(token, 'gi');
-var multiMatcher = new RegExp('(' + token + ')+', 'gi');
-
-function decodeComponents(components, split) {
- try {
- // Try to decode the entire string first
- return decodeURIComponent(components.join(''));
- } catch (err) {
- // Do nothing
- }
-
- if (components.length === 1) {
- return components;
- }
-
- split = split || 1;
-
- // Split the array in 2 parts
- var left = components.slice(0, split);
- var right = components.slice(split);
-
- return Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));
-}
-
-function decode(input) {
- try {
- return decodeURIComponent(input);
- } catch (err) {
- var tokens = input.match(singleMatcher);
-
- for (var i = 1; i < tokens.length; i++) {
- input = decodeComponents(tokens, i).join('');
-
- tokens = input.match(singleMatcher);
- }
-
- return input;
- }
-}
-
-function customDecodeURIComponent(input) {
- // Keep track of all the replacements and prefill the map with the `BOM`
- var replaceMap = {
- '%FE%FF': '\uFFFD\uFFFD',
- '%FF%FE': '\uFFFD\uFFFD'
- };
-
- var match = multiMatcher.exec(input);
- while (match) {
- try {
- // Decode as big chunks as possible
- replaceMap[match[0]] = decodeURIComponent(match[0]);
- } catch (err) {
- var result = decode(match[0]);
-
- if (result !== match[0]) {
- replaceMap[match[0]] = result;
- }
- }
-
- match = multiMatcher.exec(input);
- }
-
- // Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else
- replaceMap['%C2'] = '\uFFFD';
-
- var entries = Object.keys(replaceMap);
-
- for (var i = 0; i < entries.length; i++) {
- // Replace all decoded components
- var key = entries[i];
- input = input.replace(new RegExp(key, 'g'), replaceMap[key]);
- }
-
- return input;
-}
-
-module.exports = function (encodedURI) {
- if (typeof encodedURI !== 'string') {
- throw new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');
- }
-
- try {
- encodedURI = encodedURI.replace(/\+/g, ' ');
-
- // Try the built in decoder first
- return decodeURIComponent(encodedURI);
- } catch (err) {
- // Fallback to a more advanced decoder
- return customDecodeURIComponent(encodedURI);
- }
-};
diff --git a/node_modules/decode-uri-component/license b/node_modules/decode-uri-component/license
deleted file mode 100644
index 78b0855..0000000
--- a/node_modules/decode-uri-component/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sam Verschueren (github.com/SamVerschueren)
-
-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/decode-uri-component/package.json b/node_modules/decode-uri-component/package.json
deleted file mode 100644
index 183bd7c..0000000
--- a/node_modules/decode-uri-component/package.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "name": "decode-uri-component",
- "version": "0.2.0",
- "description": "A better decodeURIComponent",
- "license": "MIT",
- "repository": "SamVerschueren/decode-uri-component",
- "author": {
- "name": "Sam Verschueren",
- "email": "sam.verschueren@gmail.com",
- "url": "github.com/SamVerschueren"
- },
- "engines": {
- "node": ">=0.10"
- },
- "scripts": {
- "test": "xo && nyc ava",
- "coveralls": "nyc report --reporter=text-lcov | coveralls"
- },
- "files": [
- "index.js"
- ],
- "keywords": [
- "decode",
- "uri",
- "component",
- "decodeuricomponent",
- "components",
- "decoder",
- "url"
- ],
- "devDependencies": {
- "ava": "^0.17.0",
- "coveralls": "^2.13.1",
- "nyc": "^10.3.2",
- "xo": "^0.16.0"
- }
-}
diff --git a/node_modules/decode-uri-component/readme.md b/node_modules/decode-uri-component/readme.md
deleted file mode 100644
index 795c87f..0000000
--- a/node_modules/decode-uri-component/readme.md
+++ /dev/null
@@ -1,70 +0,0 @@
-# decode-uri-component
-
-[![Build Status](https://travis-ci.org/SamVerschueren/decode-uri-component.svg?branch=master)](https://travis-ci.org/SamVerschueren/decode-uri-component) [![Coverage Status](https://coveralls.io/repos/SamVerschueren/decode-uri-component/badge.svg?branch=master&service=github)](https://coveralls.io/github/SamVerschueren/decode-uri-component?branch=master)
-
-> A better [decodeURIComponent](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent)
-
-
-## Why?
-
-- Decodes `+` to a space.
-- Converts the [BOM](https://en.wikipedia.org/wiki/Byte_order_mark) to a [replacement character](https://en.wikipedia.org/wiki/Specials_(Unicode_block)#Replacement_character) `�`.
-- Does not throw with invalid encoded input.
-- Decodes as much of the string as possible.
-
-
-## Install
-
-```
-$ npm install --save decode-uri-component
-```
-
-
-## Usage
-
-```js
-const decodeUriComponent = require('decode-uri-component');
-
-decodeUriComponent('%25');
-//=> '%'
-
-decodeUriComponent('%');
-//=> '%'
-
-decodeUriComponent('st%C3%A5le');
-//=> 'ståle'
-
-decodeUriComponent('%st%C3%A5le%');
-//=> '%ståle%'
-
-decodeUriComponent('%%7Bst%C3%A5le%7D%');
-//=> '%{ståle}%'
-
-decodeUriComponent('%7B%ab%%7C%de%%7D');
-//=> '{%ab%|%de%}'
-
-decodeUriComponent('%FE%FF');
-//=> '\uFFFD\uFFFD'
-
-decodeUriComponent('%C2');
-//=> '\uFFFD'
-
-decodeUriComponent('%C2%B5');
-//=> 'µ'
-```
-
-
-## API
-
-### decodeUriComponent(encodedURI)
-
-#### encodedURI
-
-Type: `string`
-
-An encoded component of a Uniform Resource Identifier.
-
-
-## License
-
-MIT © [Sam Verschueren](https://github.com/SamVerschueren)
diff --git a/node_modules/default-compare/LICENSE b/node_modules/default-compare/LICENSE
deleted file mode 100644
index ffb7ec5..0000000
--- a/node_modules/default-compare/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2017, Brian Woodward.
-
-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.
\ No newline at end of file
diff --git a/node_modules/default-compare/README.md b/node_modules/default-compare/README.md
deleted file mode 100644
index 7ca91e4..0000000
--- a/node_modules/default-compare/README.md
+++ /dev/null
@@ -1,116 +0,0 @@
-# default-compare [![NPM version](https://img.shields.io/npm/v/default-compare.svg?style=flat)](https://www.npmjs.com/package/default-compare) [![NPM monthly downloads](https://img.shields.io/npm/dm/default-compare.svg?style=flat)](https://npmjs.org/package/default-compare) [![NPM total downloads](https://img.shields.io/npm/dt/default-compare.svg?style=flat)](https://npmjs.org/package/default-compare) [![Linux Build Status](https://img.shields.io/travis/doowb/default-compare.svg?style=flat&label=Travis)](https://travis-ci.org/doowb/default-compare) [![Windows Build Status](https://img.shields.io/appveyor/ci/doowb/default-compare.svg?style=flat&label=AppVeyor)](https://ci.appveyor.com/project/doowb/default-compare)
-
-> Basic sort algorithm that has similar behavior to Array.prototype.sort for null and undefined, but also allows sorting by an object property.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save default-compare
-```
-
-Install with [yarn](https://yarnpkg.com):
-
-```sh
-$ yarn add default-compare
-```
-
-## Usage
-
-```js
-var defaultCompare = require('default-compare');
-```
-
-**basic array**
-
-```js
-var arr = ['c', 'a', undefined, 'b', 'd', null, 'e'];
-console.log(arr.sort(defaultCompare));
-//=> ['a', 'b', 'c', 'd', 'e', null, undefined]
-```
-
-**objects sorted by their "name" property**
-
-```js
-var arr = [
- {name: 'c', title: 'C'},
- {name: 'a', title: 'A'},
- {title: 'G'},
- {name: 'b', title: 'B'},
- {name: 'd', title: 'D'},
- {name: null, title: 'F'},
- {name: 'e', title: 'E'}
-];
-
-arr.sort(function(a, b) {
- return defaultCompare(a, b, 'name');
-});
-
-console.log(arr);
-//=> [
-//=> {name: 'a', title: 'A'},
-//=> {name: 'b', title: 'B'},
-//=> {name: 'c', title: 'C'},
-//=> {name: 'd', title: 'D'},
-//=> {name: 'e', title: 'E'},
-//=> {name: null, title: 'F'},
-//=> {title: 'G'}
-//=> ];
-```
-
-## API
-
-### [defaultCompare](index.js#L16)
-
-Basic sort algorithm that has similar behavior to `Array.prototype.sort`
-for null and undefined, but also allows sorting by an object property.
-
-**Params**
-
-* `a` **{Mixed}**: First value to compare.
-* `b` **{Mixed}**: Second value to compare.
-* `prop` **{String}**: Optional property to use when comparing objects. If specified must be a string.
-* `returns` **{Number}**: Returns 1 when `a` should come after `b`, -1 when `a` should come before `b`, and 0 when `a` and `b` are equal.
-
-## About
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-Please read the [contributing guide](.github/contributing.md) for advice on opening issues, pull requests, and coding standards.
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Brian Woodward**
-
-* [github/doowb](https://github.com/doowb)
-* [twitter/doowb](https://twitter.com/doowb)
-
-### License
-
-Copyright © 2017, [Brian Woodward](https://doowb.com).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on September 11, 2017._
\ No newline at end of file
diff --git a/node_modules/default-compare/index.js b/node_modules/default-compare/index.js
deleted file mode 100644
index 6f05fe5..0000000
--- a/node_modules/default-compare/index.js
+++ /dev/null
@@ -1,44 +0,0 @@
-'use strict';
-
-var typeOf = require('kind-of');
-
-/**
- * Basic sort algorithm that has similar behavior to `Array.prototype.sort`
- * for null and undefined, but also allows sorting by an object property.
- *
- * @param {Mixed} `a` First value to compare.
- * @param {Mixed} `b` Second value to compare.
- * @param {String} `prop` Optional property to use when comparing objects. If specified must be a string.
- * @return {Number} Returns 1 when `a` should come after `b`, -1 when `a` should come before `b`, and 0 when `a` and `b` are equal.
- * @api public
- */
-
-module.exports = function defaultCompare(a, b, prop) {
- if (prop != null && typeOf(prop) !== 'string') {
- throw new TypeError('expected "prop" to be undefined or a string');
- }
-
- var typeA = typeOf(a);
- var typeB = typeOf(b);
-
- if (prop) {
- if (typeA === 'object') {
- a = a[prop];
- typeA = typeOf(a);
- }
- if (typeB === 'object') {
- b = b[prop];
- typeB = typeOf(b);
- }
- }
-
- if (typeA === 'null') {
- return typeB === 'null' ? 0 : (typeB === 'undefined' ? -1 : 1);
- } else if (typeA === 'undefined') {
- return typeB === 'null' ? 1 : (typeB === 'undefined' ? 0 : 1);
- } else if (typeB === 'null' || typeB === 'undefined') {
- return -1;
- } else {
- return a < b ? -1 : (a > b ? 1 : 0);
- }
-};
diff --git a/node_modules/default-compare/package.json b/node_modules/default-compare/package.json
deleted file mode 100644
index 7dbe3f3..0000000
--- a/node_modules/default-compare/package.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
- "name": "default-compare",
- "description": "Basic sort algorithm that has similar behavior to Array.prototype.sort for null and undefined, but also allows sorting by an object property.",
- "version": "1.0.0",
- "homepage": "https://github.com/doowb/default-compare",
- "author": "Brian Woodward (https://doowb.com)",
- "repository": "doowb/default-compare",
- "bugs": {
- "url": "https://github.com/doowb/default-compare/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "kind-of": "^5.0.2"
- },
- "devDependencies": {
- "gulp-format-md": "^1.0.0",
- "mocha": "^3.5.2"
- },
- "keywords": [
- "compare",
- "default"
- ],
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/default-resolution/LICENSE b/node_modules/default-resolution/LICENSE
deleted file mode 100644
index 9aedc0d..0000000
--- a/node_modules/default-resolution/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015 Blaine Bublitz, Eric Schoffstall and other contributors
-
-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/default-resolution/README.md b/node_modules/default-resolution/README.md
deleted file mode 100644
index 0ac2651..0000000
--- a/node_modules/default-resolution/README.md
+++ /dev/null
@@ -1,70 +0,0 @@
-
-
-
-
-
-
-# default-resolution
-
-[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Build Status][travis-image]][travis-url] [![AppVeyor Build Status][appveyor-image]][appveyor-url] [![Coveralls Status][coveralls-image]][coveralls-url] [![Gitter chat][gitter-image]][gitter-url]
-
-Get the default resolution time based on the current node version, optionally overridable.
-
-Originally implemented by [@dinoboff][dinoboff] in [gulpjs/undertaker#17][original].
-
-Split out for standalone use.
-
-## Usage
-
-```js
-var defaultResolution = require('default-resolution');
-
-defaultResolution();
-//-> 1000 (1 second) in node 0.10
-//-> 1 (millisecond) in node 0.11+
-
-// use a different value
-defaultResolution(12);
-//-> 12 always
-```
-
-## API
-
-### `defaultResolution([resolution])`
-
-Returns the default resolution, based on the node platform. See [Default resolution table][default-table] below for resolutions.
-
-Optionally takes a resolution number to force override any platform resolutions.
-
-### Default resolutions
-
-| node version | resolution |
-|--------------|------------|
-| 0.10 | 1s |
-| 0.11+ | 1ms |
-
-More information at https://github.com/gulpjs/undertaker/pull/17#issuecomment-82374512
-
-# License
-
-MIT
-
-[dinoboff]: https://github.com/dinoboff
-[original]: https://github.com/gulpjs/undertaker/pull/17
-[default-table]: #default-resolutions
-
-[downloads-image]: http://img.shields.io/npm/dm/default-resolution.svg
-[npm-url]: https://www.npmjs.com/package/default-resolution
-[npm-image]: http://img.shields.io/npm/v/default-resolution.svg
-
-[travis-url]: https://travis-ci.org/gulpjs/default-resolution
-[travis-image]: http://img.shields.io/travis/gulpjs/default-resolution.svg?label=travis-ci
-
-[appveyor-url]: https://ci.appveyor.com/project/gulpjs/default-resolution
-[appveyor-image]: https://img.shields.io/appveyor/ci/gulpjs/default-resolution.svg?label=appveyor
-
-[coveralls-url]: https://coveralls.io/r/gulpjs/default-resolution
-[coveralls-image]: http://img.shields.io/coveralls/gulpjs/default-resolution/master.svg
-
-[gitter-url]: https://gitter.im/gulpjs/gulp
-[gitter-image]: https://badges.gitter.im/gulpjs/gulp.svg
diff --git a/node_modules/default-resolution/index.js b/node_modules/default-resolution/index.js
deleted file mode 100644
index c485481..0000000
--- a/node_modules/default-resolution/index.js
+++ /dev/null
@@ -1,17 +0,0 @@
-'use strict';
-
-var nodeVersion = require('./node-version');
-
-function defaultResolution(customResolution) {
- var resolution = parseInt(customResolution, 10);
-
- if (resolution) {
- return resolution;
- }
-
- return (nodeVersion.major === 0 && nodeVersion.minor <= 10) ? 1000 : 1;
-}
-
-defaultResolution.nodeVersion = nodeVersion;
-
-module.exports = defaultResolution;
diff --git a/node_modules/default-resolution/node-version.js b/node_modules/default-resolution/node-version.js
deleted file mode 100644
index 97ebd4a..0000000
--- a/node_modules/default-resolution/node-version.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-
-var match = process.version.match(/v(\d+)\.(\d+)\.(\d+)/);
-var nodeVersion = {
- major: parseInt(match[1], 10),
- minor: parseInt(match[2], 10),
- patch: parseInt(match[3], 10),
-};
-
-module.exports = nodeVersion;
diff --git a/node_modules/default-resolution/package.json b/node_modules/default-resolution/package.json
deleted file mode 100644
index 43e5661..0000000
--- a/node_modules/default-resolution/package.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "name": "default-resolution",
- "version": "2.0.0",
- "description": "Get the default resolution time based on the current node version, optionally overridable",
- "author": "Gulp Team (http://gulpjs.com/)",
- "contributors": [
- "Blaine Bublitz ",
- "Damien Lebrun "
- ],
- "repository": "gulpjs/default-resolution",
- "license": "MIT",
- "engines": {
- "node": ">= 0.10"
- },
- "main": "index.js",
- "files": [
- "LICENSE",
- "index.js",
- "node-version.js"
- ],
- "scripts": {
- "lint": "eslint . && jscs index.js node-version.js test/",
- "pretest": "npm run lint",
- "test": "mocha --async-only",
- "cover": "istanbul cover _mocha --report lcovonly",
- "coveralls": "npm run cover && istanbul-coveralls"
- },
- "dependencies": {},
- "devDependencies": {
- "eslint": "^1.7.3",
- "eslint-config-gulp": "^2.0.0",
- "expect": "^1.19.0",
- "istanbul": "^0.4.3",
- "istanbul-coveralls": "^1.0.3",
- "jscs": "^2.4.0",
- "jscs-preset-gulp": "^1.0.0",
- "mocha": "^2.4.5"
- },
- "keywords": [
- "resolution",
- "timing"
- ]
-}
diff --git a/node_modules/define-properties/.editorconfig b/node_modules/define-properties/.editorconfig
deleted file mode 100644
index eaa2141..0000000
--- a/node_modules/define-properties/.editorconfig
+++ /dev/null
@@ -1,13 +0,0 @@
-root = true
-
-[*]
-indent_style = tab;
-insert_final_newline = true;
-quote_type = auto;
-space_after_anonymous_functions = true;
-space_after_control_statements = true;
-spaces_around_operators = true;
-trim_trailing_whitespace = true;
-spaces_in_brackets = false;
-end_of_line = lf;
-
diff --git a/node_modules/define-properties/.eslintrc b/node_modules/define-properties/.eslintrc
deleted file mode 100644
index db992d7..0000000
--- a/node_modules/define-properties/.eslintrc
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "root": true,
-
- "extends": "@ljharb",
-
- "rules": {
- "id-length": [2, { "min": 1, "max": 35 }],
- "max-lines-per-function": [2, 100],
- "max-params": [2, 4],
- "max-statements": [2, 13]
- }
-}
diff --git a/node_modules/define-properties/.jscs.json b/node_modules/define-properties/.jscs.json
deleted file mode 100644
index 6f2d7f9..0000000
--- a/node_modules/define-properties/.jscs.json
+++ /dev/null
@@ -1,175 +0,0 @@
-{
- "es3": true,
-
- "additionalRules": [],
-
- "requireSemicolons": true,
-
- "disallowMultipleSpaces": true,
-
- "disallowIdentifierNames": [],
-
- "requireCurlyBraces": {
- "allExcept": [],
- "keywords": ["if", "else", "for", "while", "do", "try", "catch"]
- },
-
- "requireSpaceAfterKeywords": ["if", "else", "for", "while", "do", "switch", "return", "try", "catch", "function"],
-
- "disallowSpaceAfterKeywords": [],
-
- "disallowSpaceBeforeComma": true,
- "disallowSpaceAfterComma": false,
- "disallowSpaceBeforeSemicolon": true,
-
- "disallowNodeTypes": [
- "DebuggerStatement",
- "LabeledStatement",
- "SwitchCase",
- "SwitchStatement",
- "WithStatement"
- ],
-
- "requireObjectKeysOnNewLine": { "allExcept": ["sameLine"] },
-
- "requireSpacesInAnonymousFunctionExpression": { "beforeOpeningRoundBrace": true, "beforeOpeningCurlyBrace": true },
- "requireSpacesInNamedFunctionExpression": { "beforeOpeningCurlyBrace": true },
- "disallowSpacesInNamedFunctionExpression": { "beforeOpeningRoundBrace": true },
- "requireSpacesInFunctionDeclaration": { "beforeOpeningCurlyBrace": true },
- "disallowSpacesInFunctionDeclaration": { "beforeOpeningRoundBrace": true },
-
- "requireSpaceBetweenArguments": true,
-
- "disallowSpacesInsideParentheses": true,
-
- "disallowSpacesInsideArrayBrackets": true,
-
- "disallowQuotedKeysInObjects": { "allExcept": ["reserved"] },
-
- "disallowSpaceAfterObjectKeys": true,
-
- "requireCommaBeforeLineBreak": true,
-
- "disallowSpaceAfterPrefixUnaryOperators": ["++", "--", "+", "-", "~", "!"],
- "requireSpaceAfterPrefixUnaryOperators": [],
-
- "disallowSpaceBeforePostfixUnaryOperators": ["++", "--"],
- "requireSpaceBeforePostfixUnaryOperators": [],
-
- "disallowSpaceBeforeBinaryOperators": [],
- "requireSpaceBeforeBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!=="],
-
- "requireSpaceAfterBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!=="],
- "disallowSpaceAfterBinaryOperators": [],
-
- "disallowImplicitTypeConversion": ["binary", "string"],
-
- "disallowKeywords": ["with", "eval"],
-
- "requireKeywordsOnNewLine": [],
- "disallowKeywordsOnNewLine": ["else"],
-
- "requireLineFeedAtFileEnd": true,
-
- "disallowTrailingWhitespace": true,
-
- "disallowTrailingComma": true,
-
- "excludeFiles": ["node_modules/**", "vendor/**"],
-
- "disallowMultipleLineStrings": true,
-
- "requireDotNotation": { "allExcept": ["keywords"] },
-
- "requireParenthesesAroundIIFE": true,
-
- "validateLineBreaks": "LF",
-
- "validateQuoteMarks": {
- "escape": true,
- "mark": "'"
- },
-
- "disallowOperatorBeforeLineBreak": [],
-
- "requireSpaceBeforeKeywords": [
- "do",
- "for",
- "if",
- "else",
- "switch",
- "case",
- "try",
- "catch",
- "finally",
- "while",
- "with",
- "return"
- ],
-
- "validateAlignedFunctionParameters": {
- "lineBreakAfterOpeningBraces": true,
- "lineBreakBeforeClosingBraces": true
- },
-
- "requirePaddingNewLinesBeforeExport": true,
-
- "validateNewlineAfterArrayElements": {
- "maximum": 3
- },
-
- "requirePaddingNewLinesAfterUseStrict": true,
-
- "disallowArrowFunctions": true,
-
- "disallowMultiLineTernary": true,
-
- "validateOrderInObjectKeys": "asc-insensitive",
-
- "disallowIdenticalDestructuringNames": true,
-
- "disallowNestedTernaries": { "maxLevel": 1 },
-
- "requireSpaceAfterComma": { "allExcept": ["trailing"] },
- "requireAlignedMultilineParams": false,
-
- "requireSpacesInGenerator": {
- "afterStar": true
- },
-
- "disallowSpacesInGenerator": {
- "beforeStar": true
- },
-
- "disallowVar": false,
-
- "requireArrayDestructuring": false,
-
- "requireEnhancedObjectLiterals": false,
-
- "requireObjectDestructuring": false,
-
- "requireEarlyReturn": false,
-
- "requireCapitalizedConstructorsNew": {
- "allExcept": ["Function", "String", "Object", "Symbol", "Number", "Date", "RegExp", "Error", "Boolean", "Array"]
- },
-
- "requireImportAlphabetized": false,
-
- "requireSpaceBeforeObjectValues": true,
- "requireSpaceBeforeDestructuredValues": true,
-
- "disallowSpacesInsideTemplateStringPlaceholders": true,
-
- "disallowArrayDestructuringReturn": false,
-
- "requireNewlineBeforeSingleStatementsInIf": false,
-
- "disallowUnusedVariables": true,
-
- "requireSpacesInsideImportedObjectBraces": true,
-
- "requireUseStrict": true
-}
-
diff --git a/node_modules/define-properties/.travis.yml b/node_modules/define-properties/.travis.yml
deleted file mode 100644
index ec72d5f..0000000
--- a/node_modules/define-properties/.travis.yml
+++ /dev/null
@@ -1,233 +0,0 @@
-language: node_js
-os:
- - linux
-node_js:
- - "10.8"
- - "9.11"
- - "8.11"
- - "7.10"
- - "6.14"
- - "5.12"
- - "4.9"
- - "iojs-v3.3"
- - "iojs-v2.5"
- - "iojs-v1.8"
- - "0.12"
- - "0.10"
- - "0.8"
-before_install:
- - 'case "${TRAVIS_NODE_VERSION}" in 0.*) export NPM_CONFIG_STRICT_SSL=false ;; esac'
- - 'nvm install-latest-npm'
-install:
- - 'if [ "${TRAVIS_NODE_VERSION}" = "0.6" ] || [ "${TRAVIS_NODE_VERSION}" = "0.9" ]; then nvm install --latest-npm 0.8 && npm install && nvm use "${TRAVIS_NODE_VERSION}"; else npm install; fi;'
-script:
- - 'if [ -n "${PRETEST-}" ]; then npm run pretest ; fi'
- - 'if [ -n "${POSTTEST-}" ]; then npm run posttest ; fi'
- - 'if [ -n "${COVERAGE-}" ]; then npm run coverage ; fi'
- - 'if [ -n "${TEST-}" ]; then npm run tests-only ; fi'
-sudo: false
-env:
- - TEST=true
-matrix:
- fast_finish: true
- include:
- - node_js: "lts/*"
- env: PRETEST=true
- - node_js: "lts/*"
- env: POSTTEST=true
- - node_js: "4"
- env: COVERAGE=true
- - node_js: "10.7"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "10.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "10.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "10.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "10.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "10.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "10.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "10.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "9.10"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "9.9"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "9.8"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "9.7"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "9.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "9.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "9.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "9.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "9.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "9.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "9.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.10"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.9"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.8"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.7"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.9"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.8"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.7"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.13"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.12"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.11"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.10"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.9"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.8"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.7"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.11"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.10"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.9"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.8"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.7"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.8"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.7"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v3.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v3.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v3.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v2.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v2.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v2.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v2.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v2.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.7"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "0.11"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "0.9"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "0.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "0.4"
- env: TEST=true ALLOW_FAILURE=true
- allow_failures:
- - os: osx
- - env: TEST=true ALLOW_FAILURE=true
- - env: COVERAGE=true
diff --git a/node_modules/define-properties/CHANGELOG.md b/node_modules/define-properties/CHANGELOG.md
deleted file mode 100644
index 5cad1e2..0000000
--- a/node_modules/define-properties/CHANGELOG.md
+++ /dev/null
@@ -1,44 +0,0 @@
-1.1.3 / 2018-08-14
-=================
- * [Refactor] use a for loop instead of `foreach` to make for smaller bundle sizes
- * [Robustness] cache `Array.prototype.concat` and `Object.defineProperty`
- * [Deps] update `object-keys`
- * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `nsp`, `tape`, `jscs`; remove unused eccheck script + dep
- * [Tests] use pretest/posttest for linting/security
- * [Tests] fix npm upgrades on older nodes
-
-1.1.2 / 2015-10-14
-=================
- * [Docs] Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG
- * [Deps] Update `object-keys`
- * [Dev Deps] update `jscs`, `tape`, `eslint`, `@ljharb/eslint-config`, `nsp`
- * [Tests] up to `io.js` `v3.3`, `node` `v4.2`
-
-1.1.1 / 2015-07-21
-=================
- * [Deps] Update `object-keys`
- * [Dev Deps] Update `tape`, `eslint`
- * [Tests] Test on `io.js` `v2.4`
-
-1.1.0 / 2015-07-01
-=================
- * [New] Add support for symbol-valued properties.
- * [Dev Deps] Update `nsp`, `eslint`
- * [Tests] Test up to `io.js` `v2.3`
-
-1.0.3 / 2015-05-30
-=================
- * Using a more reliable check for supported property descriptors.
-
-1.0.2 / 2015-05-23
-=================
- * Test up to `io.js` `v2.0`
- * Update `tape`, `jscs`, `nsp`, `eslint`, `object-keys`, `editorconfig-tools`, `covert`
-
-1.0.1 / 2015-01-06
-=================
- * Update `object-keys` to fix ES3 support
-
-1.0.0 / 2015-01-04
-=================
- * v1.0.0
diff --git a/node_modules/define-properties/LICENSE b/node_modules/define-properties/LICENSE
deleted file mode 100644
index 8c271c1..0000000
--- a/node_modules/define-properties/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (C) 2015 Jordan Harband
-
-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.
\ No newline at end of file
diff --git a/node_modules/define-properties/README.md b/node_modules/define-properties/README.md
deleted file mode 100644
index 33b6111..0000000
--- a/node_modules/define-properties/README.md
+++ /dev/null
@@ -1,86 +0,0 @@
-#define-properties [![Version Badge][npm-version-svg]][package-url]
-
-[![Build Status][travis-svg]][travis-url]
-[![dependency status][deps-svg]][deps-url]
-[![dev dependency status][dev-deps-svg]][dev-deps-url]
-[![License][license-image]][license-url]
-[![Downloads][downloads-image]][downloads-url]
-
-[![npm badge][npm-badge-png]][package-url]
-
-[![browser support][testling-svg]][testling-url]
-
-Define multiple non-enumerable properties at once. Uses `Object.defineProperty` when available; falls back to standard assignment in older engines.
-Existing properties are not overridden. Accepts a map of property names to a predicate that, when true, force-overrides.
-
-## Example
-
-```js
-var define = require('define-properties');
-var assert = require('assert');
-
-var obj = define({ a: 1, b: 2 }, {
- a: 10,
- b: 20,
- c: 30
-});
-assert(obj.a === 1);
-assert(obj.b === 2);
-assert(obj.c === 30);
-if (define.supportsDescriptors) {
- assert.deepEqual(Object.keys(obj), ['a', 'b']);
- assert.deepEqual(Object.getOwnPropertyDescriptor(obj, 'c'), {
- configurable: true,
- enumerable: false,
- value: 30,
- writable: false
- });
-}
-```
-
-Then, with predicates:
-```js
-var define = require('define-properties');
-var assert = require('assert');
-
-var obj = define({ a: 1, b: 2, c: 3 }, {
- a: 10,
- b: 20,
- c: 30
-}, {
- a: function () { return false; },
- b: function () { return true; }
-});
-assert(obj.a === 1);
-assert(obj.b === 20);
-assert(obj.c === 3);
-if (define.supportsDescriptors) {
- assert.deepEqual(Object.keys(obj), ['a', 'c']);
- assert.deepEqual(Object.getOwnPropertyDescriptor(obj, 'b'), {
- configurable: true,
- enumerable: false,
- value: 20,
- writable: false
- });
-}
-```
-
-## Tests
-Simply clone the repo, `npm install`, and run `npm test`
-
-[package-url]: https://npmjs.org/package/define-properties
-[npm-version-svg]: http://versionbadg.es/ljharb/define-properties.svg
-[travis-svg]: https://travis-ci.org/ljharb/define-properties.svg
-[travis-url]: https://travis-ci.org/ljharb/define-properties
-[deps-svg]: https://david-dm.org/ljharb/define-properties.svg
-[deps-url]: https://david-dm.org/ljharb/define-properties
-[dev-deps-svg]: https://david-dm.org/ljharb/define-properties/dev-status.svg
-[dev-deps-url]: https://david-dm.org/ljharb/define-properties#info=devDependencies
-[testling-svg]: https://ci.testling.com/ljharb/define-properties.png
-[testling-url]: https://ci.testling.com/ljharb/define-properties
-[npm-badge-png]: https://nodei.co/npm/define-properties.png?downloads=true&stars=true
-[license-image]: http://img.shields.io/npm/l/define-properties.svg
-[license-url]: LICENSE
-[downloads-image]: http://img.shields.io/npm/dm/define-properties.svg
-[downloads-url]: http://npm-stat.com/charts.html?package=define-properties
-
diff --git a/node_modules/define-properties/index.js b/node_modules/define-properties/index.js
deleted file mode 100644
index cb3ae1c..0000000
--- a/node_modules/define-properties/index.js
+++ /dev/null
@@ -1,58 +0,0 @@
-'use strict';
-
-var keys = require('object-keys');
-var hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';
-
-var toStr = Object.prototype.toString;
-var concat = Array.prototype.concat;
-var origDefineProperty = Object.defineProperty;
-
-var isFunction = function (fn) {
- return typeof fn === 'function' && toStr.call(fn) === '[object Function]';
-};
-
-var arePropertyDescriptorsSupported = function () {
- var obj = {};
- try {
- origDefineProperty(obj, 'x', { enumerable: false, value: obj });
- // eslint-disable-next-line no-unused-vars, no-restricted-syntax
- for (var _ in obj) { // jscs:ignore disallowUnusedVariables
- return false;
- }
- return obj.x === obj;
- } catch (e) { /* this is IE 8. */
- return false;
- }
-};
-var supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported();
-
-var defineProperty = function (object, name, value, predicate) {
- if (name in object && (!isFunction(predicate) || !predicate())) {
- return;
- }
- if (supportsDescriptors) {
- origDefineProperty(object, name, {
- configurable: true,
- enumerable: false,
- value: value,
- writable: true
- });
- } else {
- object[name] = value;
- }
-};
-
-var defineProperties = function (object, map) {
- var predicates = arguments.length > 2 ? arguments[2] : {};
- var props = keys(map);
- if (hasSymbols) {
- props = concat.call(props, Object.getOwnPropertySymbols(map));
- }
- for (var i = 0; i < props.length; i += 1) {
- defineProperty(object, props[i], map[props[i]], predicates[props[i]]);
- }
-};
-
-defineProperties.supportsDescriptors = !!supportsDescriptors;
-
-module.exports = defineProperties;
diff --git a/node_modules/define-properties/package.json b/node_modules/define-properties/package.json
deleted file mode 100644
index b520f7b..0000000
--- a/node_modules/define-properties/package.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "name": "define-properties",
- "version": "1.1.3",
- "author": "Jordan Harband",
- "description": "Define multiple non-enumerable properties at once. Uses `Object.defineProperty` when available; falls back to standard assignment in older engines.",
- "license": "MIT",
- "main": "index.js",
- "scripts": {
- "pretest": "npm run --silent lint",
- "test": "npm run --silent tests-only",
- "posttest": "npm run --silent security",
- "tests-only": "node test/index.js",
- "coverage": "covert test/*.js",
- "coverage-quiet": "covert test/*.js --quiet",
- "lint": "npm run --silent jscs && npm run --silent eslint",
- "jscs": "jscs test/*.js *.js",
- "eslint": "eslint test/*.js *.js",
- "security": "nsp check"
- },
- "repository": {
- "type": "git",
- "url": "git://github.com/ljharb/define-properties.git"
- },
- "keywords": [
- "Object.defineProperty",
- "Object.defineProperties",
- "object",
- "property descriptor",
- "descriptor",
- "define",
- "ES5"
- ],
- "dependencies": {
- "object-keys": "^1.0.12"
- },
- "devDependencies": {
- "@ljharb/eslint-config": "^13.0.0",
- "covert": "^1.1.0",
- "eslint": "^5.3.0",
- "jscs": "^3.0.7",
- "nsp": "^3.2.1",
- "tape": "^4.9.0"
- },
- "testling": {
- "files": "test/index.js",
- "browsers": [
- "iexplore/6.0..latest",
- "firefox/3.0..6.0",
- "firefox/15.0..latest",
- "firefox/nightly",
- "chrome/4.0..10.0",
- "chrome/20.0..latest",
- "chrome/canary",
- "opera/10.0..latest",
- "opera/next",
- "safari/4.0..latest",
- "ipad/6.0..latest",
- "iphone/6.0..latest",
- "android-browser/4.2"
- ]
- },
- "engines": {
- "node": ">= 0.4"
- }
-}
diff --git a/node_modules/define-properties/test/index.js b/node_modules/define-properties/test/index.js
deleted file mode 100644
index 3387f6b..0000000
--- a/node_modules/define-properties/test/index.js
+++ /dev/null
@@ -1,125 +0,0 @@
-'use strict';
-
-var define = require('../');
-var test = require('tape');
-var keys = require('object-keys');
-
-var arePropertyDescriptorsSupported = function () {
- var obj = { a: 1 };
- try {
- Object.defineProperty(obj, 'x', { value: obj });
- return obj.x === obj;
- } catch (e) { /* this is IE 8. */
- return false;
- }
-};
-var descriptorsSupported = !!Object.defineProperty && arePropertyDescriptorsSupported();
-
-var hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';
-
-test('defineProperties', function (dt) {
- dt.test('with descriptor support', { skip: !descriptorsSupported }, function (t) {
- var getDescriptor = function (value) {
- return {
- configurable: true,
- enumerable: false,
- value: value,
- writable: true
- };
- };
-
- var obj = {
- a: 1,
- b: 2,
- c: 3
- };
- t.deepEqual(keys(obj), ['a', 'b', 'c'], 'all literal-set keys start enumerable');
- define(obj, {
- b: 3,
- c: 4,
- d: 5
- });
- t.deepEqual(obj, {
- a: 1,
- b: 2,
- c: 3
- }, 'existing properties were not overridden');
- t.deepEqual(Object.getOwnPropertyDescriptor(obj, 'd'), getDescriptor(5), 'new property "d" was added and is not enumerable');
- t.deepEqual(['a', 'b', 'c'], keys(obj), 'new keys are not enumerable');
-
- define(obj, {
- a: 2,
- b: 3,
- c: 4
- }, {
- a: function () { return true; },
- b: function () { return false; }
- });
- t.deepEqual(obj, {
- b: 2,
- c: 3
- }, 'properties only overriden when predicate exists and returns true');
- t.deepEqual(Object.getOwnPropertyDescriptor(obj, 'd'), getDescriptor(5), 'existing property "d" remained and is not enumerable');
- t.deepEqual(Object.getOwnPropertyDescriptor(obj, 'a'), getDescriptor(2), 'existing property "a" was overridden and is not enumerable');
- t.deepEqual(['b', 'c'], keys(obj), 'overridden keys are not enumerable');
-
- t.end();
- });
-
- dt.test('without descriptor support', { skip: descriptorsSupported }, function (t) {
- var obj = {
- a: 1,
- b: 2,
- c: 3
- };
- define(obj, {
- b: 3,
- c: 4,
- d: 5
- });
- t.deepEqual(obj, {
- a: 1,
- b: 2,
- c: 3,
- d: 5
- }, 'existing properties were not overridden, new properties were added');
-
- define(obj, {
- a: 2,
- b: 3,
- c: 4
- }, {
- a: function () { return true; },
- b: function () { return false; }
- });
- t.deepEqual(obj, {
- a: 2,
- b: 2,
- c: 3,
- d: 5
- }, 'properties only overriden when predicate exists and returns true');
-
- t.end();
- });
-
- dt.end();
-});
-
-test('symbols', { skip: !hasSymbols }, function (t) {
- var sym = Symbol('foo');
- var obj = {};
- var aValue = {};
- var bValue = {};
- var properties = { a: aValue };
- properties[sym] = bValue;
-
- define(obj, properties);
-
- t.deepEqual(Object.keys(obj), [], 'object has no enumerable keys');
- t.deepEqual(Object.getOwnPropertyNames(obj), ['a'], 'object has non-enumerable "a" key');
- t.deepEqual(Object.getOwnPropertySymbols(obj), [sym], 'object has non-enumerable symbol key');
- t.equal(obj.a, aValue, 'string keyed value is defined');
- t.equal(obj[sym], bValue, 'symbol keyed value is defined');
-
- t.end();
-});
diff --git a/node_modules/define-property/CHANGELOG.md b/node_modules/define-property/CHANGELOG.md
deleted file mode 100644
index 901c8aa..0000000
--- a/node_modules/define-property/CHANGELOG.md
+++ /dev/null
@@ -1,82 +0,0 @@
-# Release history
-
-All notable changes to this project will be documented in this file.
-
-The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
-and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
-
-
- Guiding Principles
-
-- Changelogs are for humans, not machines.
-- There should be an entry for every single version.
-- The same types of changes should be grouped.
-- Versions and sections should be linkable.
-- The latest version comes first.
-- The release date of each versions is displayed.
-- Mention whether you follow Semantic Versioning.
-
-
-
-
- Types of changes
-
-Changelog entries are classified using the following labels _(from [keep-a-changelog](http://keepachangelog.com/)_):
-
-- `Added` for new features.
-- `Changed` for changes in existing functionality.
-- `Deprecated` for soon-to-be removed features.
-- `Removed` for now removed features.
-- `Fixed` for any bug fixes.
-- `Security` in case of vulnerabilities.
-
-
-
-## [2.0.0] - 2017-04-20
-
-### Changed
-
-- Now supports data descriptors in addition to accessor descriptors.
-- Now uses [Reflect.defineProperty][reflect] when available, otherwise falls back to [Object.defineProperty][object].
-
-## [1.0.0] - 2017-04-20
-
-- stable release
-
-## [0.2.5] - 2015-08-31
-
-- use is-descriptor
-
-## [0.2.3] - 2015-08-29
-
-- check keys length
-
-## [0.2.2] - 2015-08-27
-
-- ensure val is an object
-
-## [0.2.1] - 2015-08-27
-
-- support functions
-
-## [0.2.0] - 2015-08-27
-
-- support get/set
-- update docs
-
-## [0.1.0] - 2015-08-12
-
-- first commit
-
-[2.0.0]: https://github.com/jonschlinkert/define-property/compare/1.0.0...2.0.0
-[1.0.0]: https://github.com/jonschlinkert/define-property/compare/0.2.5...1.0.0
-[0.2.5]: https://github.com/jonschlinkert/define-property/compare/0.2.3...0.2.5
-[0.2.3]: https://github.com/jonschlinkert/define-property/compare/0.2.2...0.2.3
-[0.2.2]: https://github.com/jonschlinkert/define-property/compare/0.2.1...0.2.2
-[0.2.1]: https://github.com/jonschlinkert/define-property/compare/0.2.0...0.2.1
-[0.2.0]: https://github.com/jonschlinkert/define-property/compare/0.1.3...0.2.0
-
-[keep-a-changelog]: https://github.com/olivierlacan/keep-a-changelog
-
-[object]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty
-[reflect]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/defineProperty
diff --git a/node_modules/define-property/LICENSE b/node_modules/define-property/LICENSE
deleted file mode 100644
index f8de063..0000000
--- a/node_modules/define-property/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015-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/define-property/README.md b/node_modules/define-property/README.md
deleted file mode 100644
index f1ee8f9..0000000
--- a/node_modules/define-property/README.md
+++ /dev/null
@@ -1,117 +0,0 @@
-# define-property [![NPM version](https://img.shields.io/npm/v/define-property.svg?style=flat)](https://www.npmjs.com/package/define-property) [![NPM monthly downloads](https://img.shields.io/npm/dm/define-property.svg?style=flat)](https://npmjs.org/package/define-property) [![NPM total downloads](https://img.shields.io/npm/dt/define-property.svg?style=flat)](https://npmjs.org/package/define-property) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/define-property.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/define-property)
-
-> Define a non-enumerable property on an object. Uses Reflect.defineProperty when available, otherwise Object.defineProperty.
-
-Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save define-property
-```
-
-## Release history
-
-See [the CHANGELOG](changelog.md) for updates.
-
-## Usage
-
-**Params**
-
-* `object`: The object on which to define the property.
-* `key`: The name of the property to be defined or modified.
-* `value`: The value or descriptor of the property being defined or modified.
-
-```js
-var define = require('define-property');
-var obj = {};
-define(obj, 'foo', function(val) {
- return val.toUpperCase();
-});
-
-// by default, defined properties are non-enumberable
-console.log(obj);
-//=> {}
-
-console.log(obj.foo('bar'));
-//=> 'BAR'
-```
-
-**defining setters/getters**
-
-Pass the same properties you would if using [Object.defineProperty](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty) or [Reflect.defineProperty](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/defineProperty).
-
-```js
-define(obj, 'foo', {
- set: function() {},
- get: function() {}
-});
-```
-
-## About
-
-
-Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-
-
-
-Running Tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-
-
-
-Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-
-
-### Related projects
-
-You might also be interested in these projects:
-
-* [assign-deep](https://www.npmjs.com/package/assign-deep): Deeply assign the enumerable properties and/or es6 Symbol properies of source objects to the target… [more](https://github.com/jonschlinkert/assign-deep) | [homepage](https://github.com/jonschlinkert/assign-deep "Deeply assign the enumerable properties and/or es6 Symbol properies of source objects to the target (first) object.")
-* [extend-shallow](https://www.npmjs.com/package/extend-shallow): Extend an object with the properties of additional objects. node.js/javascript util. | [homepage](https://github.com/jonschlinkert/extend-shallow "Extend an object with the properties of additional objects. node.js/javascript util.")
-* [merge-deep](https://www.npmjs.com/package/merge-deep): Recursively merge values in a javascript object. | [homepage](https://github.com/jonschlinkert/merge-deep "Recursively merge values in a javascript object.")
-* [mixin-deep](https://www.npmjs.com/package/mixin-deep): Deeply mix the properties of objects into the first object. Like merge-deep, but doesn't clone. | [homepage](https://github.com/jonschlinkert/mixin-deep "Deeply mix the properties of objects into the first object. Like merge-deep, but doesn't clone.")
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 28 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 1 | [doowb](https://github.com/doowb) |
-
-### Author
-
-**Jon Schlinkert**
-
-* Connect with me on [linkedin/in/jonschlinkert](https://linkedin.com/in/jonschlinkert)
-* Follow me on [github/jonschlinkert](https://github.com/jonschlinkert)
-* Follow me on [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2018, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on January 25, 2018._
\ No newline at end of file
diff --git a/node_modules/define-property/index.js b/node_modules/define-property/index.js
deleted file mode 100644
index 0efa0a9..0000000
--- a/node_modules/define-property/index.js
+++ /dev/null
@@ -1,38 +0,0 @@
-/*!
- * define-property
- *
- * Copyright (c) 2015-2018, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-var isobject = require('isobject');
-var isDescriptor = require('is-descriptor');
-var define = (typeof Reflect !== 'undefined' && Reflect.defineProperty)
- ? Reflect.defineProperty
- : Object.defineProperty;
-
-module.exports = function defineProperty(obj, key, val) {
- if (!isobject(obj) && typeof obj !== 'function' && !Array.isArray(obj)) {
- throw new TypeError('expected an object, function, or array');
- }
-
- if (typeof key !== 'string') {
- throw new TypeError('expected "key" to be a string');
- }
-
- if (isDescriptor(val)) {
- define(obj, key, val);
- return obj;
- }
-
- define(obj, key, {
- configurable: true,
- enumerable: false,
- writable: true,
- value: val
- });
-
- return obj;
-};
diff --git a/node_modules/define-property/package.json b/node_modules/define-property/package.json
deleted file mode 100644
index f8fd21c..0000000
--- a/node_modules/define-property/package.json
+++ /dev/null
@@ -1,67 +0,0 @@
-{
- "name": "define-property",
- "description": "Define a non-enumerable property on an object. Uses Reflect.defineProperty when available, otherwise Object.defineProperty.",
- "version": "2.0.2",
- "homepage": "https://github.com/jonschlinkert/define-property",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Brian Woodward (https://twitter.com/doowb)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)"
- ],
- "repository": "jonschlinkert/define-property",
- "bugs": {
- "url": "https://github.com/jonschlinkert/define-property/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "is-descriptor": "^1.0.2",
- "isobject": "^3.0.1"
- },
- "devDependencies": {
- "gulp-format-md": "^1.0.0",
- "mocha": "^3.5.3"
- },
- "keywords": [
- "define",
- "define-property",
- "enumerable",
- "key",
- "non",
- "non-enumerable",
- "object",
- "prop",
- "property",
- "value"
- ],
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "assign-deep",
- "extend-shallow",
- "merge-deep",
- "mixin-deep"
- ]
- },
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/detect-file/LICENSE b/node_modules/detect-file/LICENSE
deleted file mode 100644
index 42f91ca..0000000
--- a/node_modules/detect-file/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2016-2017, Brian Woodward.
-
-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.
\ No newline at end of file
diff --git a/node_modules/detect-file/README.md b/node_modules/detect-file/README.md
deleted file mode 100644
index dee6311..0000000
--- a/node_modules/detect-file/README.md
+++ /dev/null
@@ -1,99 +0,0 @@
-# detect-file [![NPM version](https://img.shields.io/npm/v/detect-file.svg?style=flat)](https://www.npmjs.com/package/detect-file) [![NPM monthly downloads](https://img.shields.io/npm/dm/detect-file.svg?style=flat)](https://npmjs.org/package/detect-file) [![NPM total downloads](https://img.shields.io/npm/dt/detect-file.svg?style=flat)](https://npmjs.org/package/detect-file) [![Linux Build Status](https://img.shields.io/travis/doowb/detect-file.svg?style=flat&label=Travis)](https://travis-ci.org/doowb/detect-file) [![Windows Build Status](https://img.shields.io/appveyor/ci/doowb/detect-file.svg?style=flat&label=AppVeyor)](https://ci.appveyor.com/project/doowb/detect-file)
-
-> Detects if a file exists and returns the resolved filepath.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save detect-file
-```
-
-Install with [yarn](https://yarnpkg.com):
-
-```sh
-$ yarn add detect-file
-```
-
-## Usage
-
-```js
-var detect = require('detect-file');
-```
-
-## API
-
-### [detect](index.js#L33)
-
-Detect the given `filepath` if it exists.
-
-**Params**
-
-* `filepath` **{String}**: filepath to detect.
-* `options` **{Object}**: Additional options.
-* `options.nocase` **{Boolean}**: Set this to `true` to force case-insensitive filename checks. This is useful on case sensitive file systems.
-* `returns` **{String}**: Returns the detected filepath if it exists, otherwise returns `null`.
-
-**Example**
-
-```js
-var res = detect('package.json');
-console.log(res);
-//=> "package.json"
-
-var res = detect('fake-file.json');
-console.log(res)
-//=> null
-```
-
-## Case sensitive file systems
-
-When using the `nocase` option, this library will attempt to detect the filepath with the following methods:
-
-1. Try to read all files in the `filepath` using `fs.readdirSync`. If successful and `filepath` is a directory, return the `filepath`.
-2. Try to read all files in the `filepath`'s directory using `fs.readdirSync`. If successful, do case insensitive comparasions of the `filepath` to the files in `filepath`'s directory.
-
-## About
-
-### Related projects
-
-[fs-exists-sync](https://www.npmjs.com/package/fs-exists-sync): Drop-in replacement for `fs.existsSync` with zero dependencies. Other libs I found either have crucial differences… [more](https://github.com/jonschlinkert/fs-exists-sync) | [homepage](https://github.com/jonschlinkert/fs-exists-sync "Drop-in replacement for `fs.existsSync` with zero dependencies. Other libs I found either have crucial differences from fs.existsSync, or unnecessary dependencies. See README.md for more info.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Brian Woodward**
-
-* [github/doowb](https://github.com/doowb)
-* [twitter/doowb](https://twitter.com/doowb)
-
-### License
-
-Copyright © 2017, [Brian Woodward](https://github.com/doowb).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on August 05, 2017._
\ No newline at end of file
diff --git a/node_modules/detect-file/index.js b/node_modules/detect-file/index.js
deleted file mode 100644
index c7c47f1..0000000
--- a/node_modules/detect-file/index.js
+++ /dev/null
@@ -1,109 +0,0 @@
-/*!
- * detect-file
- *
- * Copyright (c) 2016-2017, Brian Woodward.
- * Released under the MIT License.
- */
-
-'use strict';
-
-var fs = require('fs');
-var path = require('path');
-
-/**
- * Detect the given `filepath` if it exists.
- *
- * ```js
- * var res = detect('package.json');
- * console.log(res);
- * //=> "package.json"
- *
- * var res = detect('fake-file.json');
- * console.log(res)
- * //=> null
- * ```
- *
- * @param {String} `filepath` filepath to detect.
- * @param {Object} `options` Additional options.
- * @param {Boolean} `options.nocase` Set this to `true` to force case-insensitive filename checks. This is useful on case sensitive file systems.
- * @return {String} Returns the detected filepath if it exists, otherwise returns `null`.
- * @api public
- */
-
-module.exports = function detect(filepath, options) {
- if (!filepath || (typeof filepath !== 'string')) {
- return null;
- }
- if (fs.existsSync(filepath)) {
- return path.resolve(filepath);
- }
-
- options = options || {};
- if (options.nocase === true) {
- return nocase(filepath);
- }
- return null;
-};
-
-/**
- * Check if the filepath exists by falling back to reading in the entire directory.
- * Returns the real filepath (for case sensitive file systems) if found.
- *
- * @param {String} `filepath` filepath to check.
- * @return {String} Returns found filepath if exists, otherwise null.
- */
-
-function nocase(filepath) {
- filepath = path.resolve(filepath);
- var res = tryReaddir(filepath);
- if (res === null) {
- return null;
- }
-
- // "filepath" is a directory, an error would be
- // thrown if it doesn't exist. if we're here, it exists
- if (res.path === filepath) {
- return res.path;
- }
-
- // "filepath" is not a directory
- // compare against upper case later
- // see https://nodejs.org/en/docs/guides/working-with-different-filesystems/
- var upper = filepath.toUpperCase();
- var len = res.files.length;
- var idx = -1;
-
- while (++idx < len) {
- var fp = path.resolve(res.path, res.files[idx]);
- if (filepath === fp || upper === fp) {
- return fp;
- }
- var fpUpper = fp.toUpperCase();
- if (filepath === fpUpper || upper === fpUpper) {
- return fp;
- }
- }
-
- return null;
-}
-
-/**
- * Try to read the filepath as a directory first, then fallback to the filepath's dirname.
- *
- * @param {String} `filepath` path of the directory to read.
- * @return {Object} Object containing `path` and `files` if succesful. Otherwise, null.
- */
-
-function tryReaddir(filepath) {
- var ctx = { path: filepath, files: [] };
- try {
- ctx.files = fs.readdirSync(filepath);
- return ctx;
- } catch (err) {}
- try {
- ctx.path = path.dirname(filepath);
- ctx.files = fs.readdirSync(ctx.path);
- return ctx;
- } catch (err) {}
- return null;
-}
diff --git a/node_modules/detect-file/package.json b/node_modules/detect-file/package.json
deleted file mode 100644
index d5b3ed8..0000000
--- a/node_modules/detect-file/package.json
+++ /dev/null
@@ -1,60 +0,0 @@
-{
- "name": "detect-file",
- "description": "Detects if a file exists and returns the resolved filepath.",
- "version": "1.0.0",
- "homepage": "https://github.com/doowb/detect-file",
- "author": "Brian Woodward (https://github.com/doowb)",
- "repository": "doowb/detect-file",
- "bugs": {
- "url": "https://github.com/doowb/detect-file/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {},
- "devDependencies": {
- "gulp-format-md": "*",
- "mocha": "*"
- },
- "keywords": [
- "detect",
- "exists",
- "file",
- "file exists",
- "file-path",
- "filepath",
- "path",
- "resolve",
- "resolve file",
- "resolve filepath"
- ],
- "verb": {
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "fs-exists-sync"
- ]
- },
- "reflinks": [
- "verb",
- "verb-readme-generator"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/duplexify/.travis.yml b/node_modules/duplexify/.travis.yml
deleted file mode 100644
index cb6e182..0000000
--- a/node_modules/duplexify/.travis.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-language: node_js
-node_js:
- - "4"
- - "6"
- - "8"
- - "10"
diff --git a/node_modules/duplexify/LICENSE b/node_modules/duplexify/LICENSE
deleted file mode 100644
index 757562e..0000000
--- a/node_modules/duplexify/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014 Mathias Buus
-
-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.
\ No newline at end of file
diff --git a/node_modules/duplexify/README.md b/node_modules/duplexify/README.md
deleted file mode 100644
index 8352900..0000000
--- a/node_modules/duplexify/README.md
+++ /dev/null
@@ -1,97 +0,0 @@
-# duplexify
-
-Turn a writeable and readable stream into a single streams2 duplex stream.
-
-Similar to [duplexer2](https://github.com/deoxxa/duplexer2) except it supports both streams2 and streams1 as input
-and it allows you to set the readable and writable part asynchronously using `setReadable(stream)` and `setWritable(stream)`
-
-```
-npm install duplexify
-```
-
-[![build status](http://img.shields.io/travis/mafintosh/duplexify.svg?style=flat)](http://travis-ci.org/mafintosh/duplexify)
-
-## Usage
-
-Use `duplexify(writable, readable, streamOptions)` (or `duplexify.obj(writable, readable)` to create an object stream)
-
-``` js
-var duplexify = require('duplexify')
-
-// turn writableStream and readableStream into a single duplex stream
-var dup = duplexify(writableStream, readableStream)
-
-dup.write('hello world') // will write to writableStream
-dup.on('data', function(data) {
- // will read from readableStream
-})
-```
-
-You can also set the readable and writable parts asynchronously
-
-``` js
-var dup = duplexify()
-
-dup.write('hello world') // write will buffer until the writable
- // part has been set
-
-// wait a bit ...
-dup.setReadable(readableStream)
-
-// maybe wait some more?
-dup.setWritable(writableStream)
-```
-
-If you call `setReadable` or `setWritable` multiple times it will unregister the previous readable/writable stream.
-To disable the readable or writable part call `setReadable` or `setWritable` with `null`.
-
-If the readable or writable streams emits an error or close it will destroy both streams and bubble up the event.
-You can also explicitly destroy the streams by calling `dup.destroy()`. The `destroy` method optionally takes an
-error object as argument, in which case the error is emitted as part of the `error` event.
-
-``` js
-dup.on('error', function(err) {
- console.log('readable or writable emitted an error - close will follow')
-})
-
-dup.on('close', function() {
- console.log('the duplex stream is destroyed')
-})
-
-dup.destroy() // calls destroy on the readable and writable part (if present)
-```
-
-## HTTP request example
-
-Turn a node core http request into a duplex stream is as easy as
-
-``` js
-var duplexify = require('duplexify')
-var http = require('http')
-
-var request = function(opts) {
- var req = http.request(opts)
- var dup = duplexify(req)
- req.on('response', function(res) {
- dup.setReadable(res)
- })
- return dup
-}
-
-var req = request({
- method: 'GET',
- host: 'www.google.com',
- port: 80
-})
-
-req.end()
-req.pipe(process.stdout)
-```
-
-## License
-
-MIT
-
-## Related
-
-`duplexify` is part of the [mississippi stream utility collection](https://github.com/maxogden/mississippi) which includes more useful stream modules similar to this one.
diff --git a/node_modules/duplexify/example.js b/node_modules/duplexify/example.js
deleted file mode 100644
index 5585c19..0000000
--- a/node_modules/duplexify/example.js
+++ /dev/null
@@ -1,21 +0,0 @@
-var duplexify = require('duplexify')
-var http = require('http')
-
-var request = function(opts) {
- var req = http.request(opts)
- var dup = duplexify()
- dup.setWritable(req)
- req.on('response', function(res) {
- dup.setReadable(res)
- })
- return dup
-}
-
-var req = request({
- method: 'GET',
- host: 'www.google.com',
- port: 80
-})
-
-req.end()
-req.pipe(process.stdout)
diff --git a/node_modules/duplexify/index.js b/node_modules/duplexify/index.js
deleted file mode 100644
index 18634c2..0000000
--- a/node_modules/duplexify/index.js
+++ /dev/null
@@ -1,234 +0,0 @@
-var stream = require('readable-stream')
-var eos = require('end-of-stream')
-var inherits = require('inherits')
-var shift = require('stream-shift')
-
-var SIGNAL_FLUSH = (Buffer.from && Buffer.from !== Uint8Array.from)
- ? Buffer.from([0])
- : new Buffer([0])
-
-var onuncork = function(self, fn) {
- if (self._corked) self.once('uncork', fn)
- else fn()
-}
-
-var autoDestroy = function (self, err) {
- if (self._autoDestroy) self.destroy(err)
-}
-
-var destroyer = function(self, end) {
- return function(err) {
- if (err) autoDestroy(self, err.message === 'premature close' ? null : err)
- else if (end && !self._ended) self.end()
- }
-}
-
-var end = function(ws, fn) {
- if (!ws) return fn()
- if (ws._writableState && ws._writableState.finished) return fn()
- if (ws._writableState) return ws.end(fn)
- ws.end()
- fn()
-}
-
-var toStreams2 = function(rs) {
- return new (stream.Readable)({objectMode:true, highWaterMark:16}).wrap(rs)
-}
-
-var Duplexify = function(writable, readable, opts) {
- if (!(this instanceof Duplexify)) return new Duplexify(writable, readable, opts)
- stream.Duplex.call(this, opts)
-
- this._writable = null
- this._readable = null
- this._readable2 = null
-
- this._autoDestroy = !opts || opts.autoDestroy !== false
- this._forwardDestroy = !opts || opts.destroy !== false
- this._forwardEnd = !opts || opts.end !== false
- this._corked = 1 // start corked
- this._ondrain = null
- this._drained = false
- this._forwarding = false
- this._unwrite = null
- this._unread = null
- this._ended = false
-
- this.destroyed = false
-
- if (writable) this.setWritable(writable)
- if (readable) this.setReadable(readable)
-}
-
-inherits(Duplexify, stream.Duplex)
-
-Duplexify.obj = function(writable, readable, opts) {
- if (!opts) opts = {}
- opts.objectMode = true
- opts.highWaterMark = 16
- return new Duplexify(writable, readable, opts)
-}
-
-Duplexify.prototype.cork = function() {
- if (++this._corked === 1) this.emit('cork')
-}
-
-Duplexify.prototype.uncork = function() {
- if (this._corked && --this._corked === 0) this.emit('uncork')
-}
-
-Duplexify.prototype.setWritable = function(writable) {
- if (this._unwrite) this._unwrite()
-
- if (this.destroyed) {
- if (writable && writable.destroy) writable.destroy()
- return
- }
-
- if (writable === null || writable === false) {
- this.end()
- return
- }
-
- var self = this
- var unend = eos(writable, {writable:true, readable:false}, destroyer(this, this._forwardEnd))
-
- var ondrain = function() {
- var ondrain = self._ondrain
- self._ondrain = null
- if (ondrain) ondrain()
- }
-
- var clear = function() {
- self._writable.removeListener('drain', ondrain)
- unend()
- }
-
- if (this._unwrite) process.nextTick(ondrain) // force a drain on stream reset to avoid livelocks
-
- this._writable = writable
- this._writable.on('drain', ondrain)
- this._unwrite = clear
-
- this.uncork() // always uncork setWritable
-}
-
-Duplexify.prototype.setReadable = function(readable) {
- if (this._unread) this._unread()
-
- if (this.destroyed) {
- if (readable && readable.destroy) readable.destroy()
- return
- }
-
- if (readable === null || readable === false) {
- this.push(null)
- this.resume()
- return
- }
-
- var self = this
- var unend = eos(readable, {writable:false, readable:true}, destroyer(this))
-
- var onreadable = function() {
- self._forward()
- }
-
- var onend = function() {
- self.push(null)
- }
-
- var clear = function() {
- self._readable2.removeListener('readable', onreadable)
- self._readable2.removeListener('end', onend)
- unend()
- }
-
- this._drained = true
- this._readable = readable
- this._readable2 = readable._readableState ? readable : toStreams2(readable)
- this._readable2.on('readable', onreadable)
- this._readable2.on('end', onend)
- this._unread = clear
-
- this._forward()
-}
-
-Duplexify.prototype._read = function() {
- this._drained = true
- this._forward()
-}
-
-Duplexify.prototype._forward = function() {
- if (this._forwarding || !this._readable2 || !this._drained) return
- this._forwarding = true
-
- var data
-
- while (this._drained && (data = shift(this._readable2)) !== null) {
- if (this.destroyed) continue
- this._drained = this.push(data)
- }
-
- this._forwarding = false
-}
-
-Duplexify.prototype.destroy = function(err) {
- if (this.destroyed) return
- this.destroyed = true
-
- var self = this
- process.nextTick(function() {
- self._destroy(err)
- })
-}
-
-Duplexify.prototype._destroy = function(err) {
- if (err) {
- var ondrain = this._ondrain
- this._ondrain = null
- if (ondrain) ondrain(err)
- else this.emit('error', err)
- }
-
- if (this._forwardDestroy) {
- if (this._readable && this._readable.destroy) this._readable.destroy()
- if (this._writable && this._writable.destroy) this._writable.destroy()
- }
-
- this.emit('close')
-}
-
-Duplexify.prototype._write = function(data, enc, cb) {
- if (this.destroyed) return cb()
- if (this._corked) return onuncork(this, this._write.bind(this, data, enc, cb))
- if (data === SIGNAL_FLUSH) return this._finish(cb)
- if (!this._writable) return cb()
-
- if (this._writable.write(data) === false) this._ondrain = cb
- else cb()
-}
-
-Duplexify.prototype._finish = function(cb) {
- var self = this
- this.emit('preend')
- onuncork(this, function() {
- end(self._forwardEnd && self._writable, function() {
- // haxx to not emit prefinish twice
- if (self._writableState.prefinished === false) self._writableState.prefinished = true
- self.emit('prefinish')
- onuncork(self, cb)
- })
- })
-}
-
-Duplexify.prototype.end = function(data, enc, cb) {
- if (typeof data === 'function') return this.end(null, null, data)
- if (typeof enc === 'function') return this.end(data, null, enc)
- this._ended = true
- if (data) this.write(data)
- if (!this._writableState.ending) this.write(SIGNAL_FLUSH)
- return stream.Writable.prototype.end.call(this, cb)
-}
-
-module.exports = Duplexify
diff --git a/node_modules/duplexify/package.json b/node_modules/duplexify/package.json
deleted file mode 100644
index 07effe4..0000000
--- a/node_modules/duplexify/package.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "name": "duplexify",
- "version": "3.7.1",
- "description": "Turn a writable and readable stream into a streams2 duplex stream with support for async initialization and streams1/streams2 input",
- "main": "index.js",
- "dependencies": {
- "end-of-stream": "^1.0.0",
- "inherits": "^2.0.1",
- "readable-stream": "^2.0.0",
- "stream-shift": "^1.0.0"
- },
- "devDependencies": {
- "concat-stream": "^1.5.2",
- "tape": "^4.0.0",
- "through2": "^2.0.0"
- },
- "scripts": {
- "test": "tape test.js"
- },
- "repository": {
- "type": "git",
- "url": "git://github.com/mafintosh/duplexify"
- },
- "keywords": [
- "duplex",
- "streams2",
- "streams",
- "stream",
- "writable",
- "readable",
- "async"
- ],
- "author": "Mathias Buus",
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/mafintosh/duplexify/issues"
- },
- "homepage": "https://github.com/mafintosh/duplexify"
-}
diff --git a/node_modules/duplexify/test.js b/node_modules/duplexify/test.js
deleted file mode 100644
index 0074060..0000000
--- a/node_modules/duplexify/test.js
+++ /dev/null
@@ -1,295 +0,0 @@
-var tape = require('tape')
-var through = require('through2')
-var concat = require('concat-stream')
-var net = require('net')
-var duplexify = require('./')
-
-var HELLO_WORLD = (Buffer.from && Buffer.from !== Uint8Array.from)
- ? Buffer.from('hello world')
- : new Buffer('hello world')
-
-tape('passthrough', function(t) {
- t.plan(2)
-
- var pt = through()
- var dup = duplexify(pt, pt)
-
- dup.end('hello world')
- dup.on('finish', function() {
- t.ok(true, 'should finish')
- })
- dup.pipe(concat(function(data) {
- t.same(data.toString(), 'hello world', 'same in as out')
- }))
-})
-
-tape('passthrough + double end', function(t) {
- t.plan(2)
-
- var pt = through()
- var dup = duplexify(pt, pt)
-
- dup.end('hello world')
- dup.end()
-
- dup.on('finish', function() {
- t.ok(true, 'should finish')
- })
- dup.pipe(concat(function(data) {
- t.same(data.toString(), 'hello world', 'same in as out')
- }))
-})
-
-tape('async passthrough + end', function(t) {
- t.plan(2)
-
- var pt = through.obj({highWaterMark:1}, function(data, enc, cb) {
- setTimeout(function() {
- cb(null, data)
- }, 100)
- })
-
- var dup = duplexify(pt, pt)
-
- dup.write('hello ')
- dup.write('world')
- dup.end()
-
- dup.on('finish', function() {
- t.ok(true, 'should finish')
- })
- dup.pipe(concat(function(data) {
- t.same(data.toString(), 'hello world', 'same in as out')
- }))
-})
-
-tape('duplex', function(t) {
- var readExpected = ['read-a', 'read-b', 'read-c']
- var writeExpected = ['write-a', 'write-b', 'write-c']
-
- t.plan(readExpected.length+writeExpected.length+2)
-
- var readable = through.obj()
- var writable = through.obj(function(data, enc, cb) {
- t.same(data, writeExpected.shift(), 'onwrite should match')
- cb()
- })
-
- var dup = duplexify.obj(writable, readable)
-
- readExpected.slice().forEach(function(data) {
- readable.write(data)
- })
- readable.end()
-
- writeExpected.slice().forEach(function(data) {
- dup.write(data)
- })
- dup.end()
-
- dup.on('data', function(data) {
- t.same(data, readExpected.shift(), 'ondata should match')
- })
- dup.on('end', function() {
- t.ok(true, 'should end')
- })
- dup.on('finish', function() {
- t.ok(true, 'should finish')
- })
-})
-
-tape('async', function(t) {
- var dup = duplexify()
- var pt = through()
-
- dup.pipe(concat(function(data) {
- t.same(data.toString(), 'i was async', 'same in as out')
- t.end()
- }))
-
- dup.write('i')
- dup.write(' was ')
- dup.end('async')
-
- setTimeout(function() {
- dup.setWritable(pt)
- setTimeout(function() {
- dup.setReadable(pt)
- }, 50)
- }, 50)
-})
-
-tape('destroy', function(t) {
- t.plan(2)
-
- var write = through()
- var read = through()
- var dup = duplexify(write, read)
-
- write.destroy = function() {
- t.ok(true, 'write destroyed')
- }
-
- dup.on('close', function() {
- t.ok(true, 'close emitted')
- })
-
- dup.destroy()
- dup.destroy() // should only work once
-})
-
-tape('destroy both', function(t) {
- t.plan(3)
-
- var write = through()
- var read = through()
- var dup = duplexify(write, read)
-
- write.destroy = function() {
- t.ok(true, 'write destroyed')
- }
-
- read.destroy = function() {
- t.ok(true, 'read destroyed')
- }
-
- dup.on('close', function() {
- t.ok(true, 'close emitted')
- })
-
- dup.destroy()
- dup.destroy() // should only work once
-})
-
-tape('bubble read errors', function(t) {
- t.plan(2)
-
- var write = through()
- var read = through()
- var dup = duplexify(write, read)
-
- dup.on('error', function(err) {
- t.same(err.message, 'read-error', 'received read error')
- })
- dup.on('close', function() {
- t.ok(true, 'close emitted')
- })
-
- read.emit('error', new Error('read-error'))
- write.emit('error', new Error('write-error')) // only emit first error
-})
-
-tape('bubble write errors', function(t) {
- t.plan(2)
-
- var write = through()
- var read = through()
- var dup = duplexify(write, read)
-
- dup.on('error', function(err) {
- t.same(err.message, 'write-error', 'received write error')
- })
- dup.on('close', function() {
- t.ok(true, 'close emitted')
- })
-
- write.emit('error', new Error('write-error'))
- read.emit('error', new Error('read-error')) // only emit first error
-})
-
-tape('reset writable / readable', function(t) {
- t.plan(3)
-
- var toUpperCase = function(data, enc, cb) {
- cb(null, data.toString().toUpperCase())
- }
-
- var passthrough = through()
- var upper = through(toUpperCase)
- var dup = duplexify(passthrough, passthrough)
-
- dup.once('data', function(data) {
- t.same(data.toString(), 'hello')
- dup.setWritable(upper)
- dup.setReadable(upper)
- dup.once('data', function(data) {
- t.same(data.toString(), 'HELLO')
- dup.once('data', function(data) {
- t.same(data.toString(), 'HI')
- t.end()
- })
- })
- dup.write('hello')
- dup.write('hi')
- })
- dup.write('hello')
-})
-
-tape('cork', function(t) {
- var passthrough = through()
- var dup = duplexify(passthrough, passthrough)
- var ok = false
-
- dup.on('prefinish', function() {
- dup.cork()
- setTimeout(function() {
- ok = true
- dup.uncork()
- }, 100)
- })
- dup.on('finish', function() {
- t.ok(ok)
- t.end()
- })
- dup.end()
-})
-
-tape('prefinish not twice', function(t) {
- var passthrough = through()
- var dup = duplexify(passthrough, passthrough)
- var prefinished = false
-
- dup.on('prefinish', function() {
- t.ok(!prefinished, 'only prefinish once')
- prefinished = true
- })
-
- dup.on('finish', function() {
- t.end()
- })
-
- dup.end()
-})
-
-tape('close', function(t) {
- var passthrough = through()
- var dup = duplexify(passthrough, passthrough)
-
- passthrough.emit('close')
- dup.on('close', function() {
- t.ok(true, 'should forward close')
- t.end()
- })
-})
-
-tape('works with node native streams (net)', function(t) {
- t.plan(1)
-
- var server = net.createServer(function(socket) {
- var dup = duplexify(socket, socket)
-
- dup.once('data', function(chunk) {
- t.same(chunk, HELLO_WORLD)
- server.close()
- socket.end()
- t.end()
- })
- })
-
- server.listen(0, function () {
- var socket = net.connect(server.address().port)
- var dup = duplexify(socket, socket)
-
- dup.write(HELLO_WORLD)
- })
-})
diff --git a/node_modules/each-props/LICENSE b/node_modules/each-props/LICENSE
deleted file mode 100644
index 39223b4..0000000
--- a/node_modules/each-props/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2016 Takayuki Sato
-
-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/each-props/README.md b/node_modules/each-props/README.md
deleted file mode 100644
index 4ba167b..0000000
--- a/node_modules/each-props/README.md
+++ /dev/null
@@ -1,125 +0,0 @@
-# [each-props][repo-url] [![NPM][npm-img]][npm-url] [![MIT License][mit-img]][mit-url] [![Build Status][travis-img]][travis-url] [![Build Status][appveyor-img]][appveyor-url] [![Coverage Status][coverage-img]][coverage-url]
-
-Processes each properties of an object deeply.
-
-## Install
-
-To install from npm:
-
-```sh
-$ npm i each-props --save
-```
-
-## Load this module
-
-For Node.js:
-
-```js
-const eachProps = require('each-props');
-```
-
-For Web browser:
-
-```html
-
-```
-
-## Usage
-
-Apply a function to all (non plain object) properties.
-
-```js
-var obj = { a: 1, b: { c: 'CCC', d: { e: 'EEE' } } };
-
-eachProps(obj, function(value, keyChain, nodeInfo) {
- if (keyChain === 'a') {
- nodeInfo.parent['a'] = value * 2;
- } else if (keyChain === 'b.c') {
- nodeInfo.parent['c'] = value.toLowerCase();
- } else if (keyChain === 'b.d') {
- return true; // stop to dig
- } else if (keyChain === 'b.d.e') {
- nodeInfo.parent['e'] = value.toLowerCase();
- }
-});
-
-console.log(obj);
-// => { a: 2, b: { c: 'ccc', d: { e: 'EEE' } } };
-```
-
-## API
-
-### eachProps(obj, fn [, opts]) : void
-
-Executes the *fn* function for all properties.
-
-#### Parameters:
-
-| Parameter | Type | Description |
-|:------------|:------:|:-----------------------------------------------|
-| *obj* | object | A plain object to be treated. |
-| *fn* |function| A function to operate each properties. |
-| *opts* | object | An object to pass any data to each properties. |
-
-* **API of *fn* function**
-
- #### fn(value, keyChain, nodeInfo) : boolean
-
- This function is applied to all properties in an object.
-
- ##### Parameters:
-
- | Parameter | Type | Description |
- |:------------|:------:|:-----------------------------------------------|
- | *value* | any | A property value. |
- | *keyChain* | string | A string concatenating the hierarchical keys with dots. |
- | *nodeInfo* | object | An object which contains node informations (See [below](#nodeinfo)). |
-
- ##### Returns:
-
- True, if stops digging child properties.
-
- **Type:** boolean
-
-
-
-* **Properties of nodeInfo **
-
- | Properties | Type | Description |
- |:-------------|:------:|:-----------------------------------------|
- | *name* | string | The property name of this node. |
- | *index* | number | The index of the property among the sibling properties. |
- | *count* | number | The count of the sibling properties. |
- | *depth* | number | The depth of the property. |
- | *parent* | object | The parent node of the property. |
- | *sort* |function| A sort function which orders the child properties. This function is inherited from *opts*, if be specified. |
-
- ... and any properties inherited from *opts*.
-
-* **Properties of opts **
-
- | Properties | Type | Description |
- |:-------------|:------:|:-----------------------------------------|
- | *sort* |function| A sort function which orders the same level properties. (Optional) |
-
- ... and any properties you want to pass to each node.
-
-## License
-
-Copyright (C) 2016-2018 Takayuki Sato
-
-This program is free software under [MIT][mit-url] License.
-See the file LICENSE in this distribution for more details.
-
-[repo-url]: https://github.com/sttk/each-props/
-[npm-img]: https://img.shields.io/badge/npm-v1.3.2-blue.svg
-[npm-url]: https://www.npmjs.org/package/each-props/
-[mit-img]: https://img.shields.io/badge/license-MIT-green.svg
-[mit-url]: https://opensource.org/licenses.MIT
-[travis-img]: https://travis-ci.org/sttk/each-props.svg?branch=master
-[travis-url]: https://travis-ci.org/sttk/each-props
-[appveyor-img]: https://ci.appveyor.com/api/projects/status/github/sttk/each-props?branch=master&svg=true
-[appveyor-url]: https://ci.appveyor.com/project/sttk/each-props
-[coverage-img]: https://coveralls.io/repos/github/sttk/each-props/badge.svg?branch=master
-[coverage-url]: https://coveralls.io/github/sttk/each-props?branch=master
-
diff --git a/node_modules/each-props/index.js b/node_modules/each-props/index.js
deleted file mode 100644
index ce61aeb..0000000
--- a/node_modules/each-props/index.js
+++ /dev/null
@@ -1,57 +0,0 @@
-'use strict';
-
-var isPlainObject = require('is-plain-object');
-var defaults = require('object.defaults/immutable');
-
-module.exports = function(obj, fn, opts) {
- if (!isObject(obj)) {
- return;
- }
-
- if (typeof fn !== 'function') {
- return;
- }
-
- if (!isPlainObject(opts)) {
- opts = {};
- }
-
- forEachChild(obj, '', fn, 0, opts);
-};
-
-function forEachChild(node, baseKey, fn, depth, opts) {
- var keys = Object.keys(node);
- if (typeof opts.sort === 'function') {
- var sortedKeys = opts.sort(keys);
- if (Array.isArray(sortedKeys)) {
- keys = sortedKeys;
- }
- }
-
- depth += 1;
-
- for (var i = 0, n = keys.length; i < n; i++) {
- var key = keys[i];
- var keyChain = baseKey + '.' + key;
- var value = node[key];
-
- var nodeInfo = defaults(opts);
- nodeInfo.name = key;
- nodeInfo.index = i;
- nodeInfo.count = n;
- nodeInfo.depth = depth;
- nodeInfo.parent = node;
-
- var notDigg = fn(value, keyChain.slice(1), nodeInfo);
- if (notDigg || !isPlainObject(value)) {
- continue;
- }
-
- forEachChild(value, keyChain, fn, depth, opts);
- }
-}
-
-function isObject(v) {
- return Object.prototype.toString.call(v) === '[object Object]';
-}
-
diff --git a/node_modules/each-props/node_modules/is-plain-object/LICENSE b/node_modules/each-props/node_modules/is-plain-object/LICENSE
deleted file mode 100644
index 3f2eca1..0000000
--- a/node_modules/each-props/node_modules/is-plain-object/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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/each-props/node_modules/is-plain-object/README.md b/node_modules/each-props/node_modules/is-plain-object/README.md
deleted file mode 100644
index 1f9d0c8..0000000
--- a/node_modules/each-props/node_modules/is-plain-object/README.md
+++ /dev/null
@@ -1,104 +0,0 @@
-# is-plain-object [![NPM version](https://img.shields.io/npm/v/is-plain-object.svg?style=flat)](https://www.npmjs.com/package/is-plain-object) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-plain-object.svg?style=flat)](https://npmjs.org/package/is-plain-object) [![NPM total downloads](https://img.shields.io/npm/dt/is-plain-object.svg?style=flat)](https://npmjs.org/package/is-plain-object) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-plain-object.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-plain-object)
-
-> Returns true if an object was created by the `Object` constructor.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save is-plain-object
-```
-
-Use [isobject](https://github.com/jonschlinkert/isobject) if you only want to check if the value is an object and not an array or null.
-
-## Usage
-
-```js
-var isPlainObject = require('is-plain-object');
-```
-
-**true** when created by the `Object` constructor.
-
-```js
-isPlainObject(Object.create({}));
-//=> true
-isPlainObject(Object.create(Object.prototype));
-//=> true
-isPlainObject({foo: 'bar'});
-//=> true
-isPlainObject({});
-//=> true
-```
-
-**false** when not created by the `Object` constructor.
-
-```js
-isPlainObject(1);
-//=> false
-isPlainObject(['foo', 'bar']);
-//=> false
-isPlainObject([]);
-//=> false
-isPlainObject(new Foo);
-//=> false
-isPlainObject(null);
-//=> false
-isPlainObject(Object.create(null));
-//=> false
-```
-
-## About
-
-### Related projects
-
-* [is-number](https://www.npmjs.com/package/is-number): Returns true if the value is a number. comprehensive tests. | [homepage](https://github.com/jonschlinkert/is-number "Returns true if the value is a number. comprehensive tests.")
-* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.")
-* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 17 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 6 | [stevenvachon](https://github.com/stevenvachon) |
-| 3 | [onokumus](https://github.com/onokumus) |
-| 1 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) |
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on July 11, 2017._
\ No newline at end of file
diff --git a/node_modules/each-props/node_modules/is-plain-object/index.d.ts b/node_modules/each-props/node_modules/is-plain-object/index.d.ts
deleted file mode 100644
index 74a44e9..0000000
--- a/node_modules/each-props/node_modules/is-plain-object/index.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export = isPlainObject;
-
-declare function isPlainObject(o: any): boolean;
-
-declare namespace isPlainObject {}
diff --git a/node_modules/each-props/node_modules/is-plain-object/index.js b/node_modules/each-props/node_modules/is-plain-object/index.js
deleted file mode 100644
index c328484..0000000
--- a/node_modules/each-props/node_modules/is-plain-object/index.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/*!
- * is-plain-object
- *
- * Copyright (c) 2014-2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-var isObject = require('isobject');
-
-function isObjectObject(o) {
- return isObject(o) === true
- && Object.prototype.toString.call(o) === '[object Object]';
-}
-
-module.exports = function isPlainObject(o) {
- var ctor,prot;
-
- if (isObjectObject(o) === false) return false;
-
- // If has modified constructor
- ctor = o.constructor;
- if (typeof ctor !== 'function') return false;
-
- // If has modified prototype
- prot = ctor.prototype;
- if (isObjectObject(prot) === false) return false;
-
- // If constructor does not have an Object-specific method
- if (prot.hasOwnProperty('isPrototypeOf') === false) {
- return false;
- }
-
- // Most likely a plain Object
- return true;
-};
diff --git a/node_modules/each-props/node_modules/is-plain-object/package.json b/node_modules/each-props/node_modules/is-plain-object/package.json
deleted file mode 100644
index dd60498..0000000
--- a/node_modules/each-props/node_modules/is-plain-object/package.json
+++ /dev/null
@@ -1,79 +0,0 @@
-{
- "name": "is-plain-object",
- "description": "Returns true if an object was created by the `Object` constructor.",
- "version": "2.0.4",
- "homepage": "https://github.com/jonschlinkert/is-plain-object",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Osman Nuri Okumuş (http://onokumus.com)",
- "Steven Vachon (https://svachon.com)",
- "(https://github.com/wtgtybhertgeghgtwtg)"
- ],
- "repository": "jonschlinkert/is-plain-object",
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-plain-object/issues"
- },
- "license": "MIT",
- "files": [
- "index.d.ts",
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "browserify": "browserify index.js --standalone isPlainObject | uglifyjs --compress --mangle -o browser/is-plain-object.js",
- "test_browser": "mocha-phantomjs test/browser.html",
- "test_node": "mocha",
- "test": "npm run test_node && npm run browserify && npm run test_browser"
- },
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "devDependencies": {
- "browserify": "^14.4.0",
- "chai": "^4.0.2",
- "gulp-format-md": "^1.0.0",
- "mocha": "^3.4.2",
- "mocha-phantomjs": "^4.1.0",
- "phantomjs": "^2.1.7",
- "uglify-js": "^3.0.24"
- },
- "keywords": [
- "check",
- "is",
- "is-object",
- "isobject",
- "javascript",
- "kind",
- "kind-of",
- "object",
- "plain",
- "type",
- "typeof",
- "value"
- ],
- "types": "index.d.ts",
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "is-number",
- "isobject",
- "kind-of"
- ]
- },
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/each-props/package.json b/node_modules/each-props/package.json
deleted file mode 100644
index d6476e9..0000000
--- a/node_modules/each-props/package.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{
- "name": "each-props",
- "version": "1.3.2",
- "description": "Processes each properties of an object deeply.",
- "main": "index.js",
- "files": [
- "index.js"
- ],
- "scripts": {
- "lint": "eslint .",
- "test": "mocha",
- "coverage": "nyc --reporter=lcov --reporter=text-summary npm test",
- "coveralls": "nyc --reporter=text-lcov npm test | coveralls",
- "web:build": "browserify index.js --standalone eachProps -o web/each-props.js && cd web && uglifyjs each-props.js --compress --mangle -o each-props.min.js --source-map url=each-props.min.js.map",
- "chrome:install": "npm i --no-save mocha-chrome",
- "chrome:test": "mocha-chrome test/web/browser-test.html",
- "build": "npm run lint && npm run coverage && npm run web:build && node test/web/make.js"
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sttk/each-props.git"
- },
- "keywords": [
- "deep",
- "each",
- "object",
- "property",
- "properties",
- "props"
- ],
- "author": "Takayuki Sato",
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/sttk/each-props/issues"
- },
- "homepage": "https://github.com/sttk/each-props#readme",
- "dependencies": {
- "is-plain-object": "^2.0.1",
- "object.defaults": "^1.1.0"
- },
- "devDependencies": {
- "browserify": "^16.2.2",
- "chai": "^3.5.0",
- "coveralls": "^3.0.1",
- "eslint": "^4.19.1",
- "mocha": "^3.2.0",
- "nyc": "^11.7.2",
- "uglify-js": "^3.3.24"
- }
-}
diff --git a/node_modules/end-of-stream/LICENSE b/node_modules/end-of-stream/LICENSE
deleted file mode 100644
index 757562e..0000000
--- a/node_modules/end-of-stream/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014 Mathias Buus
-
-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.
\ No newline at end of file
diff --git a/node_modules/end-of-stream/README.md b/node_modules/end-of-stream/README.md
deleted file mode 100644
index 857b14b..0000000
--- a/node_modules/end-of-stream/README.md
+++ /dev/null
@@ -1,54 +0,0 @@
-# end-of-stream
-
-A node module that calls a callback when a readable/writable/duplex stream has completed or failed.
-
- npm install end-of-stream
-
-[![Build status](https://travis-ci.org/mafintosh/end-of-stream.svg?branch=master)](https://travis-ci.org/mafintosh/end-of-stream)
-
-## Usage
-
-Simply pass a stream and a callback to the `eos`.
-Both legacy streams, streams2 and stream3 are supported.
-
-``` js
-var eos = require('end-of-stream');
-
-eos(readableStream, function(err) {
- // this will be set to the stream instance
- if (err) return console.log('stream had an error or closed early');
- console.log('stream has ended', this === readableStream);
-});
-
-eos(writableStream, function(err) {
- if (err) return console.log('stream had an error or closed early');
- console.log('stream has finished', this === writableStream);
-});
-
-eos(duplexStream, function(err) {
- if (err) return console.log('stream had an error or closed early');
- console.log('stream has ended and finished', this === duplexStream);
-});
-
-eos(duplexStream, {readable:false}, function(err) {
- if (err) return console.log('stream had an error or closed early');
- console.log('stream has finished but might still be readable');
-});
-
-eos(duplexStream, {writable:false}, function(err) {
- if (err) return console.log('stream had an error or closed early');
- console.log('stream has ended but might still be writable');
-});
-
-eos(readableStream, {error:false}, function(err) {
- // do not treat emit('error', err) as a end-of-stream
-});
-```
-
-## License
-
-MIT
-
-## Related
-
-`end-of-stream` is part of the [mississippi stream utility collection](https://github.com/maxogden/mississippi) which includes more useful stream modules similar to this one.
diff --git a/node_modules/end-of-stream/index.js b/node_modules/end-of-stream/index.js
deleted file mode 100644
index c77f0d5..0000000
--- a/node_modules/end-of-stream/index.js
+++ /dev/null
@@ -1,94 +0,0 @@
-var once = require('once');
-
-var noop = function() {};
-
-var isRequest = function(stream) {
- return stream.setHeader && typeof stream.abort === 'function';
-};
-
-var isChildProcess = function(stream) {
- return stream.stdio && Array.isArray(stream.stdio) && stream.stdio.length === 3
-};
-
-var eos = function(stream, opts, callback) {
- if (typeof opts === 'function') return eos(stream, null, opts);
- if (!opts) opts = {};
-
- callback = once(callback || noop);
-
- var ws = stream._writableState;
- var rs = stream._readableState;
- var readable = opts.readable || (opts.readable !== false && stream.readable);
- var writable = opts.writable || (opts.writable !== false && stream.writable);
- var cancelled = false;
-
- var onlegacyfinish = function() {
- if (!stream.writable) onfinish();
- };
-
- var onfinish = function() {
- writable = false;
- if (!readable) callback.call(stream);
- };
-
- var onend = function() {
- readable = false;
- if (!writable) callback.call(stream);
- };
-
- var onexit = function(exitCode) {
- callback.call(stream, exitCode ? new Error('exited with error code: ' + exitCode) : null);
- };
-
- var onerror = function(err) {
- callback.call(stream, err);
- };
-
- var onclose = function() {
- process.nextTick(onclosenexttick);
- };
-
- var onclosenexttick = function() {
- if (cancelled) return;
- if (readable && !(rs && (rs.ended && !rs.destroyed))) return callback.call(stream, new Error('premature close'));
- if (writable && !(ws && (ws.ended && !ws.destroyed))) return callback.call(stream, new Error('premature close'));
- };
-
- var onrequest = function() {
- stream.req.on('finish', onfinish);
- };
-
- if (isRequest(stream)) {
- stream.on('complete', onfinish);
- stream.on('abort', onclose);
- if (stream.req) onrequest();
- else stream.on('request', onrequest);
- } else if (writable && !ws) { // legacy streams
- stream.on('end', onlegacyfinish);
- stream.on('close', onlegacyfinish);
- }
-
- if (isChildProcess(stream)) stream.on('exit', onexit);
-
- stream.on('end', onend);
- stream.on('finish', onfinish);
- if (opts.error !== false) stream.on('error', onerror);
- stream.on('close', onclose);
-
- return function() {
- cancelled = true;
- stream.removeListener('complete', onfinish);
- stream.removeListener('abort', onclose);
- stream.removeListener('request', onrequest);
- if (stream.req) stream.req.removeListener('finish', onfinish);
- stream.removeListener('end', onlegacyfinish);
- stream.removeListener('close', onlegacyfinish);
- stream.removeListener('finish', onfinish);
- stream.removeListener('exit', onexit);
- stream.removeListener('end', onend);
- stream.removeListener('error', onerror);
- stream.removeListener('close', onclose);
- };
-};
-
-module.exports = eos;
diff --git a/node_modules/end-of-stream/package.json b/node_modules/end-of-stream/package.json
deleted file mode 100644
index b75bbf0..0000000
--- a/node_modules/end-of-stream/package.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "name": "end-of-stream",
- "version": "1.4.4",
- "description": "Call a callback when a readable/writable/duplex stream has completed or failed.",
- "repository": {
- "type": "git",
- "url": "git://github.com/mafintosh/end-of-stream.git"
- },
- "dependencies": {
- "once": "^1.4.0"
- },
- "scripts": {
- "test": "node test.js"
- },
- "files": [
- "index.js"
- ],
- "keywords": [
- "stream",
- "streams",
- "callback",
- "finish",
- "close",
- "end",
- "wait"
- ],
- "bugs": {
- "url": "https://github.com/mafintosh/end-of-stream/issues"
- },
- "homepage": "https://github.com/mafintosh/end-of-stream",
- "main": "index.js",
- "author": "Mathias Buus ",
- "license": "MIT",
- "devDependencies": {
- "tape": "^4.11.0"
- }
-}
diff --git a/node_modules/error-ex/LICENSE b/node_modules/error-ex/LICENSE
deleted file mode 100644
index 0a5f461..0000000
--- a/node_modules/error-ex/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015 JD Ballard
-
-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/error-ex/README.md b/node_modules/error-ex/README.md
deleted file mode 100644
index 97f744a..0000000
--- a/node_modules/error-ex/README.md
+++ /dev/null
@@ -1,144 +0,0 @@
-# node-error-ex [![Travis-CI.org Build Status](https://img.shields.io/travis/Qix-/node-error-ex.svg?style=flat-square)](https://travis-ci.org/Qix-/node-error-ex) [![Coveralls.io Coverage Rating](https://img.shields.io/coveralls/Qix-/node-error-ex.svg?style=flat-square)](https://coveralls.io/r/Qix-/node-error-ex)
-> Easily subclass and customize new Error types
-
-## Examples
-To include in your project:
-```javascript
-var errorEx = require('error-ex');
-```
-
-To create an error message type with a specific name (note, that `ErrorFn.name`
-will not reflect this):
-```javascript
-var JSONError = errorEx('JSONError');
-
-var err = new JSONError('error');
-err.name; //-> JSONError
-throw err; //-> JSONError: error
-```
-
-To add a stack line:
-```javascript
-var JSONError = errorEx('JSONError', {fileName: errorEx.line('in %s')});
-
-var err = new JSONError('error')
-err.fileName = '/a/b/c/foo.json';
-throw err; //-> (line 2)-> in /a/b/c/foo.json
-```
-
-To append to the error message:
-```javascript
-var JSONError = errorEx('JSONError', {fileName: errorEx.append('in %s')});
-
-var err = new JSONError('error');
-err.fileName = '/a/b/c/foo.json';
-throw err; //-> JSONError: error in /a/b/c/foo.json
-```
-
-## API
-
-#### `errorEx([name], [properties])`
-Creates a new ErrorEx error type
-
-- `name`: the name of the new type (appears in the error message upon throw;
- defaults to `Error.name`)
-- `properties`: if supplied, used as a key/value dictionary of properties to
- use when building up the stack message. Keys are property names that are
- looked up on the error message, and then passed to function values.
- - `line`: if specified and is a function, return value is added as a stack
- entry (error-ex will indent for you). Passed the property value given
- the key.
- - `stack`: if specified and is a function, passed the value of the property
- using the key, and the raw stack lines as a second argument. Takes no
- return value (but the stack can be modified directly).
- - `message`: if specified and is a function, return value is used as new
- `.message` value upon get. Passed the property value of the property named
- by key, and the existing message is passed as the second argument as an
- array of lines (suitable for multi-line messages).
-
-Returns a constructor (Function) that can be used just like the regular Error
-constructor.
-
-```javascript
-var errorEx = require('error-ex');
-
-var BasicError = errorEx();
-
-var NamedError = errorEx('NamedError');
-
-// --
-
-var AdvancedError = errorEx('AdvancedError', {
- foo: {
- line: function (value, stack) {
- if (value) {
- return 'bar ' + value;
- }
- return null;
- }
- }
-}
-
-var err = new AdvancedError('hello, world');
-err.foo = 'baz';
-throw err;
-
-/*
- AdvancedError: hello, world
- bar baz
- at tryReadme() (readme.js:20:1)
-*/
-```
-
-#### `errorEx.line(str)`
-Creates a stack line using a delimiter
-
-> This is a helper function. It is to be used in lieu of writing a value object
-> for `properties` values.
-
-- `str`: The string to create
- - Use the delimiter `%s` to specify where in the string the value should go
-
-```javascript
-var errorEx = require('error-ex');
-
-var FileError = errorEx('FileError', {fileName: errorEx.line('in %s')});
-
-var err = new FileError('problem reading file');
-err.fileName = '/a/b/c/d/foo.js';
-throw err;
-
-/*
- FileError: problem reading file
- in /a/b/c/d/foo.js
- at tryReadme() (readme.js:7:1)
-*/
-```
-
-#### `errorEx.append(str)`
-Appends to the `error.message` string
-
-> This is a helper function. It is to be used in lieu of writing a value object
-> for `properties` values.
-
-- `str`: The string to append
- - Use the delimiter `%s` to specify where in the string the value should go
-
-```javascript
-var errorEx = require('error-ex');
-
-var SyntaxError = errorEx('SyntaxError', {fileName: errorEx.append('in %s')});
-
-var err = new SyntaxError('improper indentation');
-err.fileName = '/a/b/c/d/foo.js';
-throw err;
-
-/*
- SyntaxError: improper indentation in /a/b/c/d/foo.js
- at tryReadme() (readme.js:7:1)
-*/
-```
-
-## License
-Licensed under the [MIT License](http://opensource.org/licenses/MIT).
-You can find a copy of it in [LICENSE](LICENSE).
diff --git a/node_modules/error-ex/index.js b/node_modules/error-ex/index.js
deleted file mode 100644
index 4fb20b4..0000000
--- a/node_modules/error-ex/index.js
+++ /dev/null
@@ -1,141 +0,0 @@
-'use strict';
-
-var util = require('util');
-var isArrayish = require('is-arrayish');
-
-var errorEx = function errorEx(name, properties) {
- if (!name || name.constructor !== String) {
- properties = name || {};
- name = Error.name;
- }
-
- var errorExError = function ErrorEXError(message) {
- if (!this) {
- return new ErrorEXError(message);
- }
-
- message = message instanceof Error
- ? message.message
- : (message || this.message);
-
- Error.call(this, message);
- Error.captureStackTrace(this, errorExError);
-
- this.name = name;
-
- Object.defineProperty(this, 'message', {
- configurable: true,
- enumerable: false,
- get: function () {
- var newMessage = message.split(/\r?\n/g);
-
- for (var key in properties) {
- if (!properties.hasOwnProperty(key)) {
- continue;
- }
-
- var modifier = properties[key];
-
- if ('message' in modifier) {
- newMessage = modifier.message(this[key], newMessage) || newMessage;
- if (!isArrayish(newMessage)) {
- newMessage = [newMessage];
- }
- }
- }
-
- return newMessage.join('\n');
- },
- set: function (v) {
- message = v;
- }
- });
-
- var overwrittenStack = null;
-
- var stackDescriptor = Object.getOwnPropertyDescriptor(this, 'stack');
- var stackGetter = stackDescriptor.get;
- var stackValue = stackDescriptor.value;
- delete stackDescriptor.value;
- delete stackDescriptor.writable;
-
- stackDescriptor.set = function (newstack) {
- overwrittenStack = newstack;
- };
-
- stackDescriptor.get = function () {
- var stack = (overwrittenStack || ((stackGetter)
- ? stackGetter.call(this)
- : stackValue)).split(/\r?\n+/g);
-
- // starting in Node 7, the stack builder caches the message.
- // just replace it.
- if (!overwrittenStack) {
- stack[0] = this.name + ': ' + this.message;
- }
-
- var lineCount = 1;
- for (var key in properties) {
- if (!properties.hasOwnProperty(key)) {
- continue;
- }
-
- var modifier = properties[key];
-
- if ('line' in modifier) {
- var line = modifier.line(this[key]);
- if (line) {
- stack.splice(lineCount++, 0, ' ' + line);
- }
- }
-
- if ('stack' in modifier) {
- modifier.stack(this[key], stack);
- }
- }
-
- return stack.join('\n');
- };
-
- Object.defineProperty(this, 'stack', stackDescriptor);
- };
-
- if (Object.setPrototypeOf) {
- Object.setPrototypeOf(errorExError.prototype, Error.prototype);
- Object.setPrototypeOf(errorExError, Error);
- } else {
- util.inherits(errorExError, Error);
- }
-
- return errorExError;
-};
-
-errorEx.append = function (str, def) {
- return {
- message: function (v, message) {
- v = v || def;
-
- if (v) {
- message[0] += ' ' + str.replace('%s', v.toString());
- }
-
- return message;
- }
- };
-};
-
-errorEx.line = function (str, def) {
- return {
- line: function (v) {
- v = v || def;
-
- if (v) {
- return str.replace('%s', v.toString());
- }
-
- return null;
- }
- };
-};
-
-module.exports = errorEx;
diff --git a/node_modules/error-ex/package.json b/node_modules/error-ex/package.json
deleted file mode 100644
index f3d9ae0..0000000
--- a/node_modules/error-ex/package.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
- "name": "error-ex",
- "description": "Easy error subclassing and stack customization",
- "version": "1.3.2",
- "maintainers": [
- "Josh Junon (github.com/qix-)",
- "Sindre Sorhus (sindresorhus.com)"
- ],
- "keywords": [
- "error",
- "errors",
- "extend",
- "extending",
- "extension",
- "subclass",
- "stack",
- "custom"
- ],
- "license": "MIT",
- "scripts": {
- "pretest": "xo",
- "test": "mocha --compilers coffee:coffee-script/register"
- },
- "xo": {
- "rules": {
- "operator-linebreak": [
- 0
- ]
- }
- },
- "repository": "qix-/node-error-ex",
- "files": [
- "index.js"
- ],
- "devDependencies": {
- "coffee-script": "^1.9.3",
- "coveralls": "^2.11.2",
- "istanbul": "^0.3.17",
- "mocha": "^2.2.5",
- "should": "^7.0.1",
- "xo": "^0.7.1"
- },
- "dependencies": {
- "is-arrayish": "^0.2.1"
- }
-}
diff --git a/node_modules/es5-ext/.editorconfig b/node_modules/es5-ext/.editorconfig
deleted file mode 100644
index bd6d81e..0000000
--- a/node_modules/es5-ext/.editorconfig
+++ /dev/null
@@ -1,16 +0,0 @@
-# EditorConfig is awesome: http://EditorConfig.org
-
-# top-most EditorConfig file
-root = true
-
-[*]
-charset = utf-8
-end_of_line = lf
-insert_final_newline = true
-indent_style = tab
-trim_trailing_whitespace = true
-
-[*.md]
-indent_size = 2
-indent_style = space
-trim_trailing_whitespace = false
diff --git a/node_modules/es5-ext/.github/FUNDING.yml b/node_modules/es5-ext/.github/FUNDING.yml
deleted file mode 100644
index 71426b0..0000000
--- a/node_modules/es5-ext/.github/FUNDING.yml
+++ /dev/null
@@ -1 +0,0 @@
-tidelift: "npm/es5-ext"
diff --git a/node_modules/es5-ext/CHANGELOG.md b/node_modules/es5-ext/CHANGELOG.md
deleted file mode 100644
index 0c5801d..0000000
--- a/node_modules/es5-ext/CHANGELOG.md
+++ /dev/null
@@ -1,325 +0,0 @@
-# Changelog
-
-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.
-
-### [0.10.53](https://github.com/medikoo/es5-ext/compare/v0.10.52...v0.10.53) (2019-11-21)
-
-### [0.10.52](https://github.com/medikoo/es5-ext/compare/v0.10.51...v0.10.52) (2019-10-29)
-
-### Bug Fixes
-
-- Fix global resolution for Safari ([00731d2](https://github.com/medikoo/es5-ext/commit/00731d2))
-- Keep support for old Node.js versions ([2fa2a11](https://github.com/medikoo/es5-ext/commit/2fa2a11))
-
-### [0.10.51](https://github.com/medikoo/es5-ext/compare/v0.10.50...v0.10.51) (2019-08-30)
-
-### Bug Fixes
-
-- Ensure Function.isFunction recognizes async functions ([6f06e66](https://github.com/medikoo/es5-ext/commit/6f06e66))
-
-### Tests
-
-- Fix after prettification changes ([dd6fc3f](https://github.com/medikoo/es5-ext/commit/dd6fc3f))
-
-## [0.10.50](https://github.com/medikoo/es5-ext/compare/v0.10.49...v0.10.50) (2019-04-30)
-
-### Bug Fixes
-
-- maximum time value reference ([708202d](https://github.com/medikoo/es5-ext/commit/708202d))
-
-### Features
-
-- ensure global resolves in strict mode ([c6a19d7](https://github.com/medikoo/es5-ext/commit/c6a19d7)), closes [#86](https://github.com/medikoo/es5-ext/issues/86)
-
-## [0.10.49](https://github.com/medikoo/es5-ext/compare/v0.10.48...v0.10.49) (2019-03-11)
-
-### Features
-
-- allow plain function usage of fn.compose ([2bafef7](https://github.com/medikoo/es5-ext/commit/2bafef7))
-
-## [0.10.48](https://github.com/medikoo/es5-ext/compare/v0.10.47...v0.10.48) (2019-02-22)
-
-### Features
-
-- Object.ensurePlainObject util ([f48fbcf](https://github.com/medikoo/es5-ext/commit/f48fbcf))
-
-
-
-## [0.10.47](https://github.com/medikoo/es5-ext/compare/v0.10.46...v0.10.47) (2019-01-16)
-
-### Features
-
-- Promise.prototype.finally shim ([4dadbc7](https://github.com/medikoo/es5-ext/commit/4dadbc7))
-
-
-
-## [0.10.46](https://github.com/medikoo/es5-ext/compare/v0.10.45...v0.10.46) (2018-08-13)
-
-### Bug Fixes
-
-- assign-deep to not modify following arguments ([bf43d57](https://github.com/medikoo/es5-ext/commit/bf43d57))
-
-
-
-## [0.10.45](https://github.com/medikoo/es5-ext/compare/v0.10.44...v0.10.45) (2018-06-01)
-
-### Bug Fixes
-
-- improve error message readbility ([adc91b9](https://github.com/medikoo/es5-ext/commit/adc91b9))
-
-
-
-## [0.10.44](https://github.com/medikoo/es5-ext/compare/v0.10.43...v0.10.44) (2018-05-30)
-
-### Features
-
-- add Object.entries ([51d2f43](https://github.com/medikoo/es5-ext/commit/51d2f43))
-
-
-
-## [0.10.43](https://github.com/medikoo/es5-ext/compare/v0.10.42...v0.10.43) (2018-05-28)
-
-### Features
-
-- improve patch string ([6a25b10](https://github.com/medikoo/es5-ext/commit/6a25b10))
-
-
-
-## [0.10.42](https://github.com/medikoo/es5-ext/compare/v0.10.41...v0.10.42) (2018-03-28)
-
-### Bug Fixes
-
-- Date.isDate to exclude NaN dates ([3b61bc6](https://github.com/medikoo/es5-ext/commit/3b61bc6))
-
-### Features
-
-- improve non-coercible string representation ([20bfb78](https://github.com/medikoo/es5-ext/commit/20bfb78))
-- improve non-stringifiable string representation ([2e4512d](https://github.com/medikoo/es5-ext/commit/2e4512d))
-
-
-
-## [0.10.41](https://github.com/medikoo/es5-ext/compare/v0.10.40...v0.10.41) (2018-03-16)
-
-### Features
-
-- Add function.microtaskDelay method ([66481c0](https://github.com/medikoo/es5-ext/commit/66481c0))
-- Add Object.isThenable ([8d5a45c](https://github.com/medikoo/es5-ext/commit/8d5a45c))
-- Add promise.asCallback method ([dcc1451](https://github.com/medikoo/es5-ext/commit/dcc1451))
-- Object.ensurePlainFunction ([2682be6](https://github.com/medikoo/es5-ext/commit/2682be6))
-
-
-
-## [0.10.40](https://github.com/medikoo/es5-ext/compare/v0.10.39...v0.10.40) (2018-03-09)
-
-### Features
-
-- **math:** decimal round, floor and ceil ([39290c6](https://github.com/medikoo/es5-ext/commit/39290c6))
-- **object:** isInteger and ensureInteger ([a5f7d04](https://github.com/medikoo/es5-ext/commit/a5f7d04))
-
-
-
-## [0.10.39](https://github.com/medikoo/es5-ext/compare/v0.10.38...v0.10.39) (2018-02-16)
-
-### Features
-
-- Promise.lazy ([7a30a78](https://github.com/medikoo/es5-ext/commit/7a30a78))
-
-
-
-## [0.10.38](https://github.com/medikoo/es5-ext/compare/v0.10.37...v0.10.38) (2018-01-16)
-
-### Features
-
-- Object.isNaturalNumber an Object.isNaturalNumberValue ([66a40af](https://github.com/medikoo/es5-ext/commit/66a40af))
-
-
-
-## [0.10.37](https://github.com/medikoo/es5-ext/compare/v0.10.36...v0.10.37) (2017-11-23)
-
-### Features
-
-- String.random util ([7c28739](https://github.com/medikoo/es5-ext/commit/7c28739))
-
-
-
-## [0.10.36](https://github.com/medikoo/es5-ext/compare/v0.10.35...v0.10.36) (2017-11-23)
-
-### Features
-
-- **date:** isTimeValue and ensureTimeValue utils ([7659dc5](https://github.com/medikoo/es5-ext/commit/7659dc5))
-
-
-
-## [0.10.35](https://github.com/medikoo/es5-ext/compare/v0.10.34...v0.10.35) (2017-10-13)
-
-### Bug Fixes
-
-- **Object.copy:** do not upgrade primitives to objects ([dd4d88f](https://github.com/medikoo/es5-ext/commit/dd4d88f))
-
-
-
-## [0.10.34](https://github.com/medikoo/es5-ext/compare/v0.10.33...v0.10.34) (2017-10-13)
-
-### Features
-
-- **copyDeep:** duplicate only recursive instances ([bba529a](https://github.com/medikoo/es5-ext/commit/bba529a))
-
-
-
-## [0.10.33](https://github.com/medikoo/es5-ext/compare/v0.10.32...v0.10.33) (2017-10-13)
-
-### Bug Fixes
-
-- **Object.assignDeep:** relax input validation ([1baf57d](https://github.com/medikoo/es5-ext/commit/1baf57d))
-
-
-
-## [0.10.32](https://github.com/medikoo/es5-ext/compare/v0.10.31...v0.10.32) (2017-10-13)
-
-### Features
-
-- Object.assignDeep ([2345e0b](https://github.com/medikoo/es5-ext/commit/2345e0b))
-
-
-
-## [0.10.31](https://github.com/medikoo/es5-ext/compare/v0.10.30...v0.10.31) (2017-10-09)
-
-### Features
-
-- Object.isPlainFunction utility ([031be0a](https://github.com/medikoo/es5-ext/commit/031be0a))
-
-
-
-## [0.10.30](https://github.com/medikoo/es5-ext/compare/v0.10.29...v0.10.30) (2017-08-25)
-
-### Bug Fixes
-
-- value stringification for error message ([37bb96b](https://github.com/medikoo/es5-ext/commit/37bb96b))
-
-
-
-## [0.10.29](https://github.com/medikoo/es5-ext/compare/v0.10.28...v0.10.29) (2017-08-18)
-
-### Bug Fixes
-
-- string.repeat after recent regression ([b02fab4](https://github.com/medikoo/es5-ext/commit/b02fab4))
-
-
-
-## [0.10.28](https://github.com/medikoo/es5-ext/compare/v0.10.27...v0.10.28) (2017-08-18)
-
-### Features
-
-- array.isEmpty method ([b0cfbdd](https://github.com/medikoo/es5-ext/commit/b0cfbdd))
-- improve new lines representation ([860fe8b](https://github.com/medikoo/es5-ext/commit/860fe8b))
-- Object.ensureArray util ([595c341](https://github.com/medikoo/es5-ext/commit/595c341))
-- toShortStringRepresentation util ([6842d06](https://github.com/medikoo/es5-ext/commit/6842d06))
-
-
-
-## [0.10.27](https://github.com/medikoo/es5-ext/compare/v0.10.26...v0.10.27) (2017-08-11)
-
-### Bug Fixes
-
-- isNumberValue should not crash on non-coercible values ([0db765e](https://github.com/medikoo/es5-ext/commit/0db765e))
-
-### Features
-
-- add Object.ensureFiniteNumber util ([11c67f5](https://github.com/medikoo/es5-ext/commit/11c67f5))
-- add Object.isFiniteNumber util ([fe5b55a](https://github.com/medikoo/es5-ext/commit/fe5b55a))
-
-
-
-## [0.10.26](https://github.com/medikoo/es5-ext/compare/v0.10.25...v0.10.26) (2017-08-02)
-
-### Bug Fixes
-
-- **general:** ensure optionalChaining in index ([3df879a](https://github.com/medikoo/es5-ext/commit/3df879a))
-
-
-
-## [0.10.25](https://github.com/medikoo/es5-ext/compare/v0.10.24...v0.10.25) (2017-08-02)
-
-### Features
-
-- **general:** optionalChaining utility ([26332b5](https://github.com/medikoo/es5-ext/commit/26332b5))
-
-
-
-## [0.10.24](https://github.com/medikoo/es5-ext/compare/v0.10.23...v0.10.24) (2017-07-10)
-
-### Features
-
-- resolve global with CSP safe method ([d386449](https://github.com/medikoo/es5-ext/commit/d386449))
-
-
-
-## [0.10.23](https://github.com/medikoo/es5-ext/compare/v0.10.22...v0.10.23) (2017-06-05)
-
-### Bug Fixes
-
-- **Error.custom:** allow non-string code ([e8db3a0](https://github.com/medikoo/es5-ext/commit/e8db3a0))
-- **Error.custom:** improve `ext` argument detection ([0edbfbc](https://github.com/medikoo/es5-ext/commit/0edbfbc))
-
-
-
-## [0.10.22](https://github.com/medikoo/es5-ext/compare/v0.10.21...v0.10.22) (2017-05-31)
-
-### Bug Fixes
-
-- ensure proper symbols stringification in early implementations ([ce51900](https://github.com/medikoo/es5-ext/commit/ce51900))
-
-
-
-## [0.10.21](https://github.com/medikoo/es5-ext/compare/v0.10.20...v0.10.21) (2017-05-22)
-
-### Features
-
-- support arrow functions in Function/#/to-tring-tokens.js ([ad3de1e](https://github.com/medikoo/es5-ext/commit/ad3de1e))
-
-
-
-## [0.10.20](https://github.com/medikoo/es5-ext/compare/v0.10.19...v0.10.20) (2017-05-17)
-
-### Features
-
-- if listed copy not only if own property ([d7e7cef](https://github.com/medikoo/es5-ext/commit/d7e7cef))
-- support `ensure` option in Object.copy ([295326f](https://github.com/medikoo/es5-ext/commit/295326f))
-
-
-
-## [0.10.19](https://github.com/medikoo/es5-ext/compare/v0.10.18...v0.10.19) (2017-05-17)
-
-### Features
-
-- support propertyNames option in Object.copy ([5442279](https://github.com/medikoo/es5-ext/commit/5442279))
-
-
-
-## [0.10.18](https://github.com/medikoo/es5-ext/compare/v0.10.17...v0.10.18) (2017-05-15)
-
-### Bug Fixes
-
-- take all changes in safeToString ([3c5cd12](https://github.com/medikoo/es5-ext/commit/3c5cd12))
-
-
-
-## [0.10.17](https://github.com/medikoo/es5-ext/compare/v0.10.16...v0.10.17) (2017-05-15)
-
-### Features
-
-- introduce Object.ensurePromise ([46a2f45](https://github.com/medikoo/es5-ext/commit/46a2f45))
-- introduce Object.isPromise ([27aecc8](https://github.com/medikoo/es5-ext/commit/27aecc8))
-- introduce safeToString ([0cc6a7b](https://github.com/medikoo/es5-ext/commit/0cc6a7b))
-
-
-
-## [0.10.16](https://github.com/medikoo/es5-ext/compare/v0.10.15...v0.10.16) (2017-05-09)
-
-### Features
-
-- add String.prototype.count ([2e53241](https://github.com/medikoo/es5-ext/commit/2e53241))
-
-## Changelog for previous versions
-
-See `CHANGES` file
diff --git a/node_modules/es5-ext/CHANGES b/node_modules/es5-ext/CHANGES
deleted file mode 100644
index bb84bab..0000000
--- a/node_modules/es5-ext/CHANGES
+++ /dev/null
@@ -1,650 +0,0 @@
-For recent changelog see CHANGELOG.md
-
------
-
-v0.10.15 -- 2017.03.20
-* Fix Object.isValue (it was actually isNotValue)
-
-v0.10.14 -- 2017.03.15
-* Object.isValue util
-
-v0.10.13 -- 2017.03.13
-* Introduce JSON.safeStringify
-* Improve message handling in error/custom
-* Fix Array#concat shim
-* Improve Array#flatten algorithm so it's stack trace friendly
-* Make Object.isObject ES3 compatible
-
-v0.10.12 -- 2016.07.01
-* Ensure symbols are copied in Object.mixin
-* Prevent RangeError errors in array#flatten
-* Do not validate invalidate dates in validDate
-
-v0.10.11 -- 2015.12.18
-* Ensure that check for implementation of RegExp flags doesn't crash in V8 (thanks @mathiasbynens)
-
-v0.10.10 -- 2015.12.11
-* Add Object.isNumberValue util
-
-v0.10.9 -- 2015.12.01
-* Add Object.ensureNaturalNumber and Object.ensureNaturalNumberValue
-
-v0.10.8 -- 2015.10.02
-* Add Number.isNatural
-* Add Object.find and Object.findKey
-* Support arrays in Object.copyDeep
-* Fix iteration issue in forEachRight and someRight
-* Fix detection of native sinh
-* Depend on es6-symbol v3
-
-v0.10.7 -- 2015.04.22
-* New utlitities. They're convention differs from v0.10, as they were supposed to land in v1.
- Still they're non breaking and start the conventions to be used in v1
- * Object.validateArrayLike
- * Object.validateArrayLikeObject
- * Object.validateStringifiable
- * Object.validateStringifiableValue
- * Universal utilities for array-like/iterable objects
- * Iterable.is
- * Iterable.validate
- * Iterable.validateObject
- * Iterable.forEach
-* Fix camelToHyphen resolution, it must be absolutely reversable by hyphenToCamel
-* Fix calculations of large numbers in Math.tanh
-* Fix algorithm of Math.sinh
-* Fix indexes to not use real symbols
-* Fix length of String.fromCodePoint
-* Fix tests of Array#copyWithin
-* Update Travis CI configuration
-
-v0.10.6 -- 2015.02.02
-* Fix handling of infinite values in Math.trunc
-* Fix handling of getters in Object.normalizeOptions
-
-v0.10.5 -- 2015.01.20
-* Add Function#toStringTokens
-* Add Object.serialize and Object.unserialize
-* Add String.randomUniq
-* Fix Strin#camelToHyphen issue with tokens that end with digit
-* Optimise Number.isInteger logic
-* Improve documentation
-* Configure lint scripts
-* Fix spelling of LICENSE
-
-v0.10.4 -- 2014.04.30
-* Assure maximum spec compliance of Array.of and Array.from (thanks @mathiasbynens)
-* Improve documentations
-
-v0.10.3 -- 2014.04.29
-Provide accurate iterators handling:
-* Array.from improvements:
- * Assure right unicode symbols resolution when processing strings in Array.from
- * Rely on ES6 symbol shim and use native @@iterator Symbol if provided by environment
-* Add methods:
- * Array.prototype.entries
- * Array.prototype.keys
- * Array.prototype.values
- * Array.prototype[@@iterator]
- * String.prototype[@@iterator]
-
-Improve documentation
-
-v0.10.2 -- 2014.04.24
-- Simplify and deprecate `isCallable`. It seems in ES5 based engines there are
- no callable objects which are `typeof obj !== 'function'`
-- Update Array.from map callback signature (up to latest resolution of TC39)
-- Improve documentation
-
-v0.10.1 -- 2014.04.14
-Bump version for npm
-(Workaround for accidental premature publish & unpublish of v0.10.0 a while ago)
-
-v0.10.0 -- 2014.04.13
-Major update:
-- All methods and function specified for ECMAScript 6 are now introduced as
- shims accompanied with functions through which (optionally) they can be
- implementend on native objects
-- Filename convention was changed to shorter and strictly lower case names. e.g.
- `lib/String/prototype/starts-with` became `string/#/starts-with`
-- Generated functions are guaranteed to have expected length
-- Objects with null prototype (created via `Object.create(null)`) are widely
- supported (older version have crashed due to implied `obj.hasOwnProperty` and
- related invocations)
-- Support array subclasses
-- When handling lists do not limit its length to Uint32 range
-- Use newly introduced `Object.eq` for strict equality in place of `Object.is`
-- Iteration of Object have been improved so properties that were hidden or
- removed after iteration started are not iterated.
-
-Additions:
-- `Array.isPlainArray`
-- `Array.validArray`
-- `Array.prototype.concat` (as updated with ES6)
-- `Array.prototype.copyWithin` (as introduced with ES6)
-- `Array.prototype.fill` (as introduced with ES6)
-- `Array.prototype.filter` (as updated with ES6)
-- `Array.prototype.findIndex` (as introduced with ES6)
-- `Array.prototype.map` (as updated with ES6)
-- `Array.prototype.separate`
-- `Array.prototype.slice` (as updated with ES6)
-- `Array.prototype.splice` (as updated with ES6)
-- `Function.prototype.copy`
-- `Math.acosh` (as introduced with ES6)
-- `Math.atanh` (as introduced with ES6)
-- `Math.cbrt` (as introduced with ES6)
-- `Math.clz32` (as introduced with ES6)
-- `Math.cosh` (as introduced with ES6)
-- `Math.expm1` (as introduced with ES6)
-- `Math.fround` (as introduced with ES6)
-- `Math.hypot` (as introduced with ES6)
-- `Math.imul` (as introduced with ES6)
-- `Math.log2` (as introduced with ES6)
-- `Math.log10` (as introduced with ES6)
-- `Math.log1p` (as introduced with ES6)
-- `Math.sinh` (as introduced with ES6)
-- `Math.tanh` (as introduced with ES6)
-- `Math.trunc` (as introduced with ES6)
-- `Number.EPSILON` (as introduced with ES6)
-- `Number.MIN_SAFE_INTEGER` (as introduced with ES6)
-- `Number.MAX_SAFE_INTEGER` (as introduced with ES6)
-- `Number.isFinite` (as introduced with ES6)
-- `Number.isInteger` (as introduced with ES6)
-- `Number.isSafeInteger` (as introduced with ES6)
-- `Object.create` (with fix for V8 issue which disallows prototype turn of
- objects derived from null
-- `Object.eq` - Less restrictive version of `Object.is` based on SameValueZero
- algorithm
-- `Object.firstKey`
-- `Object.keys` (as updated with ES6)
-- `Object.mixinPrototypes`
-- `Object.primitiveSet`
-- `Object.setPrototypeOf` (as introduced with ES6)
-- `Object.validObject`
-- `RegExp.escape`
-- `RegExp.prototype.match` (as introduced with ES6)
-- `RegExp.prototype.replace` (as introduced with ES6)
-- `RegExp.prototype.search` (as introduced with ES6)
-- `RegExp.prototype.split` (as introduced with ES6)
-- `RegExp.prototype.sticky` (as introduced with ES6)
-- `RegExp.prototype.unicode` (as introduced with ES6)
-- `String.fromCodePoint` (as introduced with ES6)
-- `String.raw` (as introduced with ES6)
-- `String.prototype.at`
-- `String.prototype.codePointAt` (as introduced with ES6)
-- `String.prototype.normalize` (as introduced with ES6)
-- `String.prototype.plainReplaceAll`
-
-Removals:
-- `reserved` set
-- `Array.prototype.commonLeft`
-- `Function.insert`
-- `Function.remove`
-- `Function.prototype.silent`
-- `Function.prototype.wrap`
-- `Object.descriptor` Move to external `d` project.
- See: https://github.com/medikoo/d
-- `Object.diff`
-- `Object.extendDeep`
-- `Object.reduce`
-- `Object.values`
-- `String.prototype.trimCommonLeft`
-
-Renames:
-- `Function.i` into `Function.identity`
-- `Function.k` into `Function.constant`
-- `Number.toInt` into `Number.toInteger`
-- `Number.toUint` into `Number.toPosInteger`
-- `Object.extend` into `Object.assign` (as introduced in ES 6)
-- `Object.extendProperties` into `Object.mixin`, with improved internal
- handling, so it matches temporarily specified `Object.mixin` for ECMAScript 6
-- `Object.isList` into `Object.isArrayLike`
-- `Object.mapToArray` into `Object.toArray` (with fixed function length)
-- `Object.toPlainObject` into `Object.normalizeOptions` (as this is the real
- use case where we use this function)
-- `Function.prototype.chain` into `Function.prototype.compose`
-- `Function.prototype.match` into `Function.prototype.spread`
-- `String.prototype.format` into `String.formatMethod`
-
-Improvements & Fixes:
-- Remove workaround for primitive values handling in object iterators
-- `Array.from`: Update so it follows ES 6 spec
-- `Array.prototype.compact`: filters just null and undefined values
- (not all falsies)
-- `Array.prototype.eIndexOf` and `Array.prototype.eLastIndexOf`: fix position
- handling, improve internals
-- `Array.prototype.find`: return undefined not null, in case of not found
- (follow ES 6)
-- `Array.prototype.remove` fix function length
-- `Error.custom`: simplify, Custom class case is addressed by outer
- `error-create` project -> https://github.com/medikoo/error-create
-- `Error.isError` true only for Error instances (remove detection of host
- Exception objects)
-- `Number.prototype.pad`: Normalize negative pad
-- `Object.clear`: Handle errors same way as in `Object.assign`
-- `Object.compact`: filters just null and undefined values (not all falsies)
-- `Object.compare`: Take into account NaN values
-- `Object.copy`: Split into `Object.copy` and `Object.copyDeep`
-- `Object.isCopy`: Separate into `Object.isCopy` and `Object.isCopyDeep`, where
- `isCopyDeep` handles nested plain objects and plain arrays only
-- `String.prototype.endsWith`: Adjust up to ES6 specification
-- `String.prototype.repeat`: Adjust up to ES6 specification and improve algorithm
-- `String.prototype.simpleReplace`: Rename into `String.prototype.plainReplace`
-- `String.prototype.startsWith`: Adjust up to ES6 specification
-- Update lint rules, and adjust code to that
-- Update Travis CI configuration
-- Remove Makefile (it's cross-env utility)
-
-v0.9.2 -- 2013.03.11
-Added:
-* Array.prototype.isCopy
-* Array.prototype.isUniq
-* Error.CustomError
-* Function.validFunction
-* Object.extendDeep
-* Object.descriptor.binder
-* Object.safeTraverse
-* RegExp.validRegExp
-* String.prototype.capitalize
-* String.prototype.simpleReplace
-
-Fixed:
-* Fix Array.prototype.diff for sparse arrays
-* Accept primitive objects as input values in Object iteration methods and
- Object.clear, Object.count, Object.diff, Object.extend,
- Object.getPropertyNames, Object.values
-* Pass expected arguments to callbacks of Object.filter, Object.mapKeys,
- Object.mapToArray, Object.map
-* Improve callable callback support in Object.mapToArray
-
-v0.9.1 -- 2012.09.17
-* Object.reduce - reduce for hash-like collections
-* Accapt any callable object as callback in Object.filter, mapKeys and map
-* Convention cleanup
-
-v0.9.0 -- 2012.09.13
-We're getting to real solid API
-
-Removed:
-* Function#memoize - it's grown up to be external package, to be soon published
- as 'memoizee'
-* String.guid - it doesn't fit es5-ext (extensions) concept, will be provided as
- external package
-# Function.arguments - obsolete
-# Function.context - obsolete
-# Function#flip - not readable when used, so it was never used
-# Object.clone - obsolete and confusing
-
-Added:
-* String#camelToHyphen - String format convertion
-
-Renamed:
-* String#dashToCamelCase -> String#hyphenToCamel
-
-Fixes:
-* Object.isObject - Quote names in literals that match reserved keywords
- (older implementations crashed on that)
-* String#repeat - Do not accept negative values (coerce them to 1)
-
-Improvements:
-* Array#remove - Accepts many arguments, we can now remove many values at once
-* Object iterators (forEach, map, some) - Compare function invoked with scope
- object bound to this
-* Function#curry - Algorithm cleanup
-* Object.isCopy - Support for all types, not just plain objects
-* Object.isPlainObject - Support for cross-frame objects
-* Do not memoize any of the functions, it shouldn't be decided internally
-* Remove Object.freeze calls in reserved, it's not up to convention
-* Improved documentation
-* Better linting (hard-core approach using both JSLint mod and JSHint)
-* Optional arguments are now documented in funtions signature
-
-v0.8.2 -- 2012.06.22
-Fix errors in Array's intersection and exclusion methods, related to improper
-usage of contains method
-
-v0.8.1 -- 2012.06.13
-Reorganized internal logic of Function.prototype.memoize. So it's more safe now
-and clears cache properly. Additionally preventCache option was provided.
-
-v0.8.0 -- 2012.05.28
-Again, major overhaul. Probably last experimental stuff was trashed, all API
-looks more like standard extensions now.
-
-Changes:
-* Turn all Object.prototype extensions into functions and move them to Object
-namespace. We learned that extending Object.prototype is bad idea in any case.
-* Rename Function.prototype.curry into Function.prototype.partial. This function
- is really doing partial application while currying is slightly different
- concept.
-* Convert Function.prototype.ncurry to new implementation of
- Function.prototype.curry, it now serves real curry concept additionaly it
- covers use cases for aritize and hold, which were removed.
-* Rename Array's peek to last, and provide support for sparse arrays in it
-* Rename Date's monthDaysCount into daysInMonth
-* Simplify object iterators, now order of iteration can be configured with just
- compareFn argument (no extra byKeys option)
-* Rename Object.isDuplicate to Object.isCopy
-* Rename Object.isEqual to Object.is which is compatible with future 'is'
- keyword
-* Function.memoize is now Function.prototype.memoize. Additionally clear cache
- functionality is added, and access to original arguments object.
-* Rename validation functions: assertNotNull to validValue, assertCallable to
- validCallable. validValue was moved to Object namespace. On success they now
- return validated value instead of true, it supports better composition.
- Additionally created Date.validDate and Error.validError
-* All documentation is now held in README.md not in code files.
-* Move guid to String namespace. All guids now start with numbers.
-* Array.generate: fill argument is now optional
-* Object.toArray is now Array.from (as new ES6 specification draft suggests)
-* All methods that rely on indexOf or lastIndexOf, now rely on egal (Object.is)
- versions of them (eIndexOf, eLastIndexOf)
-* Turn all get* functions that returned methods into actuall methods (get*
- functionality can still be achieved with help of Function.prototype.partial).
- So: Date.getFormat is now Date.prototype.format,
- Number.getPad is now Number.prototype.pad,
- String.getFormat is now String.prototype.format,
- String.getIndent is now String.prototype.indent,
- String.getPad is now String.prototype.pad
-* Refactored Object.descriptor, it is now just two functions, main one and
- main.gs, main is for describing values, and gs for describing getters and
- setters. Configuration is passed with first argument as string e.g. 'ce' for
- configurable and enumerable. If no configuration string is provided then by
- default it returns configurable and writable but not enumerable for value or
- configurable but not enumerable for getter/setter
-* Function.prototype.silent now returns prepared function (it was
- expected to be fixed for 0.7)
-* Reserved keywords map (reserved) is now array not hash.
-* Object.merge is now Object.extend (while former Object.extend was completely
- removed) - 'extend' implies that we change object, not creating new one (as
- 'merge' may imply). Similarily Object.mergeProperties was renamed to
- Object.extendProperties
-* Position argument support in Array.prototype.contains and
- String.prototype.contains (so it follows ES6 specification draft)
-* endPosition argument support in String.prototype.endsWith and fromPosition
- argument support in String.prototype.startsWith (so it follows ES6
- specification draft)
-* Better and cleaner String.prototype.indent implementation. No default value
- for indent string argument, optional nest value (defaults to 1), remove
- nostart argument
-* Correct length values for most methods (so they reflect length of similar
- methods in standard)
-* Length argument is now optional in number and string pad methods.
-* Improve arguments validation in general, so it adheres to standard conventions
-* Fixed format of package.json
-
-Removed methods and functions:
-* Object.prototype.slice - Object is not ordered collection, so slice doesn't
- make sense.
-* Function's rcurry, rncurry, s - too cumbersome for JS, not many use cases for
- that
-* Function.prototype.aritize and Function.prototype.hold - same functionality
- can be achieved with new Function.prototype.curry
-* Function.prototype.log - provided more generic Function.prototype.wrap for
- same use case
-* getNextIdGenerator - no use case for that (String.guid should be used if
- needed)
-* Object.toObject - Can be now acheived with Object(validValue(x))
-* Array.prototype.someValue - no real use case (personally used once and
- case was already controversial)
-* Date.prototype.duration - moved to external package
-* Number.getAutoincrement - No real use case
-* Object.prototype.extend, Object.prototype.override,
- Object.prototype.plainCreate, Object.prototype.plainExtend - It was probably
- too complex, same should be achieved just with Object.create,
- Object.descriptor and by saving references to super methods in local scope.
-* Object.getCompareBy - Functions should be created individually for each use
- case
-* Object.get, Object.getSet, Object.set, Object.unset - Not many use cases and
- same can be easily achieved with simple inline function
-* String.getPrefixWith - Not real use case for something that can be easily
- achieved with '+' operator
-* Object.isPrimitive - It's just negation of Object.isObject
-* Number.prototype.isLess, Number.prototype.isLessOrEqual - they shouldn't be in
- Number namespace and should rather be addressed with simple inline functions.
-* Number.prototype.subtract - Should rather be addressed with simple inline
- function
-
-New methods and functions:
-* Array.prototype.lastIndex - Returns last declared index in array
-* String.prototype.last - last for strings
-* Function.prototype.wrap - Wrap function with other, it allows to specify
- before and after behavior transform return value or prevent original function
- from being called.
-* Math.sign - Returns sign of a number (already in ES6 specification draft)
-* Number.toInt - Converts value to integer (already in ES6 specification draft)
-* Number.isNaN - Returns true if value is NaN (already in ES6 specification
- draft)
-* Number.toUint - Converts value to unsigned integer
-* Number.toUint32 - Converts value to 32bit unsigned integer
-* Array.prototype.eIndexOf, eLastIndexOf - Egal version (that uses Object.is) of
- standard methods (all methods that were using native indexOf or lastIndexOf
- now uses eIndexOf and elastIndexOf respectively)
-* Array.of - as it's specified for ES6
-
-Fixes:
-* Fixed binarySearch so it always returns valid list index
-* Object.isList - it failed on lists that are callable (e.g. NodeList in Nitro
- engine)
-* Object.map now supports third argument for callback
-
-v0.7.1 -- 2012.01.05
-New methods:
-* Array.prototype.firstIndex - returns first valid index of array (for
- sparse arrays it may not be '0'
-
-Improvements:
-* Array.prototype.first - now returns value for index returned by firstIndex
-* Object.prototype.mapToArray - can be called without callback, then array of
- key-value pairs is returned
-
-Fixes
-* Array.prototype.forEachRight, object's length read through UInt32 conversion
-
-v0.7.0 -- 2011.12.27
-Major update.
-Stepped back from experimental ideas and introduced more standard approach
-taking example from how ES5 methods and functions are designed. One exceptions
-is that, we don’t refrain from declaring methods for Object.prototype - it’s up
-to developer whether how he decides to use it in his context (as function or as
-method).
-
-In general:
-* Removed any method 'functionalization' and functionalize method itself.
- es5-ext declares plain methods, which can be configured to work as functions
- with call.bind(method) - see documentation.
-* Removed separation of Object methods for ES5 (with descriptors) and
- ES3 (plain) - we're following ES5 idea on that, some methods are intended just
- for enumerable properties and some are for all properties, all are declared
- for Object.prototype
-* Removed separation of Array generic (collected in List folder) and not generic
- methods (collected in Array folder). Now all methods are generic and are in
- Array/prototype folder. This separation also meant, that methods in Array are
- usually destructive. We don’t do that separation now, there’s generally no use
- case for destructive iterators, we should be fine with one version of each
- method, (same as ES5 is fine with e.g. one, non destructive 'filter' method)
-* Folder structure resembles tree of native ES5 Objects
-* All methods are written with ES5 conventions in mind, it means that most
- methods are generic and can be run on any object. In more detail:
- ** Array.prototype and Object.prototype methods can be run on any object (any
- not null or undefined value),
- ** Date.prototype methods should be called only on Date instances.
- ** Function.prototype methods can be called on any callable objects (not
- necessarily functions)
- ** Number.prototype & String.prototype methods can be called on any value, in
- case of Number it it’ll be degraded to number, in case of string it’ll be
- degraded to string.
-* Travis CI support (only for Node v0.6 branch, as v0.4 has buggy V8 version)
-
-Improvements for existing functions and methods:
-* Function.memoize (was Function.cache) is now fully generic, can operate on any
- type of arguments and it’s NaN safe (all NaN objects are considered equal)
-* Method properties passed to Object.prototype.extend or
- Object.prototype.override can aside of _super optionally take prototype object
- via _proto argument
-* Object iterators: forEach, mapToArray and every can now iterate in specified
- order
-* pluck, invoke and other functions that return reusable functions or methods
- have now their results memoized.
-
-New methods:
-* Global: assertNotNull, getNextIdGenerator, guid, isEqual, isPrimitive,
- toObject
-* Array: generate
-* Array.prototype: binarySearch, clear, contains, diff, exclusion, find, first,
- forEachRight, group, indexesOf, intersection, remove, someRight, someValue
-* Boolean: isBoolean
-* Date: isDate
-* Function: arguments, context, insert, isArguments, remove
-* Function.prototype: not, silent
-* Number: getAutoincrement, isNumber
-* Number.prototype: isLessOrEqual, isLess, subtract
-* Object: assertCallable, descriptor (functions for clean descriptors),
- getCompareBy, isCallable, isObject
-* Object.prototype: clone (real clone), compact, count, diff, empty,
- getPropertyNames, get, keyOf, mapKeys, override, plainCreate, plainExtend,
- slice, some, unset
-* RegExp: isRegExp
-* String: getPrefixWith, isString
-* String.prototype: caseInsensitiveCompare, contains, isNumeric
-
-Renamed methods:
-* Date.clone -> Date.prototype.copy
-* Date.format -> Date.getFormat
-* Date/day/floor -> Date.prototype.floorDay
-* Date/month/floor -> Date.prototype.floorMonth
-* Date/month/year -> Date.prototype.floorYear
-* Function.cache -> Function.memoize
-* Function.getApplyArg -> Function.prototype.match
-* Function.sequence -> Function.prototype.chain
-* List.findSameStartLength -> Array.prototype.commonLeft
-* Number.pad -> Number.getPad
-* Object/plain/clone -> Object.prototype.copy
-* Object/plain/elevate -> Object.prototype.flatten
-* Object/plain/same -> Object.prototype.isDuplicate
-* Object/plain/setValue -> Object.getSet
-* String.format -> String.getFormat
-* String.indent -> String.getIndent
-* String.pad -> String.getPad
-* String.trimLeftStr -> String.prototype.trimCommonLeft
-* Object.merge -> Object.prototype.mergeProperties
-* Object/plain/pluck -> Object.prototype.get
-* Array.clone is now Array.prototype.copy and can be used also on any array-like
- objects
-* List.isList -> Object.isList
-* List.toArray -> Object.prototype.toArray
-* String/convert/dashToCamelCase -> String.prototype.dashToCamelCase
-
-Removed methods:
-* Array.compact - removed destructive version (that operated on same array), we
- have now non destructive version as Array.prototype.compact.
-* Function.applyBind -> use apply.bind directly
-* Function.bindBind -> use bind.bind directly
-* Function.callBind -> use call.bind directly
-* Fuction.clone -> no valid use case
-* Function.dscope -> controversial approach, shouldn’t be considered seriously
-* Function.functionalize -> It was experimental but standards are standards
-* List/sort/length -> It can be easy obtained by Object.getCompareBy(‘length’)
-* List.concat -> Concat’s for array-like’s makes no sense, just convert to array
- first
-* List.every -> Use Array.prototype.every directly
-* List.filter -> Use Array.prototype.filter directly
-* List.forEach -> User Array.prototype.forEach directly
-* List.isListObject -> No valid use case, do: isList(list) && (typeof list ===
- 'object’)
-* List.map -> Use Array.prototype.map directly
-* List.reduce -> Use Array.prototype.reduce directly
-* List.shiftSame -> Use Array.prototype.commonLeft and do slice
-* List.slice -> Use Array.prototype.slice directly
-* List.some -> Use Array.prototype.some directly
-* Object.bindMethods -> it was version that considered descriptors, we have now
- Object.prototype.bindMethods which operates only on enumerable properties
-* Object.every -> version that considered all properties, we have now
- Object.prototype.every which iterates only enumerables
-* Object.invoke -> no use case
-* Object.mergeDeep -> no use case
-* Object.pluck -> no use case
-* Object.same -> it considered descriptors, now there’s only Object.isDuplicate
- which compares only enumerable properties
-* Object.sameType -> no use case
-* Object.toDescriptor and Object.toDescriptors -> replaced by much nicer
- Object.descriptor functions
-* Object/plain/link -> no use case (it was used internally only by
- Object/plain/merge)
-* Object/plain/setTrue -> now easily configurable by more universal
- Object.getSet(true)
-* String.trimRightStr -> Eventually String.prototype.trimCommonRight will be
- added
-
-v0.6.3 -- 2011.12.12
-* Cleared npm warning for misnamed property in package.json
-
-v0.6.2 -- 2011.08.12
-* Calling String.indent without scope (global scope then) now treated as calling
- it with null scope, it allows more direct invocations when using default nest
- string: indent().call(str, nest)
-
-v0.6.1 -- 2011.08.08
-* Added TAD test suite to devDependencies, configured test commands.
- Tests can be run with 'make test' or 'npm test'
-
-v0.6.0 -- 2011.08.07
-New methods:
-* Array: clone, compact (in place)
-* Date: format, duration, clone, monthDaysCount, day.floor, month.floor,
- year.floor
-* Function: getApplyArg, , ncurry, rncurry, hold, cache, log
-* List: findSameStartLength, shiftSame, peek, isListObject
-* Number: pad
-* Object: sameType, toString, mapToArray, mergeDeep, toDescriptor,
- toDescriptors, invoke
-* String: startsWith, endsWith, indent, trimLeftStr, trimRightStr, pad, format
-
-Fixed:
-* Object.extend does now prototypal extend as exptected
-* Object.merge now tries to overwrite only configurable properties
-* Function.flip
-
-Improved:
-* Faster List.toArray
-* Better global retrieval
-* Functionalized all Function methods
-* Renamed bindApply and bindCall to applyBind and callBind
-* Removed Function.inherit (as it's unintuitive curry clone)
-* Straightforward logic in Function.k
-* Fixed naming of some tests files (letter case issue)
-* Renamed Function.saturate into Function.lock
-* String.dashToCamelCase digits support
-* Strings now considered as List objects
-* Improved List.compact
-* Concise logic for List.concat
-* Test wit TAD in clean ES5 context
-
-v0.5.1 -- 2011.07.11
-* Function's bindBind, bindCall and bindApply now more versatile
-
-v0.5.0 -- 2011.07.07
-* Removed Object.is and List.apply
-* Renamed Object.plain.is to Object.plain.isPlainObject (keep naming convention
- consistent)
-* Improved documentation
-
-v0.4.0 -- 2011.07.05
-* Take most functions on Object to Object.plain to keep them away from object
- descriptors
-* Object functions with ES5 standard in mind (object descriptors)
-
-v0.3.0 -- 2011.06.24
-* New functions
-* Consistent file naming (dash instead of camelCase)
-
-v0.2.1 -- 2011.05.28
-* Renamed Functions.K and Function.S to to lowercase versions (use consistent
- naming)
-
-v0.2.0 -- 2011.05.28
-* Renamed Array folder to List (as its generic functions for array-like objects)
-* Added Makefile
-* Added various functions
-
-v0.1.0 -- 2011.05.24
-* Initial version
diff --git a/node_modules/es5-ext/LICENSE b/node_modules/es5-ext/LICENSE
deleted file mode 100644
index 89a96ea..0000000
--- a/node_modules/es5-ext/LICENSE
+++ /dev/null
@@ -1,15 +0,0 @@
-ISC License
-
-Copyright (c) 2011-2019, Mariusz Nowak, @medikoo, medikoo.com
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
diff --git a/node_modules/es5-ext/README.md b/node_modules/es5-ext/README.md
deleted file mode 100644
index c7f09cd..0000000
--- a/node_modules/es5-ext/README.md
+++ /dev/null
@@ -1,1039 +0,0 @@
-[![Build status][nix-build-image]][nix-build-url]
-[![Windows status][win-build-image]][win-build-url]
-![Transpilation status][transpilation-image]
-[![npm version][npm-image]][npm-url]
-
-# es5-ext
-
-## ECMAScript 5 extensions
-
-### (with respect to ECMAScript 6 standard)
-
-Shims for upcoming ES6 standard and other goodies implemented strictly with ECMAScript conventions in mind.
-
-It's designed to be used in compliant ECMAScript 5 or ECMAScript 6 environments. Older environments are not supported, although most of the features should work with correct ECMAScript 5 shim on board.
-
-When used in ECMAScript 6 environment, native implementation (if valid) takes precedence over shims.
-
-### Installation
-
- $ npm install es5-ext
-
-To port it to Browser or any other (non CJS) environment, use your favorite CJS bundler. No favorite yet? Try: [Browserify](http://browserify.org/), [Webmake](https://github.com/medikoo/modules-webmake) or [Webpack](http://webpack.github.io/)
-
-### Usage
-
-#### ECMAScript 6 features
-
-You can force ES6 features to be implemented in your environment, e.g. following will assign `from` function to `Array` (only if it's not implemented already).
-
-```javascript
-require("es5-ext/array/from/implement");
-Array.from("foo"); // ['f', 'o', 'o']
-```
-
-You can also access shims directly, without fixing native objects. Following will return native `Array.from` if it's available and fallback to shim if it's not.
-
-```javascript
-var aFrom = require("es5-ext/array/from");
-aFrom("foo"); // ['f', 'o', 'o']
-```
-
-If you want to use shim unconditionally (even if native implementation exists) do:
-
-```javascript
-var aFrom = require("es5-ext/array/from/shim");
-aFrom("foo"); // ['f', 'o', 'o']
-```
-
-##### List of ES6 shims
-
-It's about properties introduced with ES6 and those that have been updated in new spec.
-
-- `Array.from` -> `require('es5-ext/array/from')`
-- `Array.of` -> `require('es5-ext/array/of')`
-- `Array.prototype.concat` -> `require('es5-ext/array/#/concat')`
-- `Array.prototype.copyWithin` -> `require('es5-ext/array/#/copy-within')`
-- `Array.prototype.entries` -> `require('es5-ext/array/#/entries')`
-- `Array.prototype.fill` -> `require('es5-ext/array/#/fill')`
-- `Array.prototype.filter` -> `require('es5-ext/array/#/filter')`
-- `Array.prototype.find` -> `require('es5-ext/array/#/find')`
-- `Array.prototype.findIndex` -> `require('es5-ext/array/#/find-index')`
-- `Array.prototype.keys` -> `require('es5-ext/array/#/keys')`
-- `Array.prototype.map` -> `require('es5-ext/array/#/map')`
-- `Array.prototype.slice` -> `require('es5-ext/array/#/slice')`
-- `Array.prototype.splice` -> `require('es5-ext/array/#/splice')`
-- `Array.prototype.values` -> `require('es5-ext/array/#/values')`
-- `Array.prototype[@@iterator]` -> `require('es5-ext/array/#/@@iterator')`
-- `Math.acosh` -> `require('es5-ext/math/acosh')`
-- `Math.asinh` -> `require('es5-ext/math/asinh')`
-- `Math.atanh` -> `require('es5-ext/math/atanh')`
-- `Math.cbrt` -> `require('es5-ext/math/cbrt')`
-- `Math.clz32` -> `require('es5-ext/math/clz32')`
-- `Math.cosh` -> `require('es5-ext/math/cosh')`
-- `Math.exmp1` -> `require('es5-ext/math/expm1')`
-- `Math.fround` -> `require('es5-ext/math/fround')`
-- `Math.hypot` -> `require('es5-ext/math/hypot')`
-- `Math.imul` -> `require('es5-ext/math/imul')`
-- `Math.log1p` -> `require('es5-ext/math/log1p')`
-- `Math.log2` -> `require('es5-ext/math/log2')`
-- `Math.log10` -> `require('es5-ext/math/log10')`
-- `Math.sign` -> `require('es5-ext/math/sign')`
-- `Math.signh` -> `require('es5-ext/math/signh')`
-- `Math.tanh` -> `require('es5-ext/math/tanh')`
-- `Math.trunc` -> `require('es5-ext/math/trunc')`
-- `Number.EPSILON` -> `require('es5-ext/number/epsilon')`
-- `Number.MAX_SAFE_INTEGER` -> `require('es5-ext/number/max-safe-integer')`
-- `Number.MIN_SAFE_INTEGER` -> `require('es5-ext/number/min-safe-integer')`
-- `Number.isFinite` -> `require('es5-ext/number/is-finite')`
-- `Number.isInteger` -> `require('es5-ext/number/is-integer')`
-- `Number.isNaN` -> `require('es5-ext/number/is-nan')`
-- `Number.isSafeInteger` -> `require('es5-ext/number/is-safe-integer')`
-- `Object.assign` -> `require('es5-ext/object/assign')`
-- `Object.keys` -> `require('es5-ext/object/keys')`
-- `Object.setPrototypeOf` -> `require('es5-ext/object/set-prototype-of')`
-- `Promise.prototype.finally` -> `require('es5-ext/promise/#/finally')`
-- `RegExp.prototype.match` -> `require('es5-ext/reg-exp/#/match')`
-- `RegExp.prototype.replace` -> `require('es5-ext/reg-exp/#/replace')`
-- `RegExp.prototype.search` -> `require('es5-ext/reg-exp/#/search')`
-- `RegExp.prototype.split` -> `require('es5-ext/reg-exp/#/split')`
-- `RegExp.prototype.sticky` -> Implement with `require('es5-ext/reg-exp/#/sticky/implement')`, use as function with `require('es5-ext/reg-exp/#/is-sticky')`
-- `RegExp.prototype.unicode` -> Implement with `require('es5-ext/reg-exp/#/unicode/implement')`, use as function with `require('es5-ext/reg-exp/#/is-unicode')`
-- `String.fromCodePoint` -> `require('es5-ext/string/from-code-point')`
-- `String.raw` -> `require('es5-ext/string/raw')`
-- `String.prototype.codePointAt` -> `require('es5-ext/string/#/code-point-at')`
-- `String.prototype.contains` -> `require('es5-ext/string/#/contains')`
-- `String.prototype.endsWith` -> `require('es5-ext/string/#/ends-with')`
-- `String.prototype.normalize` -> `require('es5-ext/string/#/normalize')`
-- `String.prototype.repeat` -> `require('es5-ext/string/#/repeat')`
-- `String.prototype.startsWith` -> `require('es5-ext/string/#/starts-with')`
-- `String.prototype[@@iterator]` -> `require('es5-ext/string/#/@@iterator')`
-
-#### Non ECMAScript standard features
-
-**es5-ext** provides also other utils, and implements them as if they were proposed for a standard. It mostly offers methods (not functions) which can directly be assigned to native prototypes:
-
-```javascript
-Object.defineProperty(Function.prototype, "partial", {
- value: require("es5-ext/function/#/partial"),
- configurable: true,
- enumerable: false,
- writable: true
-});
-Object.defineProperty(Array.prototype, "flatten", {
- value: require("es5-ext/array/#/flatten"),
- configurable: true,
- enumerable: false,
- writable: true
-});
-Object.defineProperty(String.prototype, "capitalize", {
- value: require("es5-ext/string/#/capitalize"),
- configurable: true,
- enumerable: false,
- writable: true
-});
-```
-
-See [es5-extend](https://github.com/wookieb/es5-extend#es5-extend), a great utility that automatically will extend natives for you.
-
-**Important:** Remember to **not** extend natives in scope of generic reusable packages (e.g. ones you intend to publish to npm). Extending natives is fine **only** if you're the _owner_ of the global scope, so e.g. in final project you lead development of.
-
-When you're in situation when native extensions are not good idea, then you should use methods indirectly:
-
-```javascript
-var flatten = require("es5-ext/array/#/flatten");
-
-flatten.call([1, [2, [3, 4]]]); // [1, 2, 3, 4]
-```
-
-for better convenience you can turn methods into functions:
-
-```javascript
-var call = Function.prototype.call;
-var flatten = call.bind(require("es5-ext/array/#/flatten"));
-
-flatten([1, [2, [3, 4]]]); // [1, 2, 3, 4]
-```
-
-You can configure custom toolkit (like [underscorejs](http://underscorejs.org/)), and use it throughout your application
-
-```javascript
-var util = {};
-util.partial = call.bind(require("es5-ext/function/#/partial"));
-util.flatten = call.bind(require("es5-ext/array/#/flatten"));
-util.startsWith = call.bind(require("es5-ext/string/#/starts-with"));
-
-util.flatten([1, [2, [3, 4]]]); // [1, 2, 3, 4]
-```
-
-As with native ones most methods are generic and can be run on any type of object.
-
-## API
-
-### Global extensions
-
-#### global _(es5-ext/global)_
-
-Object that represents global scope
-
-### Array Constructor extensions
-
-#### from(arrayLike[, mapFn[, thisArg]]) _(es5-ext/array/from)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.from).
-Returns array representation of _iterable_ or _arrayLike_. If _arrayLike_ is an instance of array, its copy is returned.
-
-#### generate([length[, …fill]]) _(es5-ext/array/generate)_
-
-Generate an array of pre-given _length_ built of repeated arguments.
-
-#### isPlainArray(x) _(es5-ext/array/is-plain-array)_
-
-Returns true if object is plain array (not instance of one of the Array's extensions).
-
-#### of([…items]) _(es5-ext/array/of)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.of).
-Create an array from given arguments.
-
-#### toArray(obj) _(es5-ext/array/to-array)_
-
-Returns array representation of `obj`. If `obj` is already an array, `obj` is returned back.
-
-#### validArray(obj) _(es5-ext/array/valid-array)_
-
-Returns `obj` if it's an array, otherwise throws `TypeError`
-
-### Array Prototype extensions
-
-#### arr.binarySearch(compareFn) _(es5-ext/array/#/binary-search)_
-
-In **sorted** list search for index of item for which _compareFn_ returns value closest to _0_.
-It's variant of binary search algorithm
-
-#### arr.clear() _(es5-ext/array/#/clear)_
-
-Clears the array
-
-#### arr.compact() _(es5-ext/array/#/compact)_
-
-Returns a copy of the context with all non-values (`null` or `undefined`) removed.
-
-#### arr.concat() _(es5-ext/array/#/concat)_
-
-[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.concat).
-ES6's version of `concat`. Supports `isConcatSpreadable` symbol, and returns array of same type as the context.
-
-#### arr.contains(searchElement[, position]) _(es5-ext/array/#/contains)_
-
-Whether list contains the given value.
-
-#### arr.copyWithin(target, start[, end]) _(es5-ext/array/#/copy-within)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.copywithin).
-
-#### arr.diff(other) _(es5-ext/array/#/diff)_
-
-Returns the array of elements that are present in context list but not present in other list.
-
-#### arr.eIndexOf(searchElement[, fromIndex]) _(es5-ext/array/#/e-index-of)_
-
-_egal_ version of `indexOf` method. [_SameValueZero_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) logic is used for comparision
-
-#### arr.eLastIndexOf(searchElement[, fromIndex]) _(es5-ext/array/#/e-last-index-of)_
-
-_egal_ version of `lastIndexOf` method. [_SameValueZero_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) logic is used for comparision
-
-#### arr.entries() _(es5-ext/array/#/entries)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.entries).
-Returns iterator object, which traverses the array. Each value is represented with an array, where first value is an index and second is corresponding to index value.
-
-#### arr.exclusion([…lists]]) _(es5-ext/array/#/exclusion)_
-
-Returns the array of elements that are found only in one of the lists (either context list or list provided in arguments).
-
-#### arr.fill(value[, start, end]) _(es5-ext/array/#/fill)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.fill).
-
-#### arr.filter(callback[, thisArg]) _(es5-ext/array/#/filter)_
-
-[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.filter).
-ES6's version of `filter`, returns array of same type as the context.
-
-#### arr.find(predicate[, thisArg]) _(es5-ext/array/#/find)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.find).
-Return first element for which given function returns true
-
-#### arr.findIndex(predicate[, thisArg]) _(es5-ext/array/#/find-index)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.findindex).
-Return first index for which given function returns true
-
-#### arr.first() _(es5-ext/array/#/first)_
-
-Returns value for first defined index
-
-#### arr.firstIndex() _(es5-ext/array/#/first-index)_
-
-Returns first declared index of the array
-
-#### arr.flatten() _(es5-ext/array/#/flatten)_
-
-Returns flattened version of the array
-
-#### arr.forEachRight(cb[, thisArg]) _(es5-ext/array/#/for-each-right)_
-
-`forEach` starting from last element
-
-#### arr.group(cb[, thisArg]) _(es5-ext/array/#/group)_
-
-Group list elements by value returned by _cb_ function
-
-#### arr.indexesOf(searchElement[, fromIndex]) _(es5-ext/array/#/indexes-of)_
-
-Returns array of all indexes of given value
-
-#### arr.intersection([…lists]) _(es5-ext/array/#/intersection)_
-
-Computes the array of values that are the intersection of all lists (context list and lists given in arguments)
-
-#### arr.isCopy(other) _(es5-ext/array/#/is-copy)_
-
-Returns true if both context and _other_ lists have same content
-
-#### arr.isUniq() _(es5-ext/array/#/is-uniq)_
-
-Returns true if all values in array are unique
-
-#### arr.keys() _(es5-ext/array/#/keys)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.keys).
-Returns iterator object, which traverses all array indexes.
-
-#### arr.last() _(es5-ext/array/#/last)_
-
-Returns value of last defined index
-
-#### arr.lastIndex() _(es5-ext/array/#/last)_
-
-Returns last defined index of the array
-
-#### arr.map(callback[, thisArg]) _(es5-ext/array/#/map)_
-
-[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.map).
-ES6's version of `map`, returns array of same type as the context.
-
-#### arr.remove(value[, …valuen]) _(es5-ext/array/#/remove)_
-
-Remove values from the array
-
-#### arr.separate(sep) _(es5-ext/array/#/separate)_
-
-Returns array with items separated with `sep` value
-
-#### arr.slice(callback[, thisArg]) _(es5-ext/array/#/slice)_
-
-[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.slice).
-ES6's version of `slice`, returns array of same type as the context.
-
-#### arr.someRight(cb[, thisArg]) _(es5-ext/array/#/someRight)_
-
-`some` starting from last element
-
-#### arr.splice(callback[, thisArg]) _(es5-ext/array/#/splice)_
-
-[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.splice).
-ES6's version of `splice`, returns array of same type as the context.
-
-#### arr.uniq() _(es5-ext/array/#/uniq)_
-
-Returns duplicate-free version of the array
-
-#### arr.values() _(es5-ext/array/#/values)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype.values).
-Returns iterator object which traverses all array values.
-
-#### arr[@@iterator] _(es5-ext/array/#/@@iterator)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.prototype-@@iterator).
-Returns iterator object which traverses all array values.
-
-### Boolean Constructor extensions
-
-#### isBoolean(x) _(es5-ext/boolean/is-boolean)_
-
-Whether value is boolean
-
-### Date Constructor extensions
-
-#### isDate(x) _(es5-ext/date/is-date)_
-
-Whether value is date instance
-
-#### validDate(x) _(es5-ext/date/valid-date)_
-
-If given object is not date throw TypeError in other case return it.
-
-### Date Prototype extensions
-
-#### date.copy(date) _(es5-ext/date/#/copy)_
-
-Returns a copy of the date object
-
-#### date.daysInMonth() _(es5-ext/date/#/days-in-month)_
-
-Returns number of days of date's month
-
-#### date.floorDay() _(es5-ext/date/#/floor-day)_
-
-Sets the date time to 00:00:00.000
-
-#### date.floorMonth() _(es5-ext/date/#/floor-month)_
-
-Sets date day to 1 and date time to 00:00:00.000
-
-#### date.floorYear() _(es5-ext/date/#/floor-year)_
-
-Sets date month to 0, day to 1 and date time to 00:00:00.000
-
-#### date.format(pattern) _(es5-ext/date/#/format)_
-
-Formats date up to given string. Supported patterns:
-
-- `%Y` - Year with century, 1999, 2003
-- `%y` - Year without century, 99, 03
-- `%m` - Month, 01..12
-- `%d` - Day of the month 01..31
-- `%H` - Hour (24-hour clock), 00..23
-- `%M` - Minute, 00..59
-- `%S` - Second, 00..59
-- `%L` - Milliseconds, 000..999
-
-### Error Constructor extensions
-
-#### custom(message/_, code, ext_/) _(es5-ext/error/custom)_
-
-Creates custom error object, optinally extended with `code` and other extension properties (provided with `ext` object)
-
-#### isError(x) _(es5-ext/error/is-error)_
-
-Whether value is an error (instance of `Error`).
-
-#### validError(x) _(es5-ext/error/valid-error)_
-
-If given object is not error throw TypeError in other case return it.
-
-### Error Prototype extensions
-
-#### err.throw() _(es5-ext/error/#/throw)_
-
-Throws error
-
-### Function Constructor extensions
-
-Some of the functions were inspired by [Functional JavaScript](http://osteele.com/sources/javascript/functional/) project by Olivier Steele
-
-#### constant(x) _(es5-ext/function/constant)_
-
-Returns a constant function that returns pregiven argument
-
-_k(x)(y) =def x_
-
-#### identity(x) _(es5-ext/function/identity)_
-
-Identity function. Returns first argument
-
-_i(x) =def x_
-
-#### invoke(name[, …args]) _(es5-ext/function/invoke)_
-
-Returns a function that takes an object as an argument, and applies object's
-_name_ method to arguments.
-_name_ can be name of the method or method itself.
-
-_invoke(name, …args)(object, …args2) =def object\[name\]\(…args, …args2\)_
-
-#### isArguments(x) _(es5-ext/function/is-arguments)_
-
-Whether value is arguments object
-
-#### isFunction(arg) _(es5-ext/function/is-function)_
-
-Whether value is instance of function
-
-#### noop() _(es5-ext/function/noop)_
-
-No operation function
-
-#### pluck(name) _(es5-ext/function/pluck)_
-
-Returns a function that takes an object, and returns the value of its _name_
-property
-
-_pluck(name)(obj) =def obj[name]_
-
-#### validFunction(arg) _(es5-ext/function/valid-function)_
-
-If given object is not function throw TypeError in other case return it.
-
-### Function Prototype extensions
-
-Some of the methods were inspired by [Functional JavaScript](http://osteele.com/sources/javascript/functional/) project by Olivier Steele
-
-#### fn.compose([…fns]) _(es5-ext/function/#/compose)_
-
-Applies the functions in reverse argument-list order.
-
-_f1.compose(f2, f3, f4)(…args) =def f1(f2(f3(f4(…arg))))_
-
-`compose` can also be used in plain function form as:
-
-_compose(f1, f2, f3, f4)(…args) =def f1(f2(f3(f4(…arg))))_
-
-#### fn.copy() _(es5-ext/function/#/copy)_
-
-Produces copy of given function
-
-#### fn.curry([n]) _(es5-ext/function/#/curry)_
-
-Invoking the function returned by this function only _n_ arguments are passed to the underlying function. If the underlying function is not saturated, the result is a function that passes all its arguments to the underlying function.
-If _n_ is not provided then it defaults to context function length
-
-_f.curry(4)(arg1, arg2)(arg3)(arg4) =def f(arg1, args2, arg3, arg4)_
-
-#### fn.lock([…args]) _(es5-ext/function/#/lock)_
-
-Returns a function that applies the underlying function to _args_, and ignores its own arguments.
-
-_f.lock(…args)(…args2) =def f(…args)_
-
-_Named after it's counterpart in Google Closure_
-
-#### fn.not() _(es5-ext/function/#/not)_
-
-Returns a function that returns boolean negation of value returned by underlying function.
-
-_f.not()(…args) =def !f(…args)_
-
-#### fn.partial([…args]) _(es5-ext/function/#/partial)_
-
-Returns a function that when called will behave like context function called with initially passed arguments. If more arguments are suplilied, they are appended to initial args.
-
-_f.partial(…args1)(…args2) =def f(…args1, …args2)_
-
-#### fn.spread() _(es5-ext/function/#/spread)_
-
-Returns a function that applies underlying function with first list argument
-
-_f.match()(args) =def f.apply(null, args)_
-
-#### fn.toStringTokens() _(es5-ext/function/#/to-string-tokens)_
-
-Serializes function into two (arguments and body) string tokens. Result is plain object with `args` and `body` properties.
-
-### Math extensions
-
-#### acosh(x) _(es5-ext/math/acosh)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.acosh).
-
-#### asinh(x) _(es5-ext/math/asinh)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.asinh).
-
-#### atanh(x) _(es5-ext/math/atanh)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.atanh).
-
-#### cbrt(x) _(es5-ext/math/cbrt)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.cbrt).
-
-#### clz32(x) _(es5-ext/math/clz32)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.clz32).
-
-#### cosh(x) _(es5-ext/math/cosh)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.cosh).
-
-#### expm1(x) _(es5-ext/math/expm1)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.expm1).
-
-#### fround(x) _(es5-ext/math/fround)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.fround).
-
-#### hypot([…values]) _(es5-ext/math/hypot)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.hypot).
-
-#### imul(x, y) _(es5-ext/math/imul)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.imul).
-
-#### log1p(x) _(es5-ext/math/log1p)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.log1p).
-
-#### log2(x) _(es5-ext/math/log2)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.log2).
-
-#### log10(x) _(es5-ext/math/log10)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.log10).
-
-#### sign(x) _(es5-ext/math/sign)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.sign).
-
-#### sinh(x) _(es5-ext/math/sinh)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.sinh).
-
-#### tanh(x) _(es5-ext/math/tanh)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.tanh).
-
-#### trunc(x) _(es5-ext/math/trunc)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-math.trunc).
-
-### Number Constructor extensions
-
-#### EPSILON _(es5-ext/number/epsilon)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.epsilon).
-
-The difference between 1 and the smallest value greater than 1 that is representable as a Number value, which is approximately 2.2204460492503130808472633361816 x 10-16.
-
-#### isFinite(x) _(es5-ext/number/is-finite)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.isfinite).
-Whether value is finite. Differs from global isNaN that it doesn't do type coercion.
-
-#### isInteger(x) _(es5-ext/number/is-integer)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.isinteger).
-Whether value is integer.
-
-#### isNaN(x) _(es5-ext/number/is-nan)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.isnan).
-Whether value is NaN. Differs from global isNaN that it doesn't do type coercion.
-
-#### isNumber(x) _(es5-ext/number/is-number)_
-
-Whether given value is number
-
-#### isSafeInteger(x) _(es5-ext/number/is-safe-integer)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.issafeinteger).
-
-#### MAX*SAFE_INTEGER *(es5-ext/number/max-safe-integer)\_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.maxsafeinteger).
-The value of Number.MAX_SAFE_INTEGER is 9007199254740991.
-
-#### MIN*SAFE_INTEGER *(es5-ext/number/min-safe-integer)\_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.minsafeinteger).
-The value of Number.MIN_SAFE_INTEGER is -9007199254740991 (253-1).
-
-#### toInteger(x) _(es5-ext/number/to-integer)_
-
-Converts value to integer
-
-#### toPosInteger(x) _(es5-ext/number/to-pos-integer)_
-
-Converts value to positive integer. If provided value is less than 0, then 0 is returned
-
-#### toUint32(x) _(es5-ext/number/to-uint32)_
-
-Converts value to unsigned 32 bit integer. This type is used for array lengths.
-See: http://www.2ality.com/2012/02/js-integers.html
-
-### Number Prototype extensions
-
-#### num.pad(length[, precision]) _(es5-ext/number/#/pad)_
-
-Pad given number with zeros. Returns string
-
-### Object Constructor extensions
-
-#### assign(target, source[, …sourcen]) _(es5-ext/object/assign)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign).
-Extend _target_ by enumerable own properties of other objects. If properties are already set on target object, they will be overwritten.
-
-#### clear(obj) _(es5-ext/object/clear)_
-
-Remove all enumerable own properties of the object
-
-#### compact(obj) _(es5-ext/object/compact)_
-
-Returns copy of the object with all enumerable properties that have no falsy values
-
-#### compare(obj1, obj2) _(es5-ext/object/compare)_
-
-Universal cross-type compare function. To be used for e.g. array sort.
-
-#### copy(obj) _(es5-ext/object/copy)_
-
-Returns copy of the object with all enumerable properties.
-
-#### copyDeep(obj) _(es5-ext/object/copy-deep)_
-
-Returns deep copy of the object with all enumerable properties.
-
-#### count(obj) _(es5-ext/object/count)_
-
-Counts number of enumerable own properties on object
-
-#### create(obj[, properties]) _(es5-ext/object/create)_
-
-`Object.create` alternative that provides workaround for [V8 issue](http://code.google.com/p/v8/issues/detail?id=2804).
-
-When `null` is provided as a prototype, it's substituted with specially prepared object that derives from Object.prototype but has all Object.prototype properties shadowed with undefined.
-
-It's quirky solution that allows us to have plain objects with no truthy properties but with turnable prototype.
-
-Use only for objects that you plan to switch prototypes of and be aware of limitations of this workaround.
-
-#### eq(x, y) _(es5-ext/object/eq)_
-
-Whether two values are equal, using [_SameValueZero_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) algorithm.
-
-#### every(obj, cb[, thisArg[, compareFn]]) _(es5-ext/object/every)_
-
-Analogous to Array.prototype.every. Returns true if every key-value pair in this object satisfies the provided testing function.
-Optionally _compareFn_ can be provided which assures that keys are tested in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key).
-
-#### filter(obj, cb[, thisArg]) _(es5-ext/object/filter)_
-
-Analogous to Array.prototype.filter. Returns new object with properites for which _cb_ function returned truthy value.
-
-#### firstKey(obj) _(es5-ext/object/first-key)_
-
-Returns first enumerable key of the object, as keys are unordered by specification, it can be any key of an object.
-
-#### flatten(obj) _(es5-ext/object/flatten)_
-
-Returns new object, with flatten properties of input object
-
-_flatten({ a: { b: 1 }, c: { d: 1 } }) =def { b: 1, d: 1 }_
-
-#### forEach(obj, cb[, thisArg[, compareFn]]) _(es5-ext/object/for-each)_
-
-Analogous to Array.prototype.forEach. Calls a function for each key-value pair found in object
-Optionally _compareFn_ can be provided which assures that properties are iterated in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key).
-
-#### getPropertyNames() _(es5-ext/object/get-property-names)_
-
-Get all (not just own) property names of the object
-
-#### is(x, y) _(es5-ext/object/is)_
-
-Whether two values are equal, using [_SameValue_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero) algorithm.
-
-#### isArrayLike(x) _(es5-ext/object/is-array-like)_
-
-Whether object is array-like object
-
-#### isCopy(x, y) _(es5-ext/object/is-copy)_
-
-Two values are considered a copy of same value when all of their own enumerable properties have same values.
-
-#### isCopyDeep(x, y) _(es5-ext/object/is-copy-deep)_
-
-Deep comparision of objects
-
-#### isEmpty(obj) _(es5-ext/object/is-empty)_
-
-True if object doesn't have any own enumerable property
-
-#### isObject(arg) _(es5-ext/object/is-object)_
-
-Whether value is not primitive
-
-#### isPlainObject(arg) _(es5-ext/object/is-plain-object)_
-
-Whether object is plain object, its protototype should be Object.prototype and it cannot be host object.
-
-#### keyOf(obj, searchValue) _(es5-ext/object/key-of)_
-
-Search object for value
-
-#### keys(obj) _(es5-ext/object/keys)_
-
-[_Updated with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.keys).
-ES6's version of `keys`, doesn't throw on primitive input
-
-#### map(obj, cb[, thisArg]) _(es5-ext/object/map)_
-
-Analogous to Array.prototype.map. Creates a new object with properties which values are results of calling a provided function on every key-value pair in this object.
-
-#### mapKeys(obj, cb[, thisArg]) _(es5-ext/object/map-keys)_
-
-Create new object with same values, but remapped keys
-
-#### mixin(target, source) _(es5-ext/object/mixin)_
-
-Extend _target_ by all own properties of other objects. Properties found in both objects will be overwritten (unless they're not configurable and cannot be overwritten).
-_It was for a moment part of ECMAScript 6 draft._
-
-#### mixinPrototypes(target, …source]) _(es5-ext/object/mixin-prototypes)_
-
-Extends _target_, with all source and source's prototype properties.
-Useful as an alternative for `setPrototypeOf` in environments in which it cannot be shimmed (no `__proto__` support).
-
-#### normalizeOptions(options) _(es5-ext/object/normalize-options)_
-
-Normalizes options object into flat plain object.
-
-Useful for functions in which we either need to keep options object for future reference or need to modify it for internal use.
-
-- It never returns input `options` object back (always a copy is created)
-- `options` can be undefined in such case empty plain object is returned.
-- Copies all enumerable properties found down prototype chain.
-
-#### primitiveSet([…names]) _(es5-ext/object/primitive-set)_
-
-Creates `null` prototype based plain object, and sets on it all property names provided in arguments to true.
-
-#### safeTraverse(obj[, …names]) _(es5-ext/object/safe-traverse)_
-
-Safe navigation of object properties. See http://wiki.ecmascript.org/doku.php?id=strawman:existential_operator
-
-#### serialize(value) _(es5-ext/object/serialize)_
-
-Serialize value into string. Differs from [JSON.stringify](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify) that it serializes also dates, functions and regular expresssions.
-
-#### setPrototypeOf(object, proto) _(es5-ext/object/set-prototype-of)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.setprototypeof).
-If native version is not provided, it depends on existence of `__proto__` functionality, if it's missing, `null` instead of function is exposed.
-
-#### some(obj, cb[, thisArg[, compareFn]]) _(es5-ext/object/some)_
-
-Analogous to Array.prototype.some Returns true if any key-value pair satisfies the provided
-testing function.
-Optionally _compareFn_ can be provided which assures that keys are tested in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key).
-
-#### toArray(obj[, cb[, thisArg[, compareFn]]]) _(es5-ext/object/to-array)_
-
-Creates an array of results of calling a provided function on every key-value pair in this object.
-Optionally _compareFn_ can be provided which assures that results are added in given order. If provided _compareFn_ is equal to `true`, then order is alphabetical (by key).
-
-#### unserialize(str) _(es5-ext/object/unserialize)_
-
-Userializes value previously serialized with [serialize](#serializevalue-es5-extobjectserialize)
-
-#### validCallable(x) _(es5-ext/object/valid-callable)_
-
-If given object is not callable throw TypeError in other case return it.
-
-#### validObject(x) _(es5-ext/object/valid-object)_
-
-Throws error if given value is not an object, otherwise it is returned.
-
-#### validValue(x) _(es5-ext/object/valid-value)_
-
-Throws error if given value is `null` or `undefined`, otherwise returns value.
-
-### Promise Prototype extensions
-
-#### promise.finally(onFinally) _(es5-ext/promise/#/finally)_
-
-[_Introduced with ECMAScript 2018_](https://tc39.github.io/ecma262/#sec-promise.prototype.finally).
-
-### RegExp Constructor extensions
-
-#### escape(str) _(es5-ext/reg-exp/escape)_
-
-Escapes string to be used in regular expression
-
-#### isRegExp(x) _(es5-ext/reg-exp/is-reg-exp)_
-
-Whether object is regular expression
-
-#### validRegExp(x) _(es5-ext/reg-exp/valid-reg-exp)_
-
-If object is regular expression it is returned, otherwise TypeError is thrown.
-
-### RegExp Prototype extensions
-
-#### re.isSticky(x) _(es5-ext/reg-exp/#/is-sticky)_
-
-Whether regular expression has `sticky` flag.
-
-It's to be used as counterpart to [regExp.sticky](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-get-regexp.prototype.sticky) if it's not implemented.
-
-#### re.isUnicode(x) _(es5-ext/reg-exp/#/is-unicode)_
-
-Whether regular expression has `unicode` flag.
-
-It's to be used as counterpart to [regExp.unicode](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-get-regexp.prototype.unicode) if it's not implemented.
-
-#### re.match(string) _(es5-ext/reg-exp/#/match)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.match).
-
-#### re.replace(string, replaceValue) _(es5-ext/reg-exp/#/replace)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.replace).
-
-#### re.search(string) _(es5-ext/reg-exp/#/search)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.search).
-
-#### re.split(string) _(es5-ext/reg-exp/#/search)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.split).
-
-#### re.sticky _(es5-ext/reg-exp/#/sticky/implement)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.sticky).
-It's a getter, so only `implement` and `is-implemented` modules are provided.
-
-#### re.unicode _(es5-ext/reg-exp/#/unicode/implement)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-regexp.prototype.unicode).
-It's a getter, so only `implement` and `is-implemented` modules are provided.
-
-### String Constructor extensions
-
-#### formatMethod(fMap) _(es5-ext/string/format-method)_
-
-Creates format method. It's used e.g. to create `Date.prototype.format` method
-
-#### fromCodePoint([…codePoints]) _(es5-ext/string/from-code-point)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.fromcodepoint)
-
-#### isString(x) _(es5-ext/string/is-string)_
-
-Whether object is string
-
-#### randomUniq() _(es5-ext/string/random-uniq)_
-
-Returns randomly generated id, with guarantee of local uniqueness (no same id will be returned twice)
-
-#### raw(callSite[, …substitutions]) _(es5-ext/string/raw)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.raw)
-
-### String Prototype extensions
-
-#### str.at(pos) _(es5-ext/string/#/at)_
-
-_Proposed for ECMAScript 6/7 standard, but not (yet) in a draft_
-
-Returns a string at given position in Unicode-safe manner.
-Based on [implementation by Mathias Bynens](https://github.com/mathiasbynens/String.prototype.at).
-
-#### str.camelToHyphen() _(es5-ext/string/#/camel-to-hyphen)_
-
-Convert camelCase string to hyphen separated, e.g. one-two-three -> oneTwoThree.
-Useful when converting names from js property convention into filename convention.
-
-#### str.capitalize() _(es5-ext/string/#/capitalize)_
-
-Capitalize first character of a string
-
-#### str.caseInsensitiveCompare(str) _(es5-ext/string/#/case-insensitive-compare)_
-
-Case insensitive compare
-
-#### str.codePointAt(pos) _(es5-ext/string/#/code-point-at)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.codepointat)
-
-Based on [implementation by Mathias Bynens](https://github.com/mathiasbynens/String.prototype.codePointAt).
-
-#### str.contains(searchString[, position]) _(es5-ext/string/#/contains)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.contains)
-
-Whether string contains given string.
-
-#### str.endsWith(searchString[, endPosition]) _(es5-ext/string/#/ends-with)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.endswith).
-Whether strings ends with given string
-
-#### str.hyphenToCamel() _(es5-ext/string/#/hyphen-to-camel)_
-
-Convert hyphen separated string to camelCase, e.g. one-two-three -> oneTwoThree.
-Useful when converting names from filename convention to js property name convention.
-
-#### str.indent(str[, count]) _(es5-ext/string/#/indent)_
-
-Indents each line with provided _str_ (if _count_ given then _str_ is repeated _count_ times).
-
-#### str.last() _(es5-ext/string/#/last)_
-
-Return last character
-
-#### str.normalize([form]) _(es5-ext/string/#/normalize)_
-
-[_Introduced with ECMAScript 6_](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize).
-Returns the Unicode Normalization Form of a given string.
-Based on Matsuza's version. Code used for integrated shim can be found at [github.com/walling/unorm](https://github.com/walling/unorm/blob/master/lib/unorm.js)
-
-#### str.pad(fill[, length]) _(es5-ext/string/#/pad)_
-
-Pad string with _fill_.
-If _length_ si given than _fill_ is reapated _length_ times.
-If _length_ is negative then pad is applied from right.
-
-#### str.repeat(n) _(es5-ext/string/#/repeat)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.repeat).
-Repeat given string _n_ times
-
-#### str.plainReplace(search, replace) _(es5-ext/string/#/plain-replace)_
-
-Simple `replace` version. Doesn't support regular expressions. Replaces just first occurrence of search string. Doesn't support insert patterns, therefore it is safe to replace text with text obtained programmatically (there's no need for additional _\$_ characters escape in such case).
-
-#### str.plainReplaceAll(search, replace) _(es5-ext/string/#/plain-replace-all)_
-
-Simple `replace` version. Doesn't support regular expressions. Replaces all occurrences of search string. Doesn't support insert patterns, therefore it is safe to replace text with text obtained programmatically (there's no need for additional _\$_ characters escape in such case).
-
-#### str.startsWith(searchString[, position]) _(es5-ext/string/#/starts-with)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype.startswith).
-Whether strings starts with given string
-
-#### str[@@iterator] _(es5-ext/string/#/@@iterator)_
-
-[_Introduced with ECMAScript 6_](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype-@@iterator).
-Returns iterator object which traverses all string characters (with respect to unicode symbols)
-
-### Tests
-
- $ npm test
-
-## Security contact information
-
-To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security). Tidelift will coordinate the fix and disclosure.
-
-## es5-ext for enterprise
-
-Available as part of the Tidelift Subscription
-
-The maintainers of es5-ext and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-es5-ext?utm_source=npm-es5-ext&utm_medium=referral&utm_campaign=enterprise&utm_term=repo)
-
-[nix-build-image]: https://semaphoreci.com/api/v1/medikoo-org/es5-ext/branches/master/shields_badge.svg
-[nix-build-url]: https://semaphoreci.com/medikoo-org/es5-ext
-[win-build-image]: https://ci.appveyor.com/api/projects/status/3jox67ksw3p8hkwh/branch/master?svg=true
-[win-build-url]: https://ci.appveyor.com/project/medikoo/es5-ext
-[transpilation-image]: https://img.shields.io/badge/transpilation-free-brightgreen.svg
-[npm-image]: https://img.shields.io/npm/v/es5-ext.svg
-[npm-url]: https://www.npmjs.com/package/es5-ext
diff --git a/node_modules/es5-ext/array/#/@@iterator/implement.js b/node_modules/es5-ext/array/#/@@iterator/implement.js
deleted file mode 100644
index 8073f2b..0000000
--- a/node_modules/es5-ext/array/#/@@iterator/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Array.prototype, require("es6-symbol").iterator, {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/array/#/@@iterator/index.js b/node_modules/es5-ext/array/#/@@iterator/index.js
deleted file mode 100644
index 1d0a389..0000000
--- a/node_modules/es5-ext/array/#/@@iterator/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")()
- ? Array.prototype[require("es6-symbol").iterator]
- : require("./shim");
diff --git a/node_modules/es5-ext/array/#/@@iterator/is-implemented.js b/node_modules/es5-ext/array/#/@@iterator/is-implemented.js
deleted file mode 100644
index 6445c04..0000000
--- a/node_modules/es5-ext/array/#/@@iterator/is-implemented.js
+++ /dev/null
@@ -1,16 +0,0 @@
-"use strict";
-
-var iteratorSymbol = require("es6-symbol").iterator;
-
-module.exports = function () {
- var arr = ["foo", 1], iterator, result;
- if (typeof arr[iteratorSymbol] !== "function") return false;
- iterator = arr[iteratorSymbol]();
- if (!iterator) return false;
- if (typeof iterator.next !== "function") return false;
- result = iterator.next();
- if (!result) return false;
- if (result.value !== "foo") return false;
- if (result.done !== false) return false;
- return true;
-};
diff --git a/node_modules/es5-ext/array/#/@@iterator/shim.js b/node_modules/es5-ext/array/#/@@iterator/shim.js
deleted file mode 100644
index 307b1c0..0000000
--- a/node_modules/es5-ext/array/#/@@iterator/shim.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("../values/shim");
diff --git a/node_modules/es5-ext/array/#/_compare-by-length.js b/node_modules/es5-ext/array/#/_compare-by-length.js
deleted file mode 100644
index db5a040..0000000
--- a/node_modules/es5-ext/array/#/_compare-by-length.js
+++ /dev/null
@@ -1,7 +0,0 @@
-// Used internally to sort array of lists by length
-
-"use strict";
-
-var toPosInt = require("../../number/to-pos-integer");
-
-module.exports = function (arr1, arr2) { return toPosInt(arr1.length) - toPosInt(arr2.length); };
diff --git a/node_modules/es5-ext/array/#/binary-search.js b/node_modules/es5-ext/array/#/binary-search.js
deleted file mode 100644
index bdabe27..0000000
--- a/node_modules/es5-ext/array/#/binary-search.js
+++ /dev/null
@@ -1,27 +0,0 @@
-"use strict";
-
-var toPosInt = require("../../number/to-pos-integer")
- , callable = require("../../object/valid-callable")
- , value = require("../../object/valid-value")
- , floor = Math.floor;
-
-module.exports = function (compareFn) {
- var length, low, high, middle;
-
- value(this);
- callable(compareFn);
-
- length = toPosInt(this.length);
- low = 0;
- high = length - 1;
-
- while (low <= high) {
- middle = floor((low + high) / 2);
- if (compareFn(this[middle]) < 0) high = middle - 1;
- else low = middle + 1;
- }
-
- if (high < 0) return 0;
- if (high >= length) return length - 1;
- return high;
-};
diff --git a/node_modules/es5-ext/array/#/clear.js b/node_modules/es5-ext/array/#/clear.js
deleted file mode 100644
index fd539c9..0000000
--- a/node_modules/es5-ext/array/#/clear.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Inspired by Google Closure:
-// http://closure-library.googlecode.com/svn/docs/
-// closure_goog_array_array.js.html#goog.array.clear
-
-"use strict";
-
-var value = require("../../object/valid-value");
-
-module.exports = function () {
- value(this).length = 0;
- return this;
-};
diff --git a/node_modules/es5-ext/array/#/compact.js b/node_modules/es5-ext/array/#/compact.js
deleted file mode 100644
index 462e100..0000000
--- a/node_modules/es5-ext/array/#/compact.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// Inspired by: http://documentcloud.github.com/underscore/#compact
-
-"use strict";
-
-var isValue = require("../../object/is-value");
-
-var filter = Array.prototype.filter;
-
-module.exports = function () {
- return filter.call(this, function (val) { return isValue(val); });
-};
diff --git a/node_modules/es5-ext/array/#/concat/implement.js b/node_modules/es5-ext/array/#/concat/implement.js
deleted file mode 100644
index 714a3c1..0000000
--- a/node_modules/es5-ext/array/#/concat/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Array.prototype, "concat", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/array/#/concat/index.js b/node_modules/es5-ext/array/#/concat/index.js
deleted file mode 100644
index deac0ee..0000000
--- a/node_modules/es5-ext/array/#/concat/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Array.prototype.concat : require("./shim");
diff --git a/node_modules/es5-ext/array/#/concat/is-implemented.js b/node_modules/es5-ext/array/#/concat/is-implemented.js
deleted file mode 100644
index ba5a154..0000000
--- a/node_modules/es5-ext/array/#/concat/is-implemented.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var SubArray = require("../../_sub-array-dummy-safe");
-
-module.exports = function () { return new SubArray().concat("foo") instanceof SubArray; };
diff --git a/node_modules/es5-ext/array/#/concat/shim.js b/node_modules/es5-ext/array/#/concat/shim.js
deleted file mode 100644
index 7e00f27..0000000
--- a/node_modules/es5-ext/array/#/concat/shim.js
+++ /dev/null
@@ -1,44 +0,0 @@
-"use strict";
-
-var isPlainArray = require("../../is-plain-array")
- , toPosInt = require("../../../number/to-pos-integer")
- , isObject = require("../../../object/is-object")
- , isConcatSpreadable = require("es6-symbol").isConcatSpreadable
- , isArray = Array.isArray
- , concat = Array.prototype.concat
- , forEach = Array.prototype.forEach
- , isSpreadable;
-
-isSpreadable = function (value) {
- if (!value) return false;
- if (!isObject(value)) return false;
- if (value[isConcatSpreadable] !== undefined) {
- return Boolean(value[isConcatSpreadable]);
- }
- return isArray(value);
-};
-
-// eslint-disable-next-line no-unused-vars
-module.exports = function (item/*, …items*/) {
- var result;
- if (!this || !isArray(this) || isPlainArray(this)) {
- return concat.apply(this, arguments);
- }
- result = new this.constructor();
- if (isSpreadable(this)) {
- forEach.call(this, function (val, i) { result[i] = val; });
- } else {
- result[0] = this;
- }
- forEach.call(arguments, function (arg) {
- var base;
- if (isSpreadable(arg)) {
- base = result.length;
- result.length += toPosInt(arg.length);
- forEach.call(arg, function (val, i) { result[base + i] = val; });
- return;
- }
- result.push(arg);
- });
- return result;
-};
diff --git a/node_modules/es5-ext/array/#/contains.js b/node_modules/es5-ext/array/#/contains.js
deleted file mode 100644
index cde6850..0000000
--- a/node_modules/es5-ext/array/#/contains.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-var indexOf = require("./e-index-of");
-
-module.exports = function (searchElement/*, position*/) {
- return indexOf.call(this, searchElement, arguments[1]) > -1;
-};
diff --git a/node_modules/es5-ext/array/#/copy-within/implement.js b/node_modules/es5-ext/array/#/copy-within/implement.js
deleted file mode 100644
index 4658fcb..0000000
--- a/node_modules/es5-ext/array/#/copy-within/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Array.prototype, "copyWithin", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/array/#/copy-within/index.js b/node_modules/es5-ext/array/#/copy-within/index.js
deleted file mode 100644
index 37db0ec..0000000
--- a/node_modules/es5-ext/array/#/copy-within/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Array.prototype.copyWithin : require("./shim");
diff --git a/node_modules/es5-ext/array/#/copy-within/is-implemented.js b/node_modules/es5-ext/array/#/copy-within/is-implemented.js
deleted file mode 100644
index 40c499e..0000000
--- a/node_modules/es5-ext/array/#/copy-within/is-implemented.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function () {
- var arr = [1, 2, 3, 4, 5];
- if (typeof arr.copyWithin !== "function") return false;
- return String(arr.copyWithin(1, 3)) === "1,4,5,4,5";
-};
diff --git a/node_modules/es5-ext/array/#/copy-within/shim.js b/node_modules/es5-ext/array/#/copy-within/shim.js
deleted file mode 100644
index 6ed7e44..0000000
--- a/node_modules/es5-ext/array/#/copy-within/shim.js
+++ /dev/null
@@ -1,45 +0,0 @@
-// Taken from: https://github.com/paulmillr/es6-shim/
-
-"use strict";
-
-var toInteger = require("../../../number/to-integer")
- , toPosInt = require("../../../number/to-pos-integer")
- , validValue = require("../../../object/valid-value")
- , objHasOwnProperty = Object.prototype.hasOwnProperty
- , max = Math.max
- , min = Math.min;
-
-module.exports = function (target, start/*, end*/) {
- var arr = validValue(this)
- , end = arguments[2]
- , length = toPosInt(arr.length)
- , to
- , from
- , fin
- , count
- , direction;
-
- target = toInteger(target);
- start = toInteger(start);
- end = end === undefined ? length : toInteger(end);
-
- to = target < 0 ? max(length + target, 0) : min(target, length);
- from = start < 0 ? max(length + start, 0) : min(start, length);
- fin = end < 0 ? max(length + end, 0) : min(end, length);
- count = min(fin - from, length - to);
- direction = 1;
-
- if (from < to && to < from + count) {
- direction = -1;
- from += count - 1;
- to += count - 1;
- }
- while (count > 0) {
- if (objHasOwnProperty.call(arr, from)) arr[to] = arr[from];
- else delete arr[from];
- from += direction;
- to += direction;
- count -= 1;
- }
- return arr;
-};
diff --git a/node_modules/es5-ext/array/#/diff.js b/node_modules/es5-ext/array/#/diff.js
deleted file mode 100644
index 002e6a3..0000000
--- a/node_modules/es5-ext/array/#/diff.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-var value = require("../../object/valid-value")
- , contains = require("./contains")
- , filter = Array.prototype.filter;
-
-module.exports = function (other) {
- value(this);
- value(other);
- return filter.call(this, function (item) { return !contains.call(other, item); });
-};
diff --git a/node_modules/es5-ext/array/#/e-index-of.js b/node_modules/es5-ext/array/#/e-index-of.js
deleted file mode 100644
index e3ed14e..0000000
--- a/node_modules/es5-ext/array/#/e-index-of.js
+++ /dev/null
@@ -1,28 +0,0 @@
-"use strict";
-
-var numberIsNaN = require("../../number/is-nan")
- , toPosInt = require("../../number/to-pos-integer")
- , value = require("../../object/valid-value")
- , indexOf = Array.prototype.indexOf
- , objHasOwnProperty = Object.prototype.hasOwnProperty
- , abs = Math.abs
- , floor = Math.floor;
-
-module.exports = function (searchElement/*, fromIndex*/) {
- var i, length, fromIndex, val;
- if (!numberIsNaN(searchElement)) return indexOf.apply(this, arguments);
-
- length = toPosInt(value(this).length);
- fromIndex = arguments[1];
- if (isNaN(fromIndex)) fromIndex = 0;
- else if (fromIndex >= 0) fromIndex = floor(fromIndex);
- else fromIndex = toPosInt(this.length) - floor(abs(fromIndex));
-
- for (i = fromIndex; i < length; ++i) {
- if (objHasOwnProperty.call(this, i)) {
- val = this[i];
- if (numberIsNaN(val)) return i; // Jslint: ignore
- }
- }
- return -1;
-};
diff --git a/node_modules/es5-ext/array/#/e-last-index-of.js b/node_modules/es5-ext/array/#/e-last-index-of.js
deleted file mode 100644
index 2f6a38a..0000000
--- a/node_modules/es5-ext/array/#/e-last-index-of.js
+++ /dev/null
@@ -1,31 +0,0 @@
-"use strict";
-
-var numberIsNaN = require("../../number/is-nan")
- , toPosInt = require("../../number/to-pos-integer")
- , value = require("../../object/valid-value")
- , lastIndexOf = Array.prototype.lastIndexOf
- , objHasOwnProperty = Object.prototype.hasOwnProperty
- , abs = Math.abs
- , floor = Math.floor;
-
-module.exports = function (searchElement/*, fromIndex*/) {
- var i, fromIndex, val;
- if (!numberIsNaN(searchElement)) {
- // Jslint: ignore
- return lastIndexOf.apply(this, arguments);
- }
-
- value(this);
- fromIndex = arguments[1];
- if (isNaN(fromIndex)) fromIndex = toPosInt(this.length) - 1;
- else if (fromIndex >= 0) fromIndex = floor(fromIndex);
- else fromIndex = toPosInt(this.length) - floor(abs(fromIndex));
-
- for (i = fromIndex; i >= 0; --i) {
- if (objHasOwnProperty.call(this, i)) {
- val = this[i];
- if (numberIsNaN(val)) return i; // Jslint: ignore
- }
- }
- return -1;
-};
diff --git a/node_modules/es5-ext/array/#/entries/implement.js b/node_modules/es5-ext/array/#/entries/implement.js
deleted file mode 100644
index b89ce44..0000000
--- a/node_modules/es5-ext/array/#/entries/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Array.prototype, "entries", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/array/#/entries/index.js b/node_modules/es5-ext/array/#/entries/index.js
deleted file mode 100644
index e7588f7..0000000
--- a/node_modules/es5-ext/array/#/entries/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Array.prototype.entries : require("./shim");
diff --git a/node_modules/es5-ext/array/#/entries/is-implemented.js b/node_modules/es5-ext/array/#/entries/is-implemented.js
deleted file mode 100644
index 335f1c2..0000000
--- a/node_modules/es5-ext/array/#/entries/is-implemented.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-module.exports = function () {
- var arr = [1, "foo"], iterator, result;
- if (typeof arr.entries !== "function") return false;
- iterator = arr.entries();
- if (!iterator) return false;
- if (typeof iterator.next !== "function") return false;
- result = iterator.next();
- if (!result || !result.value) return false;
- if (result.value[0] !== 0) return false;
- if (result.value[1] !== 1) return false;
- if (result.done !== false) return false;
- return true;
-};
diff --git a/node_modules/es5-ext/array/#/entries/shim.js b/node_modules/es5-ext/array/#/entries/shim.js
deleted file mode 100644
index f47af86..0000000
--- a/node_modules/es5-ext/array/#/entries/shim.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-
-var ArrayIterator = require("es6-iterator/array");
-module.exports = function () { return new ArrayIterator(this, "key+value"); };
diff --git a/node_modules/es5-ext/array/#/exclusion.js b/node_modules/es5-ext/array/#/exclusion.js
deleted file mode 100644
index 4e9e71d..0000000
--- a/node_modules/es5-ext/array/#/exclusion.js
+++ /dev/null
@@ -1,25 +0,0 @@
-"use strict";
-
-var value = require("../../object/valid-value")
- , aFrom = require("../from")
- , toArray = require("../to-array")
- , contains = require("./contains")
- , byLength = require("./_compare-by-length")
- , filter = Array.prototype.filter
- , push = Array.prototype.push;
-
-module.exports = function (/* …lists*/) {
- var lists, seen, result;
- if (!arguments.length) return aFrom(this);
- push.apply((lists = [this]), arguments);
- lists.forEach(value);
- seen = [];
- result = [];
- lists.sort(byLength).forEach(function (list) {
- result = result
- .filter(function (item) { return !contains.call(list, item); })
- .concat(filter.call(list, function (item) { return !contains.call(seen, item); }));
- push.apply(seen, toArray(list));
- });
- return result;
-};
diff --git a/node_modules/es5-ext/array/#/fill/implement.js b/node_modules/es5-ext/array/#/fill/implement.js
deleted file mode 100644
index 0efad16..0000000
--- a/node_modules/es5-ext/array/#/fill/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Array.prototype, "fill", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/array/#/fill/index.js b/node_modules/es5-ext/array/#/fill/index.js
deleted file mode 100644
index 6a66ae1..0000000
--- a/node_modules/es5-ext/array/#/fill/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Array.prototype.fill : require("./shim");
diff --git a/node_modules/es5-ext/array/#/fill/is-implemented.js b/node_modules/es5-ext/array/#/fill/is-implemented.js
deleted file mode 100644
index 5d6d02e..0000000
--- a/node_modules/es5-ext/array/#/fill/is-implemented.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function () {
- var arr = [1, 2, 3, 4, 5, 6];
- if (typeof arr.fill !== "function") return false;
- return String(arr.fill(-1, -3)) === "1,2,3,-1,-1,-1";
-};
diff --git a/node_modules/es5-ext/array/#/fill/shim.js b/node_modules/es5-ext/array/#/fill/shim.js
deleted file mode 100644
index 2327d35..0000000
--- a/node_modules/es5-ext/array/#/fill/shim.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Taken from: https://github.com/paulmillr/es6-shim/
-
-"use strict";
-
-var toInteger = require("../../../number/to-integer")
- , toPosInt = require("../../../number/to-pos-integer")
- , validValue = require("../../../object/valid-value")
- , max = Math.max
- , min = Math.min;
-
-module.exports = function (value/*, start, end*/) {
- var arr = validValue(this)
- , start = arguments[1]
- , end = arguments[2]
- , length = toPosInt(arr.length)
- , relativeStart
- , i;
-
- start = start === undefined ? 0 : toInteger(start);
- end = end === undefined ? length : toInteger(end);
-
- relativeStart = start < 0 ? max(length + start, 0) : min(start, length);
- for (i = relativeStart; i < length && i < end; ++i) arr[i] = value;
- return arr;
-};
diff --git a/node_modules/es5-ext/array/#/filter/implement.js b/node_modules/es5-ext/array/#/filter/implement.js
deleted file mode 100644
index 76f4a5e..0000000
--- a/node_modules/es5-ext/array/#/filter/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Array.prototype, "filter", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/array/#/filter/index.js b/node_modules/es5-ext/array/#/filter/index.js
deleted file mode 100644
index 9a25c9b..0000000
--- a/node_modules/es5-ext/array/#/filter/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Array.prototype.filter : require("./shim");
diff --git a/node_modules/es5-ext/array/#/filter/is-implemented.js b/node_modules/es5-ext/array/#/filter/is-implemented.js
deleted file mode 100644
index 6082513..0000000
--- a/node_modules/es5-ext/array/#/filter/is-implemented.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-var SubArray = require("../../_sub-array-dummy-safe")
- , pass = function () { return true; };
-
-module.exports = function () { return new SubArray().filter(pass) instanceof SubArray; };
diff --git a/node_modules/es5-ext/array/#/filter/shim.js b/node_modules/es5-ext/array/#/filter/shim.js
deleted file mode 100644
index d4ca0cd..0000000
--- a/node_modules/es5-ext/array/#/filter/shim.js
+++ /dev/null
@@ -1,23 +0,0 @@
-"use strict";
-
-var isPlainArray = require("../../is-plain-array")
- , callable = require("../../../object/valid-callable")
- , isArray = Array.isArray
- , filter = Array.prototype.filter
- , forEach = Array.prototype.forEach
- , call = Function.prototype.call;
-
-module.exports = function (callbackFn/*, thisArg*/) {
- var result, thisArg, i;
- if (!this || !isArray(this) || isPlainArray(this)) {
- return filter.apply(this, arguments);
- }
- callable(callbackFn);
- thisArg = arguments[1];
- result = new this.constructor();
- i = 0;
- forEach.call(this, function (val, j, self) {
- if (call.call(callbackFn, thisArg, val, j, self)) result[i++] = val;
- });
- return result;
-};
diff --git a/node_modules/es5-ext/array/#/find-index/implement.js b/node_modules/es5-ext/array/#/find-index/implement.js
deleted file mode 100644
index 4e14e29..0000000
--- a/node_modules/es5-ext/array/#/find-index/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Array.prototype, "findIndex", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/array/#/find-index/index.js b/node_modules/es5-ext/array/#/find-index/index.js
deleted file mode 100644
index 5e07d8d..0000000
--- a/node_modules/es5-ext/array/#/find-index/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Array.prototype.findIndex : require("./shim");
diff --git a/node_modules/es5-ext/array/#/find-index/is-implemented.js b/node_modules/es5-ext/array/#/find-index/is-implemented.js
deleted file mode 100644
index 72aa28f..0000000
--- a/node_modules/es5-ext/array/#/find-index/is-implemented.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-var fn = function (value) { return value > 3; };
-
-module.exports = function () {
- var arr = [1, 2, 3, 4, 5, 6];
- if (typeof arr.findIndex !== "function") return false;
- return arr.findIndex(fn) === 3;
-};
diff --git a/node_modules/es5-ext/array/#/find-index/shim.js b/node_modules/es5-ext/array/#/find-index/shim.js
deleted file mode 100644
index 7db9bef..0000000
--- a/node_modules/es5-ext/array/#/find-index/shim.js
+++ /dev/null
@@ -1,26 +0,0 @@
-"use strict";
-
-var callable = require("../../../object/valid-callable")
- , ensureValue = require("../../../object/valid-value")
- , some = Array.prototype.some
- , apply = Function.prototype.apply;
-
-module.exports = function (predicate/*, thisArg*/) {
- var k, self;
- self = Object(ensureValue(this));
- callable(predicate);
-
- return some.call(
- self,
- function (value, index) {
- if (apply.call(predicate, this, arguments)) {
- k = index;
- return true;
- }
- return false;
- },
- arguments[1]
- )
- ? k
- : -1;
-};
diff --git a/node_modules/es5-ext/array/#/find/implement.js b/node_modules/es5-ext/array/#/find/implement.js
deleted file mode 100644
index 66035a5..0000000
--- a/node_modules/es5-ext/array/#/find/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Array.prototype, "find", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/array/#/find/index.js b/node_modules/es5-ext/array/#/find/index.js
deleted file mode 100644
index 2f9d0d6..0000000
--- a/node_modules/es5-ext/array/#/find/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Array.prototype.find : require("./shim");
diff --git a/node_modules/es5-ext/array/#/find/is-implemented.js b/node_modules/es5-ext/array/#/find/is-implemented.js
deleted file mode 100644
index 8fdacb1..0000000
--- a/node_modules/es5-ext/array/#/find/is-implemented.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-var fn = function (value) { return value > 3; };
-
-module.exports = function () {
- var arr = [1, 2, 3, 4, 5, 6];
- if (typeof arr.find !== "function") return false;
- return arr.find(fn) === 4;
-};
diff --git a/node_modules/es5-ext/array/#/find/shim.js b/node_modules/es5-ext/array/#/find/shim.js
deleted file mode 100644
index bbb0442..0000000
--- a/node_modules/es5-ext/array/#/find/shim.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-var findIndex = require("../find-index/shim");
-
-// eslint-disable-next-line no-unused-vars
-module.exports = function (predicate/*, thisArg*/) {
- var index = findIndex.apply(this, arguments);
- return index === -1 ? undefined : this[index];
-};
diff --git a/node_modules/es5-ext/array/#/first-index.js b/node_modules/es5-ext/array/#/first-index.js
deleted file mode 100644
index 19bff54..0000000
--- a/node_modules/es5-ext/array/#/first-index.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-var toPosInt = require("../../number/to-pos-integer")
- , value = require("../../object/valid-value")
- , objHasOwnProperty = Object.prototype.hasOwnProperty;
-
-module.exports = function () {
- var i, length;
- if (!(length = toPosInt(value(this).length))) return null;
- i = 0;
- while (!objHasOwnProperty.call(this, i)) {
- if (++i === length) return null;
- }
- return i;
-};
diff --git a/node_modules/es5-ext/array/#/first.js b/node_modules/es5-ext/array/#/first.js
deleted file mode 100644
index ca76833..0000000
--- a/node_modules/es5-ext/array/#/first.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-var firstIndex = require("./first-index");
-
-module.exports = function () {
- var i;
- if ((i = firstIndex.call(this)) !== null) return this[i];
- return undefined;
-};
diff --git a/node_modules/es5-ext/array/#/flatten.js b/node_modules/es5-ext/array/#/flatten.js
deleted file mode 100644
index 4016727..0000000
--- a/node_modules/es5-ext/array/#/flatten.js
+++ /dev/null
@@ -1,40 +0,0 @@
-// Stack grow safe implementation
-
-"use strict";
-
-var ensureValue = require("../../object/valid-value")
- , isArray = Array.isArray
- , objHasOwnProperty = Object.prototype.hasOwnProperty;
-
-module.exports = function () {
- var input = ensureValue(this), index = 0, remaining, remainingIndexes, length, i, result = [];
- // Jslint: ignore
- main: while (input) {
- length = input.length;
- for (i = index; i < length; ++i) {
- if (!objHasOwnProperty.call(input, i)) continue;
- if (isArray(input[i])) {
- if (i < length - 1) {
- // eslint-disable-next-line max-depth
- if (!remaining) {
- remaining = [];
- remainingIndexes = [];
- }
- remaining.push(input);
- remainingIndexes.push(i + 1);
- }
- input = input[i];
- index = 0;
- continue main;
- }
- result.push(input[i]);
- }
- if (remaining) {
- input = remaining.pop();
- index = remainingIndexes.pop();
- } else {
- input = null;
- }
- }
- return result;
-};
diff --git a/node_modules/es5-ext/array/#/for-each-right.js b/node_modules/es5-ext/array/#/for-each-right.js
deleted file mode 100644
index 1c6bccc..0000000
--- a/node_modules/es5-ext/array/#/for-each-right.js
+++ /dev/null
@@ -1,19 +0,0 @@
-"use strict";
-
-var toPosInt = require("../../number/to-pos-integer")
- , callable = require("../../object/valid-callable")
- , value = require("../../object/valid-value")
- , objHasOwnProperty = Object.prototype.hasOwnProperty
- , call = Function.prototype.call;
-
-module.exports = function (cb/*, thisArg*/) {
- var i, self, thisArg;
-
- self = Object(value(this));
- callable(cb);
- thisArg = arguments[1];
-
- for (i = toPosInt(self.length) - 1; i >= 0; --i) {
- if (objHasOwnProperty.call(self, i)) call.call(cb, thisArg, self[i], i, self);
- }
-};
diff --git a/node_modules/es5-ext/array/#/group.js b/node_modules/es5-ext/array/#/group.js
deleted file mode 100644
index 7f40e8a..0000000
--- a/node_modules/es5-ext/array/#/group.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Inspired by Underscore's groupBy:
-// http://documentcloud.github.com/underscore/#groupBy
-
-"use strict";
-
-var callable = require("../../object/valid-callable")
- , value = require("../../object/valid-value")
- , forEach = Array.prototype.forEach
- , apply = Function.prototype.apply;
-
-module.exports = function (cb/*, thisArg*/) {
- var result;
-
- value(this);
- callable(cb);
-
- result = Object.create(null);
- forEach.call(
- this,
- function (item) {
- var key = apply.call(cb, this, arguments);
- if (!result[key]) result[key] = [];
- result[key].push(item);
- },
- arguments[1]
- );
- return result;
-};
diff --git a/node_modules/es5-ext/array/#/index.js b/node_modules/es5-ext/array/#/index.js
deleted file mode 100644
index 596e83b..0000000
--- a/node_modules/es5-ext/array/#/index.js
+++ /dev/null
@@ -1,41 +0,0 @@
-"use strict";
-
-module.exports = {
- "@@iterator": require("./@@iterator"),
- "binarySearch": require("./binary-search"),
- "clear": require("./clear"),
- "compact": require("./compact"),
- "concat": require("./concat"),
- "contains": require("./contains"),
- "copyWithin": require("./copy-within"),
- "diff": require("./diff"),
- "eIndexOf": require("./e-index-of"),
- "eLastIndexOf": require("./e-last-index-of"),
- "entries": require("./entries"),
- "exclusion": require("./exclusion"),
- "fill": require("./fill"),
- "filter": require("./filter"),
- "find": require("./find"),
- "findIndex": require("./find-index"),
- "first": require("./first"),
- "firstIndex": require("./first-index"),
- "flatten": require("./flatten"),
- "forEachRight": require("./for-each-right"),
- "keys": require("./keys"),
- "group": require("./group"),
- "indexesOf": require("./indexes-of"),
- "intersection": require("./intersection"),
- "isCopy": require("./is-copy"),
- "isEmpty": require("./is-empty"),
- "isUniq": require("./is-uniq"),
- "last": require("./last"),
- "lastIndex": require("./last-index"),
- "map": require("./map"),
- "remove": require("./remove"),
- "separate": require("./separate"),
- "slice": require("./slice"),
- "someRight": require("./some-right"),
- "splice": require("./splice"),
- "uniq": require("./uniq"),
- "values": require("./values")
-};
diff --git a/node_modules/es5-ext/array/#/indexes-of.js b/node_modules/es5-ext/array/#/indexes-of.js
deleted file mode 100644
index 1b92132..0000000
--- a/node_modules/es5-ext/array/#/indexes-of.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-var indexOf = require("./e-index-of");
-
-module.exports = function (value/*, fromIndex*/) {
- var result = [], i, fromIndex = arguments[1];
- while ((i = indexOf.call(this, value, fromIndex)) !== -1) {
- result.push(i);
- fromIndex = i + 1;
- }
- return result;
-};
diff --git a/node_modules/es5-ext/array/#/intersection.js b/node_modules/es5-ext/array/#/intersection.js
deleted file mode 100644
index 7dca9dc..0000000
--- a/node_modules/es5-ext/array/#/intersection.js
+++ /dev/null
@@ -1,19 +0,0 @@
-"use strict";
-
-var value = require("../../object/valid-value")
- , contains = require("./contains")
- , byLength = require("./_compare-by-length")
- , filter = Array.prototype.filter
- , push = Array.prototype.push
- , slice = Array.prototype.slice;
-
-module.exports = function (/* …list*/) {
- var lists;
- if (!arguments.length) slice.call(this);
- push.apply((lists = [this]), arguments);
- lists.forEach(value);
- lists.sort(byLength);
- return lists.reduce(function (list1, list2) {
- return filter.call(list1, function (item) { return contains.call(list2, item); });
- });
-};
diff --git a/node_modules/es5-ext/array/#/is-copy.js b/node_modules/es5-ext/array/#/is-copy.js
deleted file mode 100644
index 1413b95..0000000
--- a/node_modules/es5-ext/array/#/is-copy.js
+++ /dev/null
@@ -1,21 +0,0 @@
-"use strict";
-
-var toPosInt = require("../../number/to-pos-integer")
- , eq = require("../../object/eq")
- , value = require("../../object/valid-value")
- , objHasOwnProperty = Object.prototype.hasOwnProperty;
-
-module.exports = function (other) {
- var i, length;
- value(this);
- value(other);
- length = toPosInt(this.length);
- if (length !== toPosInt(other.length)) return false;
- for (i = 0; i < length; ++i) {
- if (objHasOwnProperty.call(this, i) !== objHasOwnProperty.call(other, i)) {
- return false;
- }
- if (!eq(this[i], other[i])) return false;
- }
- return true;
-};
diff --git a/node_modules/es5-ext/array/#/is-empty.js b/node_modules/es5-ext/array/#/is-empty.js
deleted file mode 100644
index 9b336fe..0000000
--- a/node_modules/es5-ext/array/#/is-empty.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-var ensureArray = require("../../object/ensure-array")
- , firstIndex = require("./first-index");
-
-module.exports = function () { return firstIndex.call(ensureArray(this)) === null; };
diff --git a/node_modules/es5-ext/array/#/is-uniq.js b/node_modules/es5-ext/array/#/is-uniq.js
deleted file mode 100644
index 75f7734..0000000
--- a/node_modules/es5-ext/array/#/is-uniq.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-var indexOf = require("./e-index-of")
- , every = Array.prototype.every
- , isFirst;
-
-isFirst = function (value, index) { return indexOf.call(this, value) === index; };
-
-module.exports = function () { return every.call(this, isFirst, this); };
diff --git a/node_modules/es5-ext/array/#/keys/implement.js b/node_modules/es5-ext/array/#/keys/implement.js
deleted file mode 100644
index 101a5e3..0000000
--- a/node_modules/es5-ext/array/#/keys/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Array.prototype, "keys", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/array/#/keys/index.js b/node_modules/es5-ext/array/#/keys/index.js
deleted file mode 100644
index c8753e5..0000000
--- a/node_modules/es5-ext/array/#/keys/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Array.prototype.keys : require("./shim");
diff --git a/node_modules/es5-ext/array/#/keys/is-implemented.js b/node_modules/es5-ext/array/#/keys/is-implemented.js
deleted file mode 100644
index 70a171f..0000000
--- a/node_modules/es5-ext/array/#/keys/is-implemented.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-
-module.exports = function () {
- var arr = [1, "foo"], iterator, result;
- if (typeof arr.keys !== "function") return false;
- iterator = arr.keys();
- if (!iterator) return false;
- if (typeof iterator.next !== "function") return false;
- result = iterator.next();
- if (!result) return false;
- if (result.value !== 0) return false;
- if (result.done !== false) return false;
- return true;
-};
diff --git a/node_modules/es5-ext/array/#/keys/shim.js b/node_modules/es5-ext/array/#/keys/shim.js
deleted file mode 100644
index 8136cdc..0000000
--- a/node_modules/es5-ext/array/#/keys/shim.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-
-var ArrayIterator = require("es6-iterator/array");
-module.exports = function () { return new ArrayIterator(this, "key"); };
diff --git a/node_modules/es5-ext/array/#/last-index.js b/node_modules/es5-ext/array/#/last-index.js
deleted file mode 100644
index 74aaba4..0000000
--- a/node_modules/es5-ext/array/#/last-index.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-var toPosInt = require("../../number/to-pos-integer")
- , value = require("../../object/valid-value")
- , objHasOwnProperty = Object.prototype.hasOwnProperty;
-
-module.exports = function () {
- var i, length;
- if (!(length = toPosInt(value(this).length))) return null;
- i = length - 1;
- while (!objHasOwnProperty.call(this, i)) {
- if (--i === -1) return null;
- }
- return i;
-};
diff --git a/node_modules/es5-ext/array/#/last.js b/node_modules/es5-ext/array/#/last.js
deleted file mode 100644
index 38bb359..0000000
--- a/node_modules/es5-ext/array/#/last.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-var lastIndex = require("./last-index");
-
-module.exports = function () {
- var i;
- if ((i = lastIndex.call(this)) !== null) return this[i];
- return undefined;
-};
diff --git a/node_modules/es5-ext/array/#/map/implement.js b/node_modules/es5-ext/array/#/map/implement.js
deleted file mode 100644
index 42e0b47..0000000
--- a/node_modules/es5-ext/array/#/map/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Array.prototype, "map", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/array/#/map/index.js b/node_modules/es5-ext/array/#/map/index.js
deleted file mode 100644
index 49e0267..0000000
--- a/node_modules/es5-ext/array/#/map/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Array.prototype.map : require("./shim");
diff --git a/node_modules/es5-ext/array/#/map/is-implemented.js b/node_modules/es5-ext/array/#/map/is-implemented.js
deleted file mode 100644
index f09bd7d..0000000
--- a/node_modules/es5-ext/array/#/map/is-implemented.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-var identity = require("../../../function/identity")
- , SubArray = require("../../_sub-array-dummy-safe");
-
-module.exports = function () { return new SubArray().map(identity) instanceof SubArray; };
diff --git a/node_modules/es5-ext/array/#/map/shim.js b/node_modules/es5-ext/array/#/map/shim.js
deleted file mode 100644
index 288be93..0000000
--- a/node_modules/es5-ext/array/#/map/shim.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-
-var isPlainArray = require("../../is-plain-array")
- , callable = require("../../../object/valid-callable")
- , isArray = Array.isArray
- , map = Array.prototype.map
- , forEach = Array.prototype.forEach
- , call = Function.prototype.call;
-
-module.exports = function (callbackFn/*, thisArg*/) {
- var result, thisArg;
- if (!this || !isArray(this) || isPlainArray(this)) {
- return map.apply(this, arguments);
- }
- callable(callbackFn);
- thisArg = arguments[1];
- result = new this.constructor(this.length);
- forEach.call(this, function (val, i, self) {
- result[i] = call.call(callbackFn, thisArg, val, i, self);
- });
- return result;
-};
diff --git a/node_modules/es5-ext/array/#/remove.js b/node_modules/es5-ext/array/#/remove.js
deleted file mode 100644
index 7e12664..0000000
--- a/node_modules/es5-ext/array/#/remove.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-var indexOf = require("./e-index-of")
- , forEach = Array.prototype.forEach
- , splice = Array.prototype.splice;
-
-// eslint-disable-next-line no-unused-vars
-module.exports = function (itemToRemove/*, …item*/) {
- forEach.call(
- arguments,
- function (item) {
- var index = indexOf.call(this, item);
- if (index !== -1) splice.call(this, index, 1);
- },
- this
- );
-};
diff --git a/node_modules/es5-ext/array/#/separate.js b/node_modules/es5-ext/array/#/separate.js
deleted file mode 100644
index 248662f..0000000
--- a/node_modules/es5-ext/array/#/separate.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-var forEach = Array.prototype.forEach;
-
-module.exports = function (sep) {
- var result = [];
- forEach.call(this, function (val) { result.push(val, sep); });
- result.pop();
- return result;
-};
diff --git a/node_modules/es5-ext/array/#/slice/implement.js b/node_modules/es5-ext/array/#/slice/implement.js
deleted file mode 100644
index 113d34d..0000000
--- a/node_modules/es5-ext/array/#/slice/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Array.prototype, "slice", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/array/#/slice/index.js b/node_modules/es5-ext/array/#/slice/index.js
deleted file mode 100644
index 716b7e0..0000000
--- a/node_modules/es5-ext/array/#/slice/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Array.prototype.slice : require("./shim");
diff --git a/node_modules/es5-ext/array/#/slice/is-implemented.js b/node_modules/es5-ext/array/#/slice/is-implemented.js
deleted file mode 100644
index 4c83bfa..0000000
--- a/node_modules/es5-ext/array/#/slice/is-implemented.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var SubArray = require("../../_sub-array-dummy-safe");
-
-module.exports = function () { return new SubArray().slice() instanceof SubArray; };
diff --git a/node_modules/es5-ext/array/#/slice/shim.js b/node_modules/es5-ext/array/#/slice/shim.js
deleted file mode 100644
index ff13085..0000000
--- a/node_modules/es5-ext/array/#/slice/shim.js
+++ /dev/null
@@ -1,36 +0,0 @@
-"use strict";
-
-var toInteger = require("../../../number/to-integer")
- , toPosInt = require("../../../number/to-pos-integer")
- , isPlainArray = require("../../is-plain-array")
- , isArray = Array.isArray
- , slice = Array.prototype.slice
- , objHasOwnProperty = Object.prototype.hasOwnProperty
- , max = Math.max;
-
-module.exports = function (start, end) {
- var length, result, i;
- if (!this || !isArray(this) || isPlainArray(this)) {
- return slice.apply(this, arguments);
- }
- length = toPosInt(this.length);
- start = toInteger(start);
- if (start < 0) start = max(length + start, 0);
- else if (start > length) start = length;
- if (end === undefined) {
- end = length;
- } else {
- end = toInteger(end);
- if (end < 0) end = max(length + end, 0);
- else if (end > length) end = length;
- }
- if (start > end) start = end;
- result = new this.constructor(end - start);
- i = 0;
- while (start !== end) {
- if (objHasOwnProperty.call(this, start)) result[i] = this[start];
- ++i;
- ++start;
- }
- return result;
-};
diff --git a/node_modules/es5-ext/array/#/some-right.js b/node_modules/es5-ext/array/#/some-right.js
deleted file mode 100644
index 3baaf76..0000000
--- a/node_modules/es5-ext/array/#/some-right.js
+++ /dev/null
@@ -1,21 +0,0 @@
-"use strict";
-
-var toPosInt = require("../../number/to-pos-integer")
- , callable = require("../../object/valid-callable")
- , value = require("../../object/valid-value")
- , objHasOwnProperty = Object.prototype.hasOwnProperty
- , call = Function.prototype.call;
-
-module.exports = function (cb/*, thisArg*/) {
- var i, self, thisArg;
- self = Object(value(this));
- callable(cb);
- thisArg = arguments[1];
-
- for (i = toPosInt(self.length) - 1; i >= 0; --i) {
- if (objHasOwnProperty.call(self, i) && call.call(cb, thisArg, self[i], i, self)) {
- return true;
- }
- }
- return false;
-};
diff --git a/node_modules/es5-ext/array/#/splice/implement.js b/node_modules/es5-ext/array/#/splice/implement.js
deleted file mode 100644
index 236b1cb..0000000
--- a/node_modules/es5-ext/array/#/splice/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Array.prototype, "splice", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/array/#/splice/index.js b/node_modules/es5-ext/array/#/splice/index.js
deleted file mode 100644
index cd5c3ec..0000000
--- a/node_modules/es5-ext/array/#/splice/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Array.prototype.splice : require("./shim");
diff --git a/node_modules/es5-ext/array/#/splice/is-implemented.js b/node_modules/es5-ext/array/#/splice/is-implemented.js
deleted file mode 100644
index 085cba5..0000000
--- a/node_modules/es5-ext/array/#/splice/is-implemented.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var SubArray = require("../../_sub-array-dummy-safe");
-
-module.exports = function () { return new SubArray().splice(0) instanceof SubArray; };
diff --git a/node_modules/es5-ext/array/#/splice/shim.js b/node_modules/es5-ext/array/#/splice/shim.js
deleted file mode 100644
index a9c53ea..0000000
--- a/node_modules/es5-ext/array/#/splice/shim.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-var isPlainArray = require("../../is-plain-array")
- , isArray = Array.isArray
- , splice = Array.prototype.splice
- , forEach = Array.prototype.forEach;
-
-// eslint-disable-next-line no-unused-vars
-module.exports = function (start, deleteCount/*, …items*/) {
- var arr = splice.apply(this, arguments), result;
- if (!this || !isArray(this) || isPlainArray(this)) return arr;
- result = new this.constructor(arr.length);
- forEach.call(arr, function (val, i) { result[i] = val; });
- return result;
-};
diff --git a/node_modules/es5-ext/array/#/uniq.js b/node_modules/es5-ext/array/#/uniq.js
deleted file mode 100644
index 2d28bf5..0000000
--- a/node_modules/es5-ext/array/#/uniq.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-var indexOf = require("./e-index-of")
- , filter = Array.prototype.filter
- , isFirst;
-
-isFirst = function (value, index) { return indexOf.call(this, value) === index; };
-
-module.exports = function () { return filter.call(this, isFirst, this); };
diff --git a/node_modules/es5-ext/array/#/values/implement.js b/node_modules/es5-ext/array/#/values/implement.js
deleted file mode 100644
index dce17ac..0000000
--- a/node_modules/es5-ext/array/#/values/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Array.prototype, "values", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/array/#/values/index.js b/node_modules/es5-ext/array/#/values/index.js
deleted file mode 100644
index 30a50ba..0000000
--- a/node_modules/es5-ext/array/#/values/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Array.prototype.values : require("./shim");
diff --git a/node_modules/es5-ext/array/#/values/is-implemented.js b/node_modules/es5-ext/array/#/values/is-implemented.js
deleted file mode 100644
index 8b72568..0000000
--- a/node_modules/es5-ext/array/#/values/is-implemented.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-
-module.exports = function () {
- var arr = ["foo", 1], iterator, result;
- if (typeof arr.values !== "function") return false;
- iterator = arr.values();
- if (!iterator) return false;
- if (typeof iterator.next !== "function") return false;
- result = iterator.next();
- if (!result) return false;
- if (result.value !== "foo") return false;
- if (result.done !== false) return false;
- return true;
-};
diff --git a/node_modules/es5-ext/array/#/values/shim.js b/node_modules/es5-ext/array/#/values/shim.js
deleted file mode 100644
index 5d013ab..0000000
--- a/node_modules/es5-ext/array/#/values/shim.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-
-var ArrayIterator = require("es6-iterator/array");
-module.exports = function () { return new ArrayIterator(this, "value"); };
diff --git a/node_modules/es5-ext/array/_is-extensible.js b/node_modules/es5-ext/array/_is-extensible.js
deleted file mode 100644
index c475711..0000000
--- a/node_modules/es5-ext/array/_is-extensible.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-
-module.exports = (function () {
- var SubArray = require("./_sub-array-dummy")
- , arr;
-
- if (!SubArray) return false;
- arr = new SubArray();
- if (!Array.isArray(arr)) return false;
- if (!(arr instanceof SubArray)) return false;
-
- arr[34] = "foo";
- return arr.length === 35;
-})();
diff --git a/node_modules/es5-ext/array/_sub-array-dummy-safe.js b/node_modules/es5-ext/array/_sub-array-dummy-safe.js
deleted file mode 100644
index bef50be..0000000
--- a/node_modules/es5-ext/array/_sub-array-dummy-safe.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-
-var setPrototypeOf = require("../object/set-prototype-of")
- , isExtensible = require("./_is-extensible");
-
-module.exports = (function () {
- var SubArray;
-
- if (isExtensible) return require("./_sub-array-dummy");
-
- if (!setPrototypeOf) return null;
- SubArray = function () {
- var arr = Array.apply(this, arguments);
- setPrototypeOf(arr, SubArray.prototype);
- return arr;
- };
- setPrototypeOf(SubArray, Array);
- SubArray.prototype = Object.create(Array.prototype, {
- constructor: { value: SubArray, enumerable: false, writable: true, configurable: true }
- });
- return SubArray;
-})();
diff --git a/node_modules/es5-ext/array/_sub-array-dummy.js b/node_modules/es5-ext/array/_sub-array-dummy.js
deleted file mode 100644
index 5969309..0000000
--- a/node_modules/es5-ext/array/_sub-array-dummy.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-var setPrototypeOf = require("../object/set-prototype-of");
-
-module.exports = (function () {
- var SubArray;
-
- if (!setPrototypeOf) return null;
- SubArray = function () { Array.apply(this, arguments); };
- setPrototypeOf(SubArray, Array);
- SubArray.prototype = Object.create(Array.prototype, {
- constructor: { value: SubArray, enumerable: false, writable: true, configurable: true }
- });
- return SubArray;
-})();
diff --git a/node_modules/es5-ext/array/from/implement.js b/node_modules/es5-ext/array/from/implement.js
deleted file mode 100644
index c08d407..0000000
--- a/node_modules/es5-ext/array/from/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Array, "from", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/array/from/index.js b/node_modules/es5-ext/array/from/index.js
deleted file mode 100644
index 81cf8d9..0000000
--- a/node_modules/es5-ext/array/from/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Array.from : require("./shim");
diff --git a/node_modules/es5-ext/array/from/is-implemented.js b/node_modules/es5-ext/array/from/is-implemented.js
deleted file mode 100644
index a786c76..0000000
--- a/node_modules/es5-ext/array/from/is-implemented.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-module.exports = function () {
- var from = Array.from, arr, result;
- if (typeof from !== "function") return false;
- arr = ["raz", "dwa"];
- result = from(arr);
- return Boolean(result && result !== arr && result[1] === "dwa");
-};
diff --git a/node_modules/es5-ext/array/from/shim.js b/node_modules/es5-ext/array/from/shim.js
deleted file mode 100644
index 4a2a59a..0000000
--- a/node_modules/es5-ext/array/from/shim.js
+++ /dev/null
@@ -1,119 +0,0 @@
-"use strict";
-
-var iteratorSymbol = require("es6-symbol").iterator
- , isArguments = require("../../function/is-arguments")
- , isFunction = require("../../function/is-function")
- , toPosInt = require("../../number/to-pos-integer")
- , callable = require("../../object/valid-callable")
- , validValue = require("../../object/valid-value")
- , isValue = require("../../object/is-value")
- , isString = require("../../string/is-string")
- , isArray = Array.isArray
- , call = Function.prototype.call
- , desc = { configurable: true, enumerable: true, writable: true, value: null }
- , defineProperty = Object.defineProperty;
-
-// eslint-disable-next-line complexity, max-lines-per-function
-module.exports = function (arrayLike/*, mapFn, thisArg*/) {
- var mapFn = arguments[1]
- , thisArg = arguments[2]
- , Context
- , i
- , j
- , arr
- , length
- , code
- , iterator
- , result
- , getIterator
- , value;
-
- arrayLike = Object(validValue(arrayLike));
-
- if (isValue(mapFn)) callable(mapFn);
- if (!this || this === Array || !isFunction(this)) {
- // Result: Plain array
- if (!mapFn) {
- if (isArguments(arrayLike)) {
- // Source: Arguments
- length = arrayLike.length;
- if (length !== 1) return Array.apply(null, arrayLike);
- arr = new Array(1);
- arr[0] = arrayLike[0];
- return arr;
- }
- if (isArray(arrayLike)) {
- // Source: Array
- arr = new Array((length = arrayLike.length));
- for (i = 0; i < length; ++i) arr[i] = arrayLike[i];
- return arr;
- }
- }
- arr = [];
- } else {
- // Result: Non plain array
- Context = this;
- }
-
- if (!isArray(arrayLike)) {
- if ((getIterator = arrayLike[iteratorSymbol]) !== undefined) {
- // Source: Iterator
- iterator = callable(getIterator).call(arrayLike);
- if (Context) arr = new Context();
- result = iterator.next();
- i = 0;
- while (!result.done) {
- value = mapFn ? call.call(mapFn, thisArg, result.value, i) : result.value;
- if (Context) {
- desc.value = value;
- defineProperty(arr, i, desc);
- } else {
- arr[i] = value;
- }
- result = iterator.next();
- ++i;
- }
- length = i;
- } else if (isString(arrayLike)) {
- // Source: String
- length = arrayLike.length;
- if (Context) arr = new Context();
- for (i = 0, j = 0; i < length; ++i) {
- value = arrayLike[i];
- if (i + 1 < length) {
- code = value.charCodeAt(0);
- // eslint-disable-next-line max-depth
- if (code >= 0xd800 && code <= 0xdbff) value += arrayLike[++i];
- }
- value = mapFn ? call.call(mapFn, thisArg, value, j) : value;
- if (Context) {
- desc.value = value;
- defineProperty(arr, j, desc);
- } else {
- arr[j] = value;
- }
- ++j;
- }
- length = j;
- }
- }
- if (length === undefined) {
- // Source: array or array-like
- length = toPosInt(arrayLike.length);
- if (Context) arr = new Context(length);
- for (i = 0; i < length; ++i) {
- value = mapFn ? call.call(mapFn, thisArg, arrayLike[i], i) : arrayLike[i];
- if (Context) {
- desc.value = value;
- defineProperty(arr, i, desc);
- } else {
- arr[i] = value;
- }
- }
- }
- if (Context) {
- desc.value = null;
- arr.length = length;
- }
- return arr;
-};
diff --git a/node_modules/es5-ext/array/generate.js b/node_modules/es5-ext/array/generate.js
deleted file mode 100644
index b99160e..0000000
--- a/node_modules/es5-ext/array/generate.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-
-var toPosInt = require("../number/to-pos-integer")
- , value = require("../object/valid-value")
- , slice = Array.prototype.slice;
-
-module.exports = function (length/*, …fill*/) {
- var arr, currentLength;
- length = toPosInt(value(length));
- if (length === 0) return [];
-
- arr = arguments.length < 2 ? [undefined] : slice.call(arguments, 1, 1 + length);
-
- while ((currentLength = arr.length) < length) {
- arr = arr.concat(arr.slice(0, length - currentLength));
- }
- return arr;
-};
diff --git a/node_modules/es5-ext/array/index.js b/node_modules/es5-ext/array/index.js
deleted file mode 100644
index 49ff58e..0000000
--- a/node_modules/es5-ext/array/index.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-module.exports = {
- "#": require("./#"),
- "from": require("./from"),
- "generate": require("./generate"),
- "isPlainArray": require("./is-plain-array"),
- "of": require("./of"),
- "toArray": require("./to-array"),
- "validArray": require("./valid-array")
-};
diff --git a/node_modules/es5-ext/array/is-plain-array.js b/node_modules/es5-ext/array/is-plain-array.js
deleted file mode 100644
index ca3d25b..0000000
--- a/node_modules/es5-ext/array/is-plain-array.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-var isArray = Array.isArray, getPrototypeOf = Object.getPrototypeOf;
-
-module.exports = function (obj) {
- var proto;
- if (!obj || !isArray(obj)) return false;
- proto = getPrototypeOf(obj);
- if (!isArray(proto)) return false;
- return !isArray(getPrototypeOf(proto));
-};
diff --git a/node_modules/es5-ext/array/of/implement.js b/node_modules/es5-ext/array/of/implement.js
deleted file mode 100644
index 6665c77..0000000
--- a/node_modules/es5-ext/array/of/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Array, "of", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/array/of/index.js b/node_modules/es5-ext/array/of/index.js
deleted file mode 100644
index 503c749..0000000
--- a/node_modules/es5-ext/array/of/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Array.of : require("./shim");
diff --git a/node_modules/es5-ext/array/of/is-implemented.js b/node_modules/es5-ext/array/of/is-implemented.js
deleted file mode 100644
index 3f232ca..0000000
--- a/node_modules/es5-ext/array/of/is-implemented.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-module.exports = function () {
- var of = Array.of, result;
- if (typeof of !== "function") return false;
- result = of("foo", "bar");
- return Boolean(result && result[1] === "bar");
-};
diff --git a/node_modules/es5-ext/array/of/shim.js b/node_modules/es5-ext/array/of/shim.js
deleted file mode 100644
index 0202a8a..0000000
--- a/node_modules/es5-ext/array/of/shim.js
+++ /dev/null
@@ -1,19 +0,0 @@
-"use strict";
-
-var isFunction = require("../../function/is-function")
- , slice = Array.prototype.slice
- , defineProperty = Object.defineProperty
- , desc = { configurable: true, enumerable: true, writable: true, value: null };
-
-module.exports = function (/* …items*/) {
- var result, i, length;
- if (!this || this === Array || !isFunction(this)) return slice.call(arguments);
- result = new this((length = arguments.length));
- for (i = 0; i < length; ++i) {
- desc.value = arguments[i];
- defineProperty(result, i, desc);
- }
- desc.value = null;
- result.length = length;
- return result;
-};
diff --git a/node_modules/es5-ext/array/to-array.js b/node_modules/es5-ext/array/to-array.js
deleted file mode 100644
index 2515e02..0000000
--- a/node_modules/es5-ext/array/to-array.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-var from = require("./from")
- , isArray = Array.isArray;
-
-module.exports = function (arrayLike) { return isArray(arrayLike) ? arrayLike : from(arrayLike); };
diff --git a/node_modules/es5-ext/array/valid-array.js b/node_modules/es5-ext/array/valid-array.js
deleted file mode 100644
index 1e58c39..0000000
--- a/node_modules/es5-ext/array/valid-array.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var isArray = Array.isArray;
-
-module.exports = function (value) {
- if (isArray(value)) return value;
- throw new TypeError(value + " is not an array");
-};
diff --git a/node_modules/es5-ext/boolean/index.js b/node_modules/es5-ext/boolean/index.js
deleted file mode 100644
index 3513642..0000000
--- a/node_modules/es5-ext/boolean/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = { isBoolean: require("./is-boolean") };
diff --git a/node_modules/es5-ext/boolean/is-boolean.js b/node_modules/es5-ext/boolean/is-boolean.js
deleted file mode 100644
index 394845f..0000000
--- a/node_modules/es5-ext/boolean/is-boolean.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-var objToString = Object.prototype.toString, id = objToString.call(true);
-
-module.exports = function (value) {
- return (
- typeof value === "boolean" ||
- (typeof value === "object" && (value instanceof Boolean || objToString.call(value) === id))
- );
-};
diff --git a/node_modules/es5-ext/date/#/copy.js b/node_modules/es5-ext/date/#/copy.js
deleted file mode 100644
index 1262ae0..0000000
--- a/node_modules/es5-ext/date/#/copy.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var getTime = Date.prototype.getTime;
-
-module.exports = function () { return new Date(getTime.call(this)); };
diff --git a/node_modules/es5-ext/date/#/days-in-month.js b/node_modules/es5-ext/date/#/days-in-month.js
deleted file mode 100644
index 731d4d5..0000000
--- a/node_modules/es5-ext/date/#/days-in-month.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-var getMonth = Date.prototype.getMonth;
-
-module.exports = function () {
- switch (getMonth.call(this)) {
- case 1:
- return this.getFullYear() % 4 ? 28 : 29;
- case 3:
- case 5:
- case 8:
- case 10:
- return 30;
- default:
- return 31;
- }
-};
diff --git a/node_modules/es5-ext/date/#/floor-day.js b/node_modules/es5-ext/date/#/floor-day.js
deleted file mode 100644
index db696d3..0000000
--- a/node_modules/es5-ext/date/#/floor-day.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var setHours = Date.prototype.setHours;
-
-module.exports = function () {
- setHours.call(this, 0, 0, 0, 0);
- return this;
-};
diff --git a/node_modules/es5-ext/date/#/floor-month.js b/node_modules/es5-ext/date/#/floor-month.js
deleted file mode 100644
index c9c0460..0000000
--- a/node_modules/es5-ext/date/#/floor-month.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var floorDay = require("./floor-day");
-
-module.exports = function () {
- floorDay.call(this).setDate(1);
- return this;
-};
diff --git a/node_modules/es5-ext/date/#/floor-year.js b/node_modules/es5-ext/date/#/floor-year.js
deleted file mode 100644
index e9b6f0f..0000000
--- a/node_modules/es5-ext/date/#/floor-year.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var floorMonth = require("./floor-month");
-
-module.exports = function () {
- floorMonth.call(this).setMonth(0);
- return this;
-};
diff --git a/node_modules/es5-ext/date/#/format.js b/node_modules/es5-ext/date/#/format.js
deleted file mode 100644
index 8474dbb..0000000
--- a/node_modules/es5-ext/date/#/format.js
+++ /dev/null
@@ -1,20 +0,0 @@
-/* eslint id-length: "off" */
-
-"use strict";
-
-var pad = require("../../number/#/pad")
- , date = require("../valid-date")
- , format;
-
-format = require("../../string/format-method")({
- Y: function () { return String(this.getFullYear()); },
- y: function () { return String(this.getFullYear()).slice(-2); },
- m: function () { return pad.call(this.getMonth() + 1, 2); },
- d: function () { return pad.call(this.getDate(), 2); },
- H: function () { return pad.call(this.getHours(), 2); },
- M: function () { return pad.call(this.getMinutes(), 2); },
- S: function () { return pad.call(this.getSeconds(), 2); },
- L: function () { return pad.call(this.getMilliseconds(), 3); }
-});
-
-module.exports = function (pattern) { return format.call(date(this), pattern); };
diff --git a/node_modules/es5-ext/date/#/index.js b/node_modules/es5-ext/date/#/index.js
deleted file mode 100644
index 1781e21..0000000
--- a/node_modules/es5-ext/date/#/index.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-module.exports = {
- copy: require("./copy"),
- daysInMonth: require("./days-in-month"),
- floorDay: require("./floor-day"),
- floorMonth: require("./floor-month"),
- floorYear: require("./floor-year"),
- format: require("./format")
-};
diff --git a/node_modules/es5-ext/date/ensure-time-value.js b/node_modules/es5-ext/date/ensure-time-value.js
deleted file mode 100644
index 09f5afc..0000000
--- a/node_modules/es5-ext/date/ensure-time-value.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-var safeToString = require("../safe-to-string")
- , toInteger = require("../number/to-integer")
- , isTimeValue = require("./is-time-value");
-
-module.exports = function (value) {
- if (isTimeValue(value)) return toInteger(value);
- throw new TypeError(safeToString(value) + " is not a valid time value");
-};
diff --git a/node_modules/es5-ext/date/index.js b/node_modules/es5-ext/date/index.js
deleted file mode 100644
index c143149..0000000
--- a/node_modules/es5-ext/date/index.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-module.exports = {
- "#": require("./#"),
- "ensureTimeValue": require("./ensure-time-value"),
- "isDate": require("./is-date"),
- "isTimeValue": require("./is-time-value"),
- "validDate": require("./valid-date")
-};
diff --git a/node_modules/es5-ext/date/is-date.js b/node_modules/es5-ext/date/is-date.js
deleted file mode 100644
index f45bde4..0000000
--- a/node_modules/es5-ext/date/is-date.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-var objToString = Object.prototype.toString, id = objToString.call(new Date());
-
-module.exports = function (value) {
- return (
- (value && !isNaN(value) && (value instanceof Date || objToString.call(value) === id)) ||
- false
- );
-};
diff --git a/node_modules/es5-ext/date/is-time-value.js b/node_modules/es5-ext/date/is-time-value.js
deleted file mode 100644
index 0deb0b9..0000000
--- a/node_modules/es5-ext/date/is-time-value.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-module.exports = function (value) {
- try { value = Number(value); }
- catch (e) { return false; }
- if (isNaN(value)) return false;
- if (Math.abs(value) > 8.64e15) return false;
- return true;
-};
diff --git a/node_modules/es5-ext/date/valid-date.js b/node_modules/es5-ext/date/valid-date.js
deleted file mode 100644
index 0c73dc5..0000000
--- a/node_modules/es5-ext/date/valid-date.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var isDate = require("./is-date");
-
-module.exports = function (value) {
- if (!isDate(value)) throw new TypeError(value + " is not valid Date object");
- return value;
-};
diff --git a/node_modules/es5-ext/error/#/index.js b/node_modules/es5-ext/error/#/index.js
deleted file mode 100644
index 973a9d4..0000000
--- a/node_modules/es5-ext/error/#/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = { throw: require("./throw") };
diff --git a/node_modules/es5-ext/error/#/throw.js b/node_modules/es5-ext/error/#/throw.js
deleted file mode 100644
index 3eb196d..0000000
--- a/node_modules/es5-ext/error/#/throw.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var error = require("../valid-error");
-
-module.exports = function () { throw error(this); };
diff --git a/node_modules/es5-ext/error/custom.js b/node_modules/es5-ext/error/custom.js
deleted file mode 100644
index 416d571..0000000
--- a/node_modules/es5-ext/error/custom.js
+++ /dev/null
@@ -1,20 +0,0 @@
-"use strict";
-
-var assign = require("../object/assign")
- , isObject = require("../object/is-object")
- , isValue = require("../object/is-value")
- , captureStackTrace = Error.captureStackTrace;
-
-module.exports = function (message/*, code, ext*/) {
- var err = new Error(message), code = arguments[1], ext = arguments[2];
- if (!isValue(ext)) {
- if (isObject(code)) {
- ext = code;
- code = null;
- }
- }
- if (isValue(ext)) assign(err, ext);
- if (isValue(code)) err.code = code;
- if (captureStackTrace) captureStackTrace(err, module.exports);
- return err;
-};
diff --git a/node_modules/es5-ext/error/index.js b/node_modules/es5-ext/error/index.js
deleted file mode 100644
index cb7054a..0000000
--- a/node_modules/es5-ext/error/index.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-module.exports = {
- "#": require("./#"),
- "custom": require("./custom"),
- "isError": require("./is-error"),
- "validError": require("./valid-error")
-};
diff --git a/node_modules/es5-ext/error/is-error.js b/node_modules/es5-ext/error/is-error.js
deleted file mode 100644
index aad67ed..0000000
--- a/node_modules/es5-ext/error/is-error.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-var objToString = Object.prototype.toString, id = objToString.call(new Error());
-
-module.exports = function (value) {
- return (value && (value instanceof Error || objToString.call(value) === id)) || false;
-};
diff --git a/node_modules/es5-ext/error/valid-error.js b/node_modules/es5-ext/error/valid-error.js
deleted file mode 100644
index 432f7ba..0000000
--- a/node_modules/es5-ext/error/valid-error.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var isError = require("./is-error");
-
-module.exports = function (value) {
- if (!isError(value)) throw new TypeError(value + " is not an Error object");
- return value;
-};
diff --git a/node_modules/es5-ext/function/#/compose.js b/node_modules/es5-ext/function/#/compose.js
deleted file mode 100644
index c1d37b4..0000000
--- a/node_modules/es5-ext/function/#/compose.js
+++ /dev/null
@@ -1,20 +0,0 @@
-"use strict";
-
-var isValue = require("../../object/is-value")
- , callable = require("../../object/valid-callable")
- , aFrom = require("../../array/from");
-
-var apply = Function.prototype.apply
- , call = Function.prototype.call
- , callFn = function (arg, fn) { return call.call(fn, this, arg); };
-
-module.exports = function (fnIgnored/*, …fnn*/) {
- var fns, first;
- var args = aFrom(arguments);
- fns = isValue(this) ? [this].concat(args) : args;
- fns.forEach(callable);
- fns = fns.reverse();
- first = fns[0];
- fns = fns.slice(1);
- return function (argIgnored) { return fns.reduce(callFn, apply.call(first, this, arguments)); };
-};
diff --git a/node_modules/es5-ext/function/#/copy.js b/node_modules/es5-ext/function/#/copy.js
deleted file mode 100644
index 81ae783..0000000
--- a/node_modules/es5-ext/function/#/copy.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-
-var mixin = require("../../object/mixin")
- , validFunction = require("../valid-function")
- , re = /^\s*function\s*([\0-')-\uffff]+)*\s*\(([\0-(*-\uffff]*)\)\s*\{/;
-
-module.exports = function () {
- var match = String(validFunction(this)).match(re), fn;
-
- // eslint-disable-next-line no-new-func
- fn = new Function(
- "fn",
- "return function " +
- match[1].trim() +
- "(" +
- match[2] +
- ") { return fn.apply(this, arguments); };"
- )(this);
- try { mixin(fn, this); }
- catch (ignore) {}
- return fn;
-};
diff --git a/node_modules/es5-ext/function/#/curry.js b/node_modules/es5-ext/function/#/curry.js
deleted file mode 100644
index 9296458..0000000
--- a/node_modules/es5-ext/function/#/curry.js
+++ /dev/null
@@ -1,25 +0,0 @@
-"use strict";
-
-var toPosInt = require("../../number/to-pos-integer")
- , callable = require("../../object/valid-callable")
- , defineLength = require("../_define-length")
- , slice = Array.prototype.slice
- , apply = Function.prototype.apply
- , curry;
-
-curry = function self(fn, length, preArgs) {
- return defineLength(
- function () {
- var args = preArgs
- ? preArgs.concat(slice.call(arguments, 0, length - preArgs.length))
- : slice.call(arguments, 0, length);
- return args.length === length ? apply.call(fn, this, args) : self(fn, length, args);
- },
- preArgs ? length - preArgs.length : length
- );
-};
-
-module.exports = function (/* Length*/) {
- var length = arguments[0];
- return curry(callable(this), isNaN(length) ? toPosInt(this.length) : toPosInt(length));
-};
diff --git a/node_modules/es5-ext/function/#/index.js b/node_modules/es5-ext/function/#/index.js
deleted file mode 100644
index 02ae9f4..0000000
--- a/node_modules/es5-ext/function/#/index.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-module.exports = {
- compose: require("./compose"),
- copy: require("./copy"),
- curry: require("./curry"),
- lock: require("./lock"),
- microtaskDelay: require("./microtask-delay"),
- not: require("./not"),
- partial: require("./partial"),
- spread: require("./spread"),
- toStringTokens: require("./to-string-tokens")
-};
diff --git a/node_modules/es5-ext/function/#/lock.js b/node_modules/es5-ext/function/#/lock.js
deleted file mode 100644
index afd83b9..0000000
--- a/node_modules/es5-ext/function/#/lock.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-var callable = require("../../object/valid-callable")
- , apply = Function.prototype.apply;
-
-module.exports = function (/* …args*/) {
- var fn = callable(this), args = arguments;
-
- return function () { return apply.call(fn, this, args); };
-};
diff --git a/node_modules/es5-ext/function/#/microtask-delay.js b/node_modules/es5-ext/function/#/microtask-delay.js
deleted file mode 100644
index 3741ebe..0000000
--- a/node_modules/es5-ext/function/#/microtask-delay.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-var ensurePlainFunction = require("../../object/ensure-plain-function")
- , defineLength = require("../_define-length")
- , nextTick = require("next-tick");
-
-var apply = Function.prototype.apply;
-
-module.exports = function () {
- var src = ensurePlainFunction(this);
- return defineLength(function () { nextTick(apply.bind(src, this, arguments)); }, this.length);
-};
diff --git a/node_modules/es5-ext/function/#/not.js b/node_modules/es5-ext/function/#/not.js
deleted file mode 100644
index b3b7d62..0000000
--- a/node_modules/es5-ext/function/#/not.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-var callable = require("../../object/valid-callable")
- , defineLength = require("../_define-length")
- , apply = Function.prototype.apply;
-
-module.exports = function () {
- var fn = callable(this);
-
- return defineLength(function () { return !apply.call(fn, this, arguments); }, fn.length);
-};
diff --git a/node_modules/es5-ext/function/#/partial.js b/node_modules/es5-ext/function/#/partial.js
deleted file mode 100644
index 8f09c4f..0000000
--- a/node_modules/es5-ext/function/#/partial.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-
-var callable = require("../../object/valid-callable")
- , aFrom = require("../../array/from")
- , defineLength = require("../_define-length")
- , apply = Function.prototype.apply;
-
-module.exports = function (/* …args*/) {
- var fn = callable(this), args = aFrom(arguments);
-
- return defineLength(function () {
- return apply.call(fn, this, args.concat(aFrom(arguments)));
- }, fn.length - args.length);
-};
diff --git a/node_modules/es5-ext/function/#/spread.js b/node_modules/es5-ext/function/#/spread.js
deleted file mode 100644
index 555d991..0000000
--- a/node_modules/es5-ext/function/#/spread.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-var callable = require("../../object/valid-callable")
- , apply = Function.prototype.apply;
-
-module.exports = function () {
- var fn = callable(this);
- return function (args) { return apply.call(fn, this, args); };
-};
diff --git a/node_modules/es5-ext/function/#/to-string-tokens.js b/node_modules/es5-ext/function/#/to-string-tokens.js
deleted file mode 100644
index 4ce026a..0000000
--- a/node_modules/es5-ext/function/#/to-string-tokens.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-var validFunction = require("../valid-function");
-
-var re1 = /^\s*function[\0-')-\uffff]*\(([\0-(*-\uffff]*)\)\s*\{([\0-\uffff]*)\}\s*$/
- , re2 = /^\s*\(?([\0-'*-\uffff]*)\)?\s*=>\s*(\{?[\0-\uffff]*\}?)\s*$/;
-
-module.exports = function () {
- var str = String(validFunction(this)), data = str.match(re1);
- if (!data) {
- data = str.match(re2);
- if (!data) throw new Error("Unrecognized string format");
- data[1] = data[1].trim();
- if (data[2][0] === "{") data[2] = data[2].trim().slice(1, -1);
- }
- return { args: data[1], body: data[2] };
-};
diff --git a/node_modules/es5-ext/function/_define-length.js b/node_modules/es5-ext/function/_define-length.js
deleted file mode 100644
index d77a433..0000000
--- a/node_modules/es5-ext/function/_define-length.js
+++ /dev/null
@@ -1,54 +0,0 @@
-"use strict";
-
-var toPosInt = require("../number/to-pos-integer");
-
-var test = function (arg1, arg2) { return arg2; };
-
-var desc, defineProperty, generate, mixin;
-
-try {
- Object.defineProperty(test, "length", {
- configurable: true,
- writable: false,
- enumerable: false,
- value: 1
- });
-}
-catch (ignore) {}
-
-if (test.length === 1) {
- // ES6
- desc = { configurable: true, writable: false, enumerable: false };
- defineProperty = Object.defineProperty;
- module.exports = function (fn, length) {
- length = toPosInt(length);
- if (fn.length === length) return fn;
- desc.value = length;
- return defineProperty(fn, "length", desc);
- };
-} else {
- mixin = require("../object/mixin");
- generate = (function () {
- var cache = [];
- return function (length) {
- var args, i = 0;
- if (cache[length]) return cache[length];
- args = [];
- while (length--) args.push("a" + (++i).toString(36));
- // eslint-disable-next-line no-new-func
- return new Function(
- "fn",
- "return function (" + args.join(", ") + ") { return fn.apply(this, arguments); };"
- );
- };
- })();
- module.exports = function (src, length) {
- var target;
- length = toPosInt(length);
- if (src.length === length) return src;
- target = generate(length)(src);
- try { mixin(target, src); }
- catch (ignore) {}
- return target;
- };
-}
diff --git a/node_modules/es5-ext/function/constant.js b/node_modules/es5-ext/function/constant.js
deleted file mode 100644
index 79d81e4..0000000
--- a/node_modules/es5-ext/function/constant.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-module.exports = function (value) {
- return function () { return value; };
-};
diff --git a/node_modules/es5-ext/function/identity.js b/node_modules/es5-ext/function/identity.js
deleted file mode 100644
index cde213f..0000000
--- a/node_modules/es5-ext/function/identity.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (value) { return value; };
diff --git a/node_modules/es5-ext/function/index.js b/node_modules/es5-ext/function/index.js
deleted file mode 100644
index 1574fbb..0000000
--- a/node_modules/es5-ext/function/index.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Export all modules.
-
-"use strict";
-
-module.exports = {
- "#": require("./#"),
- "constant": require("./constant"),
- "identity": require("./identity"),
- "invoke": require("./invoke"),
- "isArguments": require("./is-arguments"),
- "isFunction": require("./is-function"),
- "noop": require("./noop"),
- "pluck": require("./pluck"),
- "validFunction": require("./valid-function")
-};
diff --git a/node_modules/es5-ext/function/invoke.js b/node_modules/es5-ext/function/invoke.js
deleted file mode 100644
index fcec0a7..0000000
--- a/node_modules/es5-ext/function/invoke.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-
-var isCallable = require("../object/is-callable")
- , value = require("../object/valid-value")
- , slice = Array.prototype.slice
- , apply = Function.prototype.apply;
-
-module.exports = function (name/*, …args*/) {
- var args = slice.call(arguments, 1), isFn = isCallable(name);
- return function (obj) {
- value(obj);
- return apply.call(isFn ? name : obj[name], obj, args.concat(slice.call(arguments, 1)));
- };
-};
diff --git a/node_modules/es5-ext/function/is-arguments.js b/node_modules/es5-ext/function/is-arguments.js
deleted file mode 100644
index 833a747..0000000
--- a/node_modules/es5-ext/function/is-arguments.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-var objToString = Object.prototype.toString
- , id = objToString.call((function () { return arguments; })());
-
-module.exports = function (value) { return objToString.call(value) === id; };
diff --git a/node_modules/es5-ext/function/is-function.js b/node_modules/es5-ext/function/is-function.js
deleted file mode 100644
index 0d7cab3..0000000
--- a/node_modules/es5-ext/function/is-function.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var objToString = Object.prototype.toString
- , isFunctionStringTag = RegExp.prototype.test.bind(/^[object [A-Za-z0-9]*Function]$/);
-
-module.exports = function (value) {
- return typeof value === "function" && isFunctionStringTag(objToString.call(value));
-};
diff --git a/node_modules/es5-ext/function/noop.js b/node_modules/es5-ext/function/noop.js
deleted file mode 100644
index 6174f03..0000000
--- a/node_modules/es5-ext/function/noop.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-
-// eslint-disable-next-line no-empty-function
-module.exports = function () {};
diff --git a/node_modules/es5-ext/function/pluck.js b/node_modules/es5-ext/function/pluck.js
deleted file mode 100644
index 432cd46..0000000
--- a/node_modules/es5-ext/function/pluck.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-var value = require("../object/valid-value");
-
-module.exports = function (name) {
- return function (obj) { return value(obj)[name]; };
-};
diff --git a/node_modules/es5-ext/function/valid-function.js b/node_modules/es5-ext/function/valid-function.js
deleted file mode 100644
index 060bd64..0000000
--- a/node_modules/es5-ext/function/valid-function.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var isFunction = require("./is-function");
-
-module.exports = function (value) {
- if (!isFunction(value)) throw new TypeError(value + " is not a function");
- return value;
-};
diff --git a/node_modules/es5-ext/global.js b/node_modules/es5-ext/global.js
deleted file mode 100644
index 61071e6..0000000
--- a/node_modules/es5-ext/global.js
+++ /dev/null
@@ -1,35 +0,0 @@
-var naiveFallback = function () {
- if (typeof self === "object" && self) return self;
- if (typeof window === "object" && window) return window;
- throw new Error("Unable to resolve global `this`");
-};
-
-module.exports = (function () {
- if (this) return this;
-
- // Unexpected strict mode (may happen if e.g. bundled into ESM module)
-
- // Fallback to standard globalThis if available
- if (typeof globalThis === "object" && globalThis) return globalThis;
-
- // Thanks @mathiasbynens -> https://mathiasbynens.be/notes/globalthis
- // In all ES5+ engines global object inherits from Object.prototype
- // (if you approached one that doesn't please report)
- try {
- Object.defineProperty(Object.prototype, "__global__", {
- get: function () { return this; },
- configurable: true
- });
- } catch (error) {
- // Unfortunate case of updates to Object.prototype being restricted
- // via preventExtensions, seal or freeze
- return naiveFallback();
- }
- try {
- // Safari case (window.__global__ works, but __global__ does not)
- if (!__global__) return naiveFallback();
- return __global__;
- } finally {
- delete Object.prototype.__global__;
- }
-})();
diff --git a/node_modules/es5-ext/index.js b/node_modules/es5-ext/index.js
deleted file mode 100644
index 0919764..0000000
--- a/node_modules/es5-ext/index.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-
-module.exports = {
- global: require("./global"),
- optionalChaining: require("./optional-chaining"),
- safeToString: require("./safe-to-string"),
- toShortStringRepresentation: require("./to-short-string-representation"),
-
- array: require("./array"),
- boolean: require("./boolean"),
- date: require("./date"),
- error: require("./error"),
- function: require("./function"),
- iterable: require("./iterable"),
- json: require("./json"),
- math: require("./math"),
- number: require("./number"),
- object: require("./object"),
- promise: require("./promise"),
- regExp: require("./reg-exp"),
- string: require("./string")
-};
diff --git a/node_modules/es5-ext/iterable/for-each.js b/node_modules/es5-ext/iterable/for-each.js
deleted file mode 100644
index 6063822..0000000
--- a/node_modules/es5-ext/iterable/for-each.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-var forOf = require("es6-iterator/for-of")
- , isIterable = require("es6-iterator/is-iterable")
- , iterable = require("./validate")
- , forEach = Array.prototype.forEach;
-
-module.exports = function (target, cb/*, thisArg*/) {
- if (isIterable(iterable(target))) forOf(target, cb, arguments[2]);
- else forEach.call(target, cb, arguments[2]);
-};
diff --git a/node_modules/es5-ext/iterable/index.js b/node_modules/es5-ext/iterable/index.js
deleted file mode 100644
index 4b898fc..0000000
--- a/node_modules/es5-ext/iterable/index.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-module.exports = {
- forEach: require("./for-each"),
- is: require("./is"),
- validate: require("./validate"),
- validateObject: require("./validate-object")
-};
diff --git a/node_modules/es5-ext/iterable/is.js b/node_modules/es5-ext/iterable/is.js
deleted file mode 100644
index aa5a9b9..0000000
--- a/node_modules/es5-ext/iterable/is.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-var iteratorSymbol = require("es6-symbol").iterator
- , isValue = require("../object/is-value")
- , isArrayLike = require("../object/is-array-like");
-
-module.exports = function (value) {
- if (!isValue(value)) return false;
- if (typeof value[iteratorSymbol] === "function") return true;
- return isArrayLike(value);
-};
diff --git a/node_modules/es5-ext/iterable/validate-object.js b/node_modules/es5-ext/iterable/validate-object.js
deleted file mode 100644
index 26e622b..0000000
--- a/node_modules/es5-ext/iterable/validate-object.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-var isObject = require("../object/is-object")
- , is = require("./is");
-
-module.exports = function (value) {
- if (is(value) && isObject(value)) return value;
- throw new TypeError(value + " is not an iterable or array-like object");
-};
diff --git a/node_modules/es5-ext/iterable/validate.js b/node_modules/es5-ext/iterable/validate.js
deleted file mode 100644
index 94a91c4..0000000
--- a/node_modules/es5-ext/iterable/validate.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var is = require("./is");
-
-module.exports = function (value) {
- if (is(value)) return value;
- throw new TypeError(value + " is not an iterable or array-like");
-};
diff --git a/node_modules/es5-ext/json/index.js b/node_modules/es5-ext/json/index.js
deleted file mode 100644
index d26ac56..0000000
--- a/node_modules/es5-ext/json/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = { safeStringify: require("./safe-stringify") };
diff --git a/node_modules/es5-ext/json/safe-stringify.js b/node_modules/es5-ext/json/safe-stringify.js
deleted file mode 100644
index b996a62..0000000
--- a/node_modules/es5-ext/json/safe-stringify.js
+++ /dev/null
@@ -1,37 +0,0 @@
-"use strict";
-
-var compact = require("../array/#/compact")
- , isObject = require("../object/is-object")
- , toArray = require("../object/to-array")
- , isArray = Array.isArray
- , stringify = JSON.stringify;
-
-module.exports = function self(value/*, replacer, space*/) {
- var replacer = arguments[1], space = arguments[2];
- try {
- return stringify(value, replacer, space);
- } catch (e) {
- if (!isObject(value)) return null;
- if (typeof value.toJSON === "function") return null;
- if (isArray(value)) {
- return (
- "[" +
- compact.call(value.map(function (item) { return self(item, replacer, space); })) +
- "]"
- );
- }
- return (
- "{" +
- compact
- .call(
- toArray(value, function (item, key) {
- item = self(item, replacer, space);
- if (!item) return null;
- return stringify(key) + ":" + item;
- })
- )
- .join(",") +
- "}"
- );
- }
-};
diff --git a/node_modules/es5-ext/math/_decimal-adjust.js b/node_modules/es5-ext/math/_decimal-adjust.js
deleted file mode 100644
index fd0b002..0000000
--- a/node_modules/es5-ext/math/_decimal-adjust.js
+++ /dev/null
@@ -1,29 +0,0 @@
-// Credit:
-// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/round
-// #Decimal_rounding
-
-"use strict";
-
-var isValue = require("../object/is-value")
- , ensureInteger = require("../object/ensure-integer");
-
-var split = String.prototype.split;
-
-module.exports = function (type) {
- return function (value/*, exp*/) {
- value = Number(value);
- var exp = arguments[1];
- if (isValue(exp)) exp = ensureInteger(exp);
- if (!value) return value;
- if (!exp) return Math[type](value);
- if (!isFinite(value)) return value;
-
- // Shift
- var tokens = split.call(value, "e");
- value = Math[type](tokens[0] + "e" + ((tokens[1] || 0) - exp));
-
- // Shift back
- tokens = value.toString().split("e");
- return Number(tokens[0] + "e" + (Number(tokens[1] || 0) + exp));
- };
-};
diff --git a/node_modules/es5-ext/math/_pack-ieee754.js b/node_modules/es5-ext/math/_pack-ieee754.js
deleted file mode 100644
index b3edf8d..0000000
--- a/node_modules/es5-ext/math/_pack-ieee754.js
+++ /dev/null
@@ -1,88 +0,0 @@
-/* eslint no-bitwise: "off" */
-// Credit: https://github.com/paulmillr/es6-shim/
-
-"use strict";
-
-var abs = Math.abs
- , floor = Math.floor
- , log = Math.log
- , min = Math.min
- , pow = Math.pow
- , LN2 = Math.LN2
- , roundToEven;
-
-roundToEven = function (num) {
- var whole = floor(num), fraction = num - whole;
- if (fraction < 0.5) return whole;
- if (fraction > 0.5) return whole + 1;
- return whole % 2 ? whole + 1 : whole;
-};
-
-// eslint-disable-next-line max-statements, max-lines-per-function
-module.exports = function (value, ebits, fbits) {
- var bias = (1 << (ebits - 1)) - 1, sign, e, fraction, i, bits, str, bytes;
-
- // Compute sign, exponent, fraction
- if (isNaN(value)) {
- // NaN
- // http://dev.w3.org/2006/webapi/WebIDL/#es-type-mapping
- e = (1 << ebits) - 1;
- fraction = pow(2, fbits - 1);
- sign = 0;
- } else if (value === Infinity || value === -Infinity) {
- e = (1 << ebits) - 1;
- fraction = 0;
- sign = value < 0 ? 1 : 0;
- } else if (value === 0) {
- e = 0;
- fraction = 0;
- sign = 1 / value === -Infinity ? 1 : 0;
- } else {
- sign = value < 0;
- value = abs(value);
-
- if (value >= pow(2, 1 - bias)) {
- e = min(floor(log(value) / LN2), 1023);
- fraction = roundToEven((value / pow(2, e)) * pow(2, fbits));
- if (fraction / pow(2, fbits) >= 2) {
- e += 1;
- fraction = 1;
- }
- if (e > bias) {
- // Overflow
- e = (1 << ebits) - 1;
- fraction = 0;
- } else {
- // Normal
- e += bias;
- fraction -= pow(2, fbits);
- }
- } else {
- // Subnormal
- e = 0;
- fraction = roundToEven(value / pow(2, 1 - bias - fbits));
- }
- }
-
- // Pack sign, exponent, fraction
- bits = [];
- for (i = fbits; i; i -= 1) {
- bits.push(fraction % 2 ? 1 : 0);
- fraction = floor(fraction / 2);
- }
- for (i = ebits; i; i -= 1) {
- bits.push(e % 2 ? 1 : 0);
- e = floor(e / 2);
- }
- bits.push(sign ? 1 : 0);
- bits.reverse();
- str = bits.join("");
-
- // Bits to bytes
- bytes = [];
- while (str.length) {
- bytes.push(parseInt(str.substring(0, 8), 2));
- str = str.substring(8);
- }
- return bytes;
-};
diff --git a/node_modules/es5-ext/math/_unpack-ieee754.js b/node_modules/es5-ext/math/_unpack-ieee754.js
deleted file mode 100644
index 83fa947..0000000
--- a/node_modules/es5-ext/math/_unpack-ieee754.js
+++ /dev/null
@@ -1,33 +0,0 @@
-/* eslint no-bitwise: "off" */
-// Credit: https://github.com/paulmillr/es6-shim/
-
-"use strict";
-
-var pow = Math.pow;
-
-module.exports = function (bytes, ebits, fbits) {
- // Bytes to bits
- var bits = [], i, j, bit, str, bias, sign, e, fraction;
-
- for (i = bytes.length; i; i -= 1) {
- bit = bytes[i - 1];
- for (j = 8; j; j -= 1) {
- bits.push(bit % 2 ? 1 : 0);
- bit >>= 1;
- }
- }
- bits.reverse();
- str = bits.join("");
-
- // Unpack sign, exponent, fraction
- bias = (1 << (ebits - 1)) - 1;
- sign = parseInt(str.substring(0, 1), 2) ? -1 : 1;
- e = parseInt(str.substring(1, 1 + ebits), 2);
- fraction = parseInt(str.substring(1 + ebits), 2);
-
- // Produce number
- if (e === (1 << ebits) - 1) return fraction === 0 ? sign * Infinity : NaN;
- if (e > 0) return sign * pow(2, e - bias) * (1 + fraction / pow(2, fbits));
- if (fraction !== 0) return sign * pow(2, -(bias - 1)) * (fraction / pow(2, fbits));
- return sign < 0 ? -0 : 0;
-};
diff --git a/node_modules/es5-ext/math/acosh/implement.js b/node_modules/es5-ext/math/acosh/implement.js
deleted file mode 100644
index 9e4582f..0000000
--- a/node_modules/es5-ext/math/acosh/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Math, "acosh", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/math/acosh/index.js b/node_modules/es5-ext/math/acosh/index.js
deleted file mode 100644
index da176cb..0000000
--- a/node_modules/es5-ext/math/acosh/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Math.acosh : require("./shim");
diff --git a/node_modules/es5-ext/math/acosh/is-implemented.js b/node_modules/es5-ext/math/acosh/is-implemented.js
deleted file mode 100644
index 2e97301..0000000
--- a/node_modules/es5-ext/math/acosh/is-implemented.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function () {
- var acosh = Math.acosh;
- if (typeof acosh !== "function") return false;
- return acosh(2) === 1.3169578969248166;
-};
diff --git a/node_modules/es5-ext/math/acosh/shim.js b/node_modules/es5-ext/math/acosh/shim.js
deleted file mode 100644
index 3e632ff..0000000
--- a/node_modules/es5-ext/math/acosh/shim.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-var log = Math.log, sqrt = Math.sqrt;
-
-module.exports = function (value) {
- if (isNaN(value)) return NaN;
- value = Number(value);
- if (value < 1) return NaN;
- if (value === 1) return 0;
- if (value === Infinity) return value;
- return log(value + sqrt(value * value - 1));
-};
diff --git a/node_modules/es5-ext/math/asinh/implement.js b/node_modules/es5-ext/math/asinh/implement.js
deleted file mode 100644
index 1c0d7e4..0000000
--- a/node_modules/es5-ext/math/asinh/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Math, "asinh", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/math/asinh/index.js b/node_modules/es5-ext/math/asinh/index.js
deleted file mode 100644
index 8ca3026..0000000
--- a/node_modules/es5-ext/math/asinh/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Math.asinh : require("./shim");
diff --git a/node_modules/es5-ext/math/asinh/is-implemented.js b/node_modules/es5-ext/math/asinh/is-implemented.js
deleted file mode 100644
index a7e0f20..0000000
--- a/node_modules/es5-ext/math/asinh/is-implemented.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function () {
- var asinh = Math.asinh;
- if (typeof asinh !== "function") return false;
- return asinh(2) === 1.4436354751788103;
-};
diff --git a/node_modules/es5-ext/math/asinh/shim.js b/node_modules/es5-ext/math/asinh/shim.js
deleted file mode 100644
index 30ce2e4..0000000
--- a/node_modules/es5-ext/math/asinh/shim.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-var log = Math.log, sqrt = Math.sqrt;
-
-module.exports = function (value) {
- if (isNaN(value)) return NaN;
- value = Number(value);
- if (value === 0) return value;
- if (!isFinite(value)) return value;
- if (value < 0) {
- value = -value;
- return -log(value + sqrt(value * value + 1));
- }
- return log(value + sqrt(value * value + 1));
-};
diff --git a/node_modules/es5-ext/math/atanh/implement.js b/node_modules/es5-ext/math/atanh/implement.js
deleted file mode 100644
index 53f5871..0000000
--- a/node_modules/es5-ext/math/atanh/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Math, "atanh", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/math/atanh/index.js b/node_modules/es5-ext/math/atanh/index.js
deleted file mode 100644
index feff0a7..0000000
--- a/node_modules/es5-ext/math/atanh/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Math.atanh : require("./shim");
diff --git a/node_modules/es5-ext/math/atanh/is-implemented.js b/node_modules/es5-ext/math/atanh/is-implemented.js
deleted file mode 100644
index 4787c4f..0000000
--- a/node_modules/es5-ext/math/atanh/is-implemented.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function () {
- var atanh = Math.atanh;
- if (typeof atanh !== "function") return false;
- return Math.round(atanh(0.5) * 1e15) === 549306144334055;
-};
diff --git a/node_modules/es5-ext/math/atanh/shim.js b/node_modules/es5-ext/math/atanh/shim.js
deleted file mode 100644
index 9383e97..0000000
--- a/node_modules/es5-ext/math/atanh/shim.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-
-var log = Math.log;
-
-module.exports = function (value) {
- if (isNaN(value)) return NaN;
- value = Number(value);
- if (value < -1) return NaN;
- if (value > 1) return NaN;
- if (value === -1) return -Infinity;
- if (value === 1) return Infinity;
- if (value === 0) return value;
- return 0.5 * log((1 + value) / (1 - value));
-};
diff --git a/node_modules/es5-ext/math/cbrt/implement.js b/node_modules/es5-ext/math/cbrt/implement.js
deleted file mode 100644
index 826314c..0000000
--- a/node_modules/es5-ext/math/cbrt/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Math, "cbrt", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/math/cbrt/index.js b/node_modules/es5-ext/math/cbrt/index.js
deleted file mode 100644
index a6c71c6..0000000
--- a/node_modules/es5-ext/math/cbrt/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Math.cbrt : require("./shim");
diff --git a/node_modules/es5-ext/math/cbrt/is-implemented.js b/node_modules/es5-ext/math/cbrt/is-implemented.js
deleted file mode 100644
index a8ac0db..0000000
--- a/node_modules/es5-ext/math/cbrt/is-implemented.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function () {
- var cbrt = Math.cbrt;
- if (typeof cbrt !== "function") return false;
- return cbrt(2) === 1.2599210498948732;
-};
diff --git a/node_modules/es5-ext/math/cbrt/shim.js b/node_modules/es5-ext/math/cbrt/shim.js
deleted file mode 100644
index 8871c55..0000000
--- a/node_modules/es5-ext/math/cbrt/shim.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-var pow = Math.pow;
-
-module.exports = function (value) {
- if (isNaN(value)) return NaN;
- value = Number(value);
- if (value === 0) return value;
- if (!isFinite(value)) return value;
- if (value < 0) return -pow(-value, 1 / 3);
- return pow(value, 1 / 3);
-};
diff --git a/node_modules/es5-ext/math/ceil-10.js b/node_modules/es5-ext/math/ceil-10.js
deleted file mode 100644
index 351221f..0000000
--- a/node_modules/es5-ext/math/ceil-10.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./_decimal-adjust")("ceil");
diff --git a/node_modules/es5-ext/math/clz32/implement.js b/node_modules/es5-ext/math/clz32/implement.js
deleted file mode 100644
index 70562df..0000000
--- a/node_modules/es5-ext/math/clz32/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Math, "clz32", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/math/clz32/index.js b/node_modules/es5-ext/math/clz32/index.js
deleted file mode 100644
index 2380335..0000000
--- a/node_modules/es5-ext/math/clz32/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Math.clz32 : require("./shim");
diff --git a/node_modules/es5-ext/math/clz32/is-implemented.js b/node_modules/es5-ext/math/clz32/is-implemented.js
deleted file mode 100644
index ee6d882..0000000
--- a/node_modules/es5-ext/math/clz32/is-implemented.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function () {
- var clz32 = Math.clz32;
- if (typeof clz32 !== "function") return false;
- return clz32(1000) === 22;
-};
diff --git a/node_modules/es5-ext/math/clz32/shim.js b/node_modules/es5-ext/math/clz32/shim.js
deleted file mode 100644
index 2b526c2..0000000
--- a/node_modules/es5-ext/math/clz32/shim.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function (value) {
- // eslint-disable-next-line no-bitwise
- value >>>= 0;
- return value ? 32 - value.toString(2).length : 32;
-};
diff --git a/node_modules/es5-ext/math/cosh/implement.js b/node_modules/es5-ext/math/cosh/implement.js
deleted file mode 100644
index 74e7eea..0000000
--- a/node_modules/es5-ext/math/cosh/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Math, "cosh", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/math/cosh/index.js b/node_modules/es5-ext/math/cosh/index.js
deleted file mode 100644
index c7a7167..0000000
--- a/node_modules/es5-ext/math/cosh/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Math.cosh : require("./shim");
diff --git a/node_modules/es5-ext/math/cosh/is-implemented.js b/node_modules/es5-ext/math/cosh/is-implemented.js
deleted file mode 100644
index 7173054..0000000
--- a/node_modules/es5-ext/math/cosh/is-implemented.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function () {
- var cosh = Math.cosh;
- if (typeof cosh !== "function") return false;
- return cosh(1) === 1.5430806348152437;
-};
diff --git a/node_modules/es5-ext/math/cosh/shim.js b/node_modules/es5-ext/math/cosh/shim.js
deleted file mode 100644
index c762c84..0000000
--- a/node_modules/es5-ext/math/cosh/shim.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-var exp = Math.exp;
-
-module.exports = function (value) {
- if (isNaN(value)) return NaN;
- value = Number(value);
- if (value === 0) return 1;
- if (!isFinite(value)) return Infinity;
- return (exp(value) + exp(-value)) / 2;
-};
diff --git a/node_modules/es5-ext/math/expm1/implement.js b/node_modules/es5-ext/math/expm1/implement.js
deleted file mode 100644
index 9739bf5..0000000
--- a/node_modules/es5-ext/math/expm1/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Math, "expm1", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/math/expm1/index.js b/node_modules/es5-ext/math/expm1/index.js
deleted file mode 100644
index daf4395..0000000
--- a/node_modules/es5-ext/math/expm1/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Math.expm1 : require("./shim");
diff --git a/node_modules/es5-ext/math/expm1/is-implemented.js b/node_modules/es5-ext/math/expm1/is-implemented.js
deleted file mode 100644
index dfd056e..0000000
--- a/node_modules/es5-ext/math/expm1/is-implemented.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function () {
- var expm1 = Math.expm1;
- if (typeof expm1 !== "function") return false;
- return expm1(1).toFixed(15) === "1.718281828459045";
-};
diff --git a/node_modules/es5-ext/math/expm1/shim.js b/node_modules/es5-ext/math/expm1/shim.js
deleted file mode 100644
index 6daf2bf..0000000
--- a/node_modules/es5-ext/math/expm1/shim.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Thanks: https://github.com/monolithed/ECMAScript-6
-
-"use strict";
-
-var exp = Math.exp;
-
-module.exports = function (value) {
- if (isNaN(value)) return NaN;
- value = Number(value);
- if (value === 0) return value;
- if (value === Infinity) return Infinity;
- if (value === -Infinity) return -1;
-
- if (value > -1.0e-6 && value < 1.0e-6) return value + (value * value) / 2;
- return exp(value) - 1;
-};
diff --git a/node_modules/es5-ext/math/floor-10.js b/node_modules/es5-ext/math/floor-10.js
deleted file mode 100644
index 3cb0c11..0000000
--- a/node_modules/es5-ext/math/floor-10.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./_decimal-adjust")("floor");
diff --git a/node_modules/es5-ext/math/fround/implement.js b/node_modules/es5-ext/math/fround/implement.js
deleted file mode 100644
index 9ce9cf2..0000000
--- a/node_modules/es5-ext/math/fround/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Math, "fround", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/math/fround/index.js b/node_modules/es5-ext/math/fround/index.js
deleted file mode 100644
index 9f0dbc0..0000000
--- a/node_modules/es5-ext/math/fround/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Math.fround : require("./shim");
diff --git a/node_modules/es5-ext/math/fround/is-implemented.js b/node_modules/es5-ext/math/fround/is-implemented.js
deleted file mode 100644
index ad2b705..0000000
--- a/node_modules/es5-ext/math/fround/is-implemented.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function () {
- var fround = Math.fround;
- if (typeof fround !== "function") return false;
- return fround(1.337) === 1.3370000123977661;
-};
diff --git a/node_modules/es5-ext/math/fround/shim.js b/node_modules/es5-ext/math/fround/shim.js
deleted file mode 100644
index b0dfaab..0000000
--- a/node_modules/es5-ext/math/fround/shim.js
+++ /dev/null
@@ -1,33 +0,0 @@
-/* global Float32Array */
-
-// Credit: https://github.com/paulmillr/es6-shim/blob/master/es6-shim.js
-
-"use strict";
-
-var toFloat32;
-
-if (typeof Float32Array === "undefined") {
- toFloat32 = (function () {
- var pack = require("../_pack-ieee754")
- , unpack = require("../_unpack-ieee754");
-
- return function (value) { return unpack(pack(value, 8, 23), 8, 23); };
- })();
-} else {
- toFloat32 = (function () {
- var float32Array = new Float32Array(1);
- return function (num) {
- float32Array[0] = num;
- return float32Array[0];
- };
- })();
-}
-
-module.exports = function (value) {
- if (isNaN(value)) return NaN;
- value = Number(value);
- if (value === 0) return value;
- if (!isFinite(value)) return value;
-
- return toFloat32(value);
-};
diff --git a/node_modules/es5-ext/math/hypot/implement.js b/node_modules/es5-ext/math/hypot/implement.js
deleted file mode 100644
index e051add..0000000
--- a/node_modules/es5-ext/math/hypot/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Math, "hypot", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/math/hypot/index.js b/node_modules/es5-ext/math/hypot/index.js
deleted file mode 100644
index f8de46b..0000000
--- a/node_modules/es5-ext/math/hypot/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Math.hypot : require("./shim");
diff --git a/node_modules/es5-ext/math/hypot/is-implemented.js b/node_modules/es5-ext/math/hypot/is-implemented.js
deleted file mode 100644
index d317bc7..0000000
--- a/node_modules/es5-ext/math/hypot/is-implemented.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function () {
- var hypot = Math.hypot;
- if (typeof hypot !== "function") return false;
- return hypot(3, 4) === 5;
-};
diff --git a/node_modules/es5-ext/math/hypot/shim.js b/node_modules/es5-ext/math/hypot/shim.js
deleted file mode 100644
index 201ba7a..0000000
--- a/node_modules/es5-ext/math/hypot/shim.js
+++ /dev/null
@@ -1,37 +0,0 @@
-// Thanks for hints: https://github.com/paulmillr/es6-shim
-
-"use strict";
-
-var some = Array.prototype.some
- , abs = Math.abs
- , sqrt = Math.sqrt
- , compare = function (val1, val2) { return val2 - val1; }
- , divide = function (value) { return value / this; }
- , add = function (sum, number) { return sum + number * number; };
-
-// eslint-disable-next-line no-unused-vars
-module.exports = function (val1, val2/*, …valn*/) {
- var result, numbers;
- if (!arguments.length) return 0;
- some.call(arguments, function (val) {
- if (isNaN(val)) {
- result = NaN;
- return false;
- }
- if (!isFinite(val)) {
- result = Infinity;
- return true;
- }
- if (result !== undefined) return false;
- val = Number(val);
- if (val === 0) return false;
- if (numbers) numbers.push(abs(val));
- else numbers = [abs(val)];
- return false;
- });
- if (result !== undefined) return result;
- if (!numbers) return 0;
-
- numbers.sort(compare);
- return numbers[0] * sqrt(numbers.map(divide, numbers[0]).reduce(add, 0));
-};
diff --git a/node_modules/es5-ext/math/imul/implement.js b/node_modules/es5-ext/math/imul/implement.js
deleted file mode 100644
index 3aff479..0000000
--- a/node_modules/es5-ext/math/imul/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Math, "imul", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/math/imul/index.js b/node_modules/es5-ext/math/imul/index.js
deleted file mode 100644
index 969124c..0000000
--- a/node_modules/es5-ext/math/imul/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Math.imul : require("./shim");
diff --git a/node_modules/es5-ext/math/imul/is-implemented.js b/node_modules/es5-ext/math/imul/is-implemented.js
deleted file mode 100644
index 0f32919..0000000
--- a/node_modules/es5-ext/math/imul/is-implemented.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function () {
- var imul = Math.imul;
- if (typeof imul !== "function") return false;
- return imul(-1, 8) === -8;
-};
diff --git a/node_modules/es5-ext/math/imul/shim.js b/node_modules/es5-ext/math/imul/shim.js
deleted file mode 100644
index 7511707..0000000
--- a/node_modules/es5-ext/math/imul/shim.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/* eslint no-bitwise: "off" */
-
-// Thanks: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference
-// /Global_Objects/Math/imul
-
-"use strict";
-
-module.exports = function (val1, val2) {
- var xh = (val1 >>> 16) & 0xffff
- , xl = val1 & 0xffff
- , yh = (val2 >>> 16) & 0xffff
- , yl = val2 & 0xffff;
-
- // The shift by 0 fixes the sign on the high part
- // the final |0 converts the unsigned value into a signed value
- return (xl * yl + (((xh * yl + xl * yh) << 16) >>> 0)) | 0;
-};
diff --git a/node_modules/es5-ext/math/index.js b/node_modules/es5-ext/math/index.js
deleted file mode 100644
index a59269c..0000000
--- a/node_modules/es5-ext/math/index.js
+++ /dev/null
@@ -1,24 +0,0 @@
-"use strict";
-
-module.exports = {
- acosh: require("./acosh"),
- asinh: require("./asinh"),
- atanh: require("./atanh"),
- cbrt: require("./cbrt"),
- ceil10: require("./ceil-10"),
- clz32: require("./clz32"),
- cosh: require("./cosh"),
- expm1: require("./expm1"),
- floor10: require("./floor-10"),
- fround: require("./fround"),
- hypot: require("./hypot"),
- imul: require("./imul"),
- log10: require("./log10"),
- log2: require("./log2"),
- log1p: require("./log1p"),
- round10: require("./round-10"),
- sign: require("./sign"),
- sinh: require("./sinh"),
- tanh: require("./tanh"),
- trunc: require("./trunc")
-};
diff --git a/node_modules/es5-ext/math/log10/implement.js b/node_modules/es5-ext/math/log10/implement.js
deleted file mode 100644
index f6153c1..0000000
--- a/node_modules/es5-ext/math/log10/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Math, "log10", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/math/log10/index.js b/node_modules/es5-ext/math/log10/index.js
deleted file mode 100644
index abda55b..0000000
--- a/node_modules/es5-ext/math/log10/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Math.log10 : require("./shim");
diff --git a/node_modules/es5-ext/math/log10/is-implemented.js b/node_modules/es5-ext/math/log10/is-implemented.js
deleted file mode 100644
index f221759..0000000
--- a/node_modules/es5-ext/math/log10/is-implemented.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function () {
- var log10 = Math.log10;
- if (typeof log10 !== "function") return false;
- return log10(2) === 0.3010299956639812;
-};
diff --git a/node_modules/es5-ext/math/log10/shim.js b/node_modules/es5-ext/math/log10/shim.js
deleted file mode 100644
index e8599a2..0000000
--- a/node_modules/es5-ext/math/log10/shim.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-
-var log = Math.log, LOG10E = Math.LOG10E;
-
-module.exports = function (value) {
- if (isNaN(value)) return NaN;
- value = Number(value);
- if (value < 0) return NaN;
- if (value === 0) return -Infinity;
- if (value === 1) return 0;
- if (value === Infinity) return Infinity;
-
- return log(value) * LOG10E;
-};
diff --git a/node_modules/es5-ext/math/log1p/implement.js b/node_modules/es5-ext/math/log1p/implement.js
deleted file mode 100644
index 21e94e6..0000000
--- a/node_modules/es5-ext/math/log1p/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Math, "log1p", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/math/log1p/index.js b/node_modules/es5-ext/math/log1p/index.js
deleted file mode 100644
index 76eacc5..0000000
--- a/node_modules/es5-ext/math/log1p/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Math.log1p : require("./shim");
diff --git a/node_modules/es5-ext/math/log1p/is-implemented.js b/node_modules/es5-ext/math/log1p/is-implemented.js
deleted file mode 100644
index 7626ab4..0000000
--- a/node_modules/es5-ext/math/log1p/is-implemented.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function () {
- var log1p = Math.log1p;
- if (typeof log1p !== "function") return false;
- return log1p(1) === 0.6931471805599453;
-};
diff --git a/node_modules/es5-ext/math/log1p/shim.js b/node_modules/es5-ext/math/log1p/shim.js
deleted file mode 100644
index 15f1182..0000000
--- a/node_modules/es5-ext/math/log1p/shim.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Thanks: https://github.com/monolithed/ECMAScript-6/blob/master/ES6.js
-
-"use strict";
-
-var log = Math.log;
-
-module.exports = function (value) {
- if (isNaN(value)) return NaN;
- value = Number(value);
- if (value < -1) return NaN;
- if (value === -1) return -Infinity;
- if (value === 0) return value;
- if (value === Infinity) return Infinity;
-
- if (value > -1.0e-8 && value < 1.0e-8) return value - (value * value) / 2;
- return log(1 + value);
-};
diff --git a/node_modules/es5-ext/math/log2/implement.js b/node_modules/es5-ext/math/log2/implement.js
deleted file mode 100644
index 91c06b1..0000000
--- a/node_modules/es5-ext/math/log2/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Math, "log2", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/math/log2/index.js b/node_modules/es5-ext/math/log2/index.js
deleted file mode 100644
index a561977..0000000
--- a/node_modules/es5-ext/math/log2/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Math.log2 : require("./shim");
diff --git a/node_modules/es5-ext/math/log2/is-implemented.js b/node_modules/es5-ext/math/log2/is-implemented.js
deleted file mode 100644
index c70963f..0000000
--- a/node_modules/es5-ext/math/log2/is-implemented.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function () {
- var log2 = Math.log2;
- if (typeof log2 !== "function") return false;
- return log2(3).toFixed(15) === "1.584962500721156";
-};
diff --git a/node_modules/es5-ext/math/log2/shim.js b/node_modules/es5-ext/math/log2/shim.js
deleted file mode 100644
index 51fcdae..0000000
--- a/node_modules/es5-ext/math/log2/shim.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-
-var log = Math.log, LOG2E = Math.LOG2E;
-
-module.exports = function (value) {
- if (isNaN(value)) return NaN;
- value = Number(value);
- if (value < 0) return NaN;
- if (value === 0) return -Infinity;
- if (value === 1) return 0;
- if (value === Infinity) return Infinity;
-
- return log(value) * LOG2E;
-};
diff --git a/node_modules/es5-ext/math/round-10.js b/node_modules/es5-ext/math/round-10.js
deleted file mode 100644
index 228c235..0000000
--- a/node_modules/es5-ext/math/round-10.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./_decimal-adjust")("round");
diff --git a/node_modules/es5-ext/math/sign/implement.js b/node_modules/es5-ext/math/sign/implement.js
deleted file mode 100644
index daf1769..0000000
--- a/node_modules/es5-ext/math/sign/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Math, "sign", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/math/sign/index.js b/node_modules/es5-ext/math/sign/index.js
deleted file mode 100644
index d2659cb..0000000
--- a/node_modules/es5-ext/math/sign/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Math.sign : require("./shim");
diff --git a/node_modules/es5-ext/math/sign/is-implemented.js b/node_modules/es5-ext/math/sign/is-implemented.js
deleted file mode 100644
index 4318cf2..0000000
--- a/node_modules/es5-ext/math/sign/is-implemented.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function () {
- var sign = Math.sign;
- if (typeof sign !== "function") return false;
- return sign(10) === 1 && sign(-20) === -1;
-};
diff --git a/node_modules/es5-ext/math/sign/shim.js b/node_modules/es5-ext/math/sign/shim.js
deleted file mode 100644
index 9acb495..0000000
--- a/node_modules/es5-ext/math/sign/shim.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function (value) {
- value = Number(value);
- if (isNaN(value) || value === 0) return value;
- return value > 0 ? 1 : -1;
-};
diff --git a/node_modules/es5-ext/math/sinh/implement.js b/node_modules/es5-ext/math/sinh/implement.js
deleted file mode 100644
index 4655f6b..0000000
--- a/node_modules/es5-ext/math/sinh/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Math, "sinh", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/math/sinh/index.js b/node_modules/es5-ext/math/sinh/index.js
deleted file mode 100644
index 107ef2e..0000000
--- a/node_modules/es5-ext/math/sinh/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Math.sinh : require("./shim");
diff --git a/node_modules/es5-ext/math/sinh/is-implemented.js b/node_modules/es5-ext/math/sinh/is-implemented.js
deleted file mode 100644
index aad22b0..0000000
--- a/node_modules/es5-ext/math/sinh/is-implemented.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function () {
- var sinh = Math.sinh;
- if (typeof sinh !== "function") return false;
- return sinh(1) === 1.1752011936438014 && sinh(Number.MIN_VALUE) === 5e-324;
-};
diff --git a/node_modules/es5-ext/math/sinh/shim.js b/node_modules/es5-ext/math/sinh/shim.js
deleted file mode 100644
index b161eca..0000000
--- a/node_modules/es5-ext/math/sinh/shim.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Parts of implementation taken from es6-shim project
-// See: https://github.com/paulmillr/es6-shim/blob/master/es6-shim.js
-
-"use strict";
-
-var expm1 = require("../expm1")
- , abs = Math.abs
- , exp = Math.exp
- , e = Math.E;
-
-module.exports = function (value) {
- if (isNaN(value)) return NaN;
- value = Number(value);
- if (value === 0) return value;
- if (!isFinite(value)) return value;
- if (abs(value) < 1) return (expm1(value) - expm1(-value)) / 2;
- return ((exp(value - 1) - exp(-value - 1)) * e) / 2;
-};
diff --git a/node_modules/es5-ext/math/tanh/implement.js b/node_modules/es5-ext/math/tanh/implement.js
deleted file mode 100644
index 52d2957..0000000
--- a/node_modules/es5-ext/math/tanh/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Math, "tanh", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/math/tanh/index.js b/node_modules/es5-ext/math/tanh/index.js
deleted file mode 100644
index 54b3251..0000000
--- a/node_modules/es5-ext/math/tanh/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Math.tanh : require("./shim");
diff --git a/node_modules/es5-ext/math/tanh/is-implemented.js b/node_modules/es5-ext/math/tanh/is-implemented.js
deleted file mode 100644
index b6226b4..0000000
--- a/node_modules/es5-ext/math/tanh/is-implemented.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function () {
- var tanh = Math.tanh;
- if (typeof tanh !== "function") return false;
- return tanh(1) === 0.7615941559557649 && tanh(Number.MAX_VALUE) === 1;
-};
diff --git a/node_modules/es5-ext/math/tanh/shim.js b/node_modules/es5-ext/math/tanh/shim.js
deleted file mode 100644
index 974dd7c..0000000
--- a/node_modules/es5-ext/math/tanh/shim.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-var exp = Math.exp;
-
-module.exports = function (value) {
- var num1, num2;
- if (isNaN(value)) return NaN;
- value = Number(value);
- if (value === 0) return value;
- if (value === Infinity) return 1;
- if (value === -Infinity) return -1;
- num1 = exp(value);
- if (num1 === Infinity) return 1;
- num2 = exp(-value);
- if (num2 === Infinity) return -1;
- return (num1 - num2) / (num1 + num2);
-};
diff --git a/node_modules/es5-ext/math/trunc/implement.js b/node_modules/es5-ext/math/trunc/implement.js
deleted file mode 100644
index bf1bf64..0000000
--- a/node_modules/es5-ext/math/trunc/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Math, "trunc", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/math/trunc/index.js b/node_modules/es5-ext/math/trunc/index.js
deleted file mode 100644
index 8e3874c..0000000
--- a/node_modules/es5-ext/math/trunc/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Math.trunc : require("./shim");
diff --git a/node_modules/es5-ext/math/trunc/is-implemented.js b/node_modules/es5-ext/math/trunc/is-implemented.js
deleted file mode 100644
index 861b5c0..0000000
--- a/node_modules/es5-ext/math/trunc/is-implemented.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function () {
- var trunc = Math.trunc;
- if (typeof trunc !== "function") return false;
- return trunc(13.67) === 13 && trunc(-13.67) === -13;
-};
diff --git a/node_modules/es5-ext/math/trunc/shim.js b/node_modules/es5-ext/math/trunc/shim.js
deleted file mode 100644
index bf6ac8c..0000000
--- a/node_modules/es5-ext/math/trunc/shim.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-var floor = Math.floor;
-
-module.exports = function (value) {
- if (isNaN(value)) return NaN;
- value = Number(value);
- if (value === 0) return value;
- if (value === Infinity) return Infinity;
- if (value === -Infinity) return -Infinity;
- if (value > 0) return floor(value);
- return -floor(-value);
-};
diff --git a/node_modules/es5-ext/number/#/index.js b/node_modules/es5-ext/number/#/index.js
deleted file mode 100644
index 50b6418..0000000
--- a/node_modules/es5-ext/number/#/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = { pad: require("./pad") };
diff --git a/node_modules/es5-ext/number/#/pad.js b/node_modules/es5-ext/number/#/pad.js
deleted file mode 100644
index aebe236..0000000
--- a/node_modules/es5-ext/number/#/pad.js
+++ /dev/null
@@ -1,16 +0,0 @@
-"use strict";
-
-var pad = require("../../string/#/pad")
- , toPosInt = require("../to-pos-integer")
- , toFixed = Number.prototype.toFixed;
-
-module.exports = function (length/*, precision*/) {
- var precision;
- length = toPosInt(length);
- precision = toPosInt(arguments[1]);
-
- return pad.call(
- precision ? toFixed.call(this, precision) : this, "0",
- length + (precision ? 1 + precision : 0)
- );
-};
diff --git a/node_modules/es5-ext/number/epsilon/implement.js b/node_modules/es5-ext/number/epsilon/implement.js
deleted file mode 100644
index 5a22cf5..0000000
--- a/node_modules/es5-ext/number/epsilon/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Number, "EPSILON", {
- value: require("./"),
- configurable: false,
- enumerable: false,
- writable: false
- });
-}
diff --git a/node_modules/es5-ext/number/epsilon/index.js b/node_modules/es5-ext/number/epsilon/index.js
deleted file mode 100644
index 12e8a8d..0000000
--- a/node_modules/es5-ext/number/epsilon/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = 2.220446049250313e-16;
diff --git a/node_modules/es5-ext/number/epsilon/is-implemented.js b/node_modules/es5-ext/number/epsilon/is-implemented.js
deleted file mode 100644
index 5ddc9d6..0000000
--- a/node_modules/es5-ext/number/epsilon/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function () { return typeof Number.EPSILON === "number"; };
diff --git a/node_modules/es5-ext/number/index.js b/node_modules/es5-ext/number/index.js
deleted file mode 100644
index b57ff15..0000000
--- a/node_modules/es5-ext/number/index.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-module.exports = {
- "#": require("./#"),
- "EPSILON": require("./epsilon"),
- "isFinite": require("./is-finite"),
- "isInteger": require("./is-integer"),
- "isNaN": require("./is-nan"),
- "isNatural": require("./is-natural"),
- "isNumber": require("./is-number"),
- "isSafeInteger": require("./is-safe-integer"),
- "MAX_SAFE_INTEGER": require("./max-safe-integer"),
- "MIN_SAFE_INTEGER": require("./min-safe-integer"),
- "toInteger": require("./to-integer"),
- "toPosInteger": require("./to-pos-integer"),
- "toUint32": require("./to-uint32")
-};
diff --git a/node_modules/es5-ext/number/is-finite/implement.js b/node_modules/es5-ext/number/is-finite/implement.js
deleted file mode 100644
index 41109fb..0000000
--- a/node_modules/es5-ext/number/is-finite/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Number, "isFinite", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/number/is-finite/index.js b/node_modules/es5-ext/number/is-finite/index.js
deleted file mode 100644
index f3a7112..0000000
--- a/node_modules/es5-ext/number/is-finite/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Number.isFinite : require("./shim");
diff --git a/node_modules/es5-ext/number/is-finite/is-implemented.js b/node_modules/es5-ext/number/is-finite/is-implemented.js
deleted file mode 100644
index eadd050..0000000
--- a/node_modules/es5-ext/number/is-finite/is-implemented.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function () {
- var numberIsFinite = Number.isFinite;
- if (typeof numberIsFinite !== "function") return false;
- return !numberIsFinite("23") && numberIsFinite(34) && !numberIsFinite(Infinity);
-};
diff --git a/node_modules/es5-ext/number/is-finite/shim.js b/node_modules/es5-ext/number/is-finite/shim.js
deleted file mode 100644
index ce700f6..0000000
--- a/node_modules/es5-ext/number/is-finite/shim.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (value) { return typeof value === "number" && isFinite(value); };
diff --git a/node_modules/es5-ext/number/is-integer/implement.js b/node_modules/es5-ext/number/is-integer/implement.js
deleted file mode 100644
index 48b4cd2..0000000
--- a/node_modules/es5-ext/number/is-integer/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Number, "isInteger", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/number/is-integer/index.js b/node_modules/es5-ext/number/is-integer/index.js
deleted file mode 100644
index 2805b11..0000000
--- a/node_modules/es5-ext/number/is-integer/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Number.isInteger : require("./shim");
diff --git a/node_modules/es5-ext/number/is-integer/is-implemented.js b/node_modules/es5-ext/number/is-integer/is-implemented.js
deleted file mode 100644
index f357c71..0000000
--- a/node_modules/es5-ext/number/is-integer/is-implemented.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function () {
- var isInteger = Number.isInteger;
- if (typeof isInteger !== "function") return false;
- return !isInteger("23") && isInteger(34) && !isInteger(32.34);
-};
diff --git a/node_modules/es5-ext/number/is-integer/shim.js b/node_modules/es5-ext/number/is-integer/shim.js
deleted file mode 100644
index 12058b5..0000000
--- a/node_modules/es5-ext/number/is-integer/shim.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// Credit: http://www.2ality.com/2014/05/is-integer.html
-
-"use strict";
-
-module.exports = function (value) {
- if (typeof value !== "number") return false;
- return value % 1 === 0;
-};
diff --git a/node_modules/es5-ext/number/is-nan/implement.js b/node_modules/es5-ext/number/is-nan/implement.js
deleted file mode 100644
index f704e4c..0000000
--- a/node_modules/es5-ext/number/is-nan/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Number, "isNaN", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/number/is-nan/index.js b/node_modules/es5-ext/number/is-nan/index.js
deleted file mode 100644
index 2cec8fc..0000000
--- a/node_modules/es5-ext/number/is-nan/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Number.isNaN : require("./shim");
diff --git a/node_modules/es5-ext/number/is-nan/is-implemented.js b/node_modules/es5-ext/number/is-nan/is-implemented.js
deleted file mode 100644
index 756838a..0000000
--- a/node_modules/es5-ext/number/is-nan/is-implemented.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function () {
- var numberIsNaN = Number.isNaN;
- if (typeof numberIsNaN !== "function") return false;
- return !numberIsNaN({}) && numberIsNaN(NaN) && !numberIsNaN(34);
-};
diff --git a/node_modules/es5-ext/number/is-nan/shim.js b/node_modules/es5-ext/number/is-nan/shim.js
deleted file mode 100644
index b5730d1..0000000
--- a/node_modules/es5-ext/number/is-nan/shim.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-module.exports = function (value) {
- // eslint-disable-next-line no-self-compare
- return value !== value;
-};
diff --git a/node_modules/es5-ext/number/is-natural.js b/node_modules/es5-ext/number/is-natural.js
deleted file mode 100644
index 2bbb5a2..0000000
--- a/node_modules/es5-ext/number/is-natural.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isInteger = require("./is-integer");
-
-module.exports = function (num) { return isInteger(num) && num >= 0; };
diff --git a/node_modules/es5-ext/number/is-number.js b/node_modules/es5-ext/number/is-number.js
deleted file mode 100644
index 3da0712..0000000
--- a/node_modules/es5-ext/number/is-number.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-var objToString = Object.prototype.toString, id = objToString.call(1);
-
-module.exports = function (value) {
- return (
- typeof value === "number" ||
- (value instanceof Number || (typeof value === "object" && objToString.call(value) === id))
- );
-};
diff --git a/node_modules/es5-ext/number/is-safe-integer/implement.js b/node_modules/es5-ext/number/is-safe-integer/implement.js
deleted file mode 100644
index 571b214..0000000
--- a/node_modules/es5-ext/number/is-safe-integer/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Number, "isSafeInteger", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/number/is-safe-integer/index.js b/node_modules/es5-ext/number/is-safe-integer/index.js
deleted file mode 100644
index 26c2b9f..0000000
--- a/node_modules/es5-ext/number/is-safe-integer/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Number.isSafeInteger : require("./shim");
diff --git a/node_modules/es5-ext/number/is-safe-integer/is-implemented.js b/node_modules/es5-ext/number/is-safe-integer/is-implemented.js
deleted file mode 100644
index 5ed3763..0000000
--- a/node_modules/es5-ext/number/is-safe-integer/is-implemented.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function () {
- var isSafeInteger = Number.isSafeInteger;
- if (typeof isSafeInteger !== "function") return false;
- return !isSafeInteger("23") && isSafeInteger(34232322323) && !isSafeInteger(9007199254740992);
-};
diff --git a/node_modules/es5-ext/number/is-safe-integer/shim.js b/node_modules/es5-ext/number/is-safe-integer/shim.js
deleted file mode 100644
index fb4f4d5..0000000
--- a/node_modules/es5-ext/number/is-safe-integer/shim.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-var isInteger = require("../is-integer/shim")
- , maxValue = require("../max-safe-integer")
- , abs = Math.abs;
-
-module.exports = function (value) {
- if (!isInteger(value)) return false;
- return abs(value) <= maxValue;
-};
diff --git a/node_modules/es5-ext/number/max-safe-integer/implement.js b/node_modules/es5-ext/number/max-safe-integer/implement.js
deleted file mode 100644
index 4ee3231..0000000
--- a/node_modules/es5-ext/number/max-safe-integer/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Number, "MAX_SAFE_INTEGER", {
- value: require("./"),
- configurable: false,
- enumerable: false,
- writable: false
- });
-}
diff --git a/node_modules/es5-ext/number/max-safe-integer/index.js b/node_modules/es5-ext/number/max-safe-integer/index.js
deleted file mode 100644
index 75a41e7..0000000
--- a/node_modules/es5-ext/number/max-safe-integer/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = Math.pow(2, 53) - 1;
diff --git a/node_modules/es5-ext/number/max-safe-integer/is-implemented.js b/node_modules/es5-ext/number/max-safe-integer/is-implemented.js
deleted file mode 100644
index 3d6e914..0000000
--- a/node_modules/es5-ext/number/max-safe-integer/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function () { return typeof Number.MAX_SAFE_INTEGER === "number"; };
diff --git a/node_modules/es5-ext/number/min-safe-integer/implement.js b/node_modules/es5-ext/number/min-safe-integer/implement.js
deleted file mode 100644
index 979dc39..0000000
--- a/node_modules/es5-ext/number/min-safe-integer/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Number, "MIN_SAFE_INTEGER", {
- value: require("./"),
- configurable: false,
- enumerable: false,
- writable: false
- });
-}
diff --git a/node_modules/es5-ext/number/min-safe-integer/index.js b/node_modules/es5-ext/number/min-safe-integer/index.js
deleted file mode 100644
index cde4514..0000000
--- a/node_modules/es5-ext/number/min-safe-integer/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = -(Math.pow(2, 53) - 1);
diff --git a/node_modules/es5-ext/number/min-safe-integer/is-implemented.js b/node_modules/es5-ext/number/min-safe-integer/is-implemented.js
deleted file mode 100644
index 71e6a31..0000000
--- a/node_modules/es5-ext/number/min-safe-integer/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function () { return typeof Number.MIN_SAFE_INTEGER === "number"; };
diff --git a/node_modules/es5-ext/number/to-integer.js b/node_modules/es5-ext/number/to-integer.js
deleted file mode 100644
index 4df5572..0000000
--- a/node_modules/es5-ext/number/to-integer.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-var sign = require("../math/sign")
- , abs = Math.abs
- , floor = Math.floor;
-
-module.exports = function (value) {
- if (isNaN(value)) return 0;
- value = Number(value);
- if (value === 0 || !isFinite(value)) return value;
- return sign(value) * floor(abs(value));
-};
diff --git a/node_modules/es5-ext/number/to-pos-integer.js b/node_modules/es5-ext/number/to-pos-integer.js
deleted file mode 100644
index 28f6d40..0000000
--- a/node_modules/es5-ext/number/to-pos-integer.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-var toInteger = require("./to-integer")
- , max = Math.max;
-
-module.exports = function (value) { return max(0, toInteger(value)); };
diff --git a/node_modules/es5-ext/number/to-uint32.js b/node_modules/es5-ext/number/to-uint32.js
deleted file mode 100644
index cb3590a..0000000
--- a/node_modules/es5-ext/number/to-uint32.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-module.exports = function (value) {
- // eslint-disable-next-line no-bitwise
- return value >>> 0;
-};
diff --git a/node_modules/es5-ext/object/_iterate.js b/node_modules/es5-ext/object/_iterate.js
deleted file mode 100644
index 0a64fdb..0000000
--- a/node_modules/es5-ext/object/_iterate.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Internal method, used by iteration functions.
-// Calls a function for each key-value pair found in object
-// Optionally takes compareFn to iterate object in specific order
-
-"use strict";
-
-var callable = require("./valid-callable")
- , value = require("./valid-value")
- , bind = Function.prototype.bind
- , call = Function.prototype.call
- , keys = Object.keys
- , objPropertyIsEnumerable = Object.prototype.propertyIsEnumerable;
-
-module.exports = function (method, defVal) {
- return function (obj, cb/*, thisArg, compareFn*/) {
- var list, thisArg = arguments[2], compareFn = arguments[3];
- obj = Object(value(obj));
- callable(cb);
-
- list = keys(obj);
- if (compareFn) {
- list.sort(typeof compareFn === "function" ? bind.call(compareFn, obj) : undefined);
- }
- if (typeof method !== "function") method = list[method];
- return call.call(method, list, function (key, index) {
- if (!objPropertyIsEnumerable.call(obj, key)) return defVal;
- return call.call(cb, thisArg, obj[key], key, obj, index);
- });
- };
-};
diff --git a/node_modules/es5-ext/object/assign-deep.js b/node_modules/es5-ext/object/assign-deep.js
deleted file mode 100644
index 4a8597a..0000000
--- a/node_modules/es5-ext/object/assign-deep.js
+++ /dev/null
@@ -1,34 +0,0 @@
-"use strict";
-
-var includes = require("../array/#/contains")
- , uniq = require("../array/#/uniq")
- , copyDeep = require("./copy-deep")
- , objForEach = require("./for-each")
- , isPlainObject = require("./is-plain-object")
- , ensureValue = require("./valid-value");
-
-var isArray = Array.isArray, slice = Array.prototype.slice;
-
-var deepAssign = function (target, source) {
- if (target === source) return target;
- if (isPlainObject(target) && isPlainObject(source)) {
- objForEach(source, function (value, key) { target[key] = deepAssign(target[key], value); });
- return target;
- }
- if (isArray(target) && isArray(source)) {
- source.forEach(function (item) {
- if (includes.call(target, item)) return;
- if (isArray(item) || isPlainObject(item)) item = copyDeep(item);
- target.push(item);
- });
- return target;
- }
- if (isPlainObject(source) || isArray(source)) return copyDeep(source);
- return source;
-};
-
-module.exports = function (target/*, ...objects*/) {
- return uniq
- .call([ensureValue(target)].concat(slice.call(arguments, 1).map(ensureValue)))
- .reduce(deepAssign);
-};
diff --git a/node_modules/es5-ext/object/assign/implement.js b/node_modules/es5-ext/object/assign/implement.js
deleted file mode 100644
index f20371d..0000000
--- a/node_modules/es5-ext/object/assign/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Object, "assign", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/object/assign/index.js b/node_modules/es5-ext/object/assign/index.js
deleted file mode 100644
index 9585b55..0000000
--- a/node_modules/es5-ext/object/assign/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Object.assign : require("./shim");
diff --git a/node_modules/es5-ext/object/assign/is-implemented.js b/node_modules/es5-ext/object/assign/is-implemented.js
deleted file mode 100644
index 8bf71ae..0000000
--- a/node_modules/es5-ext/object/assign/is-implemented.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-module.exports = function () {
- var assign = Object.assign, obj;
- if (typeof assign !== "function") return false;
- obj = { foo: "raz" };
- assign(obj, { bar: "dwa" }, { trzy: "trzy" });
- return obj.foo + obj.bar + obj.trzy === "razdwatrzy";
-};
diff --git a/node_modules/es5-ext/object/assign/shim.js b/node_modules/es5-ext/object/assign/shim.js
deleted file mode 100644
index ad1804d..0000000
--- a/node_modules/es5-ext/object/assign/shim.js
+++ /dev/null
@@ -1,23 +0,0 @@
-"use strict";
-
-var keys = require("../keys")
- , value = require("../valid-value")
- , max = Math.max;
-
-module.exports = function (dest, src/*, …srcn*/) {
- var error, i, length = max(arguments.length, 2), assign;
- dest = Object(value(dest));
- assign = function (key) {
- try {
- dest[key] = src[key];
- } catch (e) {
- if (!error) error = e;
- }
- };
- for (i = 1; i < length; ++i) {
- src = arguments[i];
- keys(src).forEach(assign);
- }
- if (error !== undefined) throw error;
- return dest;
-};
diff --git a/node_modules/es5-ext/object/clear.js b/node_modules/es5-ext/object/clear.js
deleted file mode 100644
index 268cc5b..0000000
--- a/node_modules/es5-ext/object/clear.js
+++ /dev/null
@@ -1,16 +0,0 @@
-"use strict";
-
-var keys = require("./keys");
-
-module.exports = function (obj) {
- var error;
- keys(obj).forEach(function (key) {
- try {
- delete this[key];
- } catch (e) {
- if (!error) error = e;
- }
- }, obj);
- if (error !== undefined) throw error;
- return obj;
-};
diff --git a/node_modules/es5-ext/object/compact.js b/node_modules/es5-ext/object/compact.js
deleted file mode 100644
index a1794bb..0000000
--- a/node_modules/es5-ext/object/compact.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var filter = require("./filter")
- , isValue = require("./is-value");
-
-module.exports = function (obj) {
- return filter(obj, function (val) { return isValue(val); });
-};
diff --git a/node_modules/es5-ext/object/compare.js b/node_modules/es5-ext/object/compare.js
deleted file mode 100644
index 261a732..0000000
--- a/node_modules/es5-ext/object/compare.js
+++ /dev/null
@@ -1,39 +0,0 @@
-"use strict";
-
-var strCompare = require("../string/#/case-insensitive-compare")
- , isObject = require("./is-object")
- , isValue = require("./is-value")
- , numIsNaN = require("../number/is-nan")
- , resolve
- , typeMap;
-
-typeMap = { undefined: 0, object: 1, boolean: 2, string: 3, number: 4 };
-
-resolve = function (a) {
- if (isObject(a)) {
- if (typeof a.valueOf !== "function") return NaN;
- a = a.valueOf();
- if (isObject(a)) {
- if (typeof a.toString !== "function") return NaN;
- a = a.toString();
- if (typeof a !== "string") return NaN;
- }
- }
- return a;
-};
-
-module.exports = function (val1, val2) {
- if (val1 === val2) return 0; // Same
-
- val1 = resolve(val1);
- val2 = resolve(val2);
- // eslint-disable-next-line eqeqeq
- if (val1 == val2) return typeMap[typeof val1] - typeMap[typeof val2];
- if (!isValue(val1)) return -1;
- if (!isValue(val2)) return 1;
- if (typeof val1 === "string" || typeof val2 === "string") {
- return strCompare.call(val1, val2);
- }
- if (numIsNaN(val1) && numIsNaN(val2)) return 0; // Jslint: ignore
- return Number(val1) - Number(val2);
-};
diff --git a/node_modules/es5-ext/object/copy-deep.js b/node_modules/es5-ext/object/copy-deep.js
deleted file mode 100644
index 1d1bed2..0000000
--- a/node_modules/es5-ext/object/copy-deep.js
+++ /dev/null
@@ -1,35 +0,0 @@
-"use strict";
-
-var forEach = require("./for-each")
- , isPlainObject = require("./is-plain-object")
- , ensureValue = require("./valid-value")
- , isArray = Array.isArray;
-
-var copyValue = function (value, ancestors, ancestorsCopy) {
- var mode;
- if (isPlainObject(value)) mode = "object";
- else if (isArray(value)) mode = "array";
- if (!mode) return value;
-
- var copy = ancestorsCopy[ancestors.indexOf(value)];
- if (copy) return copy;
- copy = mode === "object" ? {} : [];
-
- ancestors.push(value);
- ancestorsCopy.push(copy);
- if (mode === "object") {
- forEach(value, function (item, key) {
- copy[key] = copyValue(item, ancestors, ancestorsCopy);
- });
- } else {
- value.forEach(function (item, index) {
- copy[index] = copyValue(item, ancestors, ancestorsCopy);
- });
- }
- ancestors.pop();
- ancestorsCopy.pop();
-
- return copy;
-};
-
-module.exports = function (source) { return copyValue(ensureValue(source), [], []); };
diff --git a/node_modules/es5-ext/object/copy.js b/node_modules/es5-ext/object/copy.js
deleted file mode 100644
index 5368e42..0000000
--- a/node_modules/es5-ext/object/copy.js
+++ /dev/null
@@ -1,19 +0,0 @@
-"use strict";
-
-var aFrom = require("../array/from")
- , assign = require("./assign")
- , value = require("./valid-value");
-
-module.exports = function (obj/*, propertyNames, options*/) {
- var copy = Object(value(obj)), propertyNames = arguments[1], options = Object(arguments[2]);
- if (copy !== obj && !propertyNames) return copy;
- var result = {};
- if (propertyNames) {
- aFrom(propertyNames, function (propertyName) {
- if (options.ensure || propertyName in obj) result[propertyName] = obj[propertyName];
- });
- } else {
- assign(result, obj);
- }
- return result;
-};
diff --git a/node_modules/es5-ext/object/count.js b/node_modules/es5-ext/object/count.js
deleted file mode 100644
index 6c018bb..0000000
--- a/node_modules/es5-ext/object/count.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var keys = require("./keys");
-
-module.exports = function (obj) { return keys(obj).length; };
diff --git a/node_modules/es5-ext/object/create.js b/node_modules/es5-ext/object/create.js
deleted file mode 100644
index a391ec1..0000000
--- a/node_modules/es5-ext/object/create.js
+++ /dev/null
@@ -1,43 +0,0 @@
-// Workaround for http://code.google.com/p/v8/issues/detail?id=2804
-
-"use strict";
-
-var create = Object.create, shim;
-
-if (!require("./set-prototype-of/is-implemented")()) {
- shim = require("./set-prototype-of/shim");
-}
-
-module.exports = (function () {
- var nullObject, polyProps, desc;
- if (!shim) return create;
- if (shim.level !== 1) return create;
-
- nullObject = {};
- polyProps = {};
- desc = { configurable: false, enumerable: false, writable: true, value: undefined };
- Object.getOwnPropertyNames(Object.prototype).forEach(function (name) {
- if (name === "__proto__") {
- polyProps[name] = {
- configurable: true,
- enumerable: false,
- writable: true,
- value: undefined
- };
- return;
- }
- polyProps[name] = desc;
- });
- Object.defineProperties(nullObject, polyProps);
-
- Object.defineProperty(shim, "nullPolyfill", {
- configurable: false,
- enumerable: false,
- writable: false,
- value: nullObject
- });
-
- return function (prototype, props) {
- return create(prototype === null ? nullObject : prototype, props);
- };
-})();
diff --git a/node_modules/es5-ext/object/ensure-array.js b/node_modules/es5-ext/object/ensure-array.js
deleted file mode 100644
index 5ca7a94..0000000
--- a/node_modules/es5-ext/object/ensure-array.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-var toShortString = require("../to-short-string-representation")
- , isArray = require("./is-array-like");
-
-module.exports = function (value) {
- if (isArray(value)) return value;
- throw new TypeError(toShortString(value) + " is not a array");
-};
diff --git a/node_modules/es5-ext/object/ensure-finite-number.js b/node_modules/es5-ext/object/ensure-finite-number.js
deleted file mode 100644
index 4f6e4b4..0000000
--- a/node_modules/es5-ext/object/ensure-finite-number.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-var isFiniteNumber = require("./is-finite-number")
- , safeToString = require("../safe-to-string");
-
-module.exports = function (value) {
- if (isFiniteNumber(value)) return Number(value);
- throw new TypeError(safeToString(value) + " does not represent a finite number value");
-};
diff --git a/node_modules/es5-ext/object/ensure-integer.js b/node_modules/es5-ext/object/ensure-integer.js
deleted file mode 100644
index 9ec64b5..0000000
--- a/node_modules/es5-ext/object/ensure-integer.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-var toShortString = require("../to-short-string-representation")
- , isInteger = require("./is-integer");
-
-module.exports = function (num) {
- if (!isInteger(num)) throw new TypeError(toShortString(num) + " is not a integer");
- return Number(num);
-};
diff --git a/node_modules/es5-ext/object/ensure-natural-number-value.js b/node_modules/es5-ext/object/ensure-natural-number-value.js
deleted file mode 100644
index 1a901aa..0000000
--- a/node_modules/es5-ext/object/ensure-natural-number-value.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-var isNaturalValue = require("./is-natural-number-value")
- , toShortString = require("../to-short-string-representation");
-
-module.exports = function (arg) {
- var num = Number(arg);
- if (!isNaturalValue(arg)) throw new TypeError(toShortString(arg) + " is not a natural number");
- return num;
-};
diff --git a/node_modules/es5-ext/object/ensure-natural-number.js b/node_modules/es5-ext/object/ensure-natural-number.js
deleted file mode 100644
index ec7e514..0000000
--- a/node_modules/es5-ext/object/ensure-natural-number.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-var isNatural = require("../number/is-natural")
- , toShortString = require("../to-short-string-representation");
-
-module.exports = function (arg) {
- var num = Number(arg);
- if (!isNatural(num)) throw new TypeError(toShortString(arg) + " is not a natural number");
- return num;
-};
diff --git a/node_modules/es5-ext/object/ensure-plain-function.js b/node_modules/es5-ext/object/ensure-plain-function.js
deleted file mode 100644
index 6cd9853..0000000
--- a/node_modules/es5-ext/object/ensure-plain-function.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-var safeToString = require("../safe-to-string")
- , isPlainFunction = require("./is-plain-function");
-
-module.exports = function (value) {
- if (!isPlainFunction(value)) {
- throw new TypeError(safeToString(value) + " is not a plain function");
- }
- return value;
-};
diff --git a/node_modules/es5-ext/object/ensure-plain-object.js b/node_modules/es5-ext/object/ensure-plain-object.js
deleted file mode 100644
index 7fb2b93..0000000
--- a/node_modules/es5-ext/object/ensure-plain-object.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-var safeToString = require("../safe-to-string")
- , isPlainObject = require("./is-plain-object");
-
-module.exports = function (value) {
- if (!isPlainObject(value)) throw new TypeError(safeToString(value) + " is not a plain object");
- return value;
-};
diff --git a/node_modules/es5-ext/object/ensure-promise.js b/node_modules/es5-ext/object/ensure-promise.js
deleted file mode 100644
index b5b5356..0000000
--- a/node_modules/es5-ext/object/ensure-promise.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-var safeToString = require("../safe-to-string")
- , isPromise = require("./is-promise");
-
-module.exports = function (value) {
- if (!isPromise(value)) throw new TypeError(safeToString(value) + " is not a promise");
- return value;
-};
diff --git a/node_modules/es5-ext/object/ensure-thenable.js b/node_modules/es5-ext/object/ensure-thenable.js
deleted file mode 100644
index c55c17a..0000000
--- a/node_modules/es5-ext/object/ensure-thenable.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-var safeToString = require("../safe-to-string")
- , isThenable = require("./is-thenable");
-
-module.exports = function (value) {
- if (!isThenable(value)) throw new TypeError(safeToString(value) + " is not a thenable");
- return value;
-};
diff --git a/node_modules/es5-ext/object/entries/implement.js b/node_modules/es5-ext/object/entries/implement.js
deleted file mode 100644
index 5c2a246..0000000
--- a/node_modules/es5-ext/object/entries/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Object, "entries", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/object/entries/index.js b/node_modules/es5-ext/object/entries/index.js
deleted file mode 100644
index 4a297d6..0000000
--- a/node_modules/es5-ext/object/entries/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Object.entries : require("./shim");
diff --git a/node_modules/es5-ext/object/entries/is-implemented.js b/node_modules/es5-ext/object/entries/is-implemented.js
deleted file mode 100644
index aad52b2..0000000
--- a/node_modules/es5-ext/object/entries/is-implemented.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-module.exports = function () {
- try { return Object.entries({ foo: 12 })[0][0] === "foo"; }
- catch (e) { return false; }
-};
diff --git a/node_modules/es5-ext/object/entries/shim.js b/node_modules/es5-ext/object/entries/shim.js
deleted file mode 100644
index 2348e44..0000000
--- a/node_modules/es5-ext/object/entries/shim.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-
-var ensureValue = require("../valid-value");
-
-module.exports = function (object) {
- ensureValue(object);
- var result = [];
- object = Object(object);
- for (var key in object) {
- if (!propertyIsEnumerable.call(object, key)) continue;
- result.push([key, object[key]]);
- }
- return result;
-};
diff --git a/node_modules/es5-ext/object/eq.js b/node_modules/es5-ext/object/eq.js
deleted file mode 100644
index 0312468..0000000
--- a/node_modules/es5-ext/object/eq.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-var numIsNaN = require("../number/is-nan");
-
-module.exports = function (val1, val2) {
- return val1 === val2 || (numIsNaN(val1) && numIsNaN(val2));
-};
diff --git a/node_modules/es5-ext/object/every.js b/node_modules/es5-ext/object/every.js
deleted file mode 100644
index 892b548..0000000
--- a/node_modules/es5-ext/object/every.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./_iterate")("every", true);
diff --git a/node_modules/es5-ext/object/filter.js b/node_modules/es5-ext/object/filter.js
deleted file mode 100644
index 5c1ed92..0000000
--- a/node_modules/es5-ext/object/filter.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-
-var callable = require("./valid-callable")
- , forEach = require("./for-each")
- , call = Function.prototype.call;
-
-module.exports = function (obj, cb/*, thisArg*/) {
- var result = {}, thisArg = arguments[2];
- callable(cb);
- forEach(obj, function (value, key, targetObj, index) {
- if (call.call(cb, thisArg, value, key, targetObj, index)) result[key] = targetObj[key];
- });
- return result;
-};
diff --git a/node_modules/es5-ext/object/find-key.js b/node_modules/es5-ext/object/find-key.js
deleted file mode 100644
index 6da6ba6..0000000
--- a/node_modules/es5-ext/object/find-key.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./_iterate")(require("../array/#/find"), false);
diff --git a/node_modules/es5-ext/object/find.js b/node_modules/es5-ext/object/find.js
deleted file mode 100644
index 650375b..0000000
--- a/node_modules/es5-ext/object/find.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-var findKey = require("./find-key")
- , isValue = require("./is-value");
-
-// eslint-disable-next-line no-unused-vars
-module.exports = function (obj, cb/*, thisArg, compareFn*/) {
- var key = findKey.apply(this, arguments);
- return isValue(key) ? obj[key] : key;
-};
diff --git a/node_modules/es5-ext/object/first-key.js b/node_modules/es5-ext/object/first-key.js
deleted file mode 100644
index 3666de5..0000000
--- a/node_modules/es5-ext/object/first-key.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-var value = require("./valid-value")
- , objPropertyIsEnumerable = Object.prototype.propertyIsEnumerable;
-
-module.exports = function (obj) {
- var i;
- value(obj);
- for (i in obj) {
- if (objPropertyIsEnumerable.call(obj, i)) return i;
- }
- return null;
-};
diff --git a/node_modules/es5-ext/object/flatten.js b/node_modules/es5-ext/object/flatten.js
deleted file mode 100644
index cda7475..0000000
--- a/node_modules/es5-ext/object/flatten.js
+++ /dev/null
@@ -1,16 +0,0 @@
-"use strict";
-
-var isPlainObject = require("./is-plain-object")
- , forEach = require("./for-each")
- , process;
-
-process = function self(value, key) {
- if (isPlainObject(value)) forEach(value, self, this);
- else this[key] = value;
-};
-
-module.exports = function (obj) {
- var flattened = {};
- forEach(obj, process, flattened);
- return flattened;
-};
diff --git a/node_modules/es5-ext/object/for-each.js b/node_modules/es5-ext/object/for-each.js
deleted file mode 100644
index d282956..0000000
--- a/node_modules/es5-ext/object/for-each.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./_iterate")("forEach");
diff --git a/node_modules/es5-ext/object/get-property-names.js b/node_modules/es5-ext/object/get-property-names.js
deleted file mode 100644
index 7dfef27..0000000
--- a/node_modules/es5-ext/object/get-property-names.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-var uniq = require("../array/#/uniq")
- , value = require("./valid-value")
- , push = Array.prototype.push
- , getOwnPropertyNames = Object.getOwnPropertyNames
- , getPrototypeOf = Object.getPrototypeOf;
-
-module.exports = function (obj) {
- var keys;
- obj = Object(value(obj));
- keys = getOwnPropertyNames(obj);
- while ((obj = getPrototypeOf(obj))) {
- push.apply(keys, getOwnPropertyNames(obj));
- }
- return uniq.call(keys);
-};
diff --git a/node_modules/es5-ext/object/index.js b/node_modules/es5-ext/object/index.js
deleted file mode 100644
index 13cfb95..0000000
--- a/node_modules/es5-ext/object/index.js
+++ /dev/null
@@ -1,70 +0,0 @@
-"use strict";
-
-module.exports = {
- assign: require("./assign"),
- assignDeep: require("./assign-deep"),
- clear: require("./clear"),
- compact: require("./compact"),
- compare: require("./compare"),
- copy: require("./copy"),
- copyDeep: require("./copy-deep"),
- count: require("./count"),
- create: require("./create"),
- ensureArray: require("./ensure-array"),
- ensureFiniteNumber: require("./ensure-finite-number"),
- ensureInteger: require("./ensure-integer"),
- ensureNaturalNumber: require("./ensure-natural-number"),
- ensureNaturalNumberValue: require("./ensure-natural-number-value"),
- ensurePlainFunction: require("./ensure-plain-function"),
- ensurePlainObject: require("./ensure-plain-object"),
- ensurePromise: require("./ensure-promise"),
- ensureThenable: require("./ensure-thenable"),
- entries: require("./entries"),
- eq: require("./eq"),
- every: require("./every"),
- filter: require("./filter"),
- find: require("./find"),
- findKey: require("./find-key"),
- firstKey: require("./first-key"),
- flatten: require("./flatten"),
- forEach: require("./for-each"),
- getPropertyNames: require("./get-property-names"),
- is: require("./is"),
- isArrayLike: require("./is-array-like"),
- isCallable: require("./is-callable"),
- isCopy: require("./is-copy"),
- isCopyDeep: require("./is-copy-deep"),
- isEmpty: require("./is-empty"),
- isFiniteNumber: require("./is-finite-number"),
- isInteger: require("./is-integer"),
- isNaturalNumber: require("./is-natural-number"),
- isNaturalNumberValue: require("./is-natural-number-value"),
- isNumberValue: require("./is-number-value"),
- isObject: require("./is-object"),
- isPlainFunction: require("./is-plain-function"),
- isPlainObject: require("./is-plain-object"),
- isPromise: require("./is-promise"),
- isThenable: require("./is-thenable"),
- isValue: require("./is-value"),
- keyOf: require("./key-of"),
- keys: require("./keys"),
- map: require("./map"),
- mapKeys: require("./map-keys"),
- normalizeOptions: require("./normalize-options"),
- mixin: require("./mixin"),
- mixinPrototypes: require("./mixin-prototypes"),
- primitiveSet: require("./primitive-set"),
- safeTraverse: require("./safe-traverse"),
- serialize: require("./serialize"),
- setPrototypeOf: require("./set-prototype-of"),
- some: require("./some"),
- toArray: require("./to-array"),
- unserialize: require("./unserialize"),
- validateArrayLike: require("./validate-array-like"),
- validateArrayLikeObject: require("./validate-array-like-object"),
- validCallable: require("./valid-callable"),
- validObject: require("./valid-object"),
- validateStringifiable: require("./validate-stringifiable"),
- validateStringifiableValue: require("./validate-stringifiable-value"),
- validValue: require("./valid-value")
-};
diff --git a/node_modules/es5-ext/object/is-array-like.js b/node_modules/es5-ext/object/is-array-like.js
deleted file mode 100644
index fcb9115..0000000
--- a/node_modules/es5-ext/object/is-array-like.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-var isFunction = require("../function/is-function")
- , isObject = require("./is-object")
- , isValue = require("./is-value");
-
-module.exports = function (value) {
- return (
- (isValue(value) &&
- typeof value.length === "number" &&
- // Just checking ((typeof x === 'object') && (typeof x !== 'function'))
- // won't work right for some cases, e.g.:
- // type of instance of NodeList in Safari is a 'function'
- ((isObject(value) && !isFunction(value)) || typeof value === "string")) ||
- false
- );
-};
diff --git a/node_modules/es5-ext/object/is-callable.js b/node_modules/es5-ext/object/is-callable.js
deleted file mode 100644
index 927e5e8..0000000
--- a/node_modules/es5-ext/object/is-callable.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// Deprecated
-
-"use strict";
-
-module.exports = function (obj) { return typeof obj === "function"; };
diff --git a/node_modules/es5-ext/object/is-copy-deep.js b/node_modules/es5-ext/object/is-copy-deep.js
deleted file mode 100644
index a1206ae..0000000
--- a/node_modules/es5-ext/object/is-copy-deep.js
+++ /dev/null
@@ -1,59 +0,0 @@
-"use strict";
-
-var eq = require("./eq")
- , isPlainObject = require("./is-plain-object")
- , value = require("./valid-value");
-
-var isArray = Array.isArray
- , keys = Object.keys
- , objPropertyIsEnumerable = Object.prototype.propertyIsEnumerable
- , objHasOwnProperty = Object.prototype.hasOwnProperty
- , eqArr
- , eqVal
- , eqObj;
-
-eqArr = function (arr1, arr2, recMap) {
- var i, length = arr1.length;
- if (length !== arr2.length) return false;
- for (i = 0; i < length; ++i) {
- if (objHasOwnProperty.call(arr1, i) !== objHasOwnProperty.call(arr2, i)) return false;
- if (!eqVal(arr1[i], arr2[i], recMap)) return false;
- }
- return true;
-};
-
-eqObj = function (obj1, obj2, recMap) {
- var k1 = keys(obj1), k2 = keys(obj2);
- if (k1.length !== k2.length) return false;
- return k1.every(function (key) {
- if (!objPropertyIsEnumerable.call(obj2, key)) return false;
- return eqVal(obj1[key], obj2[key], recMap);
- });
-};
-
-eqVal = function (val1, val2, recMap) {
- var i, eqX, c1, c2;
- if (eq(val1, val2)) return true;
- if (isPlainObject(val1)) {
- if (!isPlainObject(val2)) return false;
- eqX = eqObj;
- } else if (isArray(val1) && isArray(val2)) {
- eqX = eqArr;
- } else {
- return false;
- }
- c1 = recMap[0];
- c2 = recMap[1];
- i = c1.indexOf(val1);
- if (i === -1) {
- i = c1.push(val1) - 1;
- c2[i] = [];
- } else if (c2[i].indexOf(val2) !== -1) return true;
- c2[i].push(val2);
- return eqX(val1, val2, recMap);
-};
-
-module.exports = function (val1, val2) {
- if (eq(value(val1), value(val2))) return true;
- return eqVal(Object(val1), Object(val2), [[], []]);
-};
diff --git a/node_modules/es5-ext/object/is-copy.js b/node_modules/es5-ext/object/is-copy.js
deleted file mode 100644
index 8c6ae5e..0000000
--- a/node_modules/es5-ext/object/is-copy.js
+++ /dev/null
@@ -1,23 +0,0 @@
-"use strict";
-
-var eq = require("./eq")
- , value = require("./valid-value")
- , keys = Object.keys
- , objPropertyIsEnumerable = Object.prototype.propertyIsEnumerable;
-
-module.exports = function (val1, val2) {
- var k1, k2;
-
- if (eq(value(val1), value(val2))) return true;
-
- val1 = Object(val1);
- val2 = Object(val2);
-
- k1 = keys(val1);
- k2 = keys(val2);
- if (k1.length !== k2.length) return false;
- return k1.every(function (key) {
- if (!objPropertyIsEnumerable.call(val2, key)) return false;
- return eq(val1[key], val2[key]);
- });
-};
diff --git a/node_modules/es5-ext/object/is-empty.js b/node_modules/es5-ext/object/is-empty.js
deleted file mode 100644
index dbc52d0..0000000
--- a/node_modules/es5-ext/object/is-empty.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-
-var value = require("./valid-value")
- , objPropertyIsEnumerable = Object.prototype.propertyIsEnumerable;
-
-module.exports = function (obj) {
- var i;
- value(obj);
- for (i in obj) {
- // Jslint: ignore
- if (objPropertyIsEnumerable.call(obj, i)) return false;
- }
- return true;
-};
diff --git a/node_modules/es5-ext/object/is-finite-number.js b/node_modules/es5-ext/object/is-finite-number.js
deleted file mode 100644
index e016f8d..0000000
--- a/node_modules/es5-ext/object/is-finite-number.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isNumber = require("./is-number-value");
-
-module.exports = function (value) { return isNumber(value) && isFinite(value); };
diff --git a/node_modules/es5-ext/object/is-integer.js b/node_modules/es5-ext/object/is-integer.js
deleted file mode 100644
index 1745b82..0000000
--- a/node_modules/es5-ext/object/is-integer.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-var isInteger = require("../number/is-integer")
- , isValue = require("./is-value");
-
-module.exports = function (arg) {
- if (!isValue(arg)) return false;
- arg = Number(arg);
- return isInteger(arg);
-};
diff --git a/node_modules/es5-ext/object/is-natural-number-value.js b/node_modules/es5-ext/object/is-natural-number-value.js
deleted file mode 100644
index c744521..0000000
--- a/node_modules/es5-ext/object/is-natural-number-value.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-var isNaturalNumber = require("./is-natural-number")
- , isValue = require("./is-value");
-
-module.exports = function (arg) {
- if (!isValue(arg)) return false;
- return isNaturalNumber(arg);
-};
diff --git a/node_modules/es5-ext/object/is-natural-number.js b/node_modules/es5-ext/object/is-natural-number.js
deleted file mode 100644
index 3e2c1f5..0000000
--- a/node_modules/es5-ext/object/is-natural-number.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isNatural = require("../number/is-natural");
-
-module.exports = function (arg) { return isNatural(Number(arg)); };
diff --git a/node_modules/es5-ext/object/is-number-value.js b/node_modules/es5-ext/object/is-number-value.js
deleted file mode 100644
index f701bf5..0000000
--- a/node_modules/es5-ext/object/is-number-value.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-var isValue = require("./is-value");
-
-module.exports = function (value) {
- if (!isValue(value)) return false;
- try { return !isNaN(value); }
- catch (e) { return false; }
-};
diff --git a/node_modules/es5-ext/object/is-object.js b/node_modules/es5-ext/object/is-object.js
deleted file mode 100644
index 0e576d7..0000000
--- a/node_modules/es5-ext/object/is-object.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-var isValue = require("./is-value");
-
-var map = { function: true, object: true };
-
-module.exports = function (value) { return (isValue(value) && map[typeof value]) || false; };
diff --git a/node_modules/es5-ext/object/is-plain-function.js b/node_modules/es5-ext/object/is-plain-function.js
deleted file mode 100644
index a2f3234..0000000
--- a/node_modules/es5-ext/object/is-plain-function.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-var isClassStr = RegExp.prototype.test.bind(/^\s*class[\s{/}]/)
- , fnToString = Function.prototype.toString;
-
-module.exports = function (fn) {
- if (typeof fn !== "function") return false;
- if (typeof fn.call !== "function") return false;
- if (typeof fn.apply !== "function") return false;
- return !isClassStr(fnToString.call(fn));
-};
diff --git a/node_modules/es5-ext/object/is-plain-object.js b/node_modules/es5-ext/object/is-plain-object.js
deleted file mode 100644
index ff15328..0000000
--- a/node_modules/es5-ext/object/is-plain-object.js
+++ /dev/null
@@ -1,20 +0,0 @@
-"use strict";
-
-var getPrototypeOf = Object.getPrototypeOf
- , prototype = Object.prototype
- , objToString = prototype.toString
- , id = Object().toString();
-
-module.exports = function (value) {
- var proto, valueConstructor;
- if (!value || typeof value !== "object" || objToString.call(value) !== id) {
- return false;
- }
- proto = getPrototypeOf(value);
- if (proto === null) {
- valueConstructor = value.constructor;
- if (typeof valueConstructor !== "function") return true;
- return valueConstructor.prototype !== value;
- }
- return proto === prototype || getPrototypeOf(proto) === null;
-};
diff --git a/node_modules/es5-ext/object/is-promise.js b/node_modules/es5-ext/object/is-promise.js
deleted file mode 100644
index 33d6df1..0000000
--- a/node_modules/es5-ext/object/is-promise.js
+++ /dev/null
@@ -1,4 +0,0 @@
-"use strict";
-
-// In next major this check will also confirm on promise constructor
-module.exports = require("./is-thenable");
diff --git a/node_modules/es5-ext/object/is-thenable.js b/node_modules/es5-ext/object/is-thenable.js
deleted file mode 100644
index 06db0fd..0000000
--- a/node_modules/es5-ext/object/is-thenable.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-var isCallable = require("./is-callable")
- , isObject = require("./is-object");
-
-module.exports = function (value) { return isObject(value) && isCallable(value.then); };
diff --git a/node_modules/es5-ext/object/is-value.js b/node_modules/es5-ext/object/is-value.js
deleted file mode 100644
index 4ee3805..0000000
--- a/node_modules/es5-ext/object/is-value.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var _undefined = require("../function/noop")(); // Support ES3 engines
-
-module.exports = function (val) { return val !== _undefined && val !== null; };
diff --git a/node_modules/es5-ext/object/is.js b/node_modules/es5-ext/object/is.js
deleted file mode 100644
index 54baade..0000000
--- a/node_modules/es5-ext/object/is.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// Implementation credits go to:
-// http://wiki.ecmascript.org/doku.php?id=harmony:egal
-
-"use strict";
-
-var numIsNaN = require("../number/is-nan");
-
-module.exports = function (val1, val2) {
- return val1 === val2 ? val1 !== 0 || 1 / val1 === 1 / val2 : numIsNaN(val1) && numIsNaN(val2);
-};
diff --git a/node_modules/es5-ext/object/key-of.js b/node_modules/es5-ext/object/key-of.js
deleted file mode 100644
index dc640e4..0000000
--- a/node_modules/es5-ext/object/key-of.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-var eq = require("./eq")
- , some = require("./some");
-
-module.exports = function (obj, searchValue) {
- var result;
- return some(obj, function (value, name) {
- if (eq(value, searchValue)) {
- result = name;
- return true;
- }
- return false;
- })
- ? result
- : null;
-};
diff --git a/node_modules/es5-ext/object/keys/implement.js b/node_modules/es5-ext/object/keys/implement.js
deleted file mode 100644
index 72ecfbd..0000000
--- a/node_modules/es5-ext/object/keys/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Object, "keys", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/object/keys/index.js b/node_modules/es5-ext/object/keys/index.js
deleted file mode 100644
index d194227..0000000
--- a/node_modules/es5-ext/object/keys/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Object.keys : require("./shim");
diff --git a/node_modules/es5-ext/object/keys/is-implemented.js b/node_modules/es5-ext/object/keys/is-implemented.js
deleted file mode 100644
index 2dfcf1b..0000000
--- a/node_modules/es5-ext/object/keys/is-implemented.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-module.exports = function () {
- try {
- Object.keys("primitive");
- return true;
- } catch (e) {
- return false;
- }
-};
diff --git a/node_modules/es5-ext/object/keys/shim.js b/node_modules/es5-ext/object/keys/shim.js
deleted file mode 100644
index a8908d5..0000000
--- a/node_modules/es5-ext/object/keys/shim.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-var isValue = require("../is-value");
-
-var keys = Object.keys;
-
-module.exports = function (object) { return keys(isValue(object) ? Object(object) : object); };
diff --git a/node_modules/es5-ext/object/map-keys.js b/node_modules/es5-ext/object/map-keys.js
deleted file mode 100644
index 662e6ca..0000000
--- a/node_modules/es5-ext/object/map-keys.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-
-var callable = require("./valid-callable")
- , forEach = require("./for-each")
- , call = Function.prototype.call;
-
-module.exports = function (obj, cb/*, thisArg*/) {
- var result = {}, thisArg = arguments[2];
- callable(cb);
- forEach(
- obj,
- function (value, key, targetObj, index) {
- result[call.call(cb, thisArg, key, value, this, index)] = value;
- },
- obj
- );
- return result;
-};
diff --git a/node_modules/es5-ext/object/map.js b/node_modules/es5-ext/object/map.js
deleted file mode 100644
index e4eb61b..0000000
--- a/node_modules/es5-ext/object/map.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-
-var callable = require("./valid-callable")
- , forEach = require("./for-each")
- , call = Function.prototype.call;
-
-module.exports = function (obj, cb/*, thisArg*/) {
- var result = {}, thisArg = arguments[2];
- callable(cb);
- forEach(obj, function (value, key, targetObj, index) {
- result[key] = call.call(cb, thisArg, value, key, targetObj, index);
- });
- return result;
-};
diff --git a/node_modules/es5-ext/object/mixin-prototypes.js b/node_modules/es5-ext/object/mixin-prototypes.js
deleted file mode 100644
index 81e27c7..0000000
--- a/node_modules/es5-ext/object/mixin-prototypes.js
+++ /dev/null
@@ -1,25 +0,0 @@
-"use strict";
-
-var value = require("./valid-value")
- , mixin = require("./mixin");
-
-var getPrototypeOf = Object.getPrototypeOf;
-
-module.exports = function (target, source) {
- target = Object(value(target));
- source = Object(value(source));
- if (target === source) return target;
-
- var sources = [];
- while (source && !isPrototypeOf.call(source, target)) {
- sources.unshift(source);
- source = getPrototypeOf(source);
- }
-
- var error;
- sources.forEach(function (sourceProto) {
- try { mixin(target, sourceProto); } catch (mixinError) { error = mixinError; }
- });
- if (error) throw error;
- return target;
-};
diff --git a/node_modules/es5-ext/object/mixin.js b/node_modules/es5-ext/object/mixin.js
deleted file mode 100644
index f5cf9dd..0000000
--- a/node_modules/es5-ext/object/mixin.js
+++ /dev/null
@@ -1,26 +0,0 @@
-"use strict";
-
-var value = require("./valid-value")
- , defineProperty = Object.defineProperty
- , getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor
- , getOwnPropertyNames = Object.getOwnPropertyNames
- , getOwnPropertySymbols = Object.getOwnPropertySymbols;
-
-module.exports = function (target, source) {
- var error, sourceObject = Object(value(source));
- target = Object(value(target));
- getOwnPropertyNames(sourceObject).forEach(function (name) {
- try {
- defineProperty(target, name, getOwnPropertyDescriptor(source, name));
- } catch (e) { error = e; }
- });
- if (typeof getOwnPropertySymbols === "function") {
- getOwnPropertySymbols(sourceObject).forEach(function (symbol) {
- try {
- defineProperty(target, symbol, getOwnPropertyDescriptor(source, symbol));
- } catch (e) { error = e; }
- });
- }
- if (error !== undefined) throw error;
- return target;
-};
diff --git a/node_modules/es5-ext/object/normalize-options.js b/node_modules/es5-ext/object/normalize-options.js
deleted file mode 100644
index 885dd80..0000000
--- a/node_modules/es5-ext/object/normalize-options.js
+++ /dev/null
@@ -1,20 +0,0 @@
-"use strict";
-
-var isValue = require("./is-value");
-
-var forEach = Array.prototype.forEach, create = Object.create;
-
-var process = function (src, obj) {
- var key;
- for (key in src) obj[key] = src[key];
-};
-
-// eslint-disable-next-line no-unused-vars
-module.exports = function (opts1/*, …options*/) {
- var result = create(null);
- forEach.call(arguments, function (options) {
- if (!isValue(options)) return;
- process(Object(options), result);
- });
- return result;
-};
diff --git a/node_modules/es5-ext/object/primitive-set.js b/node_modules/es5-ext/object/primitive-set.js
deleted file mode 100644
index e6dd636..0000000
--- a/node_modules/es5-ext/object/primitive-set.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-var forEach = Array.prototype.forEach, create = Object.create;
-
-// eslint-disable-next-line no-unused-vars
-module.exports = function (arg/*, …args*/) {
- var set = create(null);
- forEach.call(arguments, function (name) { set[name] = true; });
- return set;
-};
diff --git a/node_modules/es5-ext/object/safe-traverse.js b/node_modules/es5-ext/object/safe-traverse.js
deleted file mode 100644
index 43d7cea..0000000
--- a/node_modules/es5-ext/object/safe-traverse.js
+++ /dev/null
@@ -1,16 +0,0 @@
-"use strict";
-
-var value = require("./valid-value")
- , isValue = require("./is-value");
-
-module.exports = function (obj/*, …names*/) {
- var length, current = 1;
- value(obj);
- length = arguments.length - 1;
- if (!length) return obj;
- while (current < length) {
- obj = obj[arguments[current++]];
- if (!isValue(obj)) return undefined;
- }
- return obj[arguments[current]];
-};
diff --git a/node_modules/es5-ext/object/serialize.js b/node_modules/es5-ext/object/serialize.js
deleted file mode 100644
index ec868c1..0000000
--- a/node_modules/es5-ext/object/serialize.js
+++ /dev/null
@@ -1,41 +0,0 @@
-"use strict";
-
-var toArray = require("./to-array")
- , isDate = require("../date/is-date")
- , isValue = require("../object/is-value")
- , isRegExp = require("../reg-exp/is-reg-exp");
-
-var isArray = Array.isArray
- , stringify = JSON.stringify
- , objHasOwnProperty = Object.prototype.hasOwnProperty;
-var keyValueToString = function (value, key) {
- return stringify(key) + ":" + module.exports(value);
-};
-
-var sparseMap = function (arr) {
- var i, length = arr.length, result = new Array(length);
- for (i = 0; i < length; ++i) {
- if (!objHasOwnProperty.call(arr, i)) continue;
- result[i] = module.exports(arr[i]);
- }
- return result;
-};
-
-module.exports = function (obj) {
- if (!isValue(obj)) return String(obj);
- switch (typeof obj) {
- case "string":
- return stringify(obj);
- case "number":
- case "boolean":
- case "function":
- return String(obj);
- case "object":
- if (isArray(obj)) return "[" + sparseMap(obj) + "]";
- if (isRegExp(obj)) return String(obj);
- if (isDate(obj)) return "new Date(" + obj.valueOf() + ")";
- return "{" + toArray(obj, keyValueToString) + "}";
- default:
- throw new TypeError("Serialization of " + String(obj) + "is unsupported");
- }
-};
diff --git a/node_modules/es5-ext/object/set-prototype-of/implement.js b/node_modules/es5-ext/object/set-prototype-of/implement.js
deleted file mode 100644
index 386a300..0000000
--- a/node_modules/es5-ext/object/set-prototype-of/implement.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-var shim;
-
-if (!require("./is-implemented")() && (shim = require("./shim"))) {
- Object.defineProperty(Object, "setPrototypeOf", {
- value: shim,
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/object/set-prototype-of/index.js b/node_modules/es5-ext/object/set-prototype-of/index.js
deleted file mode 100644
index ac07b99..0000000
--- a/node_modules/es5-ext/object/set-prototype-of/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Object.setPrototypeOf : require("./shim");
diff --git a/node_modules/es5-ext/object/set-prototype-of/is-implemented.js b/node_modules/es5-ext/object/set-prototype-of/is-implemented.js
deleted file mode 100644
index 1a00627..0000000
--- a/node_modules/es5-ext/object/set-prototype-of/is-implemented.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-var create = Object.create, getPrototypeOf = Object.getPrototypeOf, plainObject = {};
-
-module.exports = function (/* CustomCreate*/) {
- var setPrototypeOf = Object.setPrototypeOf, customCreate = arguments[0] || create;
- if (typeof setPrototypeOf !== "function") return false;
- return getPrototypeOf(setPrototypeOf(customCreate(null), plainObject)) === plainObject;
-};
diff --git a/node_modules/es5-ext/object/set-prototype-of/shim.js b/node_modules/es5-ext/object/set-prototype-of/shim.js
deleted file mode 100644
index 97b0b50..0000000
--- a/node_modules/es5-ext/object/set-prototype-of/shim.js
+++ /dev/null
@@ -1,81 +0,0 @@
-/* eslint no-proto: "off" */
-
-// Big thanks to @WebReflection for sorting this out
-// https://gist.github.com/WebReflection/5593554
-
-"use strict";
-
-var isObject = require("../is-object")
- , value = require("../valid-value")
- , objIsPrototypeOf = Object.prototype.isPrototypeOf
- , defineProperty = Object.defineProperty
- , nullDesc = { configurable: true, enumerable: false, writable: true, value: undefined }
- , validate;
-
-validate = function (obj, prototype) {
- value(obj);
- if (prototype === null || isObject(prototype)) return obj;
- throw new TypeError("Prototype must be null or an object");
-};
-
-module.exports = (function (status) {
- var fn, set;
- if (!status) return null;
- if (status.level === 2) {
- if (status.set) {
- set = status.set;
- fn = function (obj, prototype) {
- set.call(validate(obj, prototype), prototype);
- return obj;
- };
- } else {
- fn = function (obj, prototype) {
- validate(obj, prototype).__proto__ = prototype;
- return obj;
- };
- }
- } else {
- fn = function self(obj, prototype) {
- var isNullBase;
- validate(obj, prototype);
- isNullBase = objIsPrototypeOf.call(self.nullPolyfill, obj);
- if (isNullBase) delete self.nullPolyfill.__proto__;
- if (prototype === null) prototype = self.nullPolyfill;
- obj.__proto__ = prototype;
- if (isNullBase) defineProperty(self.nullPolyfill, "__proto__", nullDesc);
- return obj;
- };
- }
- return Object.defineProperty(fn, "level", {
- configurable: false,
- enumerable: false,
- writable: false,
- value: status.level
- });
-})(
- (function () {
- var tmpObj1 = Object.create(null)
- , tmpObj2 = {}
- , set
- , desc = Object.getOwnPropertyDescriptor(Object.prototype, "__proto__");
-
- if (desc) {
- try {
- set = desc.set; // Opera crashes at this point
- set.call(tmpObj1, tmpObj2);
- } catch (ignore) {}
- if (Object.getPrototypeOf(tmpObj1) === tmpObj2) return { set: set, level: 2 };
- }
-
- tmpObj1.__proto__ = tmpObj2;
- if (Object.getPrototypeOf(tmpObj1) === tmpObj2) return { level: 2 };
-
- tmpObj1 = {};
- tmpObj1.__proto__ = tmpObj2;
- if (Object.getPrototypeOf(tmpObj1) === tmpObj2) return { level: 1 };
-
- return false;
- })()
-);
-
-require("../create");
diff --git a/node_modules/es5-ext/object/some.js b/node_modules/es5-ext/object/some.js
deleted file mode 100644
index c919466..0000000
--- a/node_modules/es5-ext/object/some.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./_iterate")("some", false);
diff --git a/node_modules/es5-ext/object/to-array.js b/node_modules/es5-ext/object/to-array.js
deleted file mode 100644
index 18c0b27..0000000
--- a/node_modules/es5-ext/object/to-array.js
+++ /dev/null
@@ -1,21 +0,0 @@
-"use strict";
-
-var callable = require("./valid-callable")
- , isValue = require("./is-value")
- , forEach = require("./for-each")
- , call = Function.prototype.call
- , defaultCb = function (value, key) { return [key, value]; };
-
-module.exports = function (obj/*, cb, thisArg, compareFn*/) {
- var a = [], cb = arguments[1], thisArg = arguments[2];
- cb = isValue(cb) ? callable(cb) : defaultCb;
-
- forEach(
- obj,
- function (value, key, targetObj, index) {
- a.push(call.call(cb, thisArg, value, key, this, index));
- },
- obj, arguments[3]
- );
- return a;
-};
diff --git a/node_modules/es5-ext/object/unserialize.js b/node_modules/es5-ext/object/unserialize.js
deleted file mode 100644
index f62ea78..0000000
--- a/node_modules/es5-ext/object/unserialize.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var value = require("./valid-value");
-
-module.exports = function (code) {
- // eslint-disable-next-line no-new-func
- return new Function("return " + value(code))();
-};
diff --git a/node_modules/es5-ext/object/valid-callable.js b/node_modules/es5-ext/object/valid-callable.js
deleted file mode 100644
index a97fb3e..0000000
--- a/node_modules/es5-ext/object/valid-callable.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-module.exports = function (fn) {
- if (typeof fn !== "function") throw new TypeError(fn + " is not a function");
- return fn;
-};
diff --git a/node_modules/es5-ext/object/valid-object.js b/node_modules/es5-ext/object/valid-object.js
deleted file mode 100644
index 74b5e5f..0000000
--- a/node_modules/es5-ext/object/valid-object.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var isObject = require("./is-object");
-
-module.exports = function (value) {
- if (!isObject(value)) throw new TypeError(value + " is not an Object");
- return value;
-};
diff --git a/node_modules/es5-ext/object/valid-value.js b/node_modules/es5-ext/object/valid-value.js
deleted file mode 100644
index d0ced8a..0000000
--- a/node_modules/es5-ext/object/valid-value.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var isValue = require("./is-value");
-
-module.exports = function (value) {
- if (!isValue(value)) throw new TypeError("Cannot use null or undefined");
- return value;
-};
diff --git a/node_modules/es5-ext/object/validate-array-like-object.js b/node_modules/es5-ext/object/validate-array-like-object.js
deleted file mode 100644
index d7c45b3..0000000
--- a/node_modules/es5-ext/object/validate-array-like-object.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-var isArrayLike = require("./is-array-like")
- , isObject = require("./is-object");
-
-module.exports = function (obj) {
- if (isObject(obj) && isArrayLike(obj)) return obj;
- throw new TypeError(obj + " is not array-like object");
-};
diff --git a/node_modules/es5-ext/object/validate-array-like.js b/node_modules/es5-ext/object/validate-array-like.js
deleted file mode 100644
index 07aa794..0000000
--- a/node_modules/es5-ext/object/validate-array-like.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var isArrayLike = require("./is-array-like");
-
-module.exports = function (obj) {
- if (isArrayLike(obj)) return obj;
- throw new TypeError(obj + " is not array-like value");
-};
diff --git a/node_modules/es5-ext/object/validate-stringifiable-value.js b/node_modules/es5-ext/object/validate-stringifiable-value.js
deleted file mode 100644
index b58f18c..0000000
--- a/node_modules/es5-ext/object/validate-stringifiable-value.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-var ensureValue = require("./valid-value")
- , stringifiable = require("./validate-stringifiable");
-
-module.exports = function (value) { return stringifiable(ensureValue(value)); };
diff --git a/node_modules/es5-ext/object/validate-stringifiable.js b/node_modules/es5-ext/object/validate-stringifiable.js
deleted file mode 100644
index 2b1f127..0000000
--- a/node_modules/es5-ext/object/validate-stringifiable.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-var isCallable = require("./is-callable");
-
-module.exports = function (stringifiable) {
- try {
- if (stringifiable && isCallable(stringifiable.toString)) return stringifiable.toString();
- return String(stringifiable);
- } catch (e) {
- throw new TypeError("Passed argument cannot be stringifed");
- }
-};
diff --git a/node_modules/es5-ext/optional-chaining.js b/node_modules/es5-ext/optional-chaining.js
deleted file mode 100644
index eba6bd8..0000000
--- a/node_modules/es5-ext/optional-chaining.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-var isValue = require("./object/is-value");
-
-var slice = Array.prototype.slice;
-
-// eslint-disable-next-line no-unused-vars
-module.exports = function (value, propertyName1/*, …propertyNamen*/) {
- var propertyNames = slice.call(arguments, 1), index = 0, length = propertyNames.length;
- while (isValue(value) && index < length) value = value[propertyNames[index++]];
- return index === length ? value : undefined;
-};
diff --git a/node_modules/es5-ext/package.json b/node_modules/es5-ext/package.json
deleted file mode 100644
index 0b7cd9c..0000000
--- a/node_modules/es5-ext/package.json
+++ /dev/null
@@ -1,94 +0,0 @@
-{
- "name": "es5-ext",
- "version": "0.10.53",
- "description": "ECMAScript extensions and shims",
- "author": "Mariusz Nowak (http://www.medikoo.com/)",
- "keywords": [
- "ecmascript",
- "ecmascript5",
- "ecmascript6",
- "es5",
- "es6",
- "extensions",
- "ext",
- "addons",
- "extras",
- "harmony",
- "javascript",
- "polyfill",
- "shim",
- "util",
- "utils",
- "utilities"
- ],
- "repository": "medikoo/es5-ext",
- "dependencies": {
- "es6-iterator": "~2.0.3",
- "es6-symbol": "~3.1.3",
- "next-tick": "~1.0.0"
- },
- "devDependencies": {
- "eslint": "^6.6.0",
- "eslint-config-medikoo": "^2.7.0",
- "git-list-updated": "^1.2.1",
- "husky": "^3.1.0",
- "lint-staged": "^9.4.3",
- "plain-promise": "^0.1.1",
- "prettier-elastic": "^1.18.2",
- "tad": "^3.0.1"
- },
- "husky": {
- "hooks": {
- "pre-commit": "lint-staged"
- }
- },
- "lint-staged": {
- "*.js": [
- "eslint"
- ],
- "*.{css,html,js,json,md,yaml,yml}": [
- "prettier -c"
- ]
- },
- "eslintConfig": {
- "extends": "medikoo/es5",
- "root": true,
- "rules": {
- "no-extend-native": "off"
- },
- "overrides": [
- {
- "files": "global.js",
- "globals": {
- "__global__": true,
- "globalThis": true,
- "self": true,
- "window": true
- },
- "rules": {
- "strict": "off"
- }
- }
- ]
- },
- "prettier": {
- "printWidth": 100,
- "tabWidth": 4,
- "overrides": [
- {
- "files": "*.md",
- "options": {
- "tabWidth": 2
- }
- }
- ]
- },
- "scripts": {
- "lint": "eslint --ignore-path=.gitignore .",
- "lint-updated": "pipe-git-updated --ext=js -- eslint --ignore-pattern '!*'",
- "prettier-check-updated": "pipe-git-updated --ext=css --ext=html --ext=js --ext=json --ext=md --ext=yaml --ext=yml -- prettier -c",
- "prettify": "prettier --write --ignore-path .gitignore '**/*.{css,html,js,json,md,yaml,yml}'",
- "test": "node ./node_modules/tad/bin/tad"
- },
- "license": "ISC"
-}
diff --git a/node_modules/es5-ext/promise/#/as-callback.js b/node_modules/es5-ext/promise/#/as-callback.js
deleted file mode 100644
index ba310b3..0000000
--- a/node_modules/es5-ext/promise/#/as-callback.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-var ensurePlainFunction = require("../../object/ensure-plain-function")
- , ensureThenable = require("../../object/ensure-thenable")
- , microtaskDelay = require("../../function/#/microtask-delay");
-
-module.exports = function (callback) {
- ensureThenable(this);
- ensurePlainFunction(callback);
- // Rely on microtaskDelay to escape eventual error swallowing
- this.then(
- microtaskDelay.call(function (value) { callback(null, value); }),
- microtaskDelay.call(function (reason) { callback(reason); })
- );
-};
diff --git a/node_modules/es5-ext/promise/#/finally/implement.js b/node_modules/es5-ext/promise/#/finally/implement.js
deleted file mode 100644
index 77592b3..0000000
--- a/node_modules/es5-ext/promise/#/finally/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Promise.prototype, "finally", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/promise/#/finally/index.js b/node_modules/es5-ext/promise/#/finally/index.js
deleted file mode 100644
index f6bb447..0000000
--- a/node_modules/es5-ext/promise/#/finally/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Promise.prototype.finally : require("./shim");
diff --git a/node_modules/es5-ext/promise/#/finally/is-implemented.js b/node_modules/es5-ext/promise/#/finally/is-implemented.js
deleted file mode 100644
index 0534ce6..0000000
--- a/node_modules/es5-ext/promise/#/finally/is-implemented.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function () {
- if (typeof Promise !== "function") return false;
- if (typeof Promise.prototype.finally !== "function") return false;
- return true;
-};
diff --git a/node_modules/es5-ext/promise/#/finally/shim.js b/node_modules/es5-ext/promise/#/finally/shim.js
deleted file mode 100644
index f29f5b3..0000000
--- a/node_modules/es5-ext/promise/#/finally/shim.js
+++ /dev/null
@@ -1,24 +0,0 @@
-"use strict";
-
-var ensurePlainFunction = require("../../../object/ensure-plain-function")
- , isThenable = require("../../../object/is-thenable")
- , ensureThenable = require("../../../object/ensure-thenable");
-
-var resolveCallback = function (callback, next) {
- var callbackResult = callback();
- if (!isThenable(callbackResult)) return next();
- return callbackResult.then(next);
-};
-
-module.exports = function (callback) {
- ensureThenable(this);
- ensurePlainFunction(callback);
- return this.then(
- function (result) {
- return resolveCallback(callback, function () { return result; });
- },
- function (error) {
- return resolveCallback(callback, function () { throw error; });
- }
- );
-};
diff --git a/node_modules/es5-ext/promise/#/index.js b/node_modules/es5-ext/promise/#/index.js
deleted file mode 100644
index 4601803..0000000
--- a/node_modules/es5-ext/promise/#/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = { asCallback: require("./as-callback"), finally: require("./finally") };
diff --git a/node_modules/es5-ext/promise/.eslintrc.json b/node_modules/es5-ext/promise/.eslintrc.json
deleted file mode 100644
index 0d86fe7..0000000
--- a/node_modules/es5-ext/promise/.eslintrc.json
+++ /dev/null
@@ -1 +0,0 @@
-{ "globals": { "Promise": true } }
diff --git a/node_modules/es5-ext/promise/index.js b/node_modules/es5-ext/promise/index.js
deleted file mode 100644
index 6aa66bb..0000000
--- a/node_modules/es5-ext/promise/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = { "#": require("./#"), "lazy": require("./lazy") };
diff --git a/node_modules/es5-ext/promise/lazy.js b/node_modules/es5-ext/promise/lazy.js
deleted file mode 100644
index ad97a53..0000000
--- a/node_modules/es5-ext/promise/lazy.js
+++ /dev/null
@@ -1,35 +0,0 @@
-"use strict";
-
-var isFunction = require("../function/is-function");
-
-module.exports = function (executor) {
- var Constructor;
- if (isFunction(this)) {
- Constructor = this;
- } else if (typeof Promise === "function") {
- Constructor = Promise;
- } else {
- throw new TypeError("Could not resolve Promise constuctor");
- }
-
- var lazyThen;
- var promise = new Constructor(function (resolve, reject) {
- lazyThen = function (onSuccess, onFailure) {
- if (!hasOwnProperty.call(this, "then")) {
- // Sanity check
- throw new Error("Unexpected (inherited) lazy then invocation");
- }
-
- try { executor(resolve, reject); }
- catch (reason) { reject(reason); }
- delete this.then;
- return this.then(onSuccess, onFailure);
- };
- });
-
- return Object.defineProperty(promise, "then", {
- configurable: true,
- writable: true,
- value: lazyThen
- });
-};
diff --git a/node_modules/es5-ext/reg-exp/#/index.js b/node_modules/es5-ext/reg-exp/#/index.js
deleted file mode 100644
index 9b098e0..0000000
--- a/node_modules/es5-ext/reg-exp/#/index.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-module.exports = {
- isSticky: require("./is-sticky"),
- isUnicode: require("./is-unicode"),
- match: require("./match"),
- replace: require("./replace"),
- search: require("./search"),
- split: require("./split")
-};
diff --git a/node_modules/es5-ext/reg-exp/#/is-sticky.js b/node_modules/es5-ext/reg-exp/#/is-sticky.js
deleted file mode 100644
index 6e99533..0000000
--- a/node_modules/es5-ext/reg-exp/#/is-sticky.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-var validRegExp = require("../valid-reg-exp")
- , re = /\/[a-xz]*y[a-xz]*$/;
-
-module.exports = function () { return Boolean(String(validRegExp(this)).match(re)); };
diff --git a/node_modules/es5-ext/reg-exp/#/is-unicode.js b/node_modules/es5-ext/reg-exp/#/is-unicode.js
deleted file mode 100644
index 63a457f..0000000
--- a/node_modules/es5-ext/reg-exp/#/is-unicode.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-var validRegExp = require("../valid-reg-exp")
- , re = /\/[a-xz]*u[a-xz]*$/;
-
-module.exports = function () { return Boolean(String(validRegExp(this)).match(re)); };
diff --git a/node_modules/es5-ext/reg-exp/#/match/implement.js b/node_modules/es5-ext/reg-exp/#/match/implement.js
deleted file mode 100644
index 68dcd55..0000000
--- a/node_modules/es5-ext/reg-exp/#/match/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(RegExp.prototype, "match", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/reg-exp/#/match/index.js b/node_modules/es5-ext/reg-exp/#/match/index.js
deleted file mode 100644
index 4b33296..0000000
--- a/node_modules/es5-ext/reg-exp/#/match/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? RegExp.prototype.match : require("./shim");
diff --git a/node_modules/es5-ext/reg-exp/#/match/is-implemented.js b/node_modules/es5-ext/reg-exp/#/match/is-implemented.js
deleted file mode 100644
index a5065fc..0000000
--- a/node_modules/es5-ext/reg-exp/#/match/is-implemented.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var re = /foo/;
-
-module.exports = function () {
- if (typeof re.match !== "function") return false;
- return re.match("barfoobar") && !re.match("elo");
-};
diff --git a/node_modules/es5-ext/reg-exp/#/match/shim.js b/node_modules/es5-ext/reg-exp/#/match/shim.js
deleted file mode 100644
index 2955821..0000000
--- a/node_modules/es5-ext/reg-exp/#/match/shim.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var validRegExp = require("../../valid-reg-exp");
-
-module.exports = function (string) {
- validRegExp(this);
- return String(string).match(this);
-};
diff --git a/node_modules/es5-ext/reg-exp/#/replace/implement.js b/node_modules/es5-ext/reg-exp/#/replace/implement.js
deleted file mode 100644
index f990c4f..0000000
--- a/node_modules/es5-ext/reg-exp/#/replace/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(RegExp.prototype, "replace", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/reg-exp/#/replace/index.js b/node_modules/es5-ext/reg-exp/#/replace/index.js
deleted file mode 100644
index be54b52..0000000
--- a/node_modules/es5-ext/reg-exp/#/replace/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? RegExp.prototype.replace : require("./shim");
diff --git a/node_modules/es5-ext/reg-exp/#/replace/is-implemented.js b/node_modules/es5-ext/reg-exp/#/replace/is-implemented.js
deleted file mode 100644
index 0a2e7c2..0000000
--- a/node_modules/es5-ext/reg-exp/#/replace/is-implemented.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var re = /foo/;
-
-module.exports = function () {
- if (typeof re.replace !== "function") return false;
- return re.replace("foobar", "mar") === "marbar";
-};
diff --git a/node_modules/es5-ext/reg-exp/#/replace/shim.js b/node_modules/es5-ext/reg-exp/#/replace/shim.js
deleted file mode 100644
index 66f5d5b..0000000
--- a/node_modules/es5-ext/reg-exp/#/replace/shim.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var validRegExp = require("../../valid-reg-exp");
-
-module.exports = function (string, replaceValue) {
- validRegExp(this);
- return String(string).replace(this, replaceValue);
-};
diff --git a/node_modules/es5-ext/reg-exp/#/search/implement.js b/node_modules/es5-ext/reg-exp/#/search/implement.js
deleted file mode 100644
index df4a337..0000000
--- a/node_modules/es5-ext/reg-exp/#/search/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(RegExp.prototype, "search", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/reg-exp/#/search/index.js b/node_modules/es5-ext/reg-exp/#/search/index.js
deleted file mode 100644
index 25ca76a..0000000
--- a/node_modules/es5-ext/reg-exp/#/search/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? RegExp.prototype.search : require("./shim");
diff --git a/node_modules/es5-ext/reg-exp/#/search/is-implemented.js b/node_modules/es5-ext/reg-exp/#/search/is-implemented.js
deleted file mode 100644
index 7f38669..0000000
--- a/node_modules/es5-ext/reg-exp/#/search/is-implemented.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var re = /foo/;
-
-module.exports = function () {
- if (typeof re.search !== "function") return false;
- return re.search("barfoo") === 3;
-};
diff --git a/node_modules/es5-ext/reg-exp/#/search/shim.js b/node_modules/es5-ext/reg-exp/#/search/shim.js
deleted file mode 100644
index c97a787..0000000
--- a/node_modules/es5-ext/reg-exp/#/search/shim.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var validRegExp = require("../../valid-reg-exp");
-
-module.exports = function (string) {
- validRegExp(this);
- return String(string).search(this);
-};
diff --git a/node_modules/es5-ext/reg-exp/#/split/implement.js b/node_modules/es5-ext/reg-exp/#/split/implement.js
deleted file mode 100644
index b979db0..0000000
--- a/node_modules/es5-ext/reg-exp/#/split/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(RegExp.prototype, "split", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/reg-exp/#/split/index.js b/node_modules/es5-ext/reg-exp/#/split/index.js
deleted file mode 100644
index 6d4f177..0000000
--- a/node_modules/es5-ext/reg-exp/#/split/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? RegExp.prototype.split : require("./shim");
diff --git a/node_modules/es5-ext/reg-exp/#/split/is-implemented.js b/node_modules/es5-ext/reg-exp/#/split/is-implemented.js
deleted file mode 100644
index 90fca0c..0000000
--- a/node_modules/es5-ext/reg-exp/#/split/is-implemented.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var re = /\|/;
-
-module.exports = function () {
- if (typeof re.split !== "function") return false;
- return re.split("bar|foo")[1] === "foo";
-};
diff --git a/node_modules/es5-ext/reg-exp/#/split/shim.js b/node_modules/es5-ext/reg-exp/#/split/shim.js
deleted file mode 100644
index c9c73cc..0000000
--- a/node_modules/es5-ext/reg-exp/#/split/shim.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var validRegExp = require("../../valid-reg-exp");
-
-module.exports = function (string) {
- validRegExp(this);
- return String(string).split(this);
-};
diff --git a/node_modules/es5-ext/reg-exp/#/sticky/implement.js b/node_modules/es5-ext/reg-exp/#/sticky/implement.js
deleted file mode 100644
index 7864c6c..0000000
--- a/node_modules/es5-ext/reg-exp/#/sticky/implement.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-var isSticky = require("../is-sticky");
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(RegExp.prototype, "sticky", {
- configurable: true,
- enumerable: false,
- get: isSticky
- });
-}
diff --git a/node_modules/es5-ext/reg-exp/#/sticky/is-implemented.js b/node_modules/es5-ext/reg-exp/#/sticky/is-implemented.js
deleted file mode 100644
index a1ade11..0000000
--- a/node_modules/es5-ext/reg-exp/#/sticky/is-implemented.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-module.exports = function () {
- var dummyRegExp = /a/;
- // We need to do check on instance and not on prototype due to how ES2015 spec evolved:
- // https://github.com/tc39/ecma262/issues/262
- // https://github.com/tc39/ecma262/pull/263
- // https://bugs.chromium.org/p/v8/issues/detail?id=4617
- return "sticky" in dummyRegExp;
-};
diff --git a/node_modules/es5-ext/reg-exp/#/unicode/implement.js b/node_modules/es5-ext/reg-exp/#/unicode/implement.js
deleted file mode 100644
index 8b99be5..0000000
--- a/node_modules/es5-ext/reg-exp/#/unicode/implement.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-var isUnicode = require("../is-unicode");
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(RegExp.prototype, "unicode", {
- configurable: true,
- enumerable: false,
- get: isUnicode
- });
-}
diff --git a/node_modules/es5-ext/reg-exp/#/unicode/is-implemented.js b/node_modules/es5-ext/reg-exp/#/unicode/is-implemented.js
deleted file mode 100644
index 48605d7..0000000
--- a/node_modules/es5-ext/reg-exp/#/unicode/is-implemented.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-module.exports = function () {
- var dummyRegExp = /a/;
- // We need to do check on instance and not on prototype due to how ES2015 spec evolved:
- // https://github.com/tc39/ecma262/issues/262
- // https://github.com/tc39/ecma262/pull/263
- // https://bugs.chromium.org/p/v8/issues/detail?id=4617
- return "unicode" in dummyRegExp;
-};
diff --git a/node_modules/es5-ext/reg-exp/escape.js b/node_modules/es5-ext/reg-exp/escape.js
deleted file mode 100644
index b65b351..0000000
--- a/node_modules/es5-ext/reg-exp/escape.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// Thanks to Andrew Clover:
-// http://stackoverflow.com/questions/3561493
-// /is-there-a-regexp-escape-function-in-javascript
-
-"use strict";
-
-var re = /[-/\\^$*+?.()|[\]{}]/g;
-
-module.exports = function (str) { return String(str).replace(re, "\\$&"); };
diff --git a/node_modules/es5-ext/reg-exp/index.js b/node_modules/es5-ext/reg-exp/index.js
deleted file mode 100644
index f023fe0..0000000
--- a/node_modules/es5-ext/reg-exp/index.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-module.exports = {
- "#": require("./#"),
- "escape": require("./escape"),
- "isRegExp": require("./is-reg-exp"),
- "validRegExp": require("./valid-reg-exp")
-};
diff --git a/node_modules/es5-ext/reg-exp/is-reg-exp.js b/node_modules/es5-ext/reg-exp/is-reg-exp.js
deleted file mode 100644
index b966b0f..0000000
--- a/node_modules/es5-ext/reg-exp/is-reg-exp.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-var objToString = Object.prototype.toString, id = objToString.call(/a/);
-
-module.exports = function (value) {
- return (value && (value instanceof RegExp || objToString.call(value) === id)) || false;
-};
diff --git a/node_modules/es5-ext/reg-exp/valid-reg-exp.js b/node_modules/es5-ext/reg-exp/valid-reg-exp.js
deleted file mode 100644
index a05927a..0000000
--- a/node_modules/es5-ext/reg-exp/valid-reg-exp.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var isRegExp = require("./is-reg-exp");
-
-module.exports = function (value) {
- if (!isRegExp(value)) throw new TypeError(value + " is not a RegExp object");
- return value;
-};
diff --git a/node_modules/es5-ext/safe-to-string.js b/node_modules/es5-ext/safe-to-string.js
deleted file mode 100644
index f49a238..0000000
--- a/node_modules/es5-ext/safe-to-string.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-var isCallable = require("./object/is-callable");
-
-module.exports = function (value) {
- try {
- if (value && isCallable(value.toString)) return value.toString();
- return String(value);
- } catch (e) {
- return "";
- }
-};
diff --git a/node_modules/es5-ext/string/#/@@iterator/implement.js b/node_modules/es5-ext/string/#/@@iterator/implement.js
deleted file mode 100644
index b51ad9f..0000000
--- a/node_modules/es5-ext/string/#/@@iterator/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(String.prototype, require("es6-symbol").iterator, {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/string/#/@@iterator/index.js b/node_modules/es5-ext/string/#/@@iterator/index.js
deleted file mode 100644
index 4572443..0000000
--- a/node_modules/es5-ext/string/#/@@iterator/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")()
- ? String.prototype[require("es6-symbol").iterator]
- : require("./shim");
diff --git a/node_modules/es5-ext/string/#/@@iterator/is-implemented.js b/node_modules/es5-ext/string/#/@@iterator/is-implemented.js
deleted file mode 100644
index bb8a8d6..0000000
--- a/node_modules/es5-ext/string/#/@@iterator/is-implemented.js
+++ /dev/null
@@ -1,16 +0,0 @@
-"use strict";
-
-var iteratorSymbol = require("es6-symbol").iterator;
-
-module.exports = function () {
- var str = "🙈f", iterator, result;
- if (typeof str[iteratorSymbol] !== "function") return false;
- iterator = str[iteratorSymbol]();
- if (!iterator) return false;
- if (typeof iterator.next !== "function") return false;
- result = iterator.next();
- if (!result) return false;
- if (result.value !== "🙈") return false;
- if (result.done !== false) return false;
- return true;
-};
diff --git a/node_modules/es5-ext/string/#/@@iterator/shim.js b/node_modules/es5-ext/string/#/@@iterator/shim.js
deleted file mode 100644
index 2160619..0000000
--- a/node_modules/es5-ext/string/#/@@iterator/shim.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-var StringIterator = require("es6-iterator/string")
- , value = require("../../../object/valid-value");
-
-module.exports = function () { return new StringIterator(value(this)); };
diff --git a/node_modules/es5-ext/string/#/at.js b/node_modules/es5-ext/string/#/at.js
deleted file mode 100644
index a8c2917..0000000
--- a/node_modules/es5-ext/string/#/at.js
+++ /dev/null
@@ -1,35 +0,0 @@
-// Based on: https://github.com/mathiasbynens/String.prototype.at
-// Thanks @mathiasbynens !
-
-"use strict";
-
-var toInteger = require("../../number/to-integer")
- , validValue = require("../../object/valid-value");
-
-module.exports = function (pos) {
- var str = String(validValue(this)), size = str.length, cuFirst, cuSecond, nextPos, len;
- pos = toInteger(pos);
-
- // Account for out-of-bounds indices
- // The odd lower bound is because the ToInteger operation is
- // going to round `n` to `0` for `-1 < n <= 0`.
- if (pos <= -1 || pos >= size) return "";
-
- // Second half of `ToInteger`
- // eslint-disable-next-line no-bitwise
- pos |= 0;
- // Get the first code unit and code unit value
- cuFirst = str.charCodeAt(pos);
- nextPos = pos + 1;
- len = 1;
- if (
- // Check if it’s the start of a surrogate pair
- cuFirst >= 0xd800 &&
- cuFirst <= 0xdbff && // High surrogate
- size > nextPos // There is a next code unit
- ) {
- cuSecond = str.charCodeAt(nextPos);
- if (cuSecond >= 0xdc00 && cuSecond <= 0xdfff) len = 2; // Low surrogate
- }
- return str.slice(pos, pos + len);
-};
diff --git a/node_modules/es5-ext/string/#/camel-to-hyphen.js b/node_modules/es5-ext/string/#/camel-to-hyphen.js
deleted file mode 100644
index 5add3ed..0000000
--- a/node_modules/es5-ext/string/#/camel-to-hyphen.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-var replace = String.prototype.replace, re = /([A-Z])/g;
-
-module.exports = function () {
- var str = replace.call(this, re, "-$1").toLowerCase();
- if (str[0] === "-") str = str.slice(1);
- return str;
-};
diff --git a/node_modules/es5-ext/string/#/capitalize.js b/node_modules/es5-ext/string/#/capitalize.js
deleted file mode 100644
index fc92a9f..0000000
--- a/node_modules/es5-ext/string/#/capitalize.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var value = require("../../object/valid-value");
-
-module.exports = function () {
- var str = String(value(this));
- return str.charAt(0).toUpperCase() + str.slice(1);
-};
diff --git a/node_modules/es5-ext/string/#/case-insensitive-compare.js b/node_modules/es5-ext/string/#/case-insensitive-compare.js
deleted file mode 100644
index 5d961a5..0000000
--- a/node_modules/es5-ext/string/#/case-insensitive-compare.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-var toLowerCase = String.prototype.toLowerCase;
-
-module.exports = function (other) {
- return toLowerCase.call(this).localeCompare(toLowerCase.call(String(other)));
-};
diff --git a/node_modules/es5-ext/string/#/code-point-at/implement.js b/node_modules/es5-ext/string/#/code-point-at/implement.js
deleted file mode 100644
index 25752f9..0000000
--- a/node_modules/es5-ext/string/#/code-point-at/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(String.prototype, "codePointAt", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/string/#/code-point-at/index.js b/node_modules/es5-ext/string/#/code-point-at/index.js
deleted file mode 100644
index 0a22f84..0000000
--- a/node_modules/es5-ext/string/#/code-point-at/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? String.prototype.codePointAt : require("./shim");
diff --git a/node_modules/es5-ext/string/#/code-point-at/is-implemented.js b/node_modules/es5-ext/string/#/code-point-at/is-implemented.js
deleted file mode 100644
index 47e4c93..0000000
--- a/node_modules/es5-ext/string/#/code-point-at/is-implemented.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var str = "abc\uD834\uDF06def";
-
-module.exports = function () {
- if (typeof str.codePointAt !== "function") return false;
- return str.codePointAt(3) === 0x1d306;
-};
diff --git a/node_modules/es5-ext/string/#/code-point-at/shim.js b/node_modules/es5-ext/string/#/code-point-at/shim.js
deleted file mode 100644
index 0f331c3..0000000
--- a/node_modules/es5-ext/string/#/code-point-at/shim.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Based on: https://github.com/mathiasbynens/String.prototype.codePointAt
-// Thanks @mathiasbynens !
-
-"use strict";
-
-var toInteger = require("../../../number/to-integer")
- , validValue = require("../../../object/valid-value");
-
-module.exports = function (pos) {
- var str = String(validValue(this)), length = str.length, first, second;
- pos = toInteger(pos);
-
- // Account for out-of-bounds indices:
- if (pos < 0 || pos >= length) return undefined;
-
- // Get the first code unit
- first = str.charCodeAt(pos);
- if (first >= 0xd800 && first <= 0xdbff && length > pos + 1) {
- second = str.charCodeAt(pos + 1);
- if (second >= 0xdc00 && second <= 0xdfff) {
- // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
- return (first - 0xd800) * 0x400 + second - 0xdc00 + 0x10000;
- }
- }
- return first;
-};
diff --git a/node_modules/es5-ext/string/#/contains/implement.js b/node_modules/es5-ext/string/#/contains/implement.js
deleted file mode 100644
index 03cc091..0000000
--- a/node_modules/es5-ext/string/#/contains/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(String.prototype, "contains", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/string/#/contains/index.js b/node_modules/es5-ext/string/#/contains/index.js
deleted file mode 100644
index 5f8d993..0000000
--- a/node_modules/es5-ext/string/#/contains/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? String.prototype.contains : require("./shim");
diff --git a/node_modules/es5-ext/string/#/contains/is-implemented.js b/node_modules/es5-ext/string/#/contains/is-implemented.js
deleted file mode 100644
index d9b3e9a..0000000
--- a/node_modules/es5-ext/string/#/contains/is-implemented.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var str = "razdwatrzy";
-
-module.exports = function () {
- if (typeof str.contains !== "function") return false;
- return str.contains("dwa") === true && str.contains("foo") === false;
-};
diff --git a/node_modules/es5-ext/string/#/contains/shim.js b/node_modules/es5-ext/string/#/contains/shim.js
deleted file mode 100644
index a7219f2..0000000
--- a/node_modules/es5-ext/string/#/contains/shim.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-var indexOf = String.prototype.indexOf;
-
-module.exports = function (searchString/*, position*/) {
- return indexOf.call(this, searchString, arguments[1]) > -1;
-};
diff --git a/node_modules/es5-ext/string/#/count.js b/node_modules/es5-ext/string/#/count.js
deleted file mode 100644
index 7607013..0000000
--- a/node_modules/es5-ext/string/#/count.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-var ensureString = require("../../object/validate-stringifiable-value");
-
-module.exports = function (search) {
- var string = ensureString(this), count = 0, index = 0;
-
- search = ensureString(search);
- if (!search) throw new TypeError("Search string cannot be empty");
- while ((index = string.indexOf(search, index)) !== -1) {
- ++count;
- index += search.length;
- }
- return count;
-};
diff --git a/node_modules/es5-ext/string/#/ends-with/implement.js b/node_modules/es5-ext/string/#/ends-with/implement.js
deleted file mode 100644
index 62457cc..0000000
--- a/node_modules/es5-ext/string/#/ends-with/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(String.prototype, "endsWith", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/string/#/ends-with/index.js b/node_modules/es5-ext/string/#/ends-with/index.js
deleted file mode 100644
index 04c8264..0000000
--- a/node_modules/es5-ext/string/#/ends-with/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? String.prototype.endsWith : require("./shim");
diff --git a/node_modules/es5-ext/string/#/ends-with/is-implemented.js b/node_modules/es5-ext/string/#/ends-with/is-implemented.js
deleted file mode 100644
index 1abaff7..0000000
--- a/node_modules/es5-ext/string/#/ends-with/is-implemented.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var str = "razdwatrzy";
-
-module.exports = function () {
- if (typeof str.endsWith !== "function") return false;
- return str.endsWith("trzy") === true && str.endsWith("raz") === false;
-};
diff --git a/node_modules/es5-ext/string/#/ends-with/shim.js b/node_modules/es5-ext/string/#/ends-with/shim.js
deleted file mode 100644
index 725c2b7..0000000
--- a/node_modules/es5-ext/string/#/ends-with/shim.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-
-var toInteger = require("../../../number/to-integer")
- , value = require("../../../object/valid-value")
- , isValue = require("../../../object/is-value")
- , min = Math.min
- , max = Math.max;
-
-module.exports = function (searchString/*, endPosition*/) {
- var self, start, endPos;
- self = String(value(this));
- searchString = String(searchString);
- endPos = arguments[1];
- start =
- (isValue(endPos) ? min(max(toInteger(endPos), 0), self.length) : self.length) -
- searchString.length;
- return start < 0 ? false : self.indexOf(searchString, start) === start;
-};
diff --git a/node_modules/es5-ext/string/#/hyphen-to-camel.js b/node_modules/es5-ext/string/#/hyphen-to-camel.js
deleted file mode 100644
index 9feef5b..0000000
--- a/node_modules/es5-ext/string/#/hyphen-to-camel.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-var replace = String.prototype.replace, re = /-([a-z0-9])/g;
-var toUpperCase = function (ignored, a) { return a.toUpperCase(); };
-
-module.exports = function () { return replace.call(this, re, toUpperCase); };
diff --git a/node_modules/es5-ext/string/#/indent.js b/node_modules/es5-ext/string/#/indent.js
deleted file mode 100644
index 67fa9ad..0000000
--- a/node_modules/es5-ext/string/#/indent.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-var isValue = require("../../object/is-value")
- , repeat = require("./repeat")
- , replace = String.prototype.replace
- , re = /(\r\n|[\n\r\u2028\u2029])([\u0000-\u0009\u000b-\uffff]+)/g;
-
-module.exports = function (indent/*, count*/) {
- var count = arguments[1];
- indent = repeat.call(String(indent), isValue(count) ? count : 1);
- return indent + replace.call(this, re, "$1" + indent + "$2");
-};
diff --git a/node_modules/es5-ext/string/#/index.js b/node_modules/es5-ext/string/#/index.js
deleted file mode 100644
index 2344489..0000000
--- a/node_modules/es5-ext/string/#/index.js
+++ /dev/null
@@ -1,23 +0,0 @@
-"use strict";
-
-module.exports = {
- "@@iterator": require("./@@iterator"),
- "at": require("./at"),
- "count": require("./count"),
- "camelToHyphen": require("./camel-to-hyphen"),
- "capitalize": require("./capitalize"),
- "caseInsensitiveCompare": require("./case-insensitive-compare"),
- "codePointAt": require("./code-point-at"),
- "contains": require("./contains"),
- "hyphenToCamel": require("./hyphen-to-camel"),
- "endsWith": require("./ends-with"),
- "indent": require("./indent"),
- "last": require("./last"),
- "normalize": require("./normalize"),
- "pad": require("./pad"),
- "plainReplace": require("./plain-replace"),
- "plainReplaceAll": require("./plain-replace-all"),
- "repeat": require("./repeat"),
- "startsWith": require("./starts-with"),
- "uncapitalize": require("./uncapitalize")
-};
diff --git a/node_modules/es5-ext/string/#/last.js b/node_modules/es5-ext/string/#/last.js
deleted file mode 100644
index f5c957f..0000000
--- a/node_modules/es5-ext/string/#/last.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var value = require("../../object/valid-value");
-
-module.exports = function () {
- var self = String(value(this)), length = self.length;
- return length ? self[length - 1] : null;
-};
diff --git a/node_modules/es5-ext/string/#/normalize/_data.js b/node_modules/es5-ext/string/#/normalize/_data.js
deleted file mode 100644
index ae4f153..0000000
--- a/node_modules/es5-ext/string/#/normalize/_data.js
+++ /dev/null
@@ -1,6988 +0,0 @@
-/* eslint max-lines: "off", no-sparse-arrays: "off", comma-style: "off" */
-
-"use strict";
-
-module.exports = {
- 0: {
- 60: [, , { 824: 8814 }],
- 61: [, , { 824: 8800 }],
- 62: [, , { 824: 8815 }],
- 65: [
- , ,
- {
- 768: 192,
- 769: 193,
- 770: 194,
- 771: 195,
- 772: 256,
- 774: 258,
- 775: 550,
- 776: 196,
- 777: 7842,
- 778: 197,
- 780: 461,
- 783: 512,
- 785: 514,
- 803: 7840,
- 805: 7680,
- 808: 260
- }
- ],
- 66: [, , { 775: 7682, 803: 7684, 817: 7686 }],
- 67: [, , { 769: 262, 770: 264, 775: 266, 780: 268, 807: 199 }],
- 68: [, , { 775: 7690, 780: 270, 803: 7692, 807: 7696, 813: 7698, 817: 7694 }],
- 69: [
- , ,
- {
- 768: 200,
- 769: 201,
- 770: 202,
- 771: 7868,
- 772: 274,
- 774: 276,
- 775: 278,
- 776: 203,
- 777: 7866,
- 780: 282,
- 783: 516,
- 785: 518,
- 803: 7864,
- 807: 552,
- 808: 280,
- 813: 7704,
- 816: 7706
- }
- ],
- 70: [, , { 775: 7710 }],
- 71: [, , { 769: 500, 770: 284, 772: 7712, 774: 286, 775: 288, 780: 486, 807: 290 }],
- 72: [, , { 770: 292, 775: 7714, 776: 7718, 780: 542, 803: 7716, 807: 7720, 814: 7722 }],
- 73: [
- , ,
- {
- 768: 204,
- 769: 205,
- 770: 206,
- 771: 296,
- 772: 298,
- 774: 300,
- 775: 304,
- 776: 207,
- 777: 7880,
- 780: 463,
- 783: 520,
- 785: 522,
- 803: 7882,
- 808: 302,
- 816: 7724
- }
- ],
- 74: [, , { 770: 308 }],
- 75: [, , { 769: 7728, 780: 488, 803: 7730, 807: 310, 817: 7732 }],
- 76: [, , { 769: 313, 780: 317, 803: 7734, 807: 315, 813: 7740, 817: 7738 }],
- 77: [, , { 769: 7742, 775: 7744, 803: 7746 }],
- 78: [
- , ,
- {
- 768: 504,
- 769: 323,
- 771: 209,
- 775: 7748,
- 780: 327,
- 803: 7750,
- 807: 325,
- 813: 7754,
- 817: 7752
- }
- ],
- 79: [
- , ,
- {
- 768: 210,
- 769: 211,
- 770: 212,
- 771: 213,
- 772: 332,
- 774: 334,
- 775: 558,
- 776: 214,
- 777: 7886,
- 779: 336,
- 780: 465,
- 783: 524,
- 785: 526,
- 795: 416,
- 803: 7884,
- 808: 490
- }
- ],
- 80: [, , { 769: 7764, 775: 7766 }],
- 82: [
- , ,
- { 769: 340, 775: 7768, 780: 344, 783: 528, 785: 530, 803: 7770, 807: 342, 817: 7774 }
- ],
- 83: [, , { 769: 346, 770: 348, 775: 7776, 780: 352, 803: 7778, 806: 536, 807: 350 }],
- 84: [, , { 775: 7786, 780: 356, 803: 7788, 806: 538, 807: 354, 813: 7792, 817: 7790 }],
- 85: [
- , ,
- {
- 768: 217,
- 769: 218,
- 770: 219,
- 771: 360,
- 772: 362,
- 774: 364,
- 776: 220,
- 777: 7910,
- 778: 366,
- 779: 368,
- 780: 467,
- 783: 532,
- 785: 534,
- 795: 431,
- 803: 7908,
- 804: 7794,
- 808: 370,
- 813: 7798,
- 816: 7796
- }
- ],
- 86: [, , { 771: 7804, 803: 7806 }],
- 87: [, , { 768: 7808, 769: 7810, 770: 372, 775: 7814, 776: 7812, 803: 7816 }],
- 88: [, , { 775: 7818, 776: 7820 }],
- 89: [
- , ,
- {
- 768: 7922,
- 769: 221,
- 770: 374,
- 771: 7928,
- 772: 562,
- 775: 7822,
- 776: 376,
- 777: 7926,
- 803: 7924
- }
- ],
- 90: [, , { 769: 377, 770: 7824, 775: 379, 780: 381, 803: 7826, 817: 7828 }],
- 97: [
- , ,
- {
- 768: 224,
- 769: 225,
- 770: 226,
- 771: 227,
- 772: 257,
- 774: 259,
- 775: 551,
- 776: 228,
- 777: 7843,
- 778: 229,
- 780: 462,
- 783: 513,
- 785: 515,
- 803: 7841,
- 805: 7681,
- 808: 261
- }
- ],
- 98: [, , { 775: 7683, 803: 7685, 817: 7687 }],
- 99: [, , { 769: 263, 770: 265, 775: 267, 780: 269, 807: 231 }],
- 100: [, , { 775: 7691, 780: 271, 803: 7693, 807: 7697, 813: 7699, 817: 7695 }],
- 101: [
- , ,
- {
- 768: 232,
- 769: 233,
- 770: 234,
- 771: 7869,
- 772: 275,
- 774: 277,
- 775: 279,
- 776: 235,
- 777: 7867,
- 780: 283,
- 783: 517,
- 785: 519,
- 803: 7865,
- 807: 553,
- 808: 281,
- 813: 7705,
- 816: 7707
- }
- ],
- 102: [, , { 775: 7711 }],
- 103: [, , { 769: 501, 770: 285, 772: 7713, 774: 287, 775: 289, 780: 487, 807: 291 }],
- 104: [
- , ,
- { 770: 293, 775: 7715, 776: 7719, 780: 543, 803: 7717, 807: 7721, 814: 7723, 817: 7830 }
- ],
- 105: [
- , ,
- {
- 768: 236,
- 769: 237,
- 770: 238,
- 771: 297,
- 772: 299,
- 774: 301,
- 776: 239,
- 777: 7881,
- 780: 464,
- 783: 521,
- 785: 523,
- 803: 7883,
- 808: 303,
- 816: 7725
- }
- ],
- 106: [, , { 770: 309, 780: 496 }],
- 107: [, , { 769: 7729, 780: 489, 803: 7731, 807: 311, 817: 7733 }],
- 108: [, , { 769: 314, 780: 318, 803: 7735, 807: 316, 813: 7741, 817: 7739 }],
- 109: [, , { 769: 7743, 775: 7745, 803: 7747 }],
- 110: [
- , ,
- {
- 768: 505,
- 769: 324,
- 771: 241,
- 775: 7749,
- 780: 328,
- 803: 7751,
- 807: 326,
- 813: 7755,
- 817: 7753
- }
- ],
- 111: [
- , ,
- {
- 768: 242,
- 769: 243,
- 770: 244,
- 771: 245,
- 772: 333,
- 774: 335,
- 775: 559,
- 776: 246,
- 777: 7887,
- 779: 337,
- 780: 466,
- 783: 525,
- 785: 527,
- 795: 417,
- 803: 7885,
- 808: 491
- }
- ],
- 112: [, , { 769: 7765, 775: 7767 }],
- 114: [
- , ,
- { 769: 341, 775: 7769, 780: 345, 783: 529, 785: 531, 803: 7771, 807: 343, 817: 7775 }
- ],
- 115: [, , { 769: 347, 770: 349, 775: 7777, 780: 353, 803: 7779, 806: 537, 807: 351 }],
- 116: [
- , ,
- { 775: 7787, 776: 7831, 780: 357, 803: 7789, 806: 539, 807: 355, 813: 7793, 817: 7791 }
- ],
- 117: [
- , ,
- {
- 768: 249,
- 769: 250,
- 770: 251,
- 771: 361,
- 772: 363,
- 774: 365,
- 776: 252,
- 777: 7911,
- 778: 367,
- 779: 369,
- 780: 468,
- 783: 533,
- 785: 535,
- 795: 432,
- 803: 7909,
- 804: 7795,
- 808: 371,
- 813: 7799,
- 816: 7797
- }
- ],
- 118: [, , { 771: 7805, 803: 7807 }],
- 119: [, , { 768: 7809, 769: 7811, 770: 373, 775: 7815, 776: 7813, 778: 7832, 803: 7817 }],
- 120: [, , { 775: 7819, 776: 7821 }],
- 121: [
- , ,
- {
- 768: 7923,
- 769: 253,
- 770: 375,
- 771: 7929,
- 772: 563,
- 775: 7823,
- 776: 255,
- 777: 7927,
- 778: 7833,
- 803: 7925
- }
- ],
- 122: [, , { 769: 378, 770: 7825, 775: 380, 780: 382, 803: 7827, 817: 7829 }],
- 160: [[32], 256],
- 168: [[32, 776], 256, { 768: 8173, 769: 901, 834: 8129 }],
- 170: [[97], 256],
- 175: [[32, 772], 256],
- 178: [[50], 256],
- 179: [[51], 256],
- 180: [[32, 769], 256],
- 181: [[956], 256],
- 184: [[32, 807], 256],
- 185: [[49], 256],
- 186: [[111], 256],
- 188: [[49, 8260, 52], 256],
- 189: [[49, 8260, 50], 256],
- 190: [[51, 8260, 52], 256],
- 192: [[65, 768]],
- 193: [[65, 769]],
- 194: [[65, 770], , { 768: 7846, 769: 7844, 771: 7850, 777: 7848 }],
- 195: [[65, 771]],
- 196: [[65, 776], , { 772: 478 }],
- 197: [[65, 778], , { 769: 506 }],
- 198: [, , { 769: 508, 772: 482 }],
- 199: [[67, 807], , { 769: 7688 }],
- 200: [[69, 768]],
- 201: [[69, 769]],
- 202: [[69, 770], , { 768: 7872, 769: 7870, 771: 7876, 777: 7874 }],
- 203: [[69, 776]],
- 204: [[73, 768]],
- 205: [[73, 769]],
- 206: [[73, 770]],
- 207: [[73, 776], , { 769: 7726 }],
- 209: [[78, 771]],
- 210: [[79, 768]],
- 211: [[79, 769]],
- 212: [[79, 770], , { 768: 7890, 769: 7888, 771: 7894, 777: 7892 }],
- 213: [[79, 771], , { 769: 7756, 772: 556, 776: 7758 }],
- 214: [[79, 776], , { 772: 554 }],
- 216: [, , { 769: 510 }],
- 217: [[85, 768]],
- 218: [[85, 769]],
- 219: [[85, 770]],
- 220: [[85, 776], , { 768: 475, 769: 471, 772: 469, 780: 473 }],
- 221: [[89, 769]],
- 224: [[97, 768]],
- 225: [[97, 769]],
- 226: [[97, 770], , { 768: 7847, 769: 7845, 771: 7851, 777: 7849 }],
- 227: [[97, 771]],
- 228: [[97, 776], , { 772: 479 }],
- 229: [[97, 778], , { 769: 507 }],
- 230: [, , { 769: 509, 772: 483 }],
- 231: [[99, 807], , { 769: 7689 }],
- 232: [[101, 768]],
- 233: [[101, 769]],
- 234: [[101, 770], , { 768: 7873, 769: 7871, 771: 7877, 777: 7875 }],
- 235: [[101, 776]],
- 236: [[105, 768]],
- 237: [[105, 769]],
- 238: [[105, 770]],
- 239: [[105, 776], , { 769: 7727 }],
- 241: [[110, 771]],
- 242: [[111, 768]],
- 243: [[111, 769]],
- 244: [[111, 770], , { 768: 7891, 769: 7889, 771: 7895, 777: 7893 }],
- 245: [[111, 771], , { 769: 7757, 772: 557, 776: 7759 }],
- 246: [[111, 776], , { 772: 555 }],
- 248: [, , { 769: 511 }],
- 249: [[117, 768]],
- 250: [[117, 769]],
- 251: [[117, 770]],
- 252: [[117, 776], , { 768: 476, 769: 472, 772: 470, 780: 474 }],
- 253: [[121, 769]],
- 255: [[121, 776]]
- },
- 256: {
- 256: [[65, 772]],
- 257: [[97, 772]],
- 258: [[65, 774], , { 768: 7856, 769: 7854, 771: 7860, 777: 7858 }],
- 259: [[97, 774], , { 768: 7857, 769: 7855, 771: 7861, 777: 7859 }],
- 260: [[65, 808]],
- 261: [[97, 808]],
- 262: [[67, 769]],
- 263: [[99, 769]],
- 264: [[67, 770]],
- 265: [[99, 770]],
- 266: [[67, 775]],
- 267: [[99, 775]],
- 268: [[67, 780]],
- 269: [[99, 780]],
- 270: [[68, 780]],
- 271: [[100, 780]],
- 274: [[69, 772], , { 768: 7700, 769: 7702 }],
- 275: [[101, 772], , { 768: 7701, 769: 7703 }],
- 276: [[69, 774]],
- 277: [[101, 774]],
- 278: [[69, 775]],
- 279: [[101, 775]],
- 280: [[69, 808]],
- 281: [[101, 808]],
- 282: [[69, 780]],
- 283: [[101, 780]],
- 284: [[71, 770]],
- 285: [[103, 770]],
- 286: [[71, 774]],
- 287: [[103, 774]],
- 288: [[71, 775]],
- 289: [[103, 775]],
- 290: [[71, 807]],
- 291: [[103, 807]],
- 292: [[72, 770]],
- 293: [[104, 770]],
- 296: [[73, 771]],
- 297: [[105, 771]],
- 298: [[73, 772]],
- 299: [[105, 772]],
- 300: [[73, 774]],
- 301: [[105, 774]],
- 302: [[73, 808]],
- 303: [[105, 808]],
- 304: [[73, 775]],
- 306: [[73, 74], 256],
- 307: [[105, 106], 256],
- 308: [[74, 770]],
- 309: [[106, 770]],
- 310: [[75, 807]],
- 311: [[107, 807]],
- 313: [[76, 769]],
- 314: [[108, 769]],
- 315: [[76, 807]],
- 316: [[108, 807]],
- 317: [[76, 780]],
- 318: [[108, 780]],
- 319: [[76, 183], 256],
- 320: [[108, 183], 256],
- 323: [[78, 769]],
- 324: [[110, 769]],
- 325: [[78, 807]],
- 326: [[110, 807]],
- 327: [[78, 780]],
- 328: [[110, 780]],
- 329: [[700, 110], 256],
- 332: [[79, 772], , { 768: 7760, 769: 7762 }],
- 333: [[111, 772], , { 768: 7761, 769: 7763 }],
- 334: [[79, 774]],
- 335: [[111, 774]],
- 336: [[79, 779]],
- 337: [[111, 779]],
- 340: [[82, 769]],
- 341: [[114, 769]],
- 342: [[82, 807]],
- 343: [[114, 807]],
- 344: [[82, 780]],
- 345: [[114, 780]],
- 346: [[83, 769], , { 775: 7780 }],
- 347: [[115, 769], , { 775: 7781 }],
- 348: [[83, 770]],
- 349: [[115, 770]],
- 350: [[83, 807]],
- 351: [[115, 807]],
- 352: [[83, 780], , { 775: 7782 }],
- 353: [[115, 780], , { 775: 7783 }],
- 354: [[84, 807]],
- 355: [[116, 807]],
- 356: [[84, 780]],
- 357: [[116, 780]],
- 360: [[85, 771], , { 769: 7800 }],
- 361: [[117, 771], , { 769: 7801 }],
- 362: [[85, 772], , { 776: 7802 }],
- 363: [[117, 772], , { 776: 7803 }],
- 364: [[85, 774]],
- 365: [[117, 774]],
- 366: [[85, 778]],
- 367: [[117, 778]],
- 368: [[85, 779]],
- 369: [[117, 779]],
- 370: [[85, 808]],
- 371: [[117, 808]],
- 372: [[87, 770]],
- 373: [[119, 770]],
- 374: [[89, 770]],
- 375: [[121, 770]],
- 376: [[89, 776]],
- 377: [[90, 769]],
- 378: [[122, 769]],
- 379: [[90, 775]],
- 380: [[122, 775]],
- 381: [[90, 780]],
- 382: [[122, 780]],
- 383: [[115], 256, { 775: 7835 }],
- 416: [[79, 795], , { 768: 7900, 769: 7898, 771: 7904, 777: 7902, 803: 7906 }],
- 417: [[111, 795], , { 768: 7901, 769: 7899, 771: 7905, 777: 7903, 803: 7907 }],
- 431: [[85, 795], , { 768: 7914, 769: 7912, 771: 7918, 777: 7916, 803: 7920 }],
- 432: [[117, 795], , { 768: 7915, 769: 7913, 771: 7919, 777: 7917, 803: 7921 }],
- 439: [, , { 780: 494 }],
- 452: [[68, 381], 256],
- 453: [[68, 382], 256],
- 454: [[100, 382], 256],
- 455: [[76, 74], 256],
- 456: [[76, 106], 256],
- 457: [[108, 106], 256],
- 458: [[78, 74], 256],
- 459: [[78, 106], 256],
- 460: [[110, 106], 256],
- 461: [[65, 780]],
- 462: [[97, 780]],
- 463: [[73, 780]],
- 464: [[105, 780]],
- 465: [[79, 780]],
- 466: [[111, 780]],
- 467: [[85, 780]],
- 468: [[117, 780]],
- 469: [[220, 772]],
- 470: [[252, 772]],
- 471: [[220, 769]],
- 472: [[252, 769]],
- 473: [[220, 780]],
- 474: [[252, 780]],
- 475: [[220, 768]],
- 476: [[252, 768]],
- 478: [[196, 772]],
- 479: [[228, 772]],
- 480: [[550, 772]],
- 481: [[551, 772]],
- 482: [[198, 772]],
- 483: [[230, 772]],
- 486: [[71, 780]],
- 487: [[103, 780]],
- 488: [[75, 780]],
- 489: [[107, 780]],
- 490: [[79, 808], , { 772: 492 }],
- 491: [[111, 808], , { 772: 493 }],
- 492: [[490, 772]],
- 493: [[491, 772]],
- 494: [[439, 780]],
- 495: [[658, 780]],
- 496: [[106, 780]],
- 497: [[68, 90], 256],
- 498: [[68, 122], 256],
- 499: [[100, 122], 256],
- 500: [[71, 769]],
- 501: [[103, 769]],
- 504: [[78, 768]],
- 505: [[110, 768]],
- 506: [[197, 769]],
- 507: [[229, 769]],
- 508: [[198, 769]],
- 509: [[230, 769]],
- 510: [[216, 769]],
- 511: [[248, 769]],
- 66045: [, 220]
- },
- 512: {
- 512: [[65, 783]],
- 513: [[97, 783]],
- 514: [[65, 785]],
- 515: [[97, 785]],
- 516: [[69, 783]],
- 517: [[101, 783]],
- 518: [[69, 785]],
- 519: [[101, 785]],
- 520: [[73, 783]],
- 521: [[105, 783]],
- 522: [[73, 785]],
- 523: [[105, 785]],
- 524: [[79, 783]],
- 525: [[111, 783]],
- 526: [[79, 785]],
- 527: [[111, 785]],
- 528: [[82, 783]],
- 529: [[114, 783]],
- 530: [[82, 785]],
- 531: [[114, 785]],
- 532: [[85, 783]],
- 533: [[117, 783]],
- 534: [[85, 785]],
- 535: [[117, 785]],
- 536: [[83, 806]],
- 537: [[115, 806]],
- 538: [[84, 806]],
- 539: [[116, 806]],
- 542: [[72, 780]],
- 543: [[104, 780]],
- 550: [[65, 775], , { 772: 480 }],
- 551: [[97, 775], , { 772: 481 }],
- 552: [[69, 807], , { 774: 7708 }],
- 553: [[101, 807], , { 774: 7709 }],
- 554: [[214, 772]],
- 555: [[246, 772]],
- 556: [[213, 772]],
- 557: [[245, 772]],
- 558: [[79, 775], , { 772: 560 }],
- 559: [[111, 775], , { 772: 561 }],
- 560: [[558, 772]],
- 561: [[559, 772]],
- 562: [[89, 772]],
- 563: [[121, 772]],
- 658: [, , { 780: 495 }],
- 688: [[104], 256],
- 689: [[614], 256],
- 690: [[106], 256],
- 691: [[114], 256],
- 692: [[633], 256],
- 693: [[635], 256],
- 694: [[641], 256],
- 695: [[119], 256],
- 696: [[121], 256],
- 728: [[32, 774], 256],
- 729: [[32, 775], 256],
- 730: [[32, 778], 256],
- 731: [[32, 808], 256],
- 732: [[32, 771], 256],
- 733: [[32, 779], 256],
- 736: [[611], 256],
- 737: [[108], 256],
- 738: [[115], 256],
- 739: [[120], 256],
- 740: [[661], 256]
- },
- 768: {
- 768: [, 230],
- 769: [, 230],
- 770: [, 230],
- 771: [, 230],
- 772: [, 230],
- 773: [, 230],
- 774: [, 230],
- 775: [, 230],
- 776: [, 230, { 769: 836 }],
- 777: [, 230],
- 778: [, 230],
- 779: [, 230],
- 780: [, 230],
- 781: [, 230],
- 782: [, 230],
- 783: [, 230],
- 784: [, 230],
- 785: [, 230],
- 786: [, 230],
- 787: [, 230],
- 788: [, 230],
- 789: [, 232],
- 790: [, 220],
- 791: [, 220],
- 792: [, 220],
- 793: [, 220],
- 794: [, 232],
- 795: [, 216],
- 796: [, 220],
- 797: [, 220],
- 798: [, 220],
- 799: [, 220],
- 800: [, 220],
- 801: [, 202],
- 802: [, 202],
- 803: [, 220],
- 804: [, 220],
- 805: [, 220],
- 806: [, 220],
- 807: [, 202],
- 808: [, 202],
- 809: [, 220],
- 810: [, 220],
- 811: [, 220],
- 812: [, 220],
- 813: [, 220],
- 814: [, 220],
- 815: [, 220],
- 816: [, 220],
- 817: [, 220],
- 818: [, 220],
- 819: [, 220],
- 820: [, 1],
- 821: [, 1],
- 822: [, 1],
- 823: [, 1],
- 824: [, 1],
- 825: [, 220],
- 826: [, 220],
- 827: [, 220],
- 828: [, 220],
- 829: [, 230],
- 830: [, 230],
- 831: [, 230],
- 832: [[768], 230],
- 833: [[769], 230],
- 834: [, 230],
- 835: [[787], 230],
- 836: [[776, 769], 230],
- 837: [, 240],
- 838: [, 230],
- 839: [, 220],
- 840: [, 220],
- 841: [, 220],
- 842: [, 230],
- 843: [, 230],
- 844: [, 230],
- 845: [, 220],
- 846: [, 220],
- 848: [, 230],
- 849: [, 230],
- 850: [, 230],
- 851: [, 220],
- 852: [, 220],
- 853: [, 220],
- 854: [, 220],
- 855: [, 230],
- 856: [, 232],
- 857: [, 220],
- 858: [, 220],
- 859: [, 230],
- 860: [, 233],
- 861: [, 234],
- 862: [, 234],
- 863: [, 233],
- 864: [, 234],
- 865: [, 234],
- 866: [, 233],
- 867: [, 230],
- 868: [, 230],
- 869: [, 230],
- 870: [, 230],
- 871: [, 230],
- 872: [, 230],
- 873: [, 230],
- 874: [, 230],
- 875: [, 230],
- 876: [, 230],
- 877: [, 230],
- 878: [, 230],
- 879: [, 230],
- 884: [[697]],
- 890: [[32, 837], 256],
- 894: [[59]],
- 900: [[32, 769], 256],
- 901: [[168, 769]],
- 902: [[913, 769]],
- 903: [[183]],
- 904: [[917, 769]],
- 905: [[919, 769]],
- 906: [[921, 769]],
- 908: [[927, 769]],
- 910: [[933, 769]],
- 911: [[937, 769]],
- 912: [[970, 769]],
- 913: [, , { 768: 8122, 769: 902, 772: 8121, 774: 8120, 787: 7944, 788: 7945, 837: 8124 }],
- 917: [, , { 768: 8136, 769: 904, 787: 7960, 788: 7961 }],
- 919: [, , { 768: 8138, 769: 905, 787: 7976, 788: 7977, 837: 8140 }],
- 921: [, , { 768: 8154, 769: 906, 772: 8153, 774: 8152, 776: 938, 787: 7992, 788: 7993 }],
- 927: [, , { 768: 8184, 769: 908, 787: 8008, 788: 8009 }],
- 929: [, , { 788: 8172 }],
- 933: [, , { 768: 8170, 769: 910, 772: 8169, 774: 8168, 776: 939, 788: 8025 }],
- 937: [, , { 768: 8186, 769: 911, 787: 8040, 788: 8041, 837: 8188 }],
- 938: [[921, 776]],
- 939: [[933, 776]],
- 940: [[945, 769], , { 837: 8116 }],
- 941: [[949, 769]],
- 942: [[951, 769], , { 837: 8132 }],
- 943: [[953, 769]],
- 944: [[971, 769]],
- 945: [
- , ,
- {
- 768: 8048,
- 769: 940,
- 772: 8113,
- 774: 8112,
- 787: 7936,
- 788: 7937,
- 834: 8118,
- 837: 8115
- }
- ],
- 949: [, , { 768: 8050, 769: 941, 787: 7952, 788: 7953 }],
- 951: [, , { 768: 8052, 769: 942, 787: 7968, 788: 7969, 834: 8134, 837: 8131 }],
- 953: [
- , ,
- { 768: 8054, 769: 943, 772: 8145, 774: 8144, 776: 970, 787: 7984, 788: 7985, 834: 8150 }
- ],
- 959: [, , { 768: 8056, 769: 972, 787: 8000, 788: 8001 }],
- 961: [, , { 787: 8164, 788: 8165 }],
- 965: [
- , ,
- { 768: 8058, 769: 973, 772: 8161, 774: 8160, 776: 971, 787: 8016, 788: 8017, 834: 8166 }
- ],
- 969: [, , { 768: 8060, 769: 974, 787: 8032, 788: 8033, 834: 8182, 837: 8179 }],
- 970: [[953, 776], , { 768: 8146, 769: 912, 834: 8151 }],
- 971: [[965, 776], , { 768: 8162, 769: 944, 834: 8167 }],
- 972: [[959, 769]],
- 973: [[965, 769]],
- 974: [[969, 769], , { 837: 8180 }],
- 976: [[946], 256],
- 977: [[952], 256],
- 978: [[933], 256, { 769: 979, 776: 980 }],
- 979: [[978, 769]],
- 980: [[978, 776]],
- 981: [[966], 256],
- 982: [[960], 256],
- 1008: [[954], 256],
- 1009: [[961], 256],
- 1010: [[962], 256],
- 1012: [[920], 256],
- 1013: [[949], 256],
- 1017: [[931], 256]
- },
- 1024: {
- 1024: [[1045, 768]],
- 1025: [[1045, 776]],
- 1027: [[1043, 769]],
- 1030: [, , { 776: 1031 }],
- 1031: [[1030, 776]],
- 1036: [[1050, 769]],
- 1037: [[1048, 768]],
- 1038: [[1059, 774]],
- 1040: [, , { 774: 1232, 776: 1234 }],
- 1043: [, , { 769: 1027 }],
- 1045: [, , { 768: 1024, 774: 1238, 776: 1025 }],
- 1046: [, , { 774: 1217, 776: 1244 }],
- 1047: [, , { 776: 1246 }],
- 1048: [, , { 768: 1037, 772: 1250, 774: 1049, 776: 1252 }],
- 1049: [[1048, 774]],
- 1050: [, , { 769: 1036 }],
- 1054: [, , { 776: 1254 }],
- 1059: [, , { 772: 1262, 774: 1038, 776: 1264, 779: 1266 }],
- 1063: [, , { 776: 1268 }],
- 1067: [, , { 776: 1272 }],
- 1069: [, , { 776: 1260 }],
- 1072: [, , { 774: 1233, 776: 1235 }],
- 1075: [, , { 769: 1107 }],
- 1077: [, , { 768: 1104, 774: 1239, 776: 1105 }],
- 1078: [, , { 774: 1218, 776: 1245 }],
- 1079: [, , { 776: 1247 }],
- 1080: [, , { 768: 1117, 772: 1251, 774: 1081, 776: 1253 }],
- 1081: [[1080, 774]],
- 1082: [, , { 769: 1116 }],
- 1086: [, , { 776: 1255 }],
- 1091: [, , { 772: 1263, 774: 1118, 776: 1265, 779: 1267 }],
- 1095: [, , { 776: 1269 }],
- 1099: [, , { 776: 1273 }],
- 1101: [, , { 776: 1261 }],
- 1104: [[1077, 768]],
- 1105: [[1077, 776]],
- 1107: [[1075, 769]],
- 1110: [, , { 776: 1111 }],
- 1111: [[1110, 776]],
- 1116: [[1082, 769]],
- 1117: [[1080, 768]],
- 1118: [[1091, 774]],
- 1140: [, , { 783: 1142 }],
- 1141: [, , { 783: 1143 }],
- 1142: [[1140, 783]],
- 1143: [[1141, 783]],
- 1155: [, 230],
- 1156: [, 230],
- 1157: [, 230],
- 1158: [, 230],
- 1159: [, 230],
- 1217: [[1046, 774]],
- 1218: [[1078, 774]],
- 1232: [[1040, 774]],
- 1233: [[1072, 774]],
- 1234: [[1040, 776]],
- 1235: [[1072, 776]],
- 1238: [[1045, 774]],
- 1239: [[1077, 774]],
- 1240: [, , { 776: 1242 }],
- 1241: [, , { 776: 1243 }],
- 1242: [[1240, 776]],
- 1243: [[1241, 776]],
- 1244: [[1046, 776]],
- 1245: [[1078, 776]],
- 1246: [[1047, 776]],
- 1247: [[1079, 776]],
- 1250: [[1048, 772]],
- 1251: [[1080, 772]],
- 1252: [[1048, 776]],
- 1253: [[1080, 776]],
- 1254: [[1054, 776]],
- 1255: [[1086, 776]],
- 1256: [, , { 776: 1258 }],
- 1257: [, , { 776: 1259 }],
- 1258: [[1256, 776]],
- 1259: [[1257, 776]],
- 1260: [[1069, 776]],
- 1261: [[1101, 776]],
- 1262: [[1059, 772]],
- 1263: [[1091, 772]],
- 1264: [[1059, 776]],
- 1265: [[1091, 776]],
- 1266: [[1059, 779]],
- 1267: [[1091, 779]],
- 1268: [[1063, 776]],
- 1269: [[1095, 776]],
- 1272: [[1067, 776]],
- 1273: [[1099, 776]]
- },
- 1280: {
- 1415: [[1381, 1410], 256],
- 1425: [, 220],
- 1426: [, 230],
- 1427: [, 230],
- 1428: [, 230],
- 1429: [, 230],
- 1430: [, 220],
- 1431: [, 230],
- 1432: [, 230],
- 1433: [, 230],
- 1434: [, 222],
- 1435: [, 220],
- 1436: [, 230],
- 1437: [, 230],
- 1438: [, 230],
- 1439: [, 230],
- 1440: [, 230],
- 1441: [, 230],
- 1442: [, 220],
- 1443: [, 220],
- 1444: [, 220],
- 1445: [, 220],
- 1446: [, 220],
- 1447: [, 220],
- 1448: [, 230],
- 1449: [, 230],
- 1450: [, 220],
- 1451: [, 230],
- 1452: [, 230],
- 1453: [, 222],
- 1454: [, 228],
- 1455: [, 230],
- 1456: [, 10],
- 1457: [, 11],
- 1458: [, 12],
- 1459: [, 13],
- 1460: [, 14],
- 1461: [, 15],
- 1462: [, 16],
- 1463: [, 17],
- 1464: [, 18],
- 1465: [, 19],
- 1466: [, 19],
- 1467: [, 20],
- 1468: [, 21],
- 1469: [, 22],
- 1471: [, 23],
- 1473: [, 24],
- 1474: [, 25],
- 1476: [, 230],
- 1477: [, 220],
- 1479: [, 18]
- },
- 1536: {
- 1552: [, 230],
- 1553: [, 230],
- 1554: [, 230],
- 1555: [, 230],
- 1556: [, 230],
- 1557: [, 230],
- 1558: [, 230],
- 1559: [, 230],
- 1560: [, 30],
- 1561: [, 31],
- 1562: [, 32],
- 1570: [[1575, 1619]],
- 1571: [[1575, 1620]],
- 1572: [[1608, 1620]],
- 1573: [[1575, 1621]],
- 1574: [[1610, 1620]],
- 1575: [, , { 1619: 1570, 1620: 1571, 1621: 1573 }],
- 1608: [, , { 1620: 1572 }],
- 1610: [, , { 1620: 1574 }],
- 1611: [, 27],
- 1612: [, 28],
- 1613: [, 29],
- 1614: [, 30],
- 1615: [, 31],
- 1616: [, 32],
- 1617: [, 33],
- 1618: [, 34],
- 1619: [, 230],
- 1620: [, 230],
- 1621: [, 220],
- 1622: [, 220],
- 1623: [, 230],
- 1624: [, 230],
- 1625: [, 230],
- 1626: [, 230],
- 1627: [, 230],
- 1628: [, 220],
- 1629: [, 230],
- 1630: [, 230],
- 1631: [, 220],
- 1648: [, 35],
- 1653: [[1575, 1652], 256],
- 1654: [[1608, 1652], 256],
- 1655: [[1735, 1652], 256],
- 1656: [[1610, 1652], 256],
- 1728: [[1749, 1620]],
- 1729: [, , { 1620: 1730 }],
- 1730: [[1729, 1620]],
- 1746: [, , { 1620: 1747 }],
- 1747: [[1746, 1620]],
- 1749: [, , { 1620: 1728 }],
- 1750: [, 230],
- 1751: [, 230],
- 1752: [, 230],
- 1753: [, 230],
- 1754: [, 230],
- 1755: [, 230],
- 1756: [, 230],
- 1759: [, 230],
- 1760: [, 230],
- 1761: [, 230],
- 1762: [, 230],
- 1763: [, 220],
- 1764: [, 230],
- 1767: [, 230],
- 1768: [, 230],
- 1770: [, 220],
- 1771: [, 230],
- 1772: [, 230],
- 1773: [, 220]
- },
- 1792: {
- 1809: [, 36],
- 1840: [, 230],
- 1841: [, 220],
- 1842: [, 230],
- 1843: [, 230],
- 1844: [, 220],
- 1845: [, 230],
- 1846: [, 230],
- 1847: [, 220],
- 1848: [, 220],
- 1849: [, 220],
- 1850: [, 230],
- 1851: [, 220],
- 1852: [, 220],
- 1853: [, 230],
- 1854: [, 220],
- 1855: [, 230],
- 1856: [, 230],
- 1857: [, 230],
- 1858: [, 220],
- 1859: [, 230],
- 1860: [, 220],
- 1861: [, 230],
- 1862: [, 220],
- 1863: [, 230],
- 1864: [, 220],
- 1865: [, 230],
- 1866: [, 230],
- 2027: [, 230],
- 2028: [, 230],
- 2029: [, 230],
- 2030: [, 230],
- 2031: [, 230],
- 2032: [, 230],
- 2033: [, 230],
- 2034: [, 220],
- 2035: [, 230]
- },
- 2048: {
- 2070: [, 230],
- 2071: [, 230],
- 2072: [, 230],
- 2073: [, 230],
- 2075: [, 230],
- 2076: [, 230],
- 2077: [, 230],
- 2078: [, 230],
- 2079: [, 230],
- 2080: [, 230],
- 2081: [, 230],
- 2082: [, 230],
- 2083: [, 230],
- 2085: [, 230],
- 2086: [, 230],
- 2087: [, 230],
- 2089: [, 230],
- 2090: [, 230],
- 2091: [, 230],
- 2092: [, 230],
- 2093: [, 230],
- 2137: [, 220],
- 2138: [, 220],
- 2139: [, 220],
- 2276: [, 230],
- 2277: [, 230],
- 2278: [, 220],
- 2279: [, 230],
- 2280: [, 230],
- 2281: [, 220],
- 2282: [, 230],
- 2283: [, 230],
- 2284: [, 230],
- 2285: [, 220],
- 2286: [, 220],
- 2287: [, 220],
- 2288: [, 27],
- 2289: [, 28],
- 2290: [, 29],
- 2291: [, 230],
- 2292: [, 230],
- 2293: [, 230],
- 2294: [, 220],
- 2295: [, 230],
- 2296: [, 230],
- 2297: [, 220],
- 2298: [, 220],
- 2299: [, 230],
- 2300: [, 230],
- 2301: [, 230],
- 2302: [, 230]
- },
- 2304: {
- 2344: [, , { 2364: 2345 }],
- 2345: [[2344, 2364]],
- 2352: [, , { 2364: 2353 }],
- 2353: [[2352, 2364]],
- 2355: [, , { 2364: 2356 }],
- 2356: [[2355, 2364]],
- 2364: [, 7],
- 2381: [, 9],
- 2385: [, 230],
- 2386: [, 220],
- 2387: [, 230],
- 2388: [, 230],
- 2392: [[2325, 2364], 512],
- 2393: [[2326, 2364], 512],
- 2394: [[2327, 2364], 512],
- 2395: [[2332, 2364], 512],
- 2396: [[2337, 2364], 512],
- 2397: [[2338, 2364], 512],
- 2398: [[2347, 2364], 512],
- 2399: [[2351, 2364], 512],
- 2492: [, 7],
- 2503: [, , { 2494: 2507, 2519: 2508 }],
- 2507: [[2503, 2494]],
- 2508: [[2503, 2519]],
- 2509: [, 9],
- 2524: [[2465, 2492], 512],
- 2525: [[2466, 2492], 512],
- 2527: [[2479, 2492], 512]
- },
- 2560: {
- 2611: [[2610, 2620], 512],
- 2614: [[2616, 2620], 512],
- 2620: [, 7],
- 2637: [, 9],
- 2649: [[2582, 2620], 512],
- 2650: [[2583, 2620], 512],
- 2651: [[2588, 2620], 512],
- 2654: [[2603, 2620], 512],
- 2748: [, 7],
- 2765: [, 9],
- 68109: [, 220],
- 68111: [, 230],
- 68152: [, 230],
- 68153: [, 1],
- 68154: [, 220],
- 68159: [, 9]
- },
- 2816: {
- 2876: [, 7],
- 2887: [, , { 2878: 2891, 2902: 2888, 2903: 2892 }],
- 2888: [[2887, 2902]],
- 2891: [[2887, 2878]],
- 2892: [[2887, 2903]],
- 2893: [, 9],
- 2908: [[2849, 2876], 512],
- 2909: [[2850, 2876], 512],
- 2962: [, , { 3031: 2964 }],
- 2964: [[2962, 3031]],
- 3014: [, , { 3006: 3018, 3031: 3020 }],
- 3015: [, , { 3006: 3019 }],
- 3018: [[3014, 3006]],
- 3019: [[3015, 3006]],
- 3020: [[3014, 3031]],
- 3021: [, 9]
- },
- 3072: {
- 3142: [, , { 3158: 3144 }],
- 3144: [[3142, 3158]],
- 3149: [, 9],
- 3157: [, 84],
- 3158: [, 91],
- 3260: [, 7],
- 3263: [, , { 3285: 3264 }],
- 3264: [[3263, 3285]],
- 3270: [, , { 3266: 3274, 3285: 3271, 3286: 3272 }],
- 3271: [[3270, 3285]],
- 3272: [[3270, 3286]],
- 3274: [[3270, 3266], , { 3285: 3275 }],
- 3275: [[3274, 3285]],
- 3277: [, 9]
- },
- 3328: {
- 3398: [, , { 3390: 3402, 3415: 3404 }],
- 3399: [, , { 3390: 3403 }],
- 3402: [[3398, 3390]],
- 3403: [[3399, 3390]],
- 3404: [[3398, 3415]],
- 3405: [, 9],
- 3530: [, 9],
- 3545: [, , { 3530: 3546, 3535: 3548, 3551: 3550 }],
- 3546: [[3545, 3530]],
- 3548: [[3545, 3535], , { 3530: 3549 }],
- 3549: [[3548, 3530]],
- 3550: [[3545, 3551]]
- },
- 3584: {
- 3635: [[3661, 3634], 256],
- 3640: [, 103],
- 3641: [, 103],
- 3642: [, 9],
- 3656: [, 107],
- 3657: [, 107],
- 3658: [, 107],
- 3659: [, 107],
- 3763: [[3789, 3762], 256],
- 3768: [, 118],
- 3769: [, 118],
- 3784: [, 122],
- 3785: [, 122],
- 3786: [, 122],
- 3787: [, 122],
- 3804: [[3755, 3737], 256],
- 3805: [[3755, 3745], 256]
- },
- 3840: {
- 3852: [[3851], 256],
- 3864: [, 220],
- 3865: [, 220],
- 3893: [, 220],
- 3895: [, 220],
- 3897: [, 216],
- 3907: [[3906, 4023], 512],
- 3917: [[3916, 4023], 512],
- 3922: [[3921, 4023], 512],
- 3927: [[3926, 4023], 512],
- 3932: [[3931, 4023], 512],
- 3945: [[3904, 4021], 512],
- 3953: [, 129],
- 3954: [, 130],
- 3955: [[3953, 3954], 512],
- 3956: [, 132],
- 3957: [[3953, 3956], 512],
- 3958: [[4018, 3968], 512],
- 3959: [[4018, 3969], 256],
- 3960: [[4019, 3968], 512],
- 3961: [[4019, 3969], 256],
- 3962: [, 130],
- 3963: [, 130],
- 3964: [, 130],
- 3965: [, 130],
- 3968: [, 130],
- 3969: [[3953, 3968], 512],
- 3970: [, 230],
- 3971: [, 230],
- 3972: [, 9],
- 3974: [, 230],
- 3975: [, 230],
- 3987: [[3986, 4023], 512],
- 3997: [[3996, 4023], 512],
- 4002: [[4001, 4023], 512],
- 4007: [[4006, 4023], 512],
- 4012: [[4011, 4023], 512],
- 4025: [[3984, 4021], 512],
- 4038: [, 220]
- },
- 4096: {
- 4133: [, , { 4142: 4134 }],
- 4134: [[4133, 4142]],
- 4151: [, 7],
- 4153: [, 9],
- 4154: [, 9],
- 4237: [, 220],
- 4348: [[4316], 256],
- 69702: [, 9],
- 69785: [, , { 69818: 69786 }],
- 69786: [[69785, 69818]],
- 69787: [, , { 69818: 69788 }],
- 69788: [[69787, 69818]],
- 69797: [, , { 69818: 69803 }],
- 69803: [[69797, 69818]],
- 69817: [, 9],
- 69818: [, 7]
- },
- 4352: {
- 69888: [, 230],
- 69889: [, 230],
- 69890: [, 230],
- 69934: [[69937, 69927]],
- 69935: [[69938, 69927]],
- 69937: [, , { 69927: 69934 }],
- 69938: [, , { 69927: 69935 }],
- 69939: [, 9],
- 69940: [, 9],
- 70080: [, 9]
- },
- 4864: { 4957: [, 230], 4958: [, 230], 4959: [, 230] },
- 5632: { 71350: [, 9], 71351: [, 7] },
- 5888: { 5908: [, 9], 5940: [, 9], 6098: [, 9], 6109: [, 230] },
- 6144: { 6313: [, 228] },
- 6400: { 6457: [, 222], 6458: [, 230], 6459: [, 220] },
- 6656: {
- 6679: [, 230],
- 6680: [, 220],
- 6752: [, 9],
- 6773: [, 230],
- 6774: [, 230],
- 6775: [, 230],
- 6776: [, 230],
- 6777: [, 230],
- 6778: [, 230],
- 6779: [, 230],
- 6780: [, 230],
- 6783: [, 220]
- },
- 6912: {
- 6917: [, , { 6965: 6918 }],
- 6918: [[6917, 6965]],
- 6919: [, , { 6965: 6920 }],
- 6920: [[6919, 6965]],
- 6921: [, , { 6965: 6922 }],
- 6922: [[6921, 6965]],
- 6923: [, , { 6965: 6924 }],
- 6924: [[6923, 6965]],
- 6925: [, , { 6965: 6926 }],
- 6926: [[6925, 6965]],
- 6929: [, , { 6965: 6930 }],
- 6930: [[6929, 6965]],
- 6964: [, 7],
- 6970: [, , { 6965: 6971 }],
- 6971: [[6970, 6965]],
- 6972: [, , { 6965: 6973 }],
- 6973: [[6972, 6965]],
- 6974: [, , { 6965: 6976 }],
- 6975: [, , { 6965: 6977 }],
- 6976: [[6974, 6965]],
- 6977: [[6975, 6965]],
- 6978: [, , { 6965: 6979 }],
- 6979: [[6978, 6965]],
- 6980: [, 9],
- 7019: [, 230],
- 7020: [, 220],
- 7021: [, 230],
- 7022: [, 230],
- 7023: [, 230],
- 7024: [, 230],
- 7025: [, 230],
- 7026: [, 230],
- 7027: [, 230],
- 7082: [, 9],
- 7083: [, 9],
- 7142: [, 7],
- 7154: [, 9],
- 7155: [, 9]
- },
- 7168: {
- 7223: [, 7],
- 7376: [, 230],
- 7377: [, 230],
- 7378: [, 230],
- 7380: [, 1],
- 7381: [, 220],
- 7382: [, 220],
- 7383: [, 220],
- 7384: [, 220],
- 7385: [, 220],
- 7386: [, 230],
- 7387: [, 230],
- 7388: [, 220],
- 7389: [, 220],
- 7390: [, 220],
- 7391: [, 220],
- 7392: [, 230],
- 7394: [, 1],
- 7395: [, 1],
- 7396: [, 1],
- 7397: [, 1],
- 7398: [, 1],
- 7399: [, 1],
- 7400: [, 1],
- 7405: [, 220],
- 7412: [, 230]
- },
- 7424: {
- 7468: [[65], 256],
- 7469: [[198], 256],
- 7470: [[66], 256],
- 7472: [[68], 256],
- 7473: [[69], 256],
- 7474: [[398], 256],
- 7475: [[71], 256],
- 7476: [[72], 256],
- 7477: [[73], 256],
- 7478: [[74], 256],
- 7479: [[75], 256],
- 7480: [[76], 256],
- 7481: [[77], 256],
- 7482: [[78], 256],
- 7484: [[79], 256],
- 7485: [[546], 256],
- 7486: [[80], 256],
- 7487: [[82], 256],
- 7488: [[84], 256],
- 7489: [[85], 256],
- 7490: [[87], 256],
- 7491: [[97], 256],
- 7492: [[592], 256],
- 7493: [[593], 256],
- 7494: [[7426], 256],
- 7495: [[98], 256],
- 7496: [[100], 256],
- 7497: [[101], 256],
- 7498: [[601], 256],
- 7499: [[603], 256],
- 7500: [[604], 256],
- 7501: [[103], 256],
- 7503: [[107], 256],
- 7504: [[109], 256],
- 7505: [[331], 256],
- 7506: [[111], 256],
- 7507: [[596], 256],
- 7508: [[7446], 256],
- 7509: [[7447], 256],
- 7510: [[112], 256],
- 7511: [[116], 256],
- 7512: [[117], 256],
- 7513: [[7453], 256],
- 7514: [[623], 256],
- 7515: [[118], 256],
- 7516: [[7461], 256],
- 7517: [[946], 256],
- 7518: [[947], 256],
- 7519: [[948], 256],
- 7520: [[966], 256],
- 7521: [[967], 256],
- 7522: [[105], 256],
- 7523: [[114], 256],
- 7524: [[117], 256],
- 7525: [[118], 256],
- 7526: [[946], 256],
- 7527: [[947], 256],
- 7528: [[961], 256],
- 7529: [[966], 256],
- 7530: [[967], 256],
- 7544: [[1085], 256],
- 7579: [[594], 256],
- 7580: [[99], 256],
- 7581: [[597], 256],
- 7582: [[240], 256],
- 7583: [[604], 256],
- 7584: [[102], 256],
- 7585: [[607], 256],
- 7586: [[609], 256],
- 7587: [[613], 256],
- 7588: [[616], 256],
- 7589: [[617], 256],
- 7590: [[618], 256],
- 7591: [[7547], 256],
- 7592: [[669], 256],
- 7593: [[621], 256],
- 7594: [[7557], 256],
- 7595: [[671], 256],
- 7596: [[625], 256],
- 7597: [[624], 256],
- 7598: [[626], 256],
- 7599: [[627], 256],
- 7600: [[628], 256],
- 7601: [[629], 256],
- 7602: [[632], 256],
- 7603: [[642], 256],
- 7604: [[643], 256],
- 7605: [[427], 256],
- 7606: [[649], 256],
- 7607: [[650], 256],
- 7608: [[7452], 256],
- 7609: [[651], 256],
- 7610: [[652], 256],
- 7611: [[122], 256],
- 7612: [[656], 256],
- 7613: [[657], 256],
- 7614: [[658], 256],
- 7615: [[952], 256],
- 7616: [, 230],
- 7617: [, 230],
- 7618: [, 220],
- 7619: [, 230],
- 7620: [, 230],
- 7621: [, 230],
- 7622: [, 230],
- 7623: [, 230],
- 7624: [, 230],
- 7625: [, 230],
- 7626: [, 220],
- 7627: [, 230],
- 7628: [, 230],
- 7629: [, 234],
- 7630: [, 214],
- 7631: [, 220],
- 7632: [, 202],
- 7633: [, 230],
- 7634: [, 230],
- 7635: [, 230],
- 7636: [, 230],
- 7637: [, 230],
- 7638: [, 230],
- 7639: [, 230],
- 7640: [, 230],
- 7641: [, 230],
- 7642: [, 230],
- 7643: [, 230],
- 7644: [, 230],
- 7645: [, 230],
- 7646: [, 230],
- 7647: [, 230],
- 7648: [, 230],
- 7649: [, 230],
- 7650: [, 230],
- 7651: [, 230],
- 7652: [, 230],
- 7653: [, 230],
- 7654: [, 230],
- 7676: [, 233],
- 7677: [, 220],
- 7678: [, 230],
- 7679: [, 220]
- },
- 7680: {
- 7680: [[65, 805]],
- 7681: [[97, 805]],
- 7682: [[66, 775]],
- 7683: [[98, 775]],
- 7684: [[66, 803]],
- 7685: [[98, 803]],
- 7686: [[66, 817]],
- 7687: [[98, 817]],
- 7688: [[199, 769]],
- 7689: [[231, 769]],
- 7690: [[68, 775]],
- 7691: [[100, 775]],
- 7692: [[68, 803]],
- 7693: [[100, 803]],
- 7694: [[68, 817]],
- 7695: [[100, 817]],
- 7696: [[68, 807]],
- 7697: [[100, 807]],
- 7698: [[68, 813]],
- 7699: [[100, 813]],
- 7700: [[274, 768]],
- 7701: [[275, 768]],
- 7702: [[274, 769]],
- 7703: [[275, 769]],
- 7704: [[69, 813]],
- 7705: [[101, 813]],
- 7706: [[69, 816]],
- 7707: [[101, 816]],
- 7708: [[552, 774]],
- 7709: [[553, 774]],
- 7710: [[70, 775]],
- 7711: [[102, 775]],
- 7712: [[71, 772]],
- 7713: [[103, 772]],
- 7714: [[72, 775]],
- 7715: [[104, 775]],
- 7716: [[72, 803]],
- 7717: [[104, 803]],
- 7718: [[72, 776]],
- 7719: [[104, 776]],
- 7720: [[72, 807]],
- 7721: [[104, 807]],
- 7722: [[72, 814]],
- 7723: [[104, 814]],
- 7724: [[73, 816]],
- 7725: [[105, 816]],
- 7726: [[207, 769]],
- 7727: [[239, 769]],
- 7728: [[75, 769]],
- 7729: [[107, 769]],
- 7730: [[75, 803]],
- 7731: [[107, 803]],
- 7732: [[75, 817]],
- 7733: [[107, 817]],
- 7734: [[76, 803], , { 772: 7736 }],
- 7735: [[108, 803], , { 772: 7737 }],
- 7736: [[7734, 772]],
- 7737: [[7735, 772]],
- 7738: [[76, 817]],
- 7739: [[108, 817]],
- 7740: [[76, 813]],
- 7741: [[108, 813]],
- 7742: [[77, 769]],
- 7743: [[109, 769]],
- 7744: [[77, 775]],
- 7745: [[109, 775]],
- 7746: [[77, 803]],
- 7747: [[109, 803]],
- 7748: [[78, 775]],
- 7749: [[110, 775]],
- 7750: [[78, 803]],
- 7751: [[110, 803]],
- 7752: [[78, 817]],
- 7753: [[110, 817]],
- 7754: [[78, 813]],
- 7755: [[110, 813]],
- 7756: [[213, 769]],
- 7757: [[245, 769]],
- 7758: [[213, 776]],
- 7759: [[245, 776]],
- 7760: [[332, 768]],
- 7761: [[333, 768]],
- 7762: [[332, 769]],
- 7763: [[333, 769]],
- 7764: [[80, 769]],
- 7765: [[112, 769]],
- 7766: [[80, 775]],
- 7767: [[112, 775]],
- 7768: [[82, 775]],
- 7769: [[114, 775]],
- 7770: [[82, 803], , { 772: 7772 }],
- 7771: [[114, 803], , { 772: 7773 }],
- 7772: [[7770, 772]],
- 7773: [[7771, 772]],
- 7774: [[82, 817]],
- 7775: [[114, 817]],
- 7776: [[83, 775]],
- 7777: [[115, 775]],
- 7778: [[83, 803], , { 775: 7784 }],
- 7779: [[115, 803], , { 775: 7785 }],
- 7780: [[346, 775]],
- 7781: [[347, 775]],
- 7782: [[352, 775]],
- 7783: [[353, 775]],
- 7784: [[7778, 775]],
- 7785: [[7779, 775]],
- 7786: [[84, 775]],
- 7787: [[116, 775]],
- 7788: [[84, 803]],
- 7789: [[116, 803]],
- 7790: [[84, 817]],
- 7791: [[116, 817]],
- 7792: [[84, 813]],
- 7793: [[116, 813]],
- 7794: [[85, 804]],
- 7795: [[117, 804]],
- 7796: [[85, 816]],
- 7797: [[117, 816]],
- 7798: [[85, 813]],
- 7799: [[117, 813]],
- 7800: [[360, 769]],
- 7801: [[361, 769]],
- 7802: [[362, 776]],
- 7803: [[363, 776]],
- 7804: [[86, 771]],
- 7805: [[118, 771]],
- 7806: [[86, 803]],
- 7807: [[118, 803]],
- 7808: [[87, 768]],
- 7809: [[119, 768]],
- 7810: [[87, 769]],
- 7811: [[119, 769]],
- 7812: [[87, 776]],
- 7813: [[119, 776]],
- 7814: [[87, 775]],
- 7815: [[119, 775]],
- 7816: [[87, 803]],
- 7817: [[119, 803]],
- 7818: [[88, 775]],
- 7819: [[120, 775]],
- 7820: [[88, 776]],
- 7821: [[120, 776]],
- 7822: [[89, 775]],
- 7823: [[121, 775]],
- 7824: [[90, 770]],
- 7825: [[122, 770]],
- 7826: [[90, 803]],
- 7827: [[122, 803]],
- 7828: [[90, 817]],
- 7829: [[122, 817]],
- 7830: [[104, 817]],
- 7831: [[116, 776]],
- 7832: [[119, 778]],
- 7833: [[121, 778]],
- 7834: [[97, 702], 256],
- 7835: [[383, 775]],
- 7840: [[65, 803], , { 770: 7852, 774: 7862 }],
- 7841: [[97, 803], , { 770: 7853, 774: 7863 }],
- 7842: [[65, 777]],
- 7843: [[97, 777]],
- 7844: [[194, 769]],
- 7845: [[226, 769]],
- 7846: [[194, 768]],
- 7847: [[226, 768]],
- 7848: [[194, 777]],
- 7849: [[226, 777]],
- 7850: [[194, 771]],
- 7851: [[226, 771]],
- 7852: [[7840, 770]],
- 7853: [[7841, 770]],
- 7854: [[258, 769]],
- 7855: [[259, 769]],
- 7856: [[258, 768]],
- 7857: [[259, 768]],
- 7858: [[258, 777]],
- 7859: [[259, 777]],
- 7860: [[258, 771]],
- 7861: [[259, 771]],
- 7862: [[7840, 774]],
- 7863: [[7841, 774]],
- 7864: [[69, 803], , { 770: 7878 }],
- 7865: [[101, 803], , { 770: 7879 }],
- 7866: [[69, 777]],
- 7867: [[101, 777]],
- 7868: [[69, 771]],
- 7869: [[101, 771]],
- 7870: [[202, 769]],
- 7871: [[234, 769]],
- 7872: [[202, 768]],
- 7873: [[234, 768]],
- 7874: [[202, 777]],
- 7875: [[234, 777]],
- 7876: [[202, 771]],
- 7877: [[234, 771]],
- 7878: [[7864, 770]],
- 7879: [[7865, 770]],
- 7880: [[73, 777]],
- 7881: [[105, 777]],
- 7882: [[73, 803]],
- 7883: [[105, 803]],
- 7884: [[79, 803], , { 770: 7896 }],
- 7885: [[111, 803], , { 770: 7897 }],
- 7886: [[79, 777]],
- 7887: [[111, 777]],
- 7888: [[212, 769]],
- 7889: [[244, 769]],
- 7890: [[212, 768]],
- 7891: [[244, 768]],
- 7892: [[212, 777]],
- 7893: [[244, 777]],
- 7894: [[212, 771]],
- 7895: [[244, 771]],
- 7896: [[7884, 770]],
- 7897: [[7885, 770]],
- 7898: [[416, 769]],
- 7899: [[417, 769]],
- 7900: [[416, 768]],
- 7901: [[417, 768]],
- 7902: [[416, 777]],
- 7903: [[417, 777]],
- 7904: [[416, 771]],
- 7905: [[417, 771]],
- 7906: [[416, 803]],
- 7907: [[417, 803]],
- 7908: [[85, 803]],
- 7909: [[117, 803]],
- 7910: [[85, 777]],
- 7911: [[117, 777]],
- 7912: [[431, 769]],
- 7913: [[432, 769]],
- 7914: [[431, 768]],
- 7915: [[432, 768]],
- 7916: [[431, 777]],
- 7917: [[432, 777]],
- 7918: [[431, 771]],
- 7919: [[432, 771]],
- 7920: [[431, 803]],
- 7921: [[432, 803]],
- 7922: [[89, 768]],
- 7923: [[121, 768]],
- 7924: [[89, 803]],
- 7925: [[121, 803]],
- 7926: [[89, 777]],
- 7927: [[121, 777]],
- 7928: [[89, 771]],
- 7929: [[121, 771]]
- },
- 7936: {
- 7936: [[945, 787], , { 768: 7938, 769: 7940, 834: 7942, 837: 8064 }],
- 7937: [[945, 788], , { 768: 7939, 769: 7941, 834: 7943, 837: 8065 }],
- 7938: [[7936, 768], , { 837: 8066 }],
- 7939: [[7937, 768], , { 837: 8067 }],
- 7940: [[7936, 769], , { 837: 8068 }],
- 7941: [[7937, 769], , { 837: 8069 }],
- 7942: [[7936, 834], , { 837: 8070 }],
- 7943: [[7937, 834], , { 837: 8071 }],
- 7944: [[913, 787], , { 768: 7946, 769: 7948, 834: 7950, 837: 8072 }],
- 7945: [[913, 788], , { 768: 7947, 769: 7949, 834: 7951, 837: 8073 }],
- 7946: [[7944, 768], , { 837: 8074 }],
- 7947: [[7945, 768], , { 837: 8075 }],
- 7948: [[7944, 769], , { 837: 8076 }],
- 7949: [[7945, 769], , { 837: 8077 }],
- 7950: [[7944, 834], , { 837: 8078 }],
- 7951: [[7945, 834], , { 837: 8079 }],
- 7952: [[949, 787], , { 768: 7954, 769: 7956 }],
- 7953: [[949, 788], , { 768: 7955, 769: 7957 }],
- 7954: [[7952, 768]],
- 7955: [[7953, 768]],
- 7956: [[7952, 769]],
- 7957: [[7953, 769]],
- 7960: [[917, 787], , { 768: 7962, 769: 7964 }],
- 7961: [[917, 788], , { 768: 7963, 769: 7965 }],
- 7962: [[7960, 768]],
- 7963: [[7961, 768]],
- 7964: [[7960, 769]],
- 7965: [[7961, 769]],
- 7968: [[951, 787], , { 768: 7970, 769: 7972, 834: 7974, 837: 8080 }],
- 7969: [[951, 788], , { 768: 7971, 769: 7973, 834: 7975, 837: 8081 }],
- 7970: [[7968, 768], , { 837: 8082 }],
- 7971: [[7969, 768], , { 837: 8083 }],
- 7972: [[7968, 769], , { 837: 8084 }],
- 7973: [[7969, 769], , { 837: 8085 }],
- 7974: [[7968, 834], , { 837: 8086 }],
- 7975: [[7969, 834], , { 837: 8087 }],
- 7976: [[919, 787], , { 768: 7978, 769: 7980, 834: 7982, 837: 8088 }],
- 7977: [[919, 788], , { 768: 7979, 769: 7981, 834: 7983, 837: 8089 }],
- 7978: [[7976, 768], , { 837: 8090 }],
- 7979: [[7977, 768], , { 837: 8091 }],
- 7980: [[7976, 769], , { 837: 8092 }],
- 7981: [[7977, 769], , { 837: 8093 }],
- 7982: [[7976, 834], , { 837: 8094 }],
- 7983: [[7977, 834], , { 837: 8095 }],
- 7984: [[953, 787], , { 768: 7986, 769: 7988, 834: 7990 }],
- 7985: [[953, 788], , { 768: 7987, 769: 7989, 834: 7991 }],
- 7986: [[7984, 768]],
- 7987: [[7985, 768]],
- 7988: [[7984, 769]],
- 7989: [[7985, 769]],
- 7990: [[7984, 834]],
- 7991: [[7985, 834]],
- 7992: [[921, 787], , { 768: 7994, 769: 7996, 834: 7998 }],
- 7993: [[921, 788], , { 768: 7995, 769: 7997, 834: 7999 }],
- 7994: [[7992, 768]],
- 7995: [[7993, 768]],
- 7996: [[7992, 769]],
- 7997: [[7993, 769]],
- 7998: [[7992, 834]],
- 7999: [[7993, 834]],
- 8000: [[959, 787], , { 768: 8002, 769: 8004 }],
- 8001: [[959, 788], , { 768: 8003, 769: 8005 }],
- 8002: [[8000, 768]],
- 8003: [[8001, 768]],
- 8004: [[8000, 769]],
- 8005: [[8001, 769]],
- 8008: [[927, 787], , { 768: 8010, 769: 8012 }],
- 8009: [[927, 788], , { 768: 8011, 769: 8013 }],
- 8010: [[8008, 768]],
- 8011: [[8009, 768]],
- 8012: [[8008, 769]],
- 8013: [[8009, 769]],
- 8016: [[965, 787], , { 768: 8018, 769: 8020, 834: 8022 }],
- 8017: [[965, 788], , { 768: 8019, 769: 8021, 834: 8023 }],
- 8018: [[8016, 768]],
- 8019: [[8017, 768]],
- 8020: [[8016, 769]],
- 8021: [[8017, 769]],
- 8022: [[8016, 834]],
- 8023: [[8017, 834]],
- 8025: [[933, 788], , { 768: 8027, 769: 8029, 834: 8031 }],
- 8027: [[8025, 768]],
- 8029: [[8025, 769]],
- 8031: [[8025, 834]],
- 8032: [[969, 787], , { 768: 8034, 769: 8036, 834: 8038, 837: 8096 }],
- 8033: [[969, 788], , { 768: 8035, 769: 8037, 834: 8039, 837: 8097 }],
- 8034: [[8032, 768], , { 837: 8098 }],
- 8035: [[8033, 768], , { 837: 8099 }],
- 8036: [[8032, 769], , { 837: 8100 }],
- 8037: [[8033, 769], , { 837: 8101 }],
- 8038: [[8032, 834], , { 837: 8102 }],
- 8039: [[8033, 834], , { 837: 8103 }],
- 8040: [[937, 787], , { 768: 8042, 769: 8044, 834: 8046, 837: 8104 }],
- 8041: [[937, 788], , { 768: 8043, 769: 8045, 834: 8047, 837: 8105 }],
- 8042: [[8040, 768], , { 837: 8106 }],
- 8043: [[8041, 768], , { 837: 8107 }],
- 8044: [[8040, 769], , { 837: 8108 }],
- 8045: [[8041, 769], , { 837: 8109 }],
- 8046: [[8040, 834], , { 837: 8110 }],
- 8047: [[8041, 834], , { 837: 8111 }],
- 8048: [[945, 768], , { 837: 8114 }],
- 8049: [[940]],
- 8050: [[949, 768]],
- 8051: [[941]],
- 8052: [[951, 768], , { 837: 8130 }],
- 8053: [[942]],
- 8054: [[953, 768]],
- 8055: [[943]],
- 8056: [[959, 768]],
- 8057: [[972]],
- 8058: [[965, 768]],
- 8059: [[973]],
- 8060: [[969, 768], , { 837: 8178 }],
- 8061: [[974]],
- 8064: [[7936, 837]],
- 8065: [[7937, 837]],
- 8066: [[7938, 837]],
- 8067: [[7939, 837]],
- 8068: [[7940, 837]],
- 8069: [[7941, 837]],
- 8070: [[7942, 837]],
- 8071: [[7943, 837]],
- 8072: [[7944, 837]],
- 8073: [[7945, 837]],
- 8074: [[7946, 837]],
- 8075: [[7947, 837]],
- 8076: [[7948, 837]],
- 8077: [[7949, 837]],
- 8078: [[7950, 837]],
- 8079: [[7951, 837]],
- 8080: [[7968, 837]],
- 8081: [[7969, 837]],
- 8082: [[7970, 837]],
- 8083: [[7971, 837]],
- 8084: [[7972, 837]],
- 8085: [[7973, 837]],
- 8086: [[7974, 837]],
- 8087: [[7975, 837]],
- 8088: [[7976, 837]],
- 8089: [[7977, 837]],
- 8090: [[7978, 837]],
- 8091: [[7979, 837]],
- 8092: [[7980, 837]],
- 8093: [[7981, 837]],
- 8094: [[7982, 837]],
- 8095: [[7983, 837]],
- 8096: [[8032, 837]],
- 8097: [[8033, 837]],
- 8098: [[8034, 837]],
- 8099: [[8035, 837]],
- 8100: [[8036, 837]],
- 8101: [[8037, 837]],
- 8102: [[8038, 837]],
- 8103: [[8039, 837]],
- 8104: [[8040, 837]],
- 8105: [[8041, 837]],
- 8106: [[8042, 837]],
- 8107: [[8043, 837]],
- 8108: [[8044, 837]],
- 8109: [[8045, 837]],
- 8110: [[8046, 837]],
- 8111: [[8047, 837]],
- 8112: [[945, 774]],
- 8113: [[945, 772]],
- 8114: [[8048, 837]],
- 8115: [[945, 837]],
- 8116: [[940, 837]],
- 8118: [[945, 834], , { 837: 8119 }],
- 8119: [[8118, 837]],
- 8120: [[913, 774]],
- 8121: [[913, 772]],
- 8122: [[913, 768]],
- 8123: [[902]],
- 8124: [[913, 837]],
- 8125: [[32, 787], 256],
- 8126: [[953]],
- 8127: [[32, 787], 256, { 768: 8141, 769: 8142, 834: 8143 }],
- 8128: [[32, 834], 256],
- 8129: [[168, 834]],
- 8130: [[8052, 837]],
- 8131: [[951, 837]],
- 8132: [[942, 837]],
- 8134: [[951, 834], , { 837: 8135 }],
- 8135: [[8134, 837]],
- 8136: [[917, 768]],
- 8137: [[904]],
- 8138: [[919, 768]],
- 8139: [[905]],
- 8140: [[919, 837]],
- 8141: [[8127, 768]],
- 8142: [[8127, 769]],
- 8143: [[8127, 834]],
- 8144: [[953, 774]],
- 8145: [[953, 772]],
- 8146: [[970, 768]],
- 8147: [[912]],
- 8150: [[953, 834]],
- 8151: [[970, 834]],
- 8152: [[921, 774]],
- 8153: [[921, 772]],
- 8154: [[921, 768]],
- 8155: [[906]],
- 8157: [[8190, 768]],
- 8158: [[8190, 769]],
- 8159: [[8190, 834]],
- 8160: [[965, 774]],
- 8161: [[965, 772]],
- 8162: [[971, 768]],
- 8163: [[944]],
- 8164: [[961, 787]],
- 8165: [[961, 788]],
- 8166: [[965, 834]],
- 8167: [[971, 834]],
- 8168: [[933, 774]],
- 8169: [[933, 772]],
- 8170: [[933, 768]],
- 8171: [[910]],
- 8172: [[929, 788]],
- 8173: [[168, 768]],
- 8174: [[901]],
- 8175: [[96]],
- 8178: [[8060, 837]],
- 8179: [[969, 837]],
- 8180: [[974, 837]],
- 8182: [[969, 834], , { 837: 8183 }],
- 8183: [[8182, 837]],
- 8184: [[927, 768]],
- 8185: [[908]],
- 8186: [[937, 768]],
- 8187: [[911]],
- 8188: [[937, 837]],
- 8189: [[180]],
- 8190: [[32, 788], 256, { 768: 8157, 769: 8158, 834: 8159 }]
- },
- 8192: {
- 8192: [[8194]],
- 8193: [[8195]],
- 8194: [[32], 256],
- 8195: [[32], 256],
- 8196: [[32], 256],
- 8197: [[32], 256],
- 8198: [[32], 256],
- 8199: [[32], 256],
- 8200: [[32], 256],
- 8201: [[32], 256],
- 8202: [[32], 256],
- 8209: [[8208], 256],
- 8215: [[32, 819], 256],
- 8228: [[46], 256],
- 8229: [[46, 46], 256],
- 8230: [[46, 46, 46], 256],
- 8239: [[32], 256],
- 8243: [[8242, 8242], 256],
- 8244: [[8242, 8242, 8242], 256],
- 8246: [[8245, 8245], 256],
- 8247: [[8245, 8245, 8245], 256],
- 8252: [[33, 33], 256],
- 8254: [[32, 773], 256],
- 8263: [[63, 63], 256],
- 8264: [[63, 33], 256],
- 8265: [[33, 63], 256],
- 8279: [[8242, 8242, 8242, 8242], 256],
- 8287: [[32], 256],
- 8304: [[48], 256],
- 8305: [[105], 256],
- 8308: [[52], 256],
- 8309: [[53], 256],
- 8310: [[54], 256],
- 8311: [[55], 256],
- 8312: [[56], 256],
- 8313: [[57], 256],
- 8314: [[43], 256],
- 8315: [[8722], 256],
- 8316: [[61], 256],
- 8317: [[40], 256],
- 8318: [[41], 256],
- 8319: [[110], 256],
- 8320: [[48], 256],
- 8321: [[49], 256],
- 8322: [[50], 256],
- 8323: [[51], 256],
- 8324: [[52], 256],
- 8325: [[53], 256],
- 8326: [[54], 256],
- 8327: [[55], 256],
- 8328: [[56], 256],
- 8329: [[57], 256],
- 8330: [[43], 256],
- 8331: [[8722], 256],
- 8332: [[61], 256],
- 8333: [[40], 256],
- 8334: [[41], 256],
- 8336: [[97], 256],
- 8337: [[101], 256],
- 8338: [[111], 256],
- 8339: [[120], 256],
- 8340: [[601], 256],
- 8341: [[104], 256],
- 8342: [[107], 256],
- 8343: [[108], 256],
- 8344: [[109], 256],
- 8345: [[110], 256],
- 8346: [[112], 256],
- 8347: [[115], 256],
- 8348: [[116], 256],
- 8360: [[82, 115], 256],
- 8400: [, 230],
- 8401: [, 230],
- 8402: [, 1],
- 8403: [, 1],
- 8404: [, 230],
- 8405: [, 230],
- 8406: [, 230],
- 8407: [, 230],
- 8408: [, 1],
- 8409: [, 1],
- 8410: [, 1],
- 8411: [, 230],
- 8412: [, 230],
- 8417: [, 230],
- 8421: [, 1],
- 8422: [, 1],
- 8423: [, 230],
- 8424: [, 220],
- 8425: [, 230],
- 8426: [, 1],
- 8427: [, 1],
- 8428: [, 220],
- 8429: [, 220],
- 8430: [, 220],
- 8431: [, 220],
- 8432: [, 230]
- },
- 8448: {
- 8448: [[97, 47, 99], 256],
- 8449: [[97, 47, 115], 256],
- 8450: [[67], 256],
- 8451: [[176, 67], 256],
- 8453: [[99, 47, 111], 256],
- 8454: [[99, 47, 117], 256],
- 8455: [[400], 256],
- 8457: [[176, 70], 256],
- 8458: [[103], 256],
- 8459: [[72], 256],
- 8460: [[72], 256],
- 8461: [[72], 256],
- 8462: [[104], 256],
- 8463: [[295], 256],
- 8464: [[73], 256],
- 8465: [[73], 256],
- 8466: [[76], 256],
- 8467: [[108], 256],
- 8469: [[78], 256],
- 8470: [[78, 111], 256],
- 8473: [[80], 256],
- 8474: [[81], 256],
- 8475: [[82], 256],
- 8476: [[82], 256],
- 8477: [[82], 256],
- 8480: [[83, 77], 256],
- 8481: [[84, 69, 76], 256],
- 8482: [[84, 77], 256],
- 8484: [[90], 256],
- 8486: [[937]],
- 8488: [[90], 256],
- 8490: [[75]],
- 8491: [[197]],
- 8492: [[66], 256],
- 8493: [[67], 256],
- 8495: [[101], 256],
- 8496: [[69], 256],
- 8497: [[70], 256],
- 8499: [[77], 256],
- 8500: [[111], 256],
- 8501: [[1488], 256],
- 8502: [[1489], 256],
- 8503: [[1490], 256],
- 8504: [[1491], 256],
- 8505: [[105], 256],
- 8507: [[70, 65, 88], 256],
- 8508: [[960], 256],
- 8509: [[947], 256],
- 8510: [[915], 256],
- 8511: [[928], 256],
- 8512: [[8721], 256],
- 8517: [[68], 256],
- 8518: [[100], 256],
- 8519: [[101], 256],
- 8520: [[105], 256],
- 8521: [[106], 256],
- 8528: [[49, 8260, 55], 256],
- 8529: [[49, 8260, 57], 256],
- 8530: [[49, 8260, 49, 48], 256],
- 8531: [[49, 8260, 51], 256],
- 8532: [[50, 8260, 51], 256],
- 8533: [[49, 8260, 53], 256],
- 8534: [[50, 8260, 53], 256],
- 8535: [[51, 8260, 53], 256],
- 8536: [[52, 8260, 53], 256],
- 8537: [[49, 8260, 54], 256],
- 8538: [[53, 8260, 54], 256],
- 8539: [[49, 8260, 56], 256],
- 8540: [[51, 8260, 56], 256],
- 8541: [[53, 8260, 56], 256],
- 8542: [[55, 8260, 56], 256],
- 8543: [[49, 8260], 256],
- 8544: [[73], 256],
- 8545: [[73, 73], 256],
- 8546: [[73, 73, 73], 256],
- 8547: [[73, 86], 256],
- 8548: [[86], 256],
- 8549: [[86, 73], 256],
- 8550: [[86, 73, 73], 256],
- 8551: [[86, 73, 73, 73], 256],
- 8552: [[73, 88], 256],
- 8553: [[88], 256],
- 8554: [[88, 73], 256],
- 8555: [[88, 73, 73], 256],
- 8556: [[76], 256],
- 8557: [[67], 256],
- 8558: [[68], 256],
- 8559: [[77], 256],
- 8560: [[105], 256],
- 8561: [[105, 105], 256],
- 8562: [[105, 105, 105], 256],
- 8563: [[105, 118], 256],
- 8564: [[118], 256],
- 8565: [[118, 105], 256],
- 8566: [[118, 105, 105], 256],
- 8567: [[118, 105, 105, 105], 256],
- 8568: [[105, 120], 256],
- 8569: [[120], 256],
- 8570: [[120, 105], 256],
- 8571: [[120, 105, 105], 256],
- 8572: [[108], 256],
- 8573: [[99], 256],
- 8574: [[100], 256],
- 8575: [[109], 256],
- 8585: [[48, 8260, 51], 256],
- 8592: [, , { 824: 8602 }],
- 8594: [, , { 824: 8603 }],
- 8596: [, , { 824: 8622 }],
- 8602: [[8592, 824]],
- 8603: [[8594, 824]],
- 8622: [[8596, 824]],
- 8653: [[8656, 824]],
- 8654: [[8660, 824]],
- 8655: [[8658, 824]],
- 8656: [, , { 824: 8653 }],
- 8658: [, , { 824: 8655 }],
- 8660: [, , { 824: 8654 }]
- },
- 8704: {
- 8707: [, , { 824: 8708 }],
- 8708: [[8707, 824]],
- 8712: [, , { 824: 8713 }],
- 8713: [[8712, 824]],
- 8715: [, , { 824: 8716 }],
- 8716: [[8715, 824]],
- 8739: [, , { 824: 8740 }],
- 8740: [[8739, 824]],
- 8741: [, , { 824: 8742 }],
- 8742: [[8741, 824]],
- 8748: [[8747, 8747], 256],
- 8749: [[8747, 8747, 8747], 256],
- 8751: [[8750, 8750], 256],
- 8752: [[8750, 8750, 8750], 256],
- 8764: [, , { 824: 8769 }],
- 8769: [[8764, 824]],
- 8771: [, , { 824: 8772 }],
- 8772: [[8771, 824]],
- 8773: [, , { 824: 8775 }],
- 8775: [[8773, 824]],
- 8776: [, , { 824: 8777 }],
- 8777: [[8776, 824]],
- 8781: [, , { 824: 8813 }],
- 8800: [[61, 824]],
- 8801: [, , { 824: 8802 }],
- 8802: [[8801, 824]],
- 8804: [, , { 824: 8816 }],
- 8805: [, , { 824: 8817 }],
- 8813: [[8781, 824]],
- 8814: [[60, 824]],
- 8815: [[62, 824]],
- 8816: [[8804, 824]],
- 8817: [[8805, 824]],
- 8818: [, , { 824: 8820 }],
- 8819: [, , { 824: 8821 }],
- 8820: [[8818, 824]],
- 8821: [[8819, 824]],
- 8822: [, , { 824: 8824 }],
- 8823: [, , { 824: 8825 }],
- 8824: [[8822, 824]],
- 8825: [[8823, 824]],
- 8826: [, , { 824: 8832 }],
- 8827: [, , { 824: 8833 }],
- 8828: [, , { 824: 8928 }],
- 8829: [, , { 824: 8929 }],
- 8832: [[8826, 824]],
- 8833: [[8827, 824]],
- 8834: [, , { 824: 8836 }],
- 8835: [, , { 824: 8837 }],
- 8836: [[8834, 824]],
- 8837: [[8835, 824]],
- 8838: [, , { 824: 8840 }],
- 8839: [, , { 824: 8841 }],
- 8840: [[8838, 824]],
- 8841: [[8839, 824]],
- 8849: [, , { 824: 8930 }],
- 8850: [, , { 824: 8931 }],
- 8866: [, , { 824: 8876 }],
- 8872: [, , { 824: 8877 }],
- 8873: [, , { 824: 8878 }],
- 8875: [, , { 824: 8879 }],
- 8876: [[8866, 824]],
- 8877: [[8872, 824]],
- 8878: [[8873, 824]],
- 8879: [[8875, 824]],
- 8882: [, , { 824: 8938 }],
- 8883: [, , { 824: 8939 }],
- 8884: [, , { 824: 8940 }],
- 8885: [, , { 824: 8941 }],
- 8928: [[8828, 824]],
- 8929: [[8829, 824]],
- 8930: [[8849, 824]],
- 8931: [[8850, 824]],
- 8938: [[8882, 824]],
- 8939: [[8883, 824]],
- 8940: [[8884, 824]],
- 8941: [[8885, 824]]
- },
- 8960: { 9001: [[12296]], 9002: [[12297]] },
- 9216: {
- 9312: [[49], 256],
- 9313: [[50], 256],
- 9314: [[51], 256],
- 9315: [[52], 256],
- 9316: [[53], 256],
- 9317: [[54], 256],
- 9318: [[55], 256],
- 9319: [[56], 256],
- 9320: [[57], 256],
- 9321: [[49, 48], 256],
- 9322: [[49, 49], 256],
- 9323: [[49, 50], 256],
- 9324: [[49, 51], 256],
- 9325: [[49, 52], 256],
- 9326: [[49, 53], 256],
- 9327: [[49, 54], 256],
- 9328: [[49, 55], 256],
- 9329: [[49, 56], 256],
- 9330: [[49, 57], 256],
- 9331: [[50, 48], 256],
- 9332: [[40, 49, 41], 256],
- 9333: [[40, 50, 41], 256],
- 9334: [[40, 51, 41], 256],
- 9335: [[40, 52, 41], 256],
- 9336: [[40, 53, 41], 256],
- 9337: [[40, 54, 41], 256],
- 9338: [[40, 55, 41], 256],
- 9339: [[40, 56, 41], 256],
- 9340: [[40, 57, 41], 256],
- 9341: [[40, 49, 48, 41], 256],
- 9342: [[40, 49, 49, 41], 256],
- 9343: [[40, 49, 50, 41], 256],
- 9344: [[40, 49, 51, 41], 256],
- 9345: [[40, 49, 52, 41], 256],
- 9346: [[40, 49, 53, 41], 256],
- 9347: [[40, 49, 54, 41], 256],
- 9348: [[40, 49, 55, 41], 256],
- 9349: [[40, 49, 56, 41], 256],
- 9350: [[40, 49, 57, 41], 256],
- 9351: [[40, 50, 48, 41], 256],
- 9352: [[49, 46], 256],
- 9353: [[50, 46], 256],
- 9354: [[51, 46], 256],
- 9355: [[52, 46], 256],
- 9356: [[53, 46], 256],
- 9357: [[54, 46], 256],
- 9358: [[55, 46], 256],
- 9359: [[56, 46], 256],
- 9360: [[57, 46], 256],
- 9361: [[49, 48, 46], 256],
- 9362: [[49, 49, 46], 256],
- 9363: [[49, 50, 46], 256],
- 9364: [[49, 51, 46], 256],
- 9365: [[49, 52, 46], 256],
- 9366: [[49, 53, 46], 256],
- 9367: [[49, 54, 46], 256],
- 9368: [[49, 55, 46], 256],
- 9369: [[49, 56, 46], 256],
- 9370: [[49, 57, 46], 256],
- 9371: [[50, 48, 46], 256],
- 9372: [[40, 97, 41], 256],
- 9373: [[40, 98, 41], 256],
- 9374: [[40, 99, 41], 256],
- 9375: [[40, 100, 41], 256],
- 9376: [[40, 101, 41], 256],
- 9377: [[40, 102, 41], 256],
- 9378: [[40, 103, 41], 256],
- 9379: [[40, 104, 41], 256],
- 9380: [[40, 105, 41], 256],
- 9381: [[40, 106, 41], 256],
- 9382: [[40, 107, 41], 256],
- 9383: [[40, 108, 41], 256],
- 9384: [[40, 109, 41], 256],
- 9385: [[40, 110, 41], 256],
- 9386: [[40, 111, 41], 256],
- 9387: [[40, 112, 41], 256],
- 9388: [[40, 113, 41], 256],
- 9389: [[40, 114, 41], 256],
- 9390: [[40, 115, 41], 256],
- 9391: [[40, 116, 41], 256],
- 9392: [[40, 117, 41], 256],
- 9393: [[40, 118, 41], 256],
- 9394: [[40, 119, 41], 256],
- 9395: [[40, 120, 41], 256],
- 9396: [[40, 121, 41], 256],
- 9397: [[40, 122, 41], 256],
- 9398: [[65], 256],
- 9399: [[66], 256],
- 9400: [[67], 256],
- 9401: [[68], 256],
- 9402: [[69], 256],
- 9403: [[70], 256],
- 9404: [[71], 256],
- 9405: [[72], 256],
- 9406: [[73], 256],
- 9407: [[74], 256],
- 9408: [[75], 256],
- 9409: [[76], 256],
- 9410: [[77], 256],
- 9411: [[78], 256],
- 9412: [[79], 256],
- 9413: [[80], 256],
- 9414: [[81], 256],
- 9415: [[82], 256],
- 9416: [[83], 256],
- 9417: [[84], 256],
- 9418: [[85], 256],
- 9419: [[86], 256],
- 9420: [[87], 256],
- 9421: [[88], 256],
- 9422: [[89], 256],
- 9423: [[90], 256],
- 9424: [[97], 256],
- 9425: [[98], 256],
- 9426: [[99], 256],
- 9427: [[100], 256],
- 9428: [[101], 256],
- 9429: [[102], 256],
- 9430: [[103], 256],
- 9431: [[104], 256],
- 9432: [[105], 256],
- 9433: [[106], 256],
- 9434: [[107], 256],
- 9435: [[108], 256],
- 9436: [[109], 256],
- 9437: [[110], 256],
- 9438: [[111], 256],
- 9439: [[112], 256],
- 9440: [[113], 256],
- 9441: [[114], 256],
- 9442: [[115], 256],
- 9443: [[116], 256],
- 9444: [[117], 256],
- 9445: [[118], 256],
- 9446: [[119], 256],
- 9447: [[120], 256],
- 9448: [[121], 256],
- 9449: [[122], 256],
- 9450: [[48], 256]
- },
- 10752: {
- 10764: [[8747, 8747, 8747, 8747], 256],
- 10868: [[58, 58, 61], 256],
- 10869: [[61, 61], 256],
- 10870: [[61, 61, 61], 256],
- 10972: [[10973, 824], 512]
- },
- 11264: {
- 11388: [[106], 256],
- 11389: [[86], 256],
- 11503: [, 230],
- 11504: [, 230],
- 11505: [, 230]
- },
- 11520: {
- 11631: [[11617], 256],
- 11647: [, 9],
- 11744: [, 230],
- 11745: [, 230],
- 11746: [, 230],
- 11747: [, 230],
- 11748: [, 230],
- 11749: [, 230],
- 11750: [, 230],
- 11751: [, 230],
- 11752: [, 230],
- 11753: [, 230],
- 11754: [, 230],
- 11755: [, 230],
- 11756: [, 230],
- 11757: [, 230],
- 11758: [, 230],
- 11759: [, 230],
- 11760: [, 230],
- 11761: [, 230],
- 11762: [, 230],
- 11763: [, 230],
- 11764: [, 230],
- 11765: [, 230],
- 11766: [, 230],
- 11767: [, 230],
- 11768: [, 230],
- 11769: [, 230],
- 11770: [, 230],
- 11771: [, 230],
- 11772: [, 230],
- 11773: [, 230],
- 11774: [, 230],
- 11775: [, 230]
- },
- 11776: { 11935: [[27597], 256], 12019: [[40863], 256] },
- 12032: {
- 12032: [[19968], 256],
- 12033: [[20008], 256],
- 12034: [[20022], 256],
- 12035: [[20031], 256],
- 12036: [[20057], 256],
- 12037: [[20101], 256],
- 12038: [[20108], 256],
- 12039: [[20128], 256],
- 12040: [[20154], 256],
- 12041: [[20799], 256],
- 12042: [[20837], 256],
- 12043: [[20843], 256],
- 12044: [[20866], 256],
- 12045: [[20886], 256],
- 12046: [[20907], 256],
- 12047: [[20960], 256],
- 12048: [[20981], 256],
- 12049: [[20992], 256],
- 12050: [[21147], 256],
- 12051: [[21241], 256],
- 12052: [[21269], 256],
- 12053: [[21274], 256],
- 12054: [[21304], 256],
- 12055: [[21313], 256],
- 12056: [[21340], 256],
- 12057: [[21353], 256],
- 12058: [[21378], 256],
- 12059: [[21430], 256],
- 12060: [[21448], 256],
- 12061: [[21475], 256],
- 12062: [[22231], 256],
- 12063: [[22303], 256],
- 12064: [[22763], 256],
- 12065: [[22786], 256],
- 12066: [[22794], 256],
- 12067: [[22805], 256],
- 12068: [[22823], 256],
- 12069: [[22899], 256],
- 12070: [[23376], 256],
- 12071: [[23424], 256],
- 12072: [[23544], 256],
- 12073: [[23567], 256],
- 12074: [[23586], 256],
- 12075: [[23608], 256],
- 12076: [[23662], 256],
- 12077: [[23665], 256],
- 12078: [[24027], 256],
- 12079: [[24037], 256],
- 12080: [[24049], 256],
- 12081: [[24062], 256],
- 12082: [[24178], 256],
- 12083: [[24186], 256],
- 12084: [[24191], 256],
- 12085: [[24308], 256],
- 12086: [[24318], 256],
- 12087: [[24331], 256],
- 12088: [[24339], 256],
- 12089: [[24400], 256],
- 12090: [[24417], 256],
- 12091: [[24435], 256],
- 12092: [[24515], 256],
- 12093: [[25096], 256],
- 12094: [[25142], 256],
- 12095: [[25163], 256],
- 12096: [[25903], 256],
- 12097: [[25908], 256],
- 12098: [[25991], 256],
- 12099: [[26007], 256],
- 12100: [[26020], 256],
- 12101: [[26041], 256],
- 12102: [[26080], 256],
- 12103: [[26085], 256],
- 12104: [[26352], 256],
- 12105: [[26376], 256],
- 12106: [[26408], 256],
- 12107: [[27424], 256],
- 12108: [[27490], 256],
- 12109: [[27513], 256],
- 12110: [[27571], 256],
- 12111: [[27595], 256],
- 12112: [[27604], 256],
- 12113: [[27611], 256],
- 12114: [[27663], 256],
- 12115: [[27668], 256],
- 12116: [[27700], 256],
- 12117: [[28779], 256],
- 12118: [[29226], 256],
- 12119: [[29238], 256],
- 12120: [[29243], 256],
- 12121: [[29247], 256],
- 12122: [[29255], 256],
- 12123: [[29273], 256],
- 12124: [[29275], 256],
- 12125: [[29356], 256],
- 12126: [[29572], 256],
- 12127: [[29577], 256],
- 12128: [[29916], 256],
- 12129: [[29926], 256],
- 12130: [[29976], 256],
- 12131: [[29983], 256],
- 12132: [[29992], 256],
- 12133: [[30000], 256],
- 12134: [[30091], 256],
- 12135: [[30098], 256],
- 12136: [[30326], 256],
- 12137: [[30333], 256],
- 12138: [[30382], 256],
- 12139: [[30399], 256],
- 12140: [[30446], 256],
- 12141: [[30683], 256],
- 12142: [[30690], 256],
- 12143: [[30707], 256],
- 12144: [[31034], 256],
- 12145: [[31160], 256],
- 12146: [[31166], 256],
- 12147: [[31348], 256],
- 12148: [[31435], 256],
- 12149: [[31481], 256],
- 12150: [[31859], 256],
- 12151: [[31992], 256],
- 12152: [[32566], 256],
- 12153: [[32593], 256],
- 12154: [[32650], 256],
- 12155: [[32701], 256],
- 12156: [[32769], 256],
- 12157: [[32780], 256],
- 12158: [[32786], 256],
- 12159: [[32819], 256],
- 12160: [[32895], 256],
- 12161: [[32905], 256],
- 12162: [[33251], 256],
- 12163: [[33258], 256],
- 12164: [[33267], 256],
- 12165: [[33276], 256],
- 12166: [[33292], 256],
- 12167: [[33307], 256],
- 12168: [[33311], 256],
- 12169: [[33390], 256],
- 12170: [[33394], 256],
- 12171: [[33400], 256],
- 12172: [[34381], 256],
- 12173: [[34411], 256],
- 12174: [[34880], 256],
- 12175: [[34892], 256],
- 12176: [[34915], 256],
- 12177: [[35198], 256],
- 12178: [[35211], 256],
- 12179: [[35282], 256],
- 12180: [[35328], 256],
- 12181: [[35895], 256],
- 12182: [[35910], 256],
- 12183: [[35925], 256],
- 12184: [[35960], 256],
- 12185: [[35997], 256],
- 12186: [[36196], 256],
- 12187: [[36208], 256],
- 12188: [[36275], 256],
- 12189: [[36523], 256],
- 12190: [[36554], 256],
- 12191: [[36763], 256],
- 12192: [[36784], 256],
- 12193: [[36789], 256],
- 12194: [[37009], 256],
- 12195: [[37193], 256],
- 12196: [[37318], 256],
- 12197: [[37324], 256],
- 12198: [[37329], 256],
- 12199: [[38263], 256],
- 12200: [[38272], 256],
- 12201: [[38428], 256],
- 12202: [[38582], 256],
- 12203: [[38585], 256],
- 12204: [[38632], 256],
- 12205: [[38737], 256],
- 12206: [[38750], 256],
- 12207: [[38754], 256],
- 12208: [[38761], 256],
- 12209: [[38859], 256],
- 12210: [[38893], 256],
- 12211: [[38899], 256],
- 12212: [[38913], 256],
- 12213: [[39080], 256],
- 12214: [[39131], 256],
- 12215: [[39135], 256],
- 12216: [[39318], 256],
- 12217: [[39321], 256],
- 12218: [[39340], 256],
- 12219: [[39592], 256],
- 12220: [[39640], 256],
- 12221: [[39647], 256],
- 12222: [[39717], 256],
- 12223: [[39727], 256],
- 12224: [[39730], 256],
- 12225: [[39740], 256],
- 12226: [[39770], 256],
- 12227: [[40165], 256],
- 12228: [[40565], 256],
- 12229: [[40575], 256],
- 12230: [[40613], 256],
- 12231: [[40635], 256],
- 12232: [[40643], 256],
- 12233: [[40653], 256],
- 12234: [[40657], 256],
- 12235: [[40697], 256],
- 12236: [[40701], 256],
- 12237: [[40718], 256],
- 12238: [[40723], 256],
- 12239: [[40736], 256],
- 12240: [[40763], 256],
- 12241: [[40778], 256],
- 12242: [[40786], 256],
- 12243: [[40845], 256],
- 12244: [[40860], 256],
- 12245: [[40864], 256]
- },
- 12288: {
- 12288: [[32], 256],
- 12330: [, 218],
- 12331: [, 228],
- 12332: [, 232],
- 12333: [, 222],
- 12334: [, 224],
- 12335: [, 224],
- 12342: [[12306], 256],
- 12344: [[21313], 256],
- 12345: [[21316], 256],
- 12346: [[21317], 256],
- 12358: [, , { 12441: 12436 }],
- 12363: [, , { 12441: 12364 }],
- 12364: [[12363, 12441]],
- 12365: [, , { 12441: 12366 }],
- 12366: [[12365, 12441]],
- 12367: [, , { 12441: 12368 }],
- 12368: [[12367, 12441]],
- 12369: [, , { 12441: 12370 }],
- 12370: [[12369, 12441]],
- 12371: [, , { 12441: 12372 }],
- 12372: [[12371, 12441]],
- 12373: [, , { 12441: 12374 }],
- 12374: [[12373, 12441]],
- 12375: [, , { 12441: 12376 }],
- 12376: [[12375, 12441]],
- 12377: [, , { 12441: 12378 }],
- 12378: [[12377, 12441]],
- 12379: [, , { 12441: 12380 }],
- 12380: [[12379, 12441]],
- 12381: [, , { 12441: 12382 }],
- 12382: [[12381, 12441]],
- 12383: [, , { 12441: 12384 }],
- 12384: [[12383, 12441]],
- 12385: [, , { 12441: 12386 }],
- 12386: [[12385, 12441]],
- 12388: [, , { 12441: 12389 }],
- 12389: [[12388, 12441]],
- 12390: [, , { 12441: 12391 }],
- 12391: [[12390, 12441]],
- 12392: [, , { 12441: 12393 }],
- 12393: [[12392, 12441]],
- 12399: [, , { 12441: 12400, 12442: 12401 }],
- 12400: [[12399, 12441]],
- 12401: [[12399, 12442]],
- 12402: [, , { 12441: 12403, 12442: 12404 }],
- 12403: [[12402, 12441]],
- 12404: [[12402, 12442]],
- 12405: [, , { 12441: 12406, 12442: 12407 }],
- 12406: [[12405, 12441]],
- 12407: [[12405, 12442]],
- 12408: [, , { 12441: 12409, 12442: 12410 }],
- 12409: [[12408, 12441]],
- 12410: [[12408, 12442]],
- 12411: [, , { 12441: 12412, 12442: 12413 }],
- 12412: [[12411, 12441]],
- 12413: [[12411, 12442]],
- 12436: [[12358, 12441]],
- 12441: [, 8],
- 12442: [, 8],
- 12443: [[32, 12441], 256],
- 12444: [[32, 12442], 256],
- 12445: [, , { 12441: 12446 }],
- 12446: [[12445, 12441]],
- 12447: [[12424, 12426], 256],
- 12454: [, , { 12441: 12532 }],
- 12459: [, , { 12441: 12460 }],
- 12460: [[12459, 12441]],
- 12461: [, , { 12441: 12462 }],
- 12462: [[12461, 12441]],
- 12463: [, , { 12441: 12464 }],
- 12464: [[12463, 12441]],
- 12465: [, , { 12441: 12466 }],
- 12466: [[12465, 12441]],
- 12467: [, , { 12441: 12468 }],
- 12468: [[12467, 12441]],
- 12469: [, , { 12441: 12470 }],
- 12470: [[12469, 12441]],
- 12471: [, , { 12441: 12472 }],
- 12472: [[12471, 12441]],
- 12473: [, , { 12441: 12474 }],
- 12474: [[12473, 12441]],
- 12475: [, , { 12441: 12476 }],
- 12476: [[12475, 12441]],
- 12477: [, , { 12441: 12478 }],
- 12478: [[12477, 12441]],
- 12479: [, , { 12441: 12480 }],
- 12480: [[12479, 12441]],
- 12481: [, , { 12441: 12482 }],
- 12482: [[12481, 12441]],
- 12484: [, , { 12441: 12485 }],
- 12485: [[12484, 12441]],
- 12486: [, , { 12441: 12487 }],
- 12487: [[12486, 12441]],
- 12488: [, , { 12441: 12489 }],
- 12489: [[12488, 12441]],
- 12495: [, , { 12441: 12496, 12442: 12497 }],
- 12496: [[12495, 12441]],
- 12497: [[12495, 12442]],
- 12498: [, , { 12441: 12499, 12442: 12500 }],
- 12499: [[12498, 12441]],
- 12500: [[12498, 12442]],
- 12501: [, , { 12441: 12502, 12442: 12503 }],
- 12502: [[12501, 12441]],
- 12503: [[12501, 12442]],
- 12504: [, , { 12441: 12505, 12442: 12506 }],
- 12505: [[12504, 12441]],
- 12506: [[12504, 12442]],
- 12507: [, , { 12441: 12508, 12442: 12509 }],
- 12508: [[12507, 12441]],
- 12509: [[12507, 12442]],
- 12527: [, , { 12441: 12535 }],
- 12528: [, , { 12441: 12536 }],
- 12529: [, , { 12441: 12537 }],
- 12530: [, , { 12441: 12538 }],
- 12532: [[12454, 12441]],
- 12535: [[12527, 12441]],
- 12536: [[12528, 12441]],
- 12537: [[12529, 12441]],
- 12538: [[12530, 12441]],
- 12541: [, , { 12441: 12542 }],
- 12542: [[12541, 12441]],
- 12543: [[12467, 12488], 256]
- },
- 12544: {
- 12593: [[4352], 256],
- 12594: [[4353], 256],
- 12595: [[4522], 256],
- 12596: [[4354], 256],
- 12597: [[4524], 256],
- 12598: [[4525], 256],
- 12599: [[4355], 256],
- 12600: [[4356], 256],
- 12601: [[4357], 256],
- 12602: [[4528], 256],
- 12603: [[4529], 256],
- 12604: [[4530], 256],
- 12605: [[4531], 256],
- 12606: [[4532], 256],
- 12607: [[4533], 256],
- 12608: [[4378], 256],
- 12609: [[4358], 256],
- 12610: [[4359], 256],
- 12611: [[4360], 256],
- 12612: [[4385], 256],
- 12613: [[4361], 256],
- 12614: [[4362], 256],
- 12615: [[4363], 256],
- 12616: [[4364], 256],
- 12617: [[4365], 256],
- 12618: [[4366], 256],
- 12619: [[4367], 256],
- 12620: [[4368], 256],
- 12621: [[4369], 256],
- 12622: [[4370], 256],
- 12623: [[4449], 256],
- 12624: [[4450], 256],
- 12625: [[4451], 256],
- 12626: [[4452], 256],
- 12627: [[4453], 256],
- 12628: [[4454], 256],
- 12629: [[4455], 256],
- 12630: [[4456], 256],
- 12631: [[4457], 256],
- 12632: [[4458], 256],
- 12633: [[4459], 256],
- 12634: [[4460], 256],
- 12635: [[4461], 256],
- 12636: [[4462], 256],
- 12637: [[4463], 256],
- 12638: [[4464], 256],
- 12639: [[4465], 256],
- 12640: [[4466], 256],
- 12641: [[4467], 256],
- 12642: [[4468], 256],
- 12643: [[4469], 256],
- 12644: [[4448], 256],
- 12645: [[4372], 256],
- 12646: [[4373], 256],
- 12647: [[4551], 256],
- 12648: [[4552], 256],
- 12649: [[4556], 256],
- 12650: [[4558], 256],
- 12651: [[4563], 256],
- 12652: [[4567], 256],
- 12653: [[4569], 256],
- 12654: [[4380], 256],
- 12655: [[4573], 256],
- 12656: [[4575], 256],
- 12657: [[4381], 256],
- 12658: [[4382], 256],
- 12659: [[4384], 256],
- 12660: [[4386], 256],
- 12661: [[4387], 256],
- 12662: [[4391], 256],
- 12663: [[4393], 256],
- 12664: [[4395], 256],
- 12665: [[4396], 256],
- 12666: [[4397], 256],
- 12667: [[4398], 256],
- 12668: [[4399], 256],
- 12669: [[4402], 256],
- 12670: [[4406], 256],
- 12671: [[4416], 256],
- 12672: [[4423], 256],
- 12673: [[4428], 256],
- 12674: [[4593], 256],
- 12675: [[4594], 256],
- 12676: [[4439], 256],
- 12677: [[4440], 256],
- 12678: [[4441], 256],
- 12679: [[4484], 256],
- 12680: [[4485], 256],
- 12681: [[4488], 256],
- 12682: [[4497], 256],
- 12683: [[4498], 256],
- 12684: [[4500], 256],
- 12685: [[4510], 256],
- 12686: [[4513], 256],
- 12690: [[19968], 256],
- 12691: [[20108], 256],
- 12692: [[19977], 256],
- 12693: [[22235], 256],
- 12694: [[19978], 256],
- 12695: [[20013], 256],
- 12696: [[19979], 256],
- 12697: [[30002], 256],
- 12698: [[20057], 256],
- 12699: [[19993], 256],
- 12700: [[19969], 256],
- 12701: [[22825], 256],
- 12702: [[22320], 256],
- 12703: [[20154], 256]
- },
- 12800: {
- 12800: [[40, 4352, 41], 256],
- 12801: [[40, 4354, 41], 256],
- 12802: [[40, 4355, 41], 256],
- 12803: [[40, 4357, 41], 256],
- 12804: [[40, 4358, 41], 256],
- 12805: [[40, 4359, 41], 256],
- 12806: [[40, 4361, 41], 256],
- 12807: [[40, 4363, 41], 256],
- 12808: [[40, 4364, 41], 256],
- 12809: [[40, 4366, 41], 256],
- 12810: [[40, 4367, 41], 256],
- 12811: [[40, 4368, 41], 256],
- 12812: [[40, 4369, 41], 256],
- 12813: [[40, 4370, 41], 256],
- 12814: [[40, 4352, 4449, 41], 256],
- 12815: [[40, 4354, 4449, 41], 256],
- 12816: [[40, 4355, 4449, 41], 256],
- 12817: [[40, 4357, 4449, 41], 256],
- 12818: [[40, 4358, 4449, 41], 256],
- 12819: [[40, 4359, 4449, 41], 256],
- 12820: [[40, 4361, 4449, 41], 256],
- 12821: [[40, 4363, 4449, 41], 256],
- 12822: [[40, 4364, 4449, 41], 256],
- 12823: [[40, 4366, 4449, 41], 256],
- 12824: [[40, 4367, 4449, 41], 256],
- 12825: [[40, 4368, 4449, 41], 256],
- 12826: [[40, 4369, 4449, 41], 256],
- 12827: [[40, 4370, 4449, 41], 256],
- 12828: [[40, 4364, 4462, 41], 256],
- 12829: [[40, 4363, 4457, 4364, 4453, 4523, 41], 256],
- 12830: [[40, 4363, 4457, 4370, 4462, 41], 256],
- 12832: [[40, 19968, 41], 256],
- 12833: [[40, 20108, 41], 256],
- 12834: [[40, 19977, 41], 256],
- 12835: [[40, 22235, 41], 256],
- 12836: [[40, 20116, 41], 256],
- 12837: [[40, 20845, 41], 256],
- 12838: [[40, 19971, 41], 256],
- 12839: [[40, 20843, 41], 256],
- 12840: [[40, 20061, 41], 256],
- 12841: [[40, 21313, 41], 256],
- 12842: [[40, 26376, 41], 256],
- 12843: [[40, 28779, 41], 256],
- 12844: [[40, 27700, 41], 256],
- 12845: [[40, 26408, 41], 256],
- 12846: [[40, 37329, 41], 256],
- 12847: [[40, 22303, 41], 256],
- 12848: [[40, 26085, 41], 256],
- 12849: [[40, 26666, 41], 256],
- 12850: [[40, 26377, 41], 256],
- 12851: [[40, 31038, 41], 256],
- 12852: [[40, 21517, 41], 256],
- 12853: [[40, 29305, 41], 256],
- 12854: [[40, 36001, 41], 256],
- 12855: [[40, 31069, 41], 256],
- 12856: [[40, 21172, 41], 256],
- 12857: [[40, 20195, 41], 256],
- 12858: [[40, 21628, 41], 256],
- 12859: [[40, 23398, 41], 256],
- 12860: [[40, 30435, 41], 256],
- 12861: [[40, 20225, 41], 256],
- 12862: [[40, 36039, 41], 256],
- 12863: [[40, 21332, 41], 256],
- 12864: [[40, 31085, 41], 256],
- 12865: [[40, 20241, 41], 256],
- 12866: [[40, 33258, 41], 256],
- 12867: [[40, 33267, 41], 256],
- 12868: [[21839], 256],
- 12869: [[24188], 256],
- 12870: [[25991], 256],
- 12871: [[31631], 256],
- 12880: [[80, 84, 69], 256],
- 12881: [[50, 49], 256],
- 12882: [[50, 50], 256],
- 12883: [[50, 51], 256],
- 12884: [[50, 52], 256],
- 12885: [[50, 53], 256],
- 12886: [[50, 54], 256],
- 12887: [[50, 55], 256],
- 12888: [[50, 56], 256],
- 12889: [[50, 57], 256],
- 12890: [[51, 48], 256],
- 12891: [[51, 49], 256],
- 12892: [[51, 50], 256],
- 12893: [[51, 51], 256],
- 12894: [[51, 52], 256],
- 12895: [[51, 53], 256],
- 12896: [[4352], 256],
- 12897: [[4354], 256],
- 12898: [[4355], 256],
- 12899: [[4357], 256],
- 12900: [[4358], 256],
- 12901: [[4359], 256],
- 12902: [[4361], 256],
- 12903: [[4363], 256],
- 12904: [[4364], 256],
- 12905: [[4366], 256],
- 12906: [[4367], 256],
- 12907: [[4368], 256],
- 12908: [[4369], 256],
- 12909: [[4370], 256],
- 12910: [[4352, 4449], 256],
- 12911: [[4354, 4449], 256],
- 12912: [[4355, 4449], 256],
- 12913: [[4357, 4449], 256],
- 12914: [[4358, 4449], 256],
- 12915: [[4359, 4449], 256],
- 12916: [[4361, 4449], 256],
- 12917: [[4363, 4449], 256],
- 12918: [[4364, 4449], 256],
- 12919: [[4366, 4449], 256],
- 12920: [[4367, 4449], 256],
- 12921: [[4368, 4449], 256],
- 12922: [[4369, 4449], 256],
- 12923: [[4370, 4449], 256],
- 12924: [[4366, 4449, 4535, 4352, 4457], 256],
- 12925: [[4364, 4462, 4363, 4468], 256],
- 12926: [[4363, 4462], 256],
- 12928: [[19968], 256],
- 12929: [[20108], 256],
- 12930: [[19977], 256],
- 12931: [[22235], 256],
- 12932: [[20116], 256],
- 12933: [[20845], 256],
- 12934: [[19971], 256],
- 12935: [[20843], 256],
- 12936: [[20061], 256],
- 12937: [[21313], 256],
- 12938: [[26376], 256],
- 12939: [[28779], 256],
- 12940: [[27700], 256],
- 12941: [[26408], 256],
- 12942: [[37329], 256],
- 12943: [[22303], 256],
- 12944: [[26085], 256],
- 12945: [[26666], 256],
- 12946: [[26377], 256],
- 12947: [[31038], 256],
- 12948: [[21517], 256],
- 12949: [[29305], 256],
- 12950: [[36001], 256],
- 12951: [[31069], 256],
- 12952: [[21172], 256],
- 12953: [[31192], 256],
- 12954: [[30007], 256],
- 12955: [[22899], 256],
- 12956: [[36969], 256],
- 12957: [[20778], 256],
- 12958: [[21360], 256],
- 12959: [[27880], 256],
- 12960: [[38917], 256],
- 12961: [[20241], 256],
- 12962: [[20889], 256],
- 12963: [[27491], 256],
- 12964: [[19978], 256],
- 12965: [[20013], 256],
- 12966: [[19979], 256],
- 12967: [[24038], 256],
- 12968: [[21491], 256],
- 12969: [[21307], 256],
- 12970: [[23447], 256],
- 12971: [[23398], 256],
- 12972: [[30435], 256],
- 12973: [[20225], 256],
- 12974: [[36039], 256],
- 12975: [[21332], 256],
- 12976: [[22812], 256],
- 12977: [[51, 54], 256],
- 12978: [[51, 55], 256],
- 12979: [[51, 56], 256],
- 12980: [[51, 57], 256],
- 12981: [[52, 48], 256],
- 12982: [[52, 49], 256],
- 12983: [[52, 50], 256],
- 12984: [[52, 51], 256],
- 12985: [[52, 52], 256],
- 12986: [[52, 53], 256],
- 12987: [[52, 54], 256],
- 12988: [[52, 55], 256],
- 12989: [[52, 56], 256],
- 12990: [[52, 57], 256],
- 12991: [[53, 48], 256],
- 12992: [[49, 26376], 256],
- 12993: [[50, 26376], 256],
- 12994: [[51, 26376], 256],
- 12995: [[52, 26376], 256],
- 12996: [[53, 26376], 256],
- 12997: [[54, 26376], 256],
- 12998: [[55, 26376], 256],
- 12999: [[56, 26376], 256],
- 13000: [[57, 26376], 256],
- 13001: [[49, 48, 26376], 256],
- 13002: [[49, 49, 26376], 256],
- 13003: [[49, 50, 26376], 256],
- 13004: [[72, 103], 256],
- 13005: [[101, 114, 103], 256],
- 13006: [[101, 86], 256],
- 13007: [[76, 84, 68], 256],
- 13008: [[12450], 256],
- 13009: [[12452], 256],
- 13010: [[12454], 256],
- 13011: [[12456], 256],
- 13012: [[12458], 256],
- 13013: [[12459], 256],
- 13014: [[12461], 256],
- 13015: [[12463], 256],
- 13016: [[12465], 256],
- 13017: [[12467], 256],
- 13018: [[12469], 256],
- 13019: [[12471], 256],
- 13020: [[12473], 256],
- 13021: [[12475], 256],
- 13022: [[12477], 256],
- 13023: [[12479], 256],
- 13024: [[12481], 256],
- 13025: [[12484], 256],
- 13026: [[12486], 256],
- 13027: [[12488], 256],
- 13028: [[12490], 256],
- 13029: [[12491], 256],
- 13030: [[12492], 256],
- 13031: [[12493], 256],
- 13032: [[12494], 256],
- 13033: [[12495], 256],
- 13034: [[12498], 256],
- 13035: [[12501], 256],
- 13036: [[12504], 256],
- 13037: [[12507], 256],
- 13038: [[12510], 256],
- 13039: [[12511], 256],
- 13040: [[12512], 256],
- 13041: [[12513], 256],
- 13042: [[12514], 256],
- 13043: [[12516], 256],
- 13044: [[12518], 256],
- 13045: [[12520], 256],
- 13046: [[12521], 256],
- 13047: [[12522], 256],
- 13048: [[12523], 256],
- 13049: [[12524], 256],
- 13050: [[12525], 256],
- 13051: [[12527], 256],
- 13052: [[12528], 256],
- 13053: [[12529], 256],
- 13054: [[12530], 256]
- },
- 13056: {
- 13056: [[12450, 12497, 12540, 12488], 256],
- 13057: [[12450, 12523, 12501, 12449], 256],
- 13058: [[12450, 12531, 12506, 12450], 256],
- 13059: [[12450, 12540, 12523], 256],
- 13060: [[12452, 12491, 12531, 12464], 256],
- 13061: [[12452, 12531, 12481], 256],
- 13062: [[12454, 12457, 12531], 256],
- 13063: [[12456, 12473, 12463, 12540, 12489], 256],
- 13064: [[12456, 12540, 12459, 12540], 256],
- 13065: [[12458, 12531, 12473], 256],
- 13066: [[12458, 12540, 12512], 256],
- 13067: [[12459, 12452, 12522], 256],
- 13068: [[12459, 12521, 12483, 12488], 256],
- 13069: [[12459, 12525, 12522, 12540], 256],
- 13070: [[12460, 12525, 12531], 256],
- 13071: [[12460, 12531, 12510], 256],
- 13072: [[12462, 12460], 256],
- 13073: [[12462, 12491, 12540], 256],
- 13074: [[12461, 12517, 12522, 12540], 256],
- 13075: [[12462, 12523, 12480, 12540], 256],
- 13076: [[12461, 12525], 256],
- 13077: [[12461, 12525, 12464, 12521, 12512], 256],
- 13078: [[12461, 12525, 12513, 12540, 12488, 12523], 256],
- 13079: [[12461, 12525, 12527, 12483, 12488], 256],
- 13080: [[12464, 12521, 12512], 256],
- 13081: [[12464, 12521, 12512, 12488, 12531], 256],
- 13082: [[12463, 12523, 12476, 12452, 12525], 256],
- 13083: [[12463, 12525, 12540, 12493], 256],
- 13084: [[12465, 12540, 12473], 256],
- 13085: [[12467, 12523, 12490], 256],
- 13086: [[12467, 12540, 12509], 256],
- 13087: [[12469, 12452, 12463, 12523], 256],
- 13088: [[12469, 12531, 12481, 12540, 12512], 256],
- 13089: [[12471, 12522, 12531, 12464], 256],
- 13090: [[12475, 12531, 12481], 256],
- 13091: [[12475, 12531, 12488], 256],
- 13092: [[12480, 12540, 12473], 256],
- 13093: [[12487, 12471], 256],
- 13094: [[12489, 12523], 256],
- 13095: [[12488, 12531], 256],
- 13096: [[12490, 12494], 256],
- 13097: [[12494, 12483, 12488], 256],
- 13098: [[12495, 12452, 12484], 256],
- 13099: [[12497, 12540, 12475, 12531, 12488], 256],
- 13100: [[12497, 12540, 12484], 256],
- 13101: [[12496, 12540, 12524, 12523], 256],
- 13102: [[12500, 12450, 12473, 12488, 12523], 256],
- 13103: [[12500, 12463, 12523], 256],
- 13104: [[12500, 12467], 256],
- 13105: [[12499, 12523], 256],
- 13106: [[12501, 12449, 12521, 12483, 12489], 256],
- 13107: [[12501, 12451, 12540, 12488], 256],
- 13108: [[12502, 12483, 12471, 12455, 12523], 256],
- 13109: [[12501, 12521, 12531], 256],
- 13110: [[12504, 12463, 12479, 12540, 12523], 256],
- 13111: [[12506, 12477], 256],
- 13112: [[12506, 12491, 12498], 256],
- 13113: [[12504, 12523, 12484], 256],
- 13114: [[12506, 12531, 12473], 256],
- 13115: [[12506, 12540, 12472], 256],
- 13116: [[12505, 12540, 12479], 256],
- 13117: [[12509, 12452, 12531, 12488], 256],
- 13118: [[12508, 12523, 12488], 256],
- 13119: [[12507, 12531], 256],
- 13120: [[12509, 12531, 12489], 256],
- 13121: [[12507, 12540, 12523], 256],
- 13122: [[12507, 12540, 12531], 256],
- 13123: [[12510, 12452, 12463, 12525], 256],
- 13124: [[12510, 12452, 12523], 256],
- 13125: [[12510, 12483, 12495], 256],
- 13126: [[12510, 12523, 12463], 256],
- 13127: [[12510, 12531, 12471, 12519, 12531], 256],
- 13128: [[12511, 12463, 12525, 12531], 256],
- 13129: [[12511, 12522], 256],
- 13130: [[12511, 12522, 12496, 12540, 12523], 256],
- 13131: [[12513, 12460], 256],
- 13132: [[12513, 12460, 12488, 12531], 256],
- 13133: [[12513, 12540, 12488, 12523], 256],
- 13134: [[12516, 12540, 12489], 256],
- 13135: [[12516, 12540, 12523], 256],
- 13136: [[12518, 12450, 12531], 256],
- 13137: [[12522, 12483, 12488, 12523], 256],
- 13138: [[12522, 12521], 256],
- 13139: [[12523, 12500, 12540], 256],
- 13140: [[12523, 12540, 12502, 12523], 256],
- 13141: [[12524, 12512], 256],
- 13142: [[12524, 12531, 12488, 12466, 12531], 256],
- 13143: [[12527, 12483, 12488], 256],
- 13144: [[48, 28857], 256],
- 13145: [[49, 28857], 256],
- 13146: [[50, 28857], 256],
- 13147: [[51, 28857], 256],
- 13148: [[52, 28857], 256],
- 13149: [[53, 28857], 256],
- 13150: [[54, 28857], 256],
- 13151: [[55, 28857], 256],
- 13152: [[56, 28857], 256],
- 13153: [[57, 28857], 256],
- 13154: [[49, 48, 28857], 256],
- 13155: [[49, 49, 28857], 256],
- 13156: [[49, 50, 28857], 256],
- 13157: [[49, 51, 28857], 256],
- 13158: [[49, 52, 28857], 256],
- 13159: [[49, 53, 28857], 256],
- 13160: [[49, 54, 28857], 256],
- 13161: [[49, 55, 28857], 256],
- 13162: [[49, 56, 28857], 256],
- 13163: [[49, 57, 28857], 256],
- 13164: [[50, 48, 28857], 256],
- 13165: [[50, 49, 28857], 256],
- 13166: [[50, 50, 28857], 256],
- 13167: [[50, 51, 28857], 256],
- 13168: [[50, 52, 28857], 256],
- 13169: [[104, 80, 97], 256],
- 13170: [[100, 97], 256],
- 13171: [[65, 85], 256],
- 13172: [[98, 97, 114], 256],
- 13173: [[111, 86], 256],
- 13174: [[112, 99], 256],
- 13175: [[100, 109], 256],
- 13176: [[100, 109, 178], 256],
- 13177: [[100, 109, 179], 256],
- 13178: [[73, 85], 256],
- 13179: [[24179, 25104], 256],
- 13180: [[26157, 21644], 256],
- 13181: [[22823, 27491], 256],
- 13182: [[26126, 27835], 256],
- 13183: [[26666, 24335, 20250, 31038], 256],
- 13184: [[112, 65], 256],
- 13185: [[110, 65], 256],
- 13186: [[956, 65], 256],
- 13187: [[109, 65], 256],
- 13188: [[107, 65], 256],
- 13189: [[75, 66], 256],
- 13190: [[77, 66], 256],
- 13191: [[71, 66], 256],
- 13192: [[99, 97, 108], 256],
- 13193: [[107, 99, 97, 108], 256],
- 13194: [[112, 70], 256],
- 13195: [[110, 70], 256],
- 13196: [[956, 70], 256],
- 13197: [[956, 103], 256],
- 13198: [[109, 103], 256],
- 13199: [[107, 103], 256],
- 13200: [[72, 122], 256],
- 13201: [[107, 72, 122], 256],
- 13202: [[77, 72, 122], 256],
- 13203: [[71, 72, 122], 256],
- 13204: [[84, 72, 122], 256],
- 13205: [[956, 8467], 256],
- 13206: [[109, 8467], 256],
- 13207: [[100, 8467], 256],
- 13208: [[107, 8467], 256],
- 13209: [[102, 109], 256],
- 13210: [[110, 109], 256],
- 13211: [[956, 109], 256],
- 13212: [[109, 109], 256],
- 13213: [[99, 109], 256],
- 13214: [[107, 109], 256],
- 13215: [[109, 109, 178], 256],
- 13216: [[99, 109, 178], 256],
- 13217: [[109, 178], 256],
- 13218: [[107, 109, 178], 256],
- 13219: [[109, 109, 179], 256],
- 13220: [[99, 109, 179], 256],
- 13221: [[109, 179], 256],
- 13222: [[107, 109, 179], 256],
- 13223: [[109, 8725, 115], 256],
- 13224: [[109, 8725, 115, 178], 256],
- 13225: [[80, 97], 256],
- 13226: [[107, 80, 97], 256],
- 13227: [[77, 80, 97], 256],
- 13228: [[71, 80, 97], 256],
- 13229: [[114, 97, 100], 256],
- 13230: [[114, 97, 100, 8725, 115], 256],
- 13231: [[114, 97, 100, 8725, 115, 178], 256],
- 13232: [[112, 115], 256],
- 13233: [[110, 115], 256],
- 13234: [[956, 115], 256],
- 13235: [[109, 115], 256],
- 13236: [[112, 86], 256],
- 13237: [[110, 86], 256],
- 13238: [[956, 86], 256],
- 13239: [[109, 86], 256],
- 13240: [[107, 86], 256],
- 13241: [[77, 86], 256],
- 13242: [[112, 87], 256],
- 13243: [[110, 87], 256],
- 13244: [[956, 87], 256],
- 13245: [[109, 87], 256],
- 13246: [[107, 87], 256],
- 13247: [[77, 87], 256],
- 13248: [[107, 937], 256],
- 13249: [[77, 937], 256],
- 13250: [[97, 46, 109, 46], 256],
- 13251: [[66, 113], 256],
- 13252: [[99, 99], 256],
- 13253: [[99, 100], 256],
- 13254: [[67, 8725, 107, 103], 256],
- 13255: [[67, 111, 46], 256],
- 13256: [[100, 66], 256],
- 13257: [[71, 121], 256],
- 13258: [[104, 97], 256],
- 13259: [[72, 80], 256],
- 13260: [[105, 110], 256],
- 13261: [[75, 75], 256],
- 13262: [[75, 77], 256],
- 13263: [[107, 116], 256],
- 13264: [[108, 109], 256],
- 13265: [[108, 110], 256],
- 13266: [[108, 111, 103], 256],
- 13267: [[108, 120], 256],
- 13268: [[109, 98], 256],
- 13269: [[109, 105, 108], 256],
- 13270: [[109, 111, 108], 256],
- 13271: [[80, 72], 256],
- 13272: [[112, 46, 109, 46], 256],
- 13273: [[80, 80, 77], 256],
- 13274: [[80, 82], 256],
- 13275: [[115, 114], 256],
- 13276: [[83, 118], 256],
- 13277: [[87, 98], 256],
- 13278: [[86, 8725, 109], 256],
- 13279: [[65, 8725, 109], 256],
- 13280: [[49, 26085], 256],
- 13281: [[50, 26085], 256],
- 13282: [[51, 26085], 256],
- 13283: [[52, 26085], 256],
- 13284: [[53, 26085], 256],
- 13285: [[54, 26085], 256],
- 13286: [[55, 26085], 256],
- 13287: [[56, 26085], 256],
- 13288: [[57, 26085], 256],
- 13289: [[49, 48, 26085], 256],
- 13290: [[49, 49, 26085], 256],
- 13291: [[49, 50, 26085], 256],
- 13292: [[49, 51, 26085], 256],
- 13293: [[49, 52, 26085], 256],
- 13294: [[49, 53, 26085], 256],
- 13295: [[49, 54, 26085], 256],
- 13296: [[49, 55, 26085], 256],
- 13297: [[49, 56, 26085], 256],
- 13298: [[49, 57, 26085], 256],
- 13299: [[50, 48, 26085], 256],
- 13300: [[50, 49, 26085], 256],
- 13301: [[50, 50, 26085], 256],
- 13302: [[50, 51, 26085], 256],
- 13303: [[50, 52, 26085], 256],
- 13304: [[50, 53, 26085], 256],
- 13305: [[50, 54, 26085], 256],
- 13306: [[50, 55, 26085], 256],
- 13307: [[50, 56, 26085], 256],
- 13308: [[50, 57, 26085], 256],
- 13309: [[51, 48, 26085], 256],
- 13310: [[51, 49, 26085], 256],
- 13311: [[103, 97, 108], 256]
- },
- 42496: {
- 42607: [, 230],
- 42612: [, 230],
- 42613: [, 230],
- 42614: [, 230],
- 42615: [, 230],
- 42616: [, 230],
- 42617: [, 230],
- 42618: [, 230],
- 42619: [, 230],
- 42620: [, 230],
- 42621: [, 230],
- 42655: [, 230],
- 42736: [, 230],
- 42737: [, 230]
- },
- 42752: { 42864: [[42863], 256], 43000: [[294], 256], 43001: [[339], 256] },
- 43008: {
- 43014: [, 9],
- 43204: [, 9],
- 43232: [, 230],
- 43233: [, 230],
- 43234: [, 230],
- 43235: [, 230],
- 43236: [, 230],
- 43237: [, 230],
- 43238: [, 230],
- 43239: [, 230],
- 43240: [, 230],
- 43241: [, 230],
- 43242: [, 230],
- 43243: [, 230],
- 43244: [, 230],
- 43245: [, 230],
- 43246: [, 230],
- 43247: [, 230],
- 43248: [, 230],
- 43249: [, 230]
- },
- 43264: {
- 43307: [, 220],
- 43308: [, 220],
- 43309: [, 220],
- 43347: [, 9],
- 43443: [, 7],
- 43456: [, 9]
- },
- 43520: {
- 43696: [, 230],
- 43698: [, 230],
- 43699: [, 230],
- 43700: [, 220],
- 43703: [, 230],
- 43704: [, 230],
- 43710: [, 230],
- 43711: [, 230],
- 43713: [, 230],
- 43766: [, 9]
- },
- 43776: { 44013: [, 9] },
- 53504: {
- 119134: [[119127, 119141], 512],
- 119135: [[119128, 119141], 512],
- 119136: [[119135, 119150], 512],
- 119137: [[119135, 119151], 512],
- 119138: [[119135, 119152], 512],
- 119139: [[119135, 119153], 512],
- 119140: [[119135, 119154], 512],
- 119141: [, 216],
- 119142: [, 216],
- 119143: [, 1],
- 119144: [, 1],
- 119145: [, 1],
- 119149: [, 226],
- 119150: [, 216],
- 119151: [, 216],
- 119152: [, 216],
- 119153: [, 216],
- 119154: [, 216],
- 119163: [, 220],
- 119164: [, 220],
- 119165: [, 220],
- 119166: [, 220],
- 119167: [, 220],
- 119168: [, 220],
- 119169: [, 220],
- 119170: [, 220],
- 119173: [, 230],
- 119174: [, 230],
- 119175: [, 230],
- 119176: [, 230],
- 119177: [, 230],
- 119178: [, 220],
- 119179: [, 220],
- 119210: [, 230],
- 119211: [, 230],
- 119212: [, 230],
- 119213: [, 230],
- 119227: [[119225, 119141], 512],
- 119228: [[119226, 119141], 512],
- 119229: [[119227, 119150], 512],
- 119230: [[119228, 119150], 512],
- 119231: [[119227, 119151], 512],
- 119232: [[119228, 119151], 512]
- },
- 53760: { 119362: [, 230], 119363: [, 230], 119364: [, 230] },
- 54272: {
- 119808: [[65], 256],
- 119809: [[66], 256],
- 119810: [[67], 256],
- 119811: [[68], 256],
- 119812: [[69], 256],
- 119813: [[70], 256],
- 119814: [[71], 256],
- 119815: [[72], 256],
- 119816: [[73], 256],
- 119817: [[74], 256],
- 119818: [[75], 256],
- 119819: [[76], 256],
- 119820: [[77], 256],
- 119821: [[78], 256],
- 119822: [[79], 256],
- 119823: [[80], 256],
- 119824: [[81], 256],
- 119825: [[82], 256],
- 119826: [[83], 256],
- 119827: [[84], 256],
- 119828: [[85], 256],
- 119829: [[86], 256],
- 119830: [[87], 256],
- 119831: [[88], 256],
- 119832: [[89], 256],
- 119833: [[90], 256],
- 119834: [[97], 256],
- 119835: [[98], 256],
- 119836: [[99], 256],
- 119837: [[100], 256],
- 119838: [[101], 256],
- 119839: [[102], 256],
- 119840: [[103], 256],
- 119841: [[104], 256],
- 119842: [[105], 256],
- 119843: [[106], 256],
- 119844: [[107], 256],
- 119845: [[108], 256],
- 119846: [[109], 256],
- 119847: [[110], 256],
- 119848: [[111], 256],
- 119849: [[112], 256],
- 119850: [[113], 256],
- 119851: [[114], 256],
- 119852: [[115], 256],
- 119853: [[116], 256],
- 119854: [[117], 256],
- 119855: [[118], 256],
- 119856: [[119], 256],
- 119857: [[120], 256],
- 119858: [[121], 256],
- 119859: [[122], 256],
- 119860: [[65], 256],
- 119861: [[66], 256],
- 119862: [[67], 256],
- 119863: [[68], 256],
- 119864: [[69], 256],
- 119865: [[70], 256],
- 119866: [[71], 256],
- 119867: [[72], 256],
- 119868: [[73], 256],
- 119869: [[74], 256],
- 119870: [[75], 256],
- 119871: [[76], 256],
- 119872: [[77], 256],
- 119873: [[78], 256],
- 119874: [[79], 256],
- 119875: [[80], 256],
- 119876: [[81], 256],
- 119877: [[82], 256],
- 119878: [[83], 256],
- 119879: [[84], 256],
- 119880: [[85], 256],
- 119881: [[86], 256],
- 119882: [[87], 256],
- 119883: [[88], 256],
- 119884: [[89], 256],
- 119885: [[90], 256],
- 119886: [[97], 256],
- 119887: [[98], 256],
- 119888: [[99], 256],
- 119889: [[100], 256],
- 119890: [[101], 256],
- 119891: [[102], 256],
- 119892: [[103], 256],
- 119894: [[105], 256],
- 119895: [[106], 256],
- 119896: [[107], 256],
- 119897: [[108], 256],
- 119898: [[109], 256],
- 119899: [[110], 256],
- 119900: [[111], 256],
- 119901: [[112], 256],
- 119902: [[113], 256],
- 119903: [[114], 256],
- 119904: [[115], 256],
- 119905: [[116], 256],
- 119906: [[117], 256],
- 119907: [[118], 256],
- 119908: [[119], 256],
- 119909: [[120], 256],
- 119910: [[121], 256],
- 119911: [[122], 256],
- 119912: [[65], 256],
- 119913: [[66], 256],
- 119914: [[67], 256],
- 119915: [[68], 256],
- 119916: [[69], 256],
- 119917: [[70], 256],
- 119918: [[71], 256],
- 119919: [[72], 256],
- 119920: [[73], 256],
- 119921: [[74], 256],
- 119922: [[75], 256],
- 119923: [[76], 256],
- 119924: [[77], 256],
- 119925: [[78], 256],
- 119926: [[79], 256],
- 119927: [[80], 256],
- 119928: [[81], 256],
- 119929: [[82], 256],
- 119930: [[83], 256],
- 119931: [[84], 256],
- 119932: [[85], 256],
- 119933: [[86], 256],
- 119934: [[87], 256],
- 119935: [[88], 256],
- 119936: [[89], 256],
- 119937: [[90], 256],
- 119938: [[97], 256],
- 119939: [[98], 256],
- 119940: [[99], 256],
- 119941: [[100], 256],
- 119942: [[101], 256],
- 119943: [[102], 256],
- 119944: [[103], 256],
- 119945: [[104], 256],
- 119946: [[105], 256],
- 119947: [[106], 256],
- 119948: [[107], 256],
- 119949: [[108], 256],
- 119950: [[109], 256],
- 119951: [[110], 256],
- 119952: [[111], 256],
- 119953: [[112], 256],
- 119954: [[113], 256],
- 119955: [[114], 256],
- 119956: [[115], 256],
- 119957: [[116], 256],
- 119958: [[117], 256],
- 119959: [[118], 256],
- 119960: [[119], 256],
- 119961: [[120], 256],
- 119962: [[121], 256],
- 119963: [[122], 256],
- 119964: [[65], 256],
- 119966: [[67], 256],
- 119967: [[68], 256],
- 119970: [[71], 256],
- 119973: [[74], 256],
- 119974: [[75], 256],
- 119977: [[78], 256],
- 119978: [[79], 256],
- 119979: [[80], 256],
- 119980: [[81], 256],
- 119982: [[83], 256],
- 119983: [[84], 256],
- 119984: [[85], 256],
- 119985: [[86], 256],
- 119986: [[87], 256],
- 119987: [[88], 256],
- 119988: [[89], 256],
- 119989: [[90], 256],
- 119990: [[97], 256],
- 119991: [[98], 256],
- 119992: [[99], 256],
- 119993: [[100], 256],
- 119995: [[102], 256],
- 119997: [[104], 256],
- 119998: [[105], 256],
- 119999: [[106], 256],
- 120000: [[107], 256],
- 120001: [[108], 256],
- 120002: [[109], 256],
- 120003: [[110], 256],
- 120005: [[112], 256],
- 120006: [[113], 256],
- 120007: [[114], 256],
- 120008: [[115], 256],
- 120009: [[116], 256],
- 120010: [[117], 256],
- 120011: [[118], 256],
- 120012: [[119], 256],
- 120013: [[120], 256],
- 120014: [[121], 256],
- 120015: [[122], 256],
- 120016: [[65], 256],
- 120017: [[66], 256],
- 120018: [[67], 256],
- 120019: [[68], 256],
- 120020: [[69], 256],
- 120021: [[70], 256],
- 120022: [[71], 256],
- 120023: [[72], 256],
- 120024: [[73], 256],
- 120025: [[74], 256],
- 120026: [[75], 256],
- 120027: [[76], 256],
- 120028: [[77], 256],
- 120029: [[78], 256],
- 120030: [[79], 256],
- 120031: [[80], 256],
- 120032: [[81], 256],
- 120033: [[82], 256],
- 120034: [[83], 256],
- 120035: [[84], 256],
- 120036: [[85], 256],
- 120037: [[86], 256],
- 120038: [[87], 256],
- 120039: [[88], 256],
- 120040: [[89], 256],
- 120041: [[90], 256],
- 120042: [[97], 256],
- 120043: [[98], 256],
- 120044: [[99], 256],
- 120045: [[100], 256],
- 120046: [[101], 256],
- 120047: [[102], 256],
- 120048: [[103], 256],
- 120049: [[104], 256],
- 120050: [[105], 256],
- 120051: [[106], 256],
- 120052: [[107], 256],
- 120053: [[108], 256],
- 120054: [[109], 256],
- 120055: [[110], 256],
- 120056: [[111], 256],
- 120057: [[112], 256],
- 120058: [[113], 256],
- 120059: [[114], 256],
- 120060: [[115], 256],
- 120061: [[116], 256],
- 120062: [[117], 256],
- 120063: [[118], 256]
- },
- 54528: {
- 120064: [[119], 256],
- 120065: [[120], 256],
- 120066: [[121], 256],
- 120067: [[122], 256],
- 120068: [[65], 256],
- 120069: [[66], 256],
- 120071: [[68], 256],
- 120072: [[69], 256],
- 120073: [[70], 256],
- 120074: [[71], 256],
- 120077: [[74], 256],
- 120078: [[75], 256],
- 120079: [[76], 256],
- 120080: [[77], 256],
- 120081: [[78], 256],
- 120082: [[79], 256],
- 120083: [[80], 256],
- 120084: [[81], 256],
- 120086: [[83], 256],
- 120087: [[84], 256],
- 120088: [[85], 256],
- 120089: [[86], 256],
- 120090: [[87], 256],
- 120091: [[88], 256],
- 120092: [[89], 256],
- 120094: [[97], 256],
- 120095: [[98], 256],
- 120096: [[99], 256],
- 120097: [[100], 256],
- 120098: [[101], 256],
- 120099: [[102], 256],
- 120100: [[103], 256],
- 120101: [[104], 256],
- 120102: [[105], 256],
- 120103: [[106], 256],
- 120104: [[107], 256],
- 120105: [[108], 256],
- 120106: [[109], 256],
- 120107: [[110], 256],
- 120108: [[111], 256],
- 120109: [[112], 256],
- 120110: [[113], 256],
- 120111: [[114], 256],
- 120112: [[115], 256],
- 120113: [[116], 256],
- 120114: [[117], 256],
- 120115: [[118], 256],
- 120116: [[119], 256],
- 120117: [[120], 256],
- 120118: [[121], 256],
- 120119: [[122], 256],
- 120120: [[65], 256],
- 120121: [[66], 256],
- 120123: [[68], 256],
- 120124: [[69], 256],
- 120125: [[70], 256],
- 120126: [[71], 256],
- 120128: [[73], 256],
- 120129: [[74], 256],
- 120130: [[75], 256],
- 120131: [[76], 256],
- 120132: [[77], 256],
- 120134: [[79], 256],
- 120138: [[83], 256],
- 120139: [[84], 256],
- 120140: [[85], 256],
- 120141: [[86], 256],
- 120142: [[87], 256],
- 120143: [[88], 256],
- 120144: [[89], 256],
- 120146: [[97], 256],
- 120147: [[98], 256],
- 120148: [[99], 256],
- 120149: [[100], 256],
- 120150: [[101], 256],
- 120151: [[102], 256],
- 120152: [[103], 256],
- 120153: [[104], 256],
- 120154: [[105], 256],
- 120155: [[106], 256],
- 120156: [[107], 256],
- 120157: [[108], 256],
- 120158: [[109], 256],
- 120159: [[110], 256],
- 120160: [[111], 256],
- 120161: [[112], 256],
- 120162: [[113], 256],
- 120163: [[114], 256],
- 120164: [[115], 256],
- 120165: [[116], 256],
- 120166: [[117], 256],
- 120167: [[118], 256],
- 120168: [[119], 256],
- 120169: [[120], 256],
- 120170: [[121], 256],
- 120171: [[122], 256],
- 120172: [[65], 256],
- 120173: [[66], 256],
- 120174: [[67], 256],
- 120175: [[68], 256],
- 120176: [[69], 256],
- 120177: [[70], 256],
- 120178: [[71], 256],
- 120179: [[72], 256],
- 120180: [[73], 256],
- 120181: [[74], 256],
- 120182: [[75], 256],
- 120183: [[76], 256],
- 120184: [[77], 256],
- 120185: [[78], 256],
- 120186: [[79], 256],
- 120187: [[80], 256],
- 120188: [[81], 256],
- 120189: [[82], 256],
- 120190: [[83], 256],
- 120191: [[84], 256],
- 120192: [[85], 256],
- 120193: [[86], 256],
- 120194: [[87], 256],
- 120195: [[88], 256],
- 120196: [[89], 256],
- 120197: [[90], 256],
- 120198: [[97], 256],
- 120199: [[98], 256],
- 120200: [[99], 256],
- 120201: [[100], 256],
- 120202: [[101], 256],
- 120203: [[102], 256],
- 120204: [[103], 256],
- 120205: [[104], 256],
- 120206: [[105], 256],
- 120207: [[106], 256],
- 120208: [[107], 256],
- 120209: [[108], 256],
- 120210: [[109], 256],
- 120211: [[110], 256],
- 120212: [[111], 256],
- 120213: [[112], 256],
- 120214: [[113], 256],
- 120215: [[114], 256],
- 120216: [[115], 256],
- 120217: [[116], 256],
- 120218: [[117], 256],
- 120219: [[118], 256],
- 120220: [[119], 256],
- 120221: [[120], 256],
- 120222: [[121], 256],
- 120223: [[122], 256],
- 120224: [[65], 256],
- 120225: [[66], 256],
- 120226: [[67], 256],
- 120227: [[68], 256],
- 120228: [[69], 256],
- 120229: [[70], 256],
- 120230: [[71], 256],
- 120231: [[72], 256],
- 120232: [[73], 256],
- 120233: [[74], 256],
- 120234: [[75], 256],
- 120235: [[76], 256],
- 120236: [[77], 256],
- 120237: [[78], 256],
- 120238: [[79], 256],
- 120239: [[80], 256],
- 120240: [[81], 256],
- 120241: [[82], 256],
- 120242: [[83], 256],
- 120243: [[84], 256],
- 120244: [[85], 256],
- 120245: [[86], 256],
- 120246: [[87], 256],
- 120247: [[88], 256],
- 120248: [[89], 256],
- 120249: [[90], 256],
- 120250: [[97], 256],
- 120251: [[98], 256],
- 120252: [[99], 256],
- 120253: [[100], 256],
- 120254: [[101], 256],
- 120255: [[102], 256],
- 120256: [[103], 256],
- 120257: [[104], 256],
- 120258: [[105], 256],
- 120259: [[106], 256],
- 120260: [[107], 256],
- 120261: [[108], 256],
- 120262: [[109], 256],
- 120263: [[110], 256],
- 120264: [[111], 256],
- 120265: [[112], 256],
- 120266: [[113], 256],
- 120267: [[114], 256],
- 120268: [[115], 256],
- 120269: [[116], 256],
- 120270: [[117], 256],
- 120271: [[118], 256],
- 120272: [[119], 256],
- 120273: [[120], 256],
- 120274: [[121], 256],
- 120275: [[122], 256],
- 120276: [[65], 256],
- 120277: [[66], 256],
- 120278: [[67], 256],
- 120279: [[68], 256],
- 120280: [[69], 256],
- 120281: [[70], 256],
- 120282: [[71], 256],
- 120283: [[72], 256],
- 120284: [[73], 256],
- 120285: [[74], 256],
- 120286: [[75], 256],
- 120287: [[76], 256],
- 120288: [[77], 256],
- 120289: [[78], 256],
- 120290: [[79], 256],
- 120291: [[80], 256],
- 120292: [[81], 256],
- 120293: [[82], 256],
- 120294: [[83], 256],
- 120295: [[84], 256],
- 120296: [[85], 256],
- 120297: [[86], 256],
- 120298: [[87], 256],
- 120299: [[88], 256],
- 120300: [[89], 256],
- 120301: [[90], 256],
- 120302: [[97], 256],
- 120303: [[98], 256],
- 120304: [[99], 256],
- 120305: [[100], 256],
- 120306: [[101], 256],
- 120307: [[102], 256],
- 120308: [[103], 256],
- 120309: [[104], 256],
- 120310: [[105], 256],
- 120311: [[106], 256],
- 120312: [[107], 256],
- 120313: [[108], 256],
- 120314: [[109], 256],
- 120315: [[110], 256],
- 120316: [[111], 256],
- 120317: [[112], 256],
- 120318: [[113], 256],
- 120319: [[114], 256]
- },
- 54784: {
- 120320: [[115], 256],
- 120321: [[116], 256],
- 120322: [[117], 256],
- 120323: [[118], 256],
- 120324: [[119], 256],
- 120325: [[120], 256],
- 120326: [[121], 256],
- 120327: [[122], 256],
- 120328: [[65], 256],
- 120329: [[66], 256],
- 120330: [[67], 256],
- 120331: [[68], 256],
- 120332: [[69], 256],
- 120333: [[70], 256],
- 120334: [[71], 256],
- 120335: [[72], 256],
- 120336: [[73], 256],
- 120337: [[74], 256],
- 120338: [[75], 256],
- 120339: [[76], 256],
- 120340: [[77], 256],
- 120341: [[78], 256],
- 120342: [[79], 256],
- 120343: [[80], 256],
- 120344: [[81], 256],
- 120345: [[82], 256],
- 120346: [[83], 256],
- 120347: [[84], 256],
- 120348: [[85], 256],
- 120349: [[86], 256],
- 120350: [[87], 256],
- 120351: [[88], 256],
- 120352: [[89], 256],
- 120353: [[90], 256],
- 120354: [[97], 256],
- 120355: [[98], 256],
- 120356: [[99], 256],
- 120357: [[100], 256],
- 120358: [[101], 256],
- 120359: [[102], 256],
- 120360: [[103], 256],
- 120361: [[104], 256],
- 120362: [[105], 256],
- 120363: [[106], 256],
- 120364: [[107], 256],
- 120365: [[108], 256],
- 120366: [[109], 256],
- 120367: [[110], 256],
- 120368: [[111], 256],
- 120369: [[112], 256],
- 120370: [[113], 256],
- 120371: [[114], 256],
- 120372: [[115], 256],
- 120373: [[116], 256],
- 120374: [[117], 256],
- 120375: [[118], 256],
- 120376: [[119], 256],
- 120377: [[120], 256],
- 120378: [[121], 256],
- 120379: [[122], 256],
- 120380: [[65], 256],
- 120381: [[66], 256],
- 120382: [[67], 256],
- 120383: [[68], 256],
- 120384: [[69], 256],
- 120385: [[70], 256],
- 120386: [[71], 256],
- 120387: [[72], 256],
- 120388: [[73], 256],
- 120389: [[74], 256],
- 120390: [[75], 256],
- 120391: [[76], 256],
- 120392: [[77], 256],
- 120393: [[78], 256],
- 120394: [[79], 256],
- 120395: [[80], 256],
- 120396: [[81], 256],
- 120397: [[82], 256],
- 120398: [[83], 256],
- 120399: [[84], 256],
- 120400: [[85], 256],
- 120401: [[86], 256],
- 120402: [[87], 256],
- 120403: [[88], 256],
- 120404: [[89], 256],
- 120405: [[90], 256],
- 120406: [[97], 256],
- 120407: [[98], 256],
- 120408: [[99], 256],
- 120409: [[100], 256],
- 120410: [[101], 256],
- 120411: [[102], 256],
- 120412: [[103], 256],
- 120413: [[104], 256],
- 120414: [[105], 256],
- 120415: [[106], 256],
- 120416: [[107], 256],
- 120417: [[108], 256],
- 120418: [[109], 256],
- 120419: [[110], 256],
- 120420: [[111], 256],
- 120421: [[112], 256],
- 120422: [[113], 256],
- 120423: [[114], 256],
- 120424: [[115], 256],
- 120425: [[116], 256],
- 120426: [[117], 256],
- 120427: [[118], 256],
- 120428: [[119], 256],
- 120429: [[120], 256],
- 120430: [[121], 256],
- 120431: [[122], 256],
- 120432: [[65], 256],
- 120433: [[66], 256],
- 120434: [[67], 256],
- 120435: [[68], 256],
- 120436: [[69], 256],
- 120437: [[70], 256],
- 120438: [[71], 256],
- 120439: [[72], 256],
- 120440: [[73], 256],
- 120441: [[74], 256],
- 120442: [[75], 256],
- 120443: [[76], 256],
- 120444: [[77], 256],
- 120445: [[78], 256],
- 120446: [[79], 256],
- 120447: [[80], 256],
- 120448: [[81], 256],
- 120449: [[82], 256],
- 120450: [[83], 256],
- 120451: [[84], 256],
- 120452: [[85], 256],
- 120453: [[86], 256],
- 120454: [[87], 256],
- 120455: [[88], 256],
- 120456: [[89], 256],
- 120457: [[90], 256],
- 120458: [[97], 256],
- 120459: [[98], 256],
- 120460: [[99], 256],
- 120461: [[100], 256],
- 120462: [[101], 256],
- 120463: [[102], 256],
- 120464: [[103], 256],
- 120465: [[104], 256],
- 120466: [[105], 256],
- 120467: [[106], 256],
- 120468: [[107], 256],
- 120469: [[108], 256],
- 120470: [[109], 256],
- 120471: [[110], 256],
- 120472: [[111], 256],
- 120473: [[112], 256],
- 120474: [[113], 256],
- 120475: [[114], 256],
- 120476: [[115], 256],
- 120477: [[116], 256],
- 120478: [[117], 256],
- 120479: [[118], 256],
- 120480: [[119], 256],
- 120481: [[120], 256],
- 120482: [[121], 256],
- 120483: [[122], 256],
- 120484: [[305], 256],
- 120485: [[567], 256],
- 120488: [[913], 256],
- 120489: [[914], 256],
- 120490: [[915], 256],
- 120491: [[916], 256],
- 120492: [[917], 256],
- 120493: [[918], 256],
- 120494: [[919], 256],
- 120495: [[920], 256],
- 120496: [[921], 256],
- 120497: [[922], 256],
- 120498: [[923], 256],
- 120499: [[924], 256],
- 120500: [[925], 256],
- 120501: [[926], 256],
- 120502: [[927], 256],
- 120503: [[928], 256],
- 120504: [[929], 256],
- 120505: [[1012], 256],
- 120506: [[931], 256],
- 120507: [[932], 256],
- 120508: [[933], 256],
- 120509: [[934], 256],
- 120510: [[935], 256],
- 120511: [[936], 256],
- 120512: [[937], 256],
- 120513: [[8711], 256],
- 120514: [[945], 256],
- 120515: [[946], 256],
- 120516: [[947], 256],
- 120517: [[948], 256],
- 120518: [[949], 256],
- 120519: [[950], 256],
- 120520: [[951], 256],
- 120521: [[952], 256],
- 120522: [[953], 256],
- 120523: [[954], 256],
- 120524: [[955], 256],
- 120525: [[956], 256],
- 120526: [[957], 256],
- 120527: [[958], 256],
- 120528: [[959], 256],
- 120529: [[960], 256],
- 120530: [[961], 256],
- 120531: [[962], 256],
- 120532: [[963], 256],
- 120533: [[964], 256],
- 120534: [[965], 256],
- 120535: [[966], 256],
- 120536: [[967], 256],
- 120537: [[968], 256],
- 120538: [[969], 256],
- 120539: [[8706], 256],
- 120540: [[1013], 256],
- 120541: [[977], 256],
- 120542: [[1008], 256],
- 120543: [[981], 256],
- 120544: [[1009], 256],
- 120545: [[982], 256],
- 120546: [[913], 256],
- 120547: [[914], 256],
- 120548: [[915], 256],
- 120549: [[916], 256],
- 120550: [[917], 256],
- 120551: [[918], 256],
- 120552: [[919], 256],
- 120553: [[920], 256],
- 120554: [[921], 256],
- 120555: [[922], 256],
- 120556: [[923], 256],
- 120557: [[924], 256],
- 120558: [[925], 256],
- 120559: [[926], 256],
- 120560: [[927], 256],
- 120561: [[928], 256],
- 120562: [[929], 256],
- 120563: [[1012], 256],
- 120564: [[931], 256],
- 120565: [[932], 256],
- 120566: [[933], 256],
- 120567: [[934], 256],
- 120568: [[935], 256],
- 120569: [[936], 256],
- 120570: [[937], 256],
- 120571: [[8711], 256],
- 120572: [[945], 256],
- 120573: [[946], 256],
- 120574: [[947], 256],
- 120575: [[948], 256]
- },
- 55040: {
- 120576: [[949], 256],
- 120577: [[950], 256],
- 120578: [[951], 256],
- 120579: [[952], 256],
- 120580: [[953], 256],
- 120581: [[954], 256],
- 120582: [[955], 256],
- 120583: [[956], 256],
- 120584: [[957], 256],
- 120585: [[958], 256],
- 120586: [[959], 256],
- 120587: [[960], 256],
- 120588: [[961], 256],
- 120589: [[962], 256],
- 120590: [[963], 256],
- 120591: [[964], 256],
- 120592: [[965], 256],
- 120593: [[966], 256],
- 120594: [[967], 256],
- 120595: [[968], 256],
- 120596: [[969], 256],
- 120597: [[8706], 256],
- 120598: [[1013], 256],
- 120599: [[977], 256],
- 120600: [[1008], 256],
- 120601: [[981], 256],
- 120602: [[1009], 256],
- 120603: [[982], 256],
- 120604: [[913], 256],
- 120605: [[914], 256],
- 120606: [[915], 256],
- 120607: [[916], 256],
- 120608: [[917], 256],
- 120609: [[918], 256],
- 120610: [[919], 256],
- 120611: [[920], 256],
- 120612: [[921], 256],
- 120613: [[922], 256],
- 120614: [[923], 256],
- 120615: [[924], 256],
- 120616: [[925], 256],
- 120617: [[926], 256],
- 120618: [[927], 256],
- 120619: [[928], 256],
- 120620: [[929], 256],
- 120621: [[1012], 256],
- 120622: [[931], 256],
- 120623: [[932], 256],
- 120624: [[933], 256],
- 120625: [[934], 256],
- 120626: [[935], 256],
- 120627: [[936], 256],
- 120628: [[937], 256],
- 120629: [[8711], 256],
- 120630: [[945], 256],
- 120631: [[946], 256],
- 120632: [[947], 256],
- 120633: [[948], 256],
- 120634: [[949], 256],
- 120635: [[950], 256],
- 120636: [[951], 256],
- 120637: [[952], 256],
- 120638: [[953], 256],
- 120639: [[954], 256],
- 120640: [[955], 256],
- 120641: [[956], 256],
- 120642: [[957], 256],
- 120643: [[958], 256],
- 120644: [[959], 256],
- 120645: [[960], 256],
- 120646: [[961], 256],
- 120647: [[962], 256],
- 120648: [[963], 256],
- 120649: [[964], 256],
- 120650: [[965], 256],
- 120651: [[966], 256],
- 120652: [[967], 256],
- 120653: [[968], 256],
- 120654: [[969], 256],
- 120655: [[8706], 256],
- 120656: [[1013], 256],
- 120657: [[977], 256],
- 120658: [[1008], 256],
- 120659: [[981], 256],
- 120660: [[1009], 256],
- 120661: [[982], 256],
- 120662: [[913], 256],
- 120663: [[914], 256],
- 120664: [[915], 256],
- 120665: [[916], 256],
- 120666: [[917], 256],
- 120667: [[918], 256],
- 120668: [[919], 256],
- 120669: [[920], 256],
- 120670: [[921], 256],
- 120671: [[922], 256],
- 120672: [[923], 256],
- 120673: [[924], 256],
- 120674: [[925], 256],
- 120675: [[926], 256],
- 120676: [[927], 256],
- 120677: [[928], 256],
- 120678: [[929], 256],
- 120679: [[1012], 256],
- 120680: [[931], 256],
- 120681: [[932], 256],
- 120682: [[933], 256],
- 120683: [[934], 256],
- 120684: [[935], 256],
- 120685: [[936], 256],
- 120686: [[937], 256],
- 120687: [[8711], 256],
- 120688: [[945], 256],
- 120689: [[946], 256],
- 120690: [[947], 256],
- 120691: [[948], 256],
- 120692: [[949], 256],
- 120693: [[950], 256],
- 120694: [[951], 256],
- 120695: [[952], 256],
- 120696: [[953], 256],
- 120697: [[954], 256],
- 120698: [[955], 256],
- 120699: [[956], 256],
- 120700: [[957], 256],
- 120701: [[958], 256],
- 120702: [[959], 256],
- 120703: [[960], 256],
- 120704: [[961], 256],
- 120705: [[962], 256],
- 120706: [[963], 256],
- 120707: [[964], 256],
- 120708: [[965], 256],
- 120709: [[966], 256],
- 120710: [[967], 256],
- 120711: [[968], 256],
- 120712: [[969], 256],
- 120713: [[8706], 256],
- 120714: [[1013], 256],
- 120715: [[977], 256],
- 120716: [[1008], 256],
- 120717: [[981], 256],
- 120718: [[1009], 256],
- 120719: [[982], 256],
- 120720: [[913], 256],
- 120721: [[914], 256],
- 120722: [[915], 256],
- 120723: [[916], 256],
- 120724: [[917], 256],
- 120725: [[918], 256],
- 120726: [[919], 256],
- 120727: [[920], 256],
- 120728: [[921], 256],
- 120729: [[922], 256],
- 120730: [[923], 256],
- 120731: [[924], 256],
- 120732: [[925], 256],
- 120733: [[926], 256],
- 120734: [[927], 256],
- 120735: [[928], 256],
- 120736: [[929], 256],
- 120737: [[1012], 256],
- 120738: [[931], 256],
- 120739: [[932], 256],
- 120740: [[933], 256],
- 120741: [[934], 256],
- 120742: [[935], 256],
- 120743: [[936], 256],
- 120744: [[937], 256],
- 120745: [[8711], 256],
- 120746: [[945], 256],
- 120747: [[946], 256],
- 120748: [[947], 256],
- 120749: [[948], 256],
- 120750: [[949], 256],
- 120751: [[950], 256],
- 120752: [[951], 256],
- 120753: [[952], 256],
- 120754: [[953], 256],
- 120755: [[954], 256],
- 120756: [[955], 256],
- 120757: [[956], 256],
- 120758: [[957], 256],
- 120759: [[958], 256],
- 120760: [[959], 256],
- 120761: [[960], 256],
- 120762: [[961], 256],
- 120763: [[962], 256],
- 120764: [[963], 256],
- 120765: [[964], 256],
- 120766: [[965], 256],
- 120767: [[966], 256],
- 120768: [[967], 256],
- 120769: [[968], 256],
- 120770: [[969], 256],
- 120771: [[8706], 256],
- 120772: [[1013], 256],
- 120773: [[977], 256],
- 120774: [[1008], 256],
- 120775: [[981], 256],
- 120776: [[1009], 256],
- 120777: [[982], 256],
- 120778: [[988], 256],
- 120779: [[989], 256],
- 120782: [[48], 256],
- 120783: [[49], 256],
- 120784: [[50], 256],
- 120785: [[51], 256],
- 120786: [[52], 256],
- 120787: [[53], 256],
- 120788: [[54], 256],
- 120789: [[55], 256],
- 120790: [[56], 256],
- 120791: [[57], 256],
- 120792: [[48], 256],
- 120793: [[49], 256],
- 120794: [[50], 256],
- 120795: [[51], 256],
- 120796: [[52], 256],
- 120797: [[53], 256],
- 120798: [[54], 256],
- 120799: [[55], 256],
- 120800: [[56], 256],
- 120801: [[57], 256],
- 120802: [[48], 256],
- 120803: [[49], 256],
- 120804: [[50], 256],
- 120805: [[51], 256],
- 120806: [[52], 256],
- 120807: [[53], 256],
- 120808: [[54], 256],
- 120809: [[55], 256],
- 120810: [[56], 256],
- 120811: [[57], 256],
- 120812: [[48], 256],
- 120813: [[49], 256],
- 120814: [[50], 256],
- 120815: [[51], 256],
- 120816: [[52], 256],
- 120817: [[53], 256],
- 120818: [[54], 256],
- 120819: [[55], 256],
- 120820: [[56], 256],
- 120821: [[57], 256],
- 120822: [[48], 256],
- 120823: [[49], 256],
- 120824: [[50], 256],
- 120825: [[51], 256],
- 120826: [[52], 256],
- 120827: [[53], 256],
- 120828: [[54], 256],
- 120829: [[55], 256],
- 120830: [[56], 256],
- 120831: [[57], 256]
- },
- 60928: {
- 126464: [[1575], 256],
- 126465: [[1576], 256],
- 126466: [[1580], 256],
- 126467: [[1583], 256],
- 126469: [[1608], 256],
- 126470: [[1586], 256],
- 126471: [[1581], 256],
- 126472: [[1591], 256],
- 126473: [[1610], 256],
- 126474: [[1603], 256],
- 126475: [[1604], 256],
- 126476: [[1605], 256],
- 126477: [[1606], 256],
- 126478: [[1587], 256],
- 126479: [[1593], 256],
- 126480: [[1601], 256],
- 126481: [[1589], 256],
- 126482: [[1602], 256],
- 126483: [[1585], 256],
- 126484: [[1588], 256],
- 126485: [[1578], 256],
- 126486: [[1579], 256],
- 126487: [[1582], 256],
- 126488: [[1584], 256],
- 126489: [[1590], 256],
- 126490: [[1592], 256],
- 126491: [[1594], 256],
- 126492: [[1646], 256],
- 126493: [[1722], 256],
- 126494: [[1697], 256],
- 126495: [[1647], 256],
- 126497: [[1576], 256],
- 126498: [[1580], 256],
- 126500: [[1607], 256],
- 126503: [[1581], 256],
- 126505: [[1610], 256],
- 126506: [[1603], 256],
- 126507: [[1604], 256],
- 126508: [[1605], 256],
- 126509: [[1606], 256],
- 126510: [[1587], 256],
- 126511: [[1593], 256],
- 126512: [[1601], 256],
- 126513: [[1589], 256],
- 126514: [[1602], 256],
- 126516: [[1588], 256],
- 126517: [[1578], 256],
- 126518: [[1579], 256],
- 126519: [[1582], 256],
- 126521: [[1590], 256],
- 126523: [[1594], 256],
- 126530: [[1580], 256],
- 126535: [[1581], 256],
- 126537: [[1610], 256],
- 126539: [[1604], 256],
- 126541: [[1606], 256],
- 126542: [[1587], 256],
- 126543: [[1593], 256],
- 126545: [[1589], 256],
- 126546: [[1602], 256],
- 126548: [[1588], 256],
- 126551: [[1582], 256],
- 126553: [[1590], 256],
- 126555: [[1594], 256],
- 126557: [[1722], 256],
- 126559: [[1647], 256],
- 126561: [[1576], 256],
- 126562: [[1580], 256],
- 126564: [[1607], 256],
- 126567: [[1581], 256],
- 126568: [[1591], 256],
- 126569: [[1610], 256],
- 126570: [[1603], 256],
- 126572: [[1605], 256],
- 126573: [[1606], 256],
- 126574: [[1587], 256],
- 126575: [[1593], 256],
- 126576: [[1601], 256],
- 126577: [[1589], 256],
- 126578: [[1602], 256],
- 126580: [[1588], 256],
- 126581: [[1578], 256],
- 126582: [[1579], 256],
- 126583: [[1582], 256],
- 126585: [[1590], 256],
- 126586: [[1592], 256],
- 126587: [[1594], 256],
- 126588: [[1646], 256],
- 126590: [[1697], 256],
- 126592: [[1575], 256],
- 126593: [[1576], 256],
- 126594: [[1580], 256],
- 126595: [[1583], 256],
- 126596: [[1607], 256],
- 126597: [[1608], 256],
- 126598: [[1586], 256],
- 126599: [[1581], 256],
- 126600: [[1591], 256],
- 126601: [[1610], 256],
- 126603: [[1604], 256],
- 126604: [[1605], 256],
- 126605: [[1606], 256],
- 126606: [[1587], 256],
- 126607: [[1593], 256],
- 126608: [[1601], 256],
- 126609: [[1589], 256],
- 126610: [[1602], 256],
- 126611: [[1585], 256],
- 126612: [[1588], 256],
- 126613: [[1578], 256],
- 126614: [[1579], 256],
- 126615: [[1582], 256],
- 126616: [[1584], 256],
- 126617: [[1590], 256],
- 126618: [[1592], 256],
- 126619: [[1594], 256],
- 126625: [[1576], 256],
- 126626: [[1580], 256],
- 126627: [[1583], 256],
- 126629: [[1608], 256],
- 126630: [[1586], 256],
- 126631: [[1581], 256],
- 126632: [[1591], 256],
- 126633: [[1610], 256],
- 126635: [[1604], 256],
- 126636: [[1605], 256],
- 126637: [[1606], 256],
- 126638: [[1587], 256],
- 126639: [[1593], 256],
- 126640: [[1601], 256],
- 126641: [[1589], 256],
- 126642: [[1602], 256],
- 126643: [[1585], 256],
- 126644: [[1588], 256],
- 126645: [[1578], 256],
- 126646: [[1579], 256],
- 126647: [[1582], 256],
- 126648: [[1584], 256],
- 126649: [[1590], 256],
- 126650: [[1592], 256],
- 126651: [[1594], 256]
- },
- 61696: {
- 127232: [[48, 46], 256],
- 127233: [[48, 44], 256],
- 127234: [[49, 44], 256],
- 127235: [[50, 44], 256],
- 127236: [[51, 44], 256],
- 127237: [[52, 44], 256],
- 127238: [[53, 44], 256],
- 127239: [[54, 44], 256],
- 127240: [[55, 44], 256],
- 127241: [[56, 44], 256],
- 127242: [[57, 44], 256],
- 127248: [[40, 65, 41], 256],
- 127249: [[40, 66, 41], 256],
- 127250: [[40, 67, 41], 256],
- 127251: [[40, 68, 41], 256],
- 127252: [[40, 69, 41], 256],
- 127253: [[40, 70, 41], 256],
- 127254: [[40, 71, 41], 256],
- 127255: [[40, 72, 41], 256],
- 127256: [[40, 73, 41], 256],
- 127257: [[40, 74, 41], 256],
- 127258: [[40, 75, 41], 256],
- 127259: [[40, 76, 41], 256],
- 127260: [[40, 77, 41], 256],
- 127261: [[40, 78, 41], 256],
- 127262: [[40, 79, 41], 256],
- 127263: [[40, 80, 41], 256],
- 127264: [[40, 81, 41], 256],
- 127265: [[40, 82, 41], 256],
- 127266: [[40, 83, 41], 256],
- 127267: [[40, 84, 41], 256],
- 127268: [[40, 85, 41], 256],
- 127269: [[40, 86, 41], 256],
- 127270: [[40, 87, 41], 256],
- 127271: [[40, 88, 41], 256],
- 127272: [[40, 89, 41], 256],
- 127273: [[40, 90, 41], 256],
- 127274: [[12308, 83, 12309], 256],
- 127275: [[67], 256],
- 127276: [[82], 256],
- 127277: [[67, 68], 256],
- 127278: [[87, 90], 256],
- 127280: [[65], 256],
- 127281: [[66], 256],
- 127282: [[67], 256],
- 127283: [[68], 256],
- 127284: [[69], 256],
- 127285: [[70], 256],
- 127286: [[71], 256],
- 127287: [[72], 256],
- 127288: [[73], 256],
- 127289: [[74], 256],
- 127290: [[75], 256],
- 127291: [[76], 256],
- 127292: [[77], 256],
- 127293: [[78], 256],
- 127294: [[79], 256],
- 127295: [[80], 256],
- 127296: [[81], 256],
- 127297: [[82], 256],
- 127298: [[83], 256],
- 127299: [[84], 256],
- 127300: [[85], 256],
- 127301: [[86], 256],
- 127302: [[87], 256],
- 127303: [[88], 256],
- 127304: [[89], 256],
- 127305: [[90], 256],
- 127306: [[72, 86], 256],
- 127307: [[77, 86], 256],
- 127308: [[83, 68], 256],
- 127309: [[83, 83], 256],
- 127310: [[80, 80, 86], 256],
- 127311: [[87, 67], 256],
- 127338: [[77, 67], 256],
- 127339: [[77, 68], 256],
- 127376: [[68, 74], 256]
- },
- 61952: {
- 127488: [[12411, 12363], 256],
- 127489: [[12467, 12467], 256],
- 127490: [[12469], 256],
- 127504: [[25163], 256],
- 127505: [[23383], 256],
- 127506: [[21452], 256],
- 127507: [[12487], 256],
- 127508: [[20108], 256],
- 127509: [[22810], 256],
- 127510: [[35299], 256],
- 127511: [[22825], 256],
- 127512: [[20132], 256],
- 127513: [[26144], 256],
- 127514: [[28961], 256],
- 127515: [[26009], 256],
- 127516: [[21069], 256],
- 127517: [[24460], 256],
- 127518: [[20877], 256],
- 127519: [[26032], 256],
- 127520: [[21021], 256],
- 127521: [[32066], 256],
- 127522: [[29983], 256],
- 127523: [[36009], 256],
- 127524: [[22768], 256],
- 127525: [[21561], 256],
- 127526: [[28436], 256],
- 127527: [[25237], 256],
- 127528: [[25429], 256],
- 127529: [[19968], 256],
- 127530: [[19977], 256],
- 127531: [[36938], 256],
- 127532: [[24038], 256],
- 127533: [[20013], 256],
- 127534: [[21491], 256],
- 127535: [[25351], 256],
- 127536: [[36208], 256],
- 127537: [[25171], 256],
- 127538: [[31105], 256],
- 127539: [[31354], 256],
- 127540: [[21512], 256],
- 127541: [[28288], 256],
- 127542: [[26377], 256],
- 127543: [[26376], 256],
- 127544: [[30003], 256],
- 127545: [[21106], 256],
- 127546: [[21942], 256],
- 127552: [[12308, 26412, 12309], 256],
- 127553: [[12308, 19977, 12309], 256],
- 127554: [[12308, 20108, 12309], 256],
- 127555: [[12308, 23433, 12309], 256],
- 127556: [[12308, 28857, 12309], 256],
- 127557: [[12308, 25171, 12309], 256],
- 127558: [[12308, 30423, 12309], 256],
- 127559: [[12308, 21213, 12309], 256],
- 127560: [[12308, 25943, 12309], 256],
- 127568: [[24471], 256],
- 127569: [[21487], 256]
- },
- 63488: {
- 194560: [[20029]],
- 194561: [[20024]],
- 194562: [[20033]],
- 194563: [[131362]],
- 194564: [[20320]],
- 194565: [[20398]],
- 194566: [[20411]],
- 194567: [[20482]],
- 194568: [[20602]],
- 194569: [[20633]],
- 194570: [[20711]],
- 194571: [[20687]],
- 194572: [[13470]],
- 194573: [[132666]],
- 194574: [[20813]],
- 194575: [[20820]],
- 194576: [[20836]],
- 194577: [[20855]],
- 194578: [[132380]],
- 194579: [[13497]],
- 194580: [[20839]],
- 194581: [[20877]],
- 194582: [[132427]],
- 194583: [[20887]],
- 194584: [[20900]],
- 194585: [[20172]],
- 194586: [[20908]],
- 194587: [[20917]],
- 194588: [[168415]],
- 194589: [[20981]],
- 194590: [[20995]],
- 194591: [[13535]],
- 194592: [[21051]],
- 194593: [[21062]],
- 194594: [[21106]],
- 194595: [[21111]],
- 194596: [[13589]],
- 194597: [[21191]],
- 194598: [[21193]],
- 194599: [[21220]],
- 194600: [[21242]],
- 194601: [[21253]],
- 194602: [[21254]],
- 194603: [[21271]],
- 194604: [[21321]],
- 194605: [[21329]],
- 194606: [[21338]],
- 194607: [[21363]],
- 194608: [[21373]],
- 194609: [[21375]],
- 194610: [[21375]],
- 194611: [[21375]],
- 194612: [[133676]],
- 194613: [[28784]],
- 194614: [[21450]],
- 194615: [[21471]],
- 194616: [[133987]],
- 194617: [[21483]],
- 194618: [[21489]],
- 194619: [[21510]],
- 194620: [[21662]],
- 194621: [[21560]],
- 194622: [[21576]],
- 194623: [[21608]],
- 194624: [[21666]],
- 194625: [[21750]],
- 194626: [[21776]],
- 194627: [[21843]],
- 194628: [[21859]],
- 194629: [[21892]],
- 194630: [[21892]],
- 194631: [[21913]],
- 194632: [[21931]],
- 194633: [[21939]],
- 194634: [[21954]],
- 194635: [[22294]],
- 194636: [[22022]],
- 194637: [[22295]],
- 194638: [[22097]],
- 194639: [[22132]],
- 194640: [[20999]],
- 194641: [[22766]],
- 194642: [[22478]],
- 194643: [[22516]],
- 194644: [[22541]],
- 194645: [[22411]],
- 194646: [[22578]],
- 194647: [[22577]],
- 194648: [[22700]],
- 194649: [[136420]],
- 194650: [[22770]],
- 194651: [[22775]],
- 194652: [[22790]],
- 194653: [[22810]],
- 194654: [[22818]],
- 194655: [[22882]],
- 194656: [[136872]],
- 194657: [[136938]],
- 194658: [[23020]],
- 194659: [[23067]],
- 194660: [[23079]],
- 194661: [[23000]],
- 194662: [[23142]],
- 194663: [[14062]],
- 194664: [[14076]],
- 194665: [[23304]],
- 194666: [[23358]],
- 194667: [[23358]],
- 194668: [[137672]],
- 194669: [[23491]],
- 194670: [[23512]],
- 194671: [[23527]],
- 194672: [[23539]],
- 194673: [[138008]],
- 194674: [[23551]],
- 194675: [[23558]],
- 194676: [[24403]],
- 194677: [[23586]],
- 194678: [[14209]],
- 194679: [[23648]],
- 194680: [[23662]],
- 194681: [[23744]],
- 194682: [[23693]],
- 194683: [[138724]],
- 194684: [[23875]],
- 194685: [[138726]],
- 194686: [[23918]],
- 194687: [[23915]],
- 194688: [[23932]],
- 194689: [[24033]],
- 194690: [[24034]],
- 194691: [[14383]],
- 194692: [[24061]],
- 194693: [[24104]],
- 194694: [[24125]],
- 194695: [[24169]],
- 194696: [[14434]],
- 194697: [[139651]],
- 194698: [[14460]],
- 194699: [[24240]],
- 194700: [[24243]],
- 194701: [[24246]],
- 194702: [[24266]],
- 194703: [[172946]],
- 194704: [[24318]],
- 194705: [[140081]],
- 194706: [[140081]],
- 194707: [[33281]],
- 194708: [[24354]],
- 194709: [[24354]],
- 194710: [[14535]],
- 194711: [[144056]],
- 194712: [[156122]],
- 194713: [[24418]],
- 194714: [[24427]],
- 194715: [[14563]],
- 194716: [[24474]],
- 194717: [[24525]],
- 194718: [[24535]],
- 194719: [[24569]],
- 194720: [[24705]],
- 194721: [[14650]],
- 194722: [[14620]],
- 194723: [[24724]],
- 194724: [[141012]],
- 194725: [[24775]],
- 194726: [[24904]],
- 194727: [[24908]],
- 194728: [[24910]],
- 194729: [[24908]],
- 194730: [[24954]],
- 194731: [[24974]],
- 194732: [[25010]],
- 194733: [[24996]],
- 194734: [[25007]],
- 194735: [[25054]],
- 194736: [[25074]],
- 194737: [[25078]],
- 194738: [[25104]],
- 194739: [[25115]],
- 194740: [[25181]],
- 194741: [[25265]],
- 194742: [[25300]],
- 194743: [[25424]],
- 194744: [[142092]],
- 194745: [[25405]],
- 194746: [[25340]],
- 194747: [[25448]],
- 194748: [[25475]],
- 194749: [[25572]],
- 194750: [[142321]],
- 194751: [[25634]],
- 194752: [[25541]],
- 194753: [[25513]],
- 194754: [[14894]],
- 194755: [[25705]],
- 194756: [[25726]],
- 194757: [[25757]],
- 194758: [[25719]],
- 194759: [[14956]],
- 194760: [[25935]],
- 194761: [[25964]],
- 194762: [[143370]],
- 194763: [[26083]],
- 194764: [[26360]],
- 194765: [[26185]],
- 194766: [[15129]],
- 194767: [[26257]],
- 194768: [[15112]],
- 194769: [[15076]],
- 194770: [[20882]],
- 194771: [[20885]],
- 194772: [[26368]],
- 194773: [[26268]],
- 194774: [[32941]],
- 194775: [[17369]],
- 194776: [[26391]],
- 194777: [[26395]],
- 194778: [[26401]],
- 194779: [[26462]],
- 194780: [[26451]],
- 194781: [[144323]],
- 194782: [[15177]],
- 194783: [[26618]],
- 194784: [[26501]],
- 194785: [[26706]],
- 194786: [[26757]],
- 194787: [[144493]],
- 194788: [[26766]],
- 194789: [[26655]],
- 194790: [[26900]],
- 194791: [[15261]],
- 194792: [[26946]],
- 194793: [[27043]],
- 194794: [[27114]],
- 194795: [[27304]],
- 194796: [[145059]],
- 194797: [[27355]],
- 194798: [[15384]],
- 194799: [[27425]],
- 194800: [[145575]],
- 194801: [[27476]],
- 194802: [[15438]],
- 194803: [[27506]],
- 194804: [[27551]],
- 194805: [[27578]],
- 194806: [[27579]],
- 194807: [[146061]],
- 194808: [[138507]],
- 194809: [[146170]],
- 194810: [[27726]],
- 194811: [[146620]],
- 194812: [[27839]],
- 194813: [[27853]],
- 194814: [[27751]],
- 194815: [[27926]]
- },
- 63744: {
- 63744: [[35912]],
- 63745: [[26356]],
- 63746: [[36554]],
- 63747: [[36040]],
- 63748: [[28369]],
- 63749: [[20018]],
- 63750: [[21477]],
- 63751: [[40860]],
- 63752: [[40860]],
- 63753: [[22865]],
- 63754: [[37329]],
- 63755: [[21895]],
- 63756: [[22856]],
- 63757: [[25078]],
- 63758: [[30313]],
- 63759: [[32645]],
- 63760: [[34367]],
- 63761: [[34746]],
- 63762: [[35064]],
- 63763: [[37007]],
- 63764: [[27138]],
- 63765: [[27931]],
- 63766: [[28889]],
- 63767: [[29662]],
- 63768: [[33853]],
- 63769: [[37226]],
- 63770: [[39409]],
- 63771: [[20098]],
- 63772: [[21365]],
- 63773: [[27396]],
- 63774: [[29211]],
- 63775: [[34349]],
- 63776: [[40478]],
- 63777: [[23888]],
- 63778: [[28651]],
- 63779: [[34253]],
- 63780: [[35172]],
- 63781: [[25289]],
- 63782: [[33240]],
- 63783: [[34847]],
- 63784: [[24266]],
- 63785: [[26391]],
- 63786: [[28010]],
- 63787: [[29436]],
- 63788: [[37070]],
- 63789: [[20358]],
- 63790: [[20919]],
- 63791: [[21214]],
- 63792: [[25796]],
- 63793: [[27347]],
- 63794: [[29200]],
- 63795: [[30439]],
- 63796: [[32769]],
- 63797: [[34310]],
- 63798: [[34396]],
- 63799: [[36335]],
- 63800: [[38706]],
- 63801: [[39791]],
- 63802: [[40442]],
- 63803: [[30860]],
- 63804: [[31103]],
- 63805: [[32160]],
- 63806: [[33737]],
- 63807: [[37636]],
- 63808: [[40575]],
- 63809: [[35542]],
- 63810: [[22751]],
- 63811: [[24324]],
- 63812: [[31840]],
- 63813: [[32894]],
- 63814: [[29282]],
- 63815: [[30922]],
- 63816: [[36034]],
- 63817: [[38647]],
- 63818: [[22744]],
- 63819: [[23650]],
- 63820: [[27155]],
- 63821: [[28122]],
- 63822: [[28431]],
- 63823: [[32047]],
- 63824: [[32311]],
- 63825: [[38475]],
- 63826: [[21202]],
- 63827: [[32907]],
- 63828: [[20956]],
- 63829: [[20940]],
- 63830: [[31260]],
- 63831: [[32190]],
- 63832: [[33777]],
- 63833: [[38517]],
- 63834: [[35712]],
- 63835: [[25295]],
- 63836: [[27138]],
- 63837: [[35582]],
- 63838: [[20025]],
- 63839: [[23527]],
- 63840: [[24594]],
- 63841: [[29575]],
- 63842: [[30064]],
- 63843: [[21271]],
- 63844: [[30971]],
- 63845: [[20415]],
- 63846: [[24489]],
- 63847: [[19981]],
- 63848: [[27852]],
- 63849: [[25976]],
- 63850: [[32034]],
- 63851: [[21443]],
- 63852: [[22622]],
- 63853: [[30465]],
- 63854: [[33865]],
- 63855: [[35498]],
- 63856: [[27578]],
- 63857: [[36784]],
- 63858: [[27784]],
- 63859: [[25342]],
- 63860: [[33509]],
- 63861: [[25504]],
- 63862: [[30053]],
- 63863: [[20142]],
- 63864: [[20841]],
- 63865: [[20937]],
- 63866: [[26753]],
- 63867: [[31975]],
- 63868: [[33391]],
- 63869: [[35538]],
- 63870: [[37327]],
- 63871: [[21237]],
- 63872: [[21570]],
- 63873: [[22899]],
- 63874: [[24300]],
- 63875: [[26053]],
- 63876: [[28670]],
- 63877: [[31018]],
- 63878: [[38317]],
- 63879: [[39530]],
- 63880: [[40599]],
- 63881: [[40654]],
- 63882: [[21147]],
- 63883: [[26310]],
- 63884: [[27511]],
- 63885: [[36706]],
- 63886: [[24180]],
- 63887: [[24976]],
- 63888: [[25088]],
- 63889: [[25754]],
- 63890: [[28451]],
- 63891: [[29001]],
- 63892: [[29833]],
- 63893: [[31178]],
- 63894: [[32244]],
- 63895: [[32879]],
- 63896: [[36646]],
- 63897: [[34030]],
- 63898: [[36899]],
- 63899: [[37706]],
- 63900: [[21015]],
- 63901: [[21155]],
- 63902: [[21693]],
- 63903: [[28872]],
- 63904: [[35010]],
- 63905: [[35498]],
- 63906: [[24265]],
- 63907: [[24565]],
- 63908: [[25467]],
- 63909: [[27566]],
- 63910: [[31806]],
- 63911: [[29557]],
- 63912: [[20196]],
- 63913: [[22265]],
- 63914: [[23527]],
- 63915: [[23994]],
- 63916: [[24604]],
- 63917: [[29618]],
- 63918: [[29801]],
- 63919: [[32666]],
- 63920: [[32838]],
- 63921: [[37428]],
- 63922: [[38646]],
- 63923: [[38728]],
- 63924: [[38936]],
- 63925: [[20363]],
- 63926: [[31150]],
- 63927: [[37300]],
- 63928: [[38584]],
- 63929: [[24801]],
- 63930: [[20102]],
- 63931: [[20698]],
- 63932: [[23534]],
- 63933: [[23615]],
- 63934: [[26009]],
- 63935: [[27138]],
- 63936: [[29134]],
- 63937: [[30274]],
- 63938: [[34044]],
- 63939: [[36988]],
- 63940: [[40845]],
- 63941: [[26248]],
- 63942: [[38446]],
- 63943: [[21129]],
- 63944: [[26491]],
- 63945: [[26611]],
- 63946: [[27969]],
- 63947: [[28316]],
- 63948: [[29705]],
- 63949: [[30041]],
- 63950: [[30827]],
- 63951: [[32016]],
- 63952: [[39006]],
- 63953: [[20845]],
- 63954: [[25134]],
- 63955: [[38520]],
- 63956: [[20523]],
- 63957: [[23833]],
- 63958: [[28138]],
- 63959: [[36650]],
- 63960: [[24459]],
- 63961: [[24900]],
- 63962: [[26647]],
- 63963: [[29575]],
- 63964: [[38534]],
- 63965: [[21033]],
- 63966: [[21519]],
- 63967: [[23653]],
- 63968: [[26131]],
- 63969: [[26446]],
- 63970: [[26792]],
- 63971: [[27877]],
- 63972: [[29702]],
- 63973: [[30178]],
- 63974: [[32633]],
- 63975: [[35023]],
- 63976: [[35041]],
- 63977: [[37324]],
- 63978: [[38626]],
- 63979: [[21311]],
- 63980: [[28346]],
- 63981: [[21533]],
- 63982: [[29136]],
- 63983: [[29848]],
- 63984: [[34298]],
- 63985: [[38563]],
- 63986: [[40023]],
- 63987: [[40607]],
- 63988: [[26519]],
- 63989: [[28107]],
- 63990: [[33256]],
- 63991: [[31435]],
- 63992: [[31520]],
- 63993: [[31890]],
- 63994: [[29376]],
- 63995: [[28825]],
- 63996: [[35672]],
- 63997: [[20160]],
- 63998: [[33590]],
- 63999: [[21050]],
- 194816: [[27966]],
- 194817: [[28023]],
- 194818: [[27969]],
- 194819: [[28009]],
- 194820: [[28024]],
- 194821: [[28037]],
- 194822: [[146718]],
- 194823: [[27956]],
- 194824: [[28207]],
- 194825: [[28270]],
- 194826: [[15667]],
- 194827: [[28363]],
- 194828: [[28359]],
- 194829: [[147153]],
- 194830: [[28153]],
- 194831: [[28526]],
- 194832: [[147294]],
- 194833: [[147342]],
- 194834: [[28614]],
- 194835: [[28729]],
- 194836: [[28702]],
- 194837: [[28699]],
- 194838: [[15766]],
- 194839: [[28746]],
- 194840: [[28797]],
- 194841: [[28791]],
- 194842: [[28845]],
- 194843: [[132389]],
- 194844: [[28997]],
- 194845: [[148067]],
- 194846: [[29084]],
- 194847: [[148395]],
- 194848: [[29224]],
- 194849: [[29237]],
- 194850: [[29264]],
- 194851: [[149000]],
- 194852: [[29312]],
- 194853: [[29333]],
- 194854: [[149301]],
- 194855: [[149524]],
- 194856: [[29562]],
- 194857: [[29579]],
- 194858: [[16044]],
- 194859: [[29605]],
- 194860: [[16056]],
- 194861: [[16056]],
- 194862: [[29767]],
- 194863: [[29788]],
- 194864: [[29809]],
- 194865: [[29829]],
- 194866: [[29898]],
- 194867: [[16155]],
- 194868: [[29988]],
- 194869: [[150582]],
- 194870: [[30014]],
- 194871: [[150674]],
- 194872: [[30064]],
- 194873: [[139679]],
- 194874: [[30224]],
- 194875: [[151457]],
- 194876: [[151480]],
- 194877: [[151620]],
- 194878: [[16380]],
- 194879: [[16392]],
- 194880: [[30452]],
- 194881: [[151795]],
- 194882: [[151794]],
- 194883: [[151833]],
- 194884: [[151859]],
- 194885: [[30494]],
- 194886: [[30495]],
- 194887: [[30495]],
- 194888: [[30538]],
- 194889: [[16441]],
- 194890: [[30603]],
- 194891: [[16454]],
- 194892: [[16534]],
- 194893: [[152605]],
- 194894: [[30798]],
- 194895: [[30860]],
- 194896: [[30924]],
- 194897: [[16611]],
- 194898: [[153126]],
- 194899: [[31062]],
- 194900: [[153242]],
- 194901: [[153285]],
- 194902: [[31119]],
- 194903: [[31211]],
- 194904: [[16687]],
- 194905: [[31296]],
- 194906: [[31306]],
- 194907: [[31311]],
- 194908: [[153980]],
- 194909: [[154279]],
- 194910: [[154279]],
- 194911: [[31470]],
- 194912: [[16898]],
- 194913: [[154539]],
- 194914: [[31686]],
- 194915: [[31689]],
- 194916: [[16935]],
- 194917: [[154752]],
- 194918: [[31954]],
- 194919: [[17056]],
- 194920: [[31976]],
- 194921: [[31971]],
- 194922: [[32000]],
- 194923: [[155526]],
- 194924: [[32099]],
- 194925: [[17153]],
- 194926: [[32199]],
- 194927: [[32258]],
- 194928: [[32325]],
- 194929: [[17204]],
- 194930: [[156200]],
- 194931: [[156231]],
- 194932: [[17241]],
- 194933: [[156377]],
- 194934: [[32634]],
- 194935: [[156478]],
- 194936: [[32661]],
- 194937: [[32762]],
- 194938: [[32773]],
- 194939: [[156890]],
- 194940: [[156963]],
- 194941: [[32864]],
- 194942: [[157096]],
- 194943: [[32880]],
- 194944: [[144223]],
- 194945: [[17365]],
- 194946: [[32946]],
- 194947: [[33027]],
- 194948: [[17419]],
- 194949: [[33086]],
- 194950: [[23221]],
- 194951: [[157607]],
- 194952: [[157621]],
- 194953: [[144275]],
- 194954: [[144284]],
- 194955: [[33281]],
- 194956: [[33284]],
- 194957: [[36766]],
- 194958: [[17515]],
- 194959: [[33425]],
- 194960: [[33419]],
- 194961: [[33437]],
- 194962: [[21171]],
- 194963: [[33457]],
- 194964: [[33459]],
- 194965: [[33469]],
- 194966: [[33510]],
- 194967: [[158524]],
- 194968: [[33509]],
- 194969: [[33565]],
- 194970: [[33635]],
- 194971: [[33709]],
- 194972: [[33571]],
- 194973: [[33725]],
- 194974: [[33767]],
- 194975: [[33879]],
- 194976: [[33619]],
- 194977: [[33738]],
- 194978: [[33740]],
- 194979: [[33756]],
- 194980: [[158774]],
- 194981: [[159083]],
- 194982: [[158933]],
- 194983: [[17707]],
- 194984: [[34033]],
- 194985: [[34035]],
- 194986: [[34070]],
- 194987: [[160714]],
- 194988: [[34148]],
- 194989: [[159532]],
- 194990: [[17757]],
- 194991: [[17761]],
- 194992: [[159665]],
- 194993: [[159954]],
- 194994: [[17771]],
- 194995: [[34384]],
- 194996: [[34396]],
- 194997: [[34407]],
- 194998: [[34409]],
- 194999: [[34473]],
- 195000: [[34440]],
- 195001: [[34574]],
- 195002: [[34530]],
- 195003: [[34681]],
- 195004: [[34600]],
- 195005: [[34667]],
- 195006: [[34694]],
- 195007: [[17879]],
- 195008: [[34785]],
- 195009: [[34817]],
- 195010: [[17913]],
- 195011: [[34912]],
- 195012: [[34915]],
- 195013: [[161383]],
- 195014: [[35031]],
- 195015: [[35038]],
- 195016: [[17973]],
- 195017: [[35066]],
- 195018: [[13499]],
- 195019: [[161966]],
- 195020: [[162150]],
- 195021: [[18110]],
- 195022: [[18119]],
- 195023: [[35488]],
- 195024: [[35565]],
- 195025: [[35722]],
- 195026: [[35925]],
- 195027: [[162984]],
- 195028: [[36011]],
- 195029: [[36033]],
- 195030: [[36123]],
- 195031: [[36215]],
- 195032: [[163631]],
- 195033: [[133124]],
- 195034: [[36299]],
- 195035: [[36284]],
- 195036: [[36336]],
- 195037: [[133342]],
- 195038: [[36564]],
- 195039: [[36664]],
- 195040: [[165330]],
- 195041: [[165357]],
- 195042: [[37012]],
- 195043: [[37105]],
- 195044: [[37137]],
- 195045: [[165678]],
- 195046: [[37147]],
- 195047: [[37432]],
- 195048: [[37591]],
- 195049: [[37592]],
- 195050: [[37500]],
- 195051: [[37881]],
- 195052: [[37909]],
- 195053: [[166906]],
- 195054: [[38283]],
- 195055: [[18837]],
- 195056: [[38327]],
- 195057: [[167287]],
- 195058: [[18918]],
- 195059: [[38595]],
- 195060: [[23986]],
- 195061: [[38691]],
- 195062: [[168261]],
- 195063: [[168474]],
- 195064: [[19054]],
- 195065: [[19062]],
- 195066: [[38880]],
- 195067: [[168970]],
- 195068: [[19122]],
- 195069: [[169110]],
- 195070: [[38923]],
- 195071: [[38923]]
- },
- 64000: {
- 64000: [[20999]],
- 64001: [[24230]],
- 64002: [[25299]],
- 64003: [[31958]],
- 64004: [[23429]],
- 64005: [[27934]],
- 64006: [[26292]],
- 64007: [[36667]],
- 64008: [[34892]],
- 64009: [[38477]],
- 64010: [[35211]],
- 64011: [[24275]],
- 64012: [[20800]],
- 64013: [[21952]],
- 64016: [[22618]],
- 64018: [[26228]],
- 64021: [[20958]],
- 64022: [[29482]],
- 64023: [[30410]],
- 64024: [[31036]],
- 64025: [[31070]],
- 64026: [[31077]],
- 64027: [[31119]],
- 64028: [[38742]],
- 64029: [[31934]],
- 64030: [[32701]],
- 64032: [[34322]],
- 64034: [[35576]],
- 64037: [[36920]],
- 64038: [[37117]],
- 64042: [[39151]],
- 64043: [[39164]],
- 64044: [[39208]],
- 64045: [[40372]],
- 64046: [[37086]],
- 64047: [[38583]],
- 64048: [[20398]],
- 64049: [[20711]],
- 64050: [[20813]],
- 64051: [[21193]],
- 64052: [[21220]],
- 64053: [[21329]],
- 64054: [[21917]],
- 64055: [[22022]],
- 64056: [[22120]],
- 64057: [[22592]],
- 64058: [[22696]],
- 64059: [[23652]],
- 64060: [[23662]],
- 64061: [[24724]],
- 64062: [[24936]],
- 64063: [[24974]],
- 64064: [[25074]],
- 64065: [[25935]],
- 64066: [[26082]],
- 64067: [[26257]],
- 64068: [[26757]],
- 64069: [[28023]],
- 64070: [[28186]],
- 64071: [[28450]],
- 64072: [[29038]],
- 64073: [[29227]],
- 64074: [[29730]],
- 64075: [[30865]],
- 64076: [[31038]],
- 64077: [[31049]],
- 64078: [[31048]],
- 64079: [[31056]],
- 64080: [[31062]],
- 64081: [[31069]],
- 64082: [[31117]],
- 64083: [[31118]],
- 64084: [[31296]],
- 64085: [[31361]],
- 64086: [[31680]],
- 64087: [[32244]],
- 64088: [[32265]],
- 64089: [[32321]],
- 64090: [[32626]],
- 64091: [[32773]],
- 64092: [[33261]],
- 64093: [[33401]],
- 64094: [[33401]],
- 64095: [[33879]],
- 64096: [[35088]],
- 64097: [[35222]],
- 64098: [[35585]],
- 64099: [[35641]],
- 64100: [[36051]],
- 64101: [[36104]],
- 64102: [[36790]],
- 64103: [[36920]],
- 64104: [[38627]],
- 64105: [[38911]],
- 64106: [[38971]],
- 64107: [[24693]],
- 64108: [[148206]],
- 64109: [[33304]],
- 64112: [[20006]],
- 64113: [[20917]],
- 64114: [[20840]],
- 64115: [[20352]],
- 64116: [[20805]],
- 64117: [[20864]],
- 64118: [[21191]],
- 64119: [[21242]],
- 64120: [[21917]],
- 64121: [[21845]],
- 64122: [[21913]],
- 64123: [[21986]],
- 64124: [[22618]],
- 64125: [[22707]],
- 64126: [[22852]],
- 64127: [[22868]],
- 64128: [[23138]],
- 64129: [[23336]],
- 64130: [[24274]],
- 64131: [[24281]],
- 64132: [[24425]],
- 64133: [[24493]],
- 64134: [[24792]],
- 64135: [[24910]],
- 64136: [[24840]],
- 64137: [[24974]],
- 64138: [[24928]],
- 64139: [[25074]],
- 64140: [[25140]],
- 64141: [[25540]],
- 64142: [[25628]],
- 64143: [[25682]],
- 64144: [[25942]],
- 64145: [[26228]],
- 64146: [[26391]],
- 64147: [[26395]],
- 64148: [[26454]],
- 64149: [[27513]],
- 64150: [[27578]],
- 64151: [[27969]],
- 64152: [[28379]],
- 64153: [[28363]],
- 64154: [[28450]],
- 64155: [[28702]],
- 64156: [[29038]],
- 64157: [[30631]],
- 64158: [[29237]],
- 64159: [[29359]],
- 64160: [[29482]],
- 64161: [[29809]],
- 64162: [[29958]],
- 64163: [[30011]],
- 64164: [[30237]],
- 64165: [[30239]],
- 64166: [[30410]],
- 64167: [[30427]],
- 64168: [[30452]],
- 64169: [[30538]],
- 64170: [[30528]],
- 64171: [[30924]],
- 64172: [[31409]],
- 64173: [[31680]],
- 64174: [[31867]],
- 64175: [[32091]],
- 64176: [[32244]],
- 64177: [[32574]],
- 64178: [[32773]],
- 64179: [[33618]],
- 64180: [[33775]],
- 64181: [[34681]],
- 64182: [[35137]],
- 64183: [[35206]],
- 64184: [[35222]],
- 64185: [[35519]],
- 64186: [[35576]],
- 64187: [[35531]],
- 64188: [[35585]],
- 64189: [[35582]],
- 64190: [[35565]],
- 64191: [[35641]],
- 64192: [[35722]],
- 64193: [[36104]],
- 64194: [[36664]],
- 64195: [[36978]],
- 64196: [[37273]],
- 64197: [[37494]],
- 64198: [[38524]],
- 64199: [[38627]],
- 64200: [[38742]],
- 64201: [[38875]],
- 64202: [[38911]],
- 64203: [[38923]],
- 64204: [[38971]],
- 64205: [[39698]],
- 64206: [[40860]],
- 64207: [[141386]],
- 64208: [[141380]],
- 64209: [[144341]],
- 64210: [[15261]],
- 64211: [[16408]],
- 64212: [[16441]],
- 64213: [[152137]],
- 64214: [[154832]],
- 64215: [[163539]],
- 64216: [[40771]],
- 64217: [[40846]],
- 195072: [[38953]],
- 195073: [[169398]],
- 195074: [[39138]],
- 195075: [[19251]],
- 195076: [[39209]],
- 195077: [[39335]],
- 195078: [[39362]],
- 195079: [[39422]],
- 195080: [[19406]],
- 195081: [[170800]],
- 195082: [[39698]],
- 195083: [[40000]],
- 195084: [[40189]],
- 195085: [[19662]],
- 195086: [[19693]],
- 195087: [[40295]],
- 195088: [[172238]],
- 195089: [[19704]],
- 195090: [[172293]],
- 195091: [[172558]],
- 195092: [[172689]],
- 195093: [[40635]],
- 195094: [[19798]],
- 195095: [[40697]],
- 195096: [[40702]],
- 195097: [[40709]],
- 195098: [[40719]],
- 195099: [[40726]],
- 195100: [[40763]],
- 195101: [[173568]]
- },
- 64256: {
- 64256: [[102, 102], 256],
- 64257: [[102, 105], 256],
- 64258: [[102, 108], 256],
- 64259: [[102, 102, 105], 256],
- 64260: [[102, 102, 108], 256],
- 64261: [[383, 116], 256],
- 64262: [[115, 116], 256],
- 64275: [[1396, 1398], 256],
- 64276: [[1396, 1381], 256],
- 64277: [[1396, 1387], 256],
- 64278: [[1406, 1398], 256],
- 64279: [[1396, 1389], 256],
- 64285: [[1497, 1460], 512],
- 64286: [, 26],
- 64287: [[1522, 1463], 512],
- 64288: [[1506], 256],
- 64289: [[1488], 256],
- 64290: [[1491], 256],
- 64291: [[1492], 256],
- 64292: [[1499], 256],
- 64293: [[1500], 256],
- 64294: [[1501], 256],
- 64295: [[1512], 256],
- 64296: [[1514], 256],
- 64297: [[43], 256],
- 64298: [[1513, 1473], 512],
- 64299: [[1513, 1474], 512],
- 64300: [[64329, 1473], 512],
- 64301: [[64329, 1474], 512],
- 64302: [[1488, 1463], 512],
- 64303: [[1488, 1464], 512],
- 64304: [[1488, 1468], 512],
- 64305: [[1489, 1468], 512],
- 64306: [[1490, 1468], 512],
- 64307: [[1491, 1468], 512],
- 64308: [[1492, 1468], 512],
- 64309: [[1493, 1468], 512],
- 64310: [[1494, 1468], 512],
- 64312: [[1496, 1468], 512],
- 64313: [[1497, 1468], 512],
- 64314: [[1498, 1468], 512],
- 64315: [[1499, 1468], 512],
- 64316: [[1500, 1468], 512],
- 64318: [[1502, 1468], 512],
- 64320: [[1504, 1468], 512],
- 64321: [[1505, 1468], 512],
- 64323: [[1507, 1468], 512],
- 64324: [[1508, 1468], 512],
- 64326: [[1510, 1468], 512],
- 64327: [[1511, 1468], 512],
- 64328: [[1512, 1468], 512],
- 64329: [[1513, 1468], 512],
- 64330: [[1514, 1468], 512],
- 64331: [[1493, 1465], 512],
- 64332: [[1489, 1471], 512],
- 64333: [[1499, 1471], 512],
- 64334: [[1508, 1471], 512],
- 64335: [[1488, 1500], 256],
- 64336: [[1649], 256],
- 64337: [[1649], 256],
- 64338: [[1659], 256],
- 64339: [[1659], 256],
- 64340: [[1659], 256],
- 64341: [[1659], 256],
- 64342: [[1662], 256],
- 64343: [[1662], 256],
- 64344: [[1662], 256],
- 64345: [[1662], 256],
- 64346: [[1664], 256],
- 64347: [[1664], 256],
- 64348: [[1664], 256],
- 64349: [[1664], 256],
- 64350: [[1658], 256],
- 64351: [[1658], 256],
- 64352: [[1658], 256],
- 64353: [[1658], 256],
- 64354: [[1663], 256],
- 64355: [[1663], 256],
- 64356: [[1663], 256],
- 64357: [[1663], 256],
- 64358: [[1657], 256],
- 64359: [[1657], 256],
- 64360: [[1657], 256],
- 64361: [[1657], 256],
- 64362: [[1700], 256],
- 64363: [[1700], 256],
- 64364: [[1700], 256],
- 64365: [[1700], 256],
- 64366: [[1702], 256],
- 64367: [[1702], 256],
- 64368: [[1702], 256],
- 64369: [[1702], 256],
- 64370: [[1668], 256],
- 64371: [[1668], 256],
- 64372: [[1668], 256],
- 64373: [[1668], 256],
- 64374: [[1667], 256],
- 64375: [[1667], 256],
- 64376: [[1667], 256],
- 64377: [[1667], 256],
- 64378: [[1670], 256],
- 64379: [[1670], 256],
- 64380: [[1670], 256],
- 64381: [[1670], 256],
- 64382: [[1671], 256],
- 64383: [[1671], 256],
- 64384: [[1671], 256],
- 64385: [[1671], 256],
- 64386: [[1677], 256],
- 64387: [[1677], 256],
- 64388: [[1676], 256],
- 64389: [[1676], 256],
- 64390: [[1678], 256],
- 64391: [[1678], 256],
- 64392: [[1672], 256],
- 64393: [[1672], 256],
- 64394: [[1688], 256],
- 64395: [[1688], 256],
- 64396: [[1681], 256],
- 64397: [[1681], 256],
- 64398: [[1705], 256],
- 64399: [[1705], 256],
- 64400: [[1705], 256],
- 64401: [[1705], 256],
- 64402: [[1711], 256],
- 64403: [[1711], 256],
- 64404: [[1711], 256],
- 64405: [[1711], 256],
- 64406: [[1715], 256],
- 64407: [[1715], 256],
- 64408: [[1715], 256],
- 64409: [[1715], 256],
- 64410: [[1713], 256],
- 64411: [[1713], 256],
- 64412: [[1713], 256],
- 64413: [[1713], 256],
- 64414: [[1722], 256],
- 64415: [[1722], 256],
- 64416: [[1723], 256],
- 64417: [[1723], 256],
- 64418: [[1723], 256],
- 64419: [[1723], 256],
- 64420: [[1728], 256],
- 64421: [[1728], 256],
- 64422: [[1729], 256],
- 64423: [[1729], 256],
- 64424: [[1729], 256],
- 64425: [[1729], 256],
- 64426: [[1726], 256],
- 64427: [[1726], 256],
- 64428: [[1726], 256],
- 64429: [[1726], 256],
- 64430: [[1746], 256],
- 64431: [[1746], 256],
- 64432: [[1747], 256],
- 64433: [[1747], 256],
- 64467: [[1709], 256],
- 64468: [[1709], 256],
- 64469: [[1709], 256],
- 64470: [[1709], 256],
- 64471: [[1735], 256],
- 64472: [[1735], 256],
- 64473: [[1734], 256],
- 64474: [[1734], 256],
- 64475: [[1736], 256],
- 64476: [[1736], 256],
- 64477: [[1655], 256],
- 64478: [[1739], 256],
- 64479: [[1739], 256],
- 64480: [[1733], 256],
- 64481: [[1733], 256],
- 64482: [[1737], 256],
- 64483: [[1737], 256],
- 64484: [[1744], 256],
- 64485: [[1744], 256],
- 64486: [[1744], 256],
- 64487: [[1744], 256],
- 64488: [[1609], 256],
- 64489: [[1609], 256],
- 64490: [[1574, 1575], 256],
- 64491: [[1574, 1575], 256],
- 64492: [[1574, 1749], 256],
- 64493: [[1574, 1749], 256],
- 64494: [[1574, 1608], 256],
- 64495: [[1574, 1608], 256],
- 64496: [[1574, 1735], 256],
- 64497: [[1574, 1735], 256],
- 64498: [[1574, 1734], 256],
- 64499: [[1574, 1734], 256],
- 64500: [[1574, 1736], 256],
- 64501: [[1574, 1736], 256],
- 64502: [[1574, 1744], 256],
- 64503: [[1574, 1744], 256],
- 64504: [[1574, 1744], 256],
- 64505: [[1574, 1609], 256],
- 64506: [[1574, 1609], 256],
- 64507: [[1574, 1609], 256],
- 64508: [[1740], 256],
- 64509: [[1740], 256],
- 64510: [[1740], 256],
- 64511: [[1740], 256]
- },
- 64512: {
- 64512: [[1574, 1580], 256],
- 64513: [[1574, 1581], 256],
- 64514: [[1574, 1605], 256],
- 64515: [[1574, 1609], 256],
- 64516: [[1574, 1610], 256],
- 64517: [[1576, 1580], 256],
- 64518: [[1576, 1581], 256],
- 64519: [[1576, 1582], 256],
- 64520: [[1576, 1605], 256],
- 64521: [[1576, 1609], 256],
- 64522: [[1576, 1610], 256],
- 64523: [[1578, 1580], 256],
- 64524: [[1578, 1581], 256],
- 64525: [[1578, 1582], 256],
- 64526: [[1578, 1605], 256],
- 64527: [[1578, 1609], 256],
- 64528: [[1578, 1610], 256],
- 64529: [[1579, 1580], 256],
- 64530: [[1579, 1605], 256],
- 64531: [[1579, 1609], 256],
- 64532: [[1579, 1610], 256],
- 64533: [[1580, 1581], 256],
- 64534: [[1580, 1605], 256],
- 64535: [[1581, 1580], 256],
- 64536: [[1581, 1605], 256],
- 64537: [[1582, 1580], 256],
- 64538: [[1582, 1581], 256],
- 64539: [[1582, 1605], 256],
- 64540: [[1587, 1580], 256],
- 64541: [[1587, 1581], 256],
- 64542: [[1587, 1582], 256],
- 64543: [[1587, 1605], 256],
- 64544: [[1589, 1581], 256],
- 64545: [[1589, 1605], 256],
- 64546: [[1590, 1580], 256],
- 64547: [[1590, 1581], 256],
- 64548: [[1590, 1582], 256],
- 64549: [[1590, 1605], 256],
- 64550: [[1591, 1581], 256],
- 64551: [[1591, 1605], 256],
- 64552: [[1592, 1605], 256],
- 64553: [[1593, 1580], 256],
- 64554: [[1593, 1605], 256],
- 64555: [[1594, 1580], 256],
- 64556: [[1594, 1605], 256],
- 64557: [[1601, 1580], 256],
- 64558: [[1601, 1581], 256],
- 64559: [[1601, 1582], 256],
- 64560: [[1601, 1605], 256],
- 64561: [[1601, 1609], 256],
- 64562: [[1601, 1610], 256],
- 64563: [[1602, 1581], 256],
- 64564: [[1602, 1605], 256],
- 64565: [[1602, 1609], 256],
- 64566: [[1602, 1610], 256],
- 64567: [[1603, 1575], 256],
- 64568: [[1603, 1580], 256],
- 64569: [[1603, 1581], 256],
- 64570: [[1603, 1582], 256],
- 64571: [[1603, 1604], 256],
- 64572: [[1603, 1605], 256],
- 64573: [[1603, 1609], 256],
- 64574: [[1603, 1610], 256],
- 64575: [[1604, 1580], 256],
- 64576: [[1604, 1581], 256],
- 64577: [[1604, 1582], 256],
- 64578: [[1604, 1605], 256],
- 64579: [[1604, 1609], 256],
- 64580: [[1604, 1610], 256],
- 64581: [[1605, 1580], 256],
- 64582: [[1605, 1581], 256],
- 64583: [[1605, 1582], 256],
- 64584: [[1605, 1605], 256],
- 64585: [[1605, 1609], 256],
- 64586: [[1605, 1610], 256],
- 64587: [[1606, 1580], 256],
- 64588: [[1606, 1581], 256],
- 64589: [[1606, 1582], 256],
- 64590: [[1606, 1605], 256],
- 64591: [[1606, 1609], 256],
- 64592: [[1606, 1610], 256],
- 64593: [[1607, 1580], 256],
- 64594: [[1607, 1605], 256],
- 64595: [[1607, 1609], 256],
- 64596: [[1607, 1610], 256],
- 64597: [[1610, 1580], 256],
- 64598: [[1610, 1581], 256],
- 64599: [[1610, 1582], 256],
- 64600: [[1610, 1605], 256],
- 64601: [[1610, 1609], 256],
- 64602: [[1610, 1610], 256],
- 64603: [[1584, 1648], 256],
- 64604: [[1585, 1648], 256],
- 64605: [[1609, 1648], 256],
- 64606: [[32, 1612, 1617], 256],
- 64607: [[32, 1613, 1617], 256],
- 64608: [[32, 1614, 1617], 256],
- 64609: [[32, 1615, 1617], 256],
- 64610: [[32, 1616, 1617], 256],
- 64611: [[32, 1617, 1648], 256],
- 64612: [[1574, 1585], 256],
- 64613: [[1574, 1586], 256],
- 64614: [[1574, 1605], 256],
- 64615: [[1574, 1606], 256],
- 64616: [[1574, 1609], 256],
- 64617: [[1574, 1610], 256],
- 64618: [[1576, 1585], 256],
- 64619: [[1576, 1586], 256],
- 64620: [[1576, 1605], 256],
- 64621: [[1576, 1606], 256],
- 64622: [[1576, 1609], 256],
- 64623: [[1576, 1610], 256],
- 64624: [[1578, 1585], 256],
- 64625: [[1578, 1586], 256],
- 64626: [[1578, 1605], 256],
- 64627: [[1578, 1606], 256],
- 64628: [[1578, 1609], 256],
- 64629: [[1578, 1610], 256],
- 64630: [[1579, 1585], 256],
- 64631: [[1579, 1586], 256],
- 64632: [[1579, 1605], 256],
- 64633: [[1579, 1606], 256],
- 64634: [[1579, 1609], 256],
- 64635: [[1579, 1610], 256],
- 64636: [[1601, 1609], 256],
- 64637: [[1601, 1610], 256],
- 64638: [[1602, 1609], 256],
- 64639: [[1602, 1610], 256],
- 64640: [[1603, 1575], 256],
- 64641: [[1603, 1604], 256],
- 64642: [[1603, 1605], 256],
- 64643: [[1603, 1609], 256],
- 64644: [[1603, 1610], 256],
- 64645: [[1604, 1605], 256],
- 64646: [[1604, 1609], 256],
- 64647: [[1604, 1610], 256],
- 64648: [[1605, 1575], 256],
- 64649: [[1605, 1605], 256],
- 64650: [[1606, 1585], 256],
- 64651: [[1606, 1586], 256],
- 64652: [[1606, 1605], 256],
- 64653: [[1606, 1606], 256],
- 64654: [[1606, 1609], 256],
- 64655: [[1606, 1610], 256],
- 64656: [[1609, 1648], 256],
- 64657: [[1610, 1585], 256],
- 64658: [[1610, 1586], 256],
- 64659: [[1610, 1605], 256],
- 64660: [[1610, 1606], 256],
- 64661: [[1610, 1609], 256],
- 64662: [[1610, 1610], 256],
- 64663: [[1574, 1580], 256],
- 64664: [[1574, 1581], 256],
- 64665: [[1574, 1582], 256],
- 64666: [[1574, 1605], 256],
- 64667: [[1574, 1607], 256],
- 64668: [[1576, 1580], 256],
- 64669: [[1576, 1581], 256],
- 64670: [[1576, 1582], 256],
- 64671: [[1576, 1605], 256],
- 64672: [[1576, 1607], 256],
- 64673: [[1578, 1580], 256],
- 64674: [[1578, 1581], 256],
- 64675: [[1578, 1582], 256],
- 64676: [[1578, 1605], 256],
- 64677: [[1578, 1607], 256],
- 64678: [[1579, 1605], 256],
- 64679: [[1580, 1581], 256],
- 64680: [[1580, 1605], 256],
- 64681: [[1581, 1580], 256],
- 64682: [[1581, 1605], 256],
- 64683: [[1582, 1580], 256],
- 64684: [[1582, 1605], 256],
- 64685: [[1587, 1580], 256],
- 64686: [[1587, 1581], 256],
- 64687: [[1587, 1582], 256],
- 64688: [[1587, 1605], 256],
- 64689: [[1589, 1581], 256],
- 64690: [[1589, 1582], 256],
- 64691: [[1589, 1605], 256],
- 64692: [[1590, 1580], 256],
- 64693: [[1590, 1581], 256],
- 64694: [[1590, 1582], 256],
- 64695: [[1590, 1605], 256],
- 64696: [[1591, 1581], 256],
- 64697: [[1592, 1605], 256],
- 64698: [[1593, 1580], 256],
- 64699: [[1593, 1605], 256],
- 64700: [[1594, 1580], 256],
- 64701: [[1594, 1605], 256],
- 64702: [[1601, 1580], 256],
- 64703: [[1601, 1581], 256],
- 64704: [[1601, 1582], 256],
- 64705: [[1601, 1605], 256],
- 64706: [[1602, 1581], 256],
- 64707: [[1602, 1605], 256],
- 64708: [[1603, 1580], 256],
- 64709: [[1603, 1581], 256],
- 64710: [[1603, 1582], 256],
- 64711: [[1603, 1604], 256],
- 64712: [[1603, 1605], 256],
- 64713: [[1604, 1580], 256],
- 64714: [[1604, 1581], 256],
- 64715: [[1604, 1582], 256],
- 64716: [[1604, 1605], 256],
- 64717: [[1604, 1607], 256],
- 64718: [[1605, 1580], 256],
- 64719: [[1605, 1581], 256],
- 64720: [[1605, 1582], 256],
- 64721: [[1605, 1605], 256],
- 64722: [[1606, 1580], 256],
- 64723: [[1606, 1581], 256],
- 64724: [[1606, 1582], 256],
- 64725: [[1606, 1605], 256],
- 64726: [[1606, 1607], 256],
- 64727: [[1607, 1580], 256],
- 64728: [[1607, 1605], 256],
- 64729: [[1607, 1648], 256],
- 64730: [[1610, 1580], 256],
- 64731: [[1610, 1581], 256],
- 64732: [[1610, 1582], 256],
- 64733: [[1610, 1605], 256],
- 64734: [[1610, 1607], 256],
- 64735: [[1574, 1605], 256],
- 64736: [[1574, 1607], 256],
- 64737: [[1576, 1605], 256],
- 64738: [[1576, 1607], 256],
- 64739: [[1578, 1605], 256],
- 64740: [[1578, 1607], 256],
- 64741: [[1579, 1605], 256],
- 64742: [[1579, 1607], 256],
- 64743: [[1587, 1605], 256],
- 64744: [[1587, 1607], 256],
- 64745: [[1588, 1605], 256],
- 64746: [[1588, 1607], 256],
- 64747: [[1603, 1604], 256],
- 64748: [[1603, 1605], 256],
- 64749: [[1604, 1605], 256],
- 64750: [[1606, 1605], 256],
- 64751: [[1606, 1607], 256],
- 64752: [[1610, 1605], 256],
- 64753: [[1610, 1607], 256],
- 64754: [[1600, 1614, 1617], 256],
- 64755: [[1600, 1615, 1617], 256],
- 64756: [[1600, 1616, 1617], 256],
- 64757: [[1591, 1609], 256],
- 64758: [[1591, 1610], 256],
- 64759: [[1593, 1609], 256],
- 64760: [[1593, 1610], 256],
- 64761: [[1594, 1609], 256],
- 64762: [[1594, 1610], 256],
- 64763: [[1587, 1609], 256],
- 64764: [[1587, 1610], 256],
- 64765: [[1588, 1609], 256],
- 64766: [[1588, 1610], 256],
- 64767: [[1581, 1609], 256]
- },
- 64768: {
- 64768: [[1581, 1610], 256],
- 64769: [[1580, 1609], 256],
- 64770: [[1580, 1610], 256],
- 64771: [[1582, 1609], 256],
- 64772: [[1582, 1610], 256],
- 64773: [[1589, 1609], 256],
- 64774: [[1589, 1610], 256],
- 64775: [[1590, 1609], 256],
- 64776: [[1590, 1610], 256],
- 64777: [[1588, 1580], 256],
- 64778: [[1588, 1581], 256],
- 64779: [[1588, 1582], 256],
- 64780: [[1588, 1605], 256],
- 64781: [[1588, 1585], 256],
- 64782: [[1587, 1585], 256],
- 64783: [[1589, 1585], 256],
- 64784: [[1590, 1585], 256],
- 64785: [[1591, 1609], 256],
- 64786: [[1591, 1610], 256],
- 64787: [[1593, 1609], 256],
- 64788: [[1593, 1610], 256],
- 64789: [[1594, 1609], 256],
- 64790: [[1594, 1610], 256],
- 64791: [[1587, 1609], 256],
- 64792: [[1587, 1610], 256],
- 64793: [[1588, 1609], 256],
- 64794: [[1588, 1610], 256],
- 64795: [[1581, 1609], 256],
- 64796: [[1581, 1610], 256],
- 64797: [[1580, 1609], 256],
- 64798: [[1580, 1610], 256],
- 64799: [[1582, 1609], 256],
- 64800: [[1582, 1610], 256],
- 64801: [[1589, 1609], 256],
- 64802: [[1589, 1610], 256],
- 64803: [[1590, 1609], 256],
- 64804: [[1590, 1610], 256],
- 64805: [[1588, 1580], 256],
- 64806: [[1588, 1581], 256],
- 64807: [[1588, 1582], 256],
- 64808: [[1588, 1605], 256],
- 64809: [[1588, 1585], 256],
- 64810: [[1587, 1585], 256],
- 64811: [[1589, 1585], 256],
- 64812: [[1590, 1585], 256],
- 64813: [[1588, 1580], 256],
- 64814: [[1588, 1581], 256],
- 64815: [[1588, 1582], 256],
- 64816: [[1588, 1605], 256],
- 64817: [[1587, 1607], 256],
- 64818: [[1588, 1607], 256],
- 64819: [[1591, 1605], 256],
- 64820: [[1587, 1580], 256],
- 64821: [[1587, 1581], 256],
- 64822: [[1587, 1582], 256],
- 64823: [[1588, 1580], 256],
- 64824: [[1588, 1581], 256],
- 64825: [[1588, 1582], 256],
- 64826: [[1591, 1605], 256],
- 64827: [[1592, 1605], 256],
- 64828: [[1575, 1611], 256],
- 64829: [[1575, 1611], 256],
- 64848: [[1578, 1580, 1605], 256],
- 64849: [[1578, 1581, 1580], 256],
- 64850: [[1578, 1581, 1580], 256],
- 64851: [[1578, 1581, 1605], 256],
- 64852: [[1578, 1582, 1605], 256],
- 64853: [[1578, 1605, 1580], 256],
- 64854: [[1578, 1605, 1581], 256],
- 64855: [[1578, 1605, 1582], 256],
- 64856: [[1580, 1605, 1581], 256],
- 64857: [[1580, 1605, 1581], 256],
- 64858: [[1581, 1605, 1610], 256],
- 64859: [[1581, 1605, 1609], 256],
- 64860: [[1587, 1581, 1580], 256],
- 64861: [[1587, 1580, 1581], 256],
- 64862: [[1587, 1580, 1609], 256],
- 64863: [[1587, 1605, 1581], 256],
- 64864: [[1587, 1605, 1581], 256],
- 64865: [[1587, 1605, 1580], 256],
- 64866: [[1587, 1605, 1605], 256],
- 64867: [[1587, 1605, 1605], 256],
- 64868: [[1589, 1581, 1581], 256],
- 64869: [[1589, 1581, 1581], 256],
- 64870: [[1589, 1605, 1605], 256],
- 64871: [[1588, 1581, 1605], 256],
- 64872: [[1588, 1581, 1605], 256],
- 64873: [[1588, 1580, 1610], 256],
- 64874: [[1588, 1605, 1582], 256],
- 64875: [[1588, 1605, 1582], 256],
- 64876: [[1588, 1605, 1605], 256],
- 64877: [[1588, 1605, 1605], 256],
- 64878: [[1590, 1581, 1609], 256],
- 64879: [[1590, 1582, 1605], 256],
- 64880: [[1590, 1582, 1605], 256],
- 64881: [[1591, 1605, 1581], 256],
- 64882: [[1591, 1605, 1581], 256],
- 64883: [[1591, 1605, 1605], 256],
- 64884: [[1591, 1605, 1610], 256],
- 64885: [[1593, 1580, 1605], 256],
- 64886: [[1593, 1605, 1605], 256],
- 64887: [[1593, 1605, 1605], 256],
- 64888: [[1593, 1605, 1609], 256],
- 64889: [[1594, 1605, 1605], 256],
- 64890: [[1594, 1605, 1610], 256],
- 64891: [[1594, 1605, 1609], 256],
- 64892: [[1601, 1582, 1605], 256],
- 64893: [[1601, 1582, 1605], 256],
- 64894: [[1602, 1605, 1581], 256],
- 64895: [[1602, 1605, 1605], 256],
- 64896: [[1604, 1581, 1605], 256],
- 64897: [[1604, 1581, 1610], 256],
- 64898: [[1604, 1581, 1609], 256],
- 64899: [[1604, 1580, 1580], 256],
- 64900: [[1604, 1580, 1580], 256],
- 64901: [[1604, 1582, 1605], 256],
- 64902: [[1604, 1582, 1605], 256],
- 64903: [[1604, 1605, 1581], 256],
- 64904: [[1604, 1605, 1581], 256],
- 64905: [[1605, 1581, 1580], 256],
- 64906: [[1605, 1581, 1605], 256],
- 64907: [[1605, 1581, 1610], 256],
- 64908: [[1605, 1580, 1581], 256],
- 64909: [[1605, 1580, 1605], 256],
- 64910: [[1605, 1582, 1580], 256],
- 64911: [[1605, 1582, 1605], 256],
- 64914: [[1605, 1580, 1582], 256],
- 64915: [[1607, 1605, 1580], 256],
- 64916: [[1607, 1605, 1605], 256],
- 64917: [[1606, 1581, 1605], 256],
- 64918: [[1606, 1581, 1609], 256],
- 64919: [[1606, 1580, 1605], 256],
- 64920: [[1606, 1580, 1605], 256],
- 64921: [[1606, 1580, 1609], 256],
- 64922: [[1606, 1605, 1610], 256],
- 64923: [[1606, 1605, 1609], 256],
- 64924: [[1610, 1605, 1605], 256],
- 64925: [[1610, 1605, 1605], 256],
- 64926: [[1576, 1582, 1610], 256],
- 64927: [[1578, 1580, 1610], 256],
- 64928: [[1578, 1580, 1609], 256],
- 64929: [[1578, 1582, 1610], 256],
- 64930: [[1578, 1582, 1609], 256],
- 64931: [[1578, 1605, 1610], 256],
- 64932: [[1578, 1605, 1609], 256],
- 64933: [[1580, 1605, 1610], 256],
- 64934: [[1580, 1581, 1609], 256],
- 64935: [[1580, 1605, 1609], 256],
- 64936: [[1587, 1582, 1609], 256],
- 64937: [[1589, 1581, 1610], 256],
- 64938: [[1588, 1581, 1610], 256],
- 64939: [[1590, 1581, 1610], 256],
- 64940: [[1604, 1580, 1610], 256],
- 64941: [[1604, 1605, 1610], 256],
- 64942: [[1610, 1581, 1610], 256],
- 64943: [[1610, 1580, 1610], 256],
- 64944: [[1610, 1605, 1610], 256],
- 64945: [[1605, 1605, 1610], 256],
- 64946: [[1602, 1605, 1610], 256],
- 64947: [[1606, 1581, 1610], 256],
- 64948: [[1602, 1605, 1581], 256],
- 64949: [[1604, 1581, 1605], 256],
- 64950: [[1593, 1605, 1610], 256],
- 64951: [[1603, 1605, 1610], 256],
- 64952: [[1606, 1580, 1581], 256],
- 64953: [[1605, 1582, 1610], 256],
- 64954: [[1604, 1580, 1605], 256],
- 64955: [[1603, 1605, 1605], 256],
- 64956: [[1604, 1580, 1605], 256],
- 64957: [[1606, 1580, 1581], 256],
- 64958: [[1580, 1581, 1610], 256],
- 64959: [[1581, 1580, 1610], 256],
- 64960: [[1605, 1580, 1610], 256],
- 64961: [[1601, 1605, 1610], 256],
- 64962: [[1576, 1581, 1610], 256],
- 64963: [[1603, 1605, 1605], 256],
- 64964: [[1593, 1580, 1605], 256],
- 64965: [[1589, 1605, 1605], 256],
- 64966: [[1587, 1582, 1610], 256],
- 64967: [[1606, 1580, 1610], 256],
- 65008: [[1589, 1604, 1746], 256],
- 65009: [[1602, 1604, 1746], 256],
- 65010: [[1575, 1604, 1604, 1607], 256],
- 65011: [[1575, 1603, 1576, 1585], 256],
- 65012: [[1605, 1581, 1605, 1583], 256],
- 65013: [[1589, 1604, 1593, 1605], 256],
- 65014: [[1585, 1587, 1608, 1604], 256],
- 65015: [[1593, 1604, 1610, 1607], 256],
- 65016: [[1608, 1587, 1604, 1605], 256],
- 65017: [[1589, 1604, 1609], 256],
- 65018: [
- [
- 1589, 1604, 1609, 32, 1575, 1604, 1604, 1607, 32, 1593, 1604, 1610, 1607, 32, 1608,
- 1587, 1604, 1605
- ],
- 256
- ],
- 65019: [[1580, 1604, 32, 1580, 1604, 1575, 1604, 1607], 256],
- 65020: [[1585, 1740, 1575, 1604], 256]
- },
- 65024: {
- 65040: [[44], 256],
- 65041: [[12289], 256],
- 65042: [[12290], 256],
- 65043: [[58], 256],
- 65044: [[59], 256],
- 65045: [[33], 256],
- 65046: [[63], 256],
- 65047: [[12310], 256],
- 65048: [[12311], 256],
- 65049: [[8230], 256],
- 65056: [, 230],
- 65057: [, 230],
- 65058: [, 230],
- 65059: [, 230],
- 65060: [, 230],
- 65061: [, 230],
- 65062: [, 230],
- 65072: [[8229], 256],
- 65073: [[8212], 256],
- 65074: [[8211], 256],
- 65075: [[95], 256],
- 65076: [[95], 256],
- 65077: [[40], 256],
- 65078: [[41], 256],
- 65079: [[123], 256],
- 65080: [[125], 256],
- 65081: [[12308], 256],
- 65082: [[12309], 256],
- 65083: [[12304], 256],
- 65084: [[12305], 256],
- 65085: [[12298], 256],
- 65086: [[12299], 256],
- 65087: [[12296], 256],
- 65088: [[12297], 256],
- 65089: [[12300], 256],
- 65090: [[12301], 256],
- 65091: [[12302], 256],
- 65092: [[12303], 256],
- 65095: [[91], 256],
- 65096: [[93], 256],
- 65097: [[8254], 256],
- 65098: [[8254], 256],
- 65099: [[8254], 256],
- 65100: [[8254], 256],
- 65101: [[95], 256],
- 65102: [[95], 256],
- 65103: [[95], 256],
- 65104: [[44], 256],
- 65105: [[12289], 256],
- 65106: [[46], 256],
- 65108: [[59], 256],
- 65109: [[58], 256],
- 65110: [[63], 256],
- 65111: [[33], 256],
- 65112: [[8212], 256],
- 65113: [[40], 256],
- 65114: [[41], 256],
- 65115: [[123], 256],
- 65116: [[125], 256],
- 65117: [[12308], 256],
- 65118: [[12309], 256],
- 65119: [[35], 256],
- 65120: [[38], 256],
- 65121: [[42], 256],
- 65122: [[43], 256],
- 65123: [[45], 256],
- 65124: [[60], 256],
- 65125: [[62], 256],
- 65126: [[61], 256],
- 65128: [[92], 256],
- 65129: [[36], 256],
- 65130: [[37], 256],
- 65131: [[64], 256],
- 65136: [[32, 1611], 256],
- 65137: [[1600, 1611], 256],
- 65138: [[32, 1612], 256],
- 65140: [[32, 1613], 256],
- 65142: [[32, 1614], 256],
- 65143: [[1600, 1614], 256],
- 65144: [[32, 1615], 256],
- 65145: [[1600, 1615], 256],
- 65146: [[32, 1616], 256],
- 65147: [[1600, 1616], 256],
- 65148: [[32, 1617], 256],
- 65149: [[1600, 1617], 256],
- 65150: [[32, 1618], 256],
- 65151: [[1600, 1618], 256],
- 65152: [[1569], 256],
- 65153: [[1570], 256],
- 65154: [[1570], 256],
- 65155: [[1571], 256],
- 65156: [[1571], 256],
- 65157: [[1572], 256],
- 65158: [[1572], 256],
- 65159: [[1573], 256],
- 65160: [[1573], 256],
- 65161: [[1574], 256],
- 65162: [[1574], 256],
- 65163: [[1574], 256],
- 65164: [[1574], 256],
- 65165: [[1575], 256],
- 65166: [[1575], 256],
- 65167: [[1576], 256],
- 65168: [[1576], 256],
- 65169: [[1576], 256],
- 65170: [[1576], 256],
- 65171: [[1577], 256],
- 65172: [[1577], 256],
- 65173: [[1578], 256],
- 65174: [[1578], 256],
- 65175: [[1578], 256],
- 65176: [[1578], 256],
- 65177: [[1579], 256],
- 65178: [[1579], 256],
- 65179: [[1579], 256],
- 65180: [[1579], 256],
- 65181: [[1580], 256],
- 65182: [[1580], 256],
- 65183: [[1580], 256],
- 65184: [[1580], 256],
- 65185: [[1581], 256],
- 65186: [[1581], 256],
- 65187: [[1581], 256],
- 65188: [[1581], 256],
- 65189: [[1582], 256],
- 65190: [[1582], 256],
- 65191: [[1582], 256],
- 65192: [[1582], 256],
- 65193: [[1583], 256],
- 65194: [[1583], 256],
- 65195: [[1584], 256],
- 65196: [[1584], 256],
- 65197: [[1585], 256],
- 65198: [[1585], 256],
- 65199: [[1586], 256],
- 65200: [[1586], 256],
- 65201: [[1587], 256],
- 65202: [[1587], 256],
- 65203: [[1587], 256],
- 65204: [[1587], 256],
- 65205: [[1588], 256],
- 65206: [[1588], 256],
- 65207: [[1588], 256],
- 65208: [[1588], 256],
- 65209: [[1589], 256],
- 65210: [[1589], 256],
- 65211: [[1589], 256],
- 65212: [[1589], 256],
- 65213: [[1590], 256],
- 65214: [[1590], 256],
- 65215: [[1590], 256],
- 65216: [[1590], 256],
- 65217: [[1591], 256],
- 65218: [[1591], 256],
- 65219: [[1591], 256],
- 65220: [[1591], 256],
- 65221: [[1592], 256],
- 65222: [[1592], 256],
- 65223: [[1592], 256],
- 65224: [[1592], 256],
- 65225: [[1593], 256],
- 65226: [[1593], 256],
- 65227: [[1593], 256],
- 65228: [[1593], 256],
- 65229: [[1594], 256],
- 65230: [[1594], 256],
- 65231: [[1594], 256],
- 65232: [[1594], 256],
- 65233: [[1601], 256],
- 65234: [[1601], 256],
- 65235: [[1601], 256],
- 65236: [[1601], 256],
- 65237: [[1602], 256],
- 65238: [[1602], 256],
- 65239: [[1602], 256],
- 65240: [[1602], 256],
- 65241: [[1603], 256],
- 65242: [[1603], 256],
- 65243: [[1603], 256],
- 65244: [[1603], 256],
- 65245: [[1604], 256],
- 65246: [[1604], 256],
- 65247: [[1604], 256],
- 65248: [[1604], 256],
- 65249: [[1605], 256],
- 65250: [[1605], 256],
- 65251: [[1605], 256],
- 65252: [[1605], 256],
- 65253: [[1606], 256],
- 65254: [[1606], 256],
- 65255: [[1606], 256],
- 65256: [[1606], 256],
- 65257: [[1607], 256],
- 65258: [[1607], 256],
- 65259: [[1607], 256],
- 65260: [[1607], 256],
- 65261: [[1608], 256],
- 65262: [[1608], 256],
- 65263: [[1609], 256],
- 65264: [[1609], 256],
- 65265: [[1610], 256],
- 65266: [[1610], 256],
- 65267: [[1610], 256],
- 65268: [[1610], 256],
- 65269: [[1604, 1570], 256],
- 65270: [[1604, 1570], 256],
- 65271: [[1604, 1571], 256],
- 65272: [[1604, 1571], 256],
- 65273: [[1604, 1573], 256],
- 65274: [[1604, 1573], 256],
- 65275: [[1604, 1575], 256],
- 65276: [[1604, 1575], 256]
- },
- 65280: {
- 65281: [[33], 256],
- 65282: [[34], 256],
- 65283: [[35], 256],
- 65284: [[36], 256],
- 65285: [[37], 256],
- 65286: [[38], 256],
- 65287: [[39], 256],
- 65288: [[40], 256],
- 65289: [[41], 256],
- 65290: [[42], 256],
- 65291: [[43], 256],
- 65292: [[44], 256],
- 65293: [[45], 256],
- 65294: [[46], 256],
- 65295: [[47], 256],
- 65296: [[48], 256],
- 65297: [[49], 256],
- 65298: [[50], 256],
- 65299: [[51], 256],
- 65300: [[52], 256],
- 65301: [[53], 256],
- 65302: [[54], 256],
- 65303: [[55], 256],
- 65304: [[56], 256],
- 65305: [[57], 256],
- 65306: [[58], 256],
- 65307: [[59], 256],
- 65308: [[60], 256],
- 65309: [[61], 256],
- 65310: [[62], 256],
- 65311: [[63], 256],
- 65312: [[64], 256],
- 65313: [[65], 256],
- 65314: [[66], 256],
- 65315: [[67], 256],
- 65316: [[68], 256],
- 65317: [[69], 256],
- 65318: [[70], 256],
- 65319: [[71], 256],
- 65320: [[72], 256],
- 65321: [[73], 256],
- 65322: [[74], 256],
- 65323: [[75], 256],
- 65324: [[76], 256],
- 65325: [[77], 256],
- 65326: [[78], 256],
- 65327: [[79], 256],
- 65328: [[80], 256],
- 65329: [[81], 256],
- 65330: [[82], 256],
- 65331: [[83], 256],
- 65332: [[84], 256],
- 65333: [[85], 256],
- 65334: [[86], 256],
- 65335: [[87], 256],
- 65336: [[88], 256],
- 65337: [[89], 256],
- 65338: [[90], 256],
- 65339: [[91], 256],
- 65340: [[92], 256],
- 65341: [[93], 256],
- 65342: [[94], 256],
- 65343: [[95], 256],
- 65344: [[96], 256],
- 65345: [[97], 256],
- 65346: [[98], 256],
- 65347: [[99], 256],
- 65348: [[100], 256],
- 65349: [[101], 256],
- 65350: [[102], 256],
- 65351: [[103], 256],
- 65352: [[104], 256],
- 65353: [[105], 256],
- 65354: [[106], 256],
- 65355: [[107], 256],
- 65356: [[108], 256],
- 65357: [[109], 256],
- 65358: [[110], 256],
- 65359: [[111], 256],
- 65360: [[112], 256],
- 65361: [[113], 256],
- 65362: [[114], 256],
- 65363: [[115], 256],
- 65364: [[116], 256],
- 65365: [[117], 256],
- 65366: [[118], 256],
- 65367: [[119], 256],
- 65368: [[120], 256],
- 65369: [[121], 256],
- 65370: [[122], 256],
- 65371: [[123], 256],
- 65372: [[124], 256],
- 65373: [[125], 256],
- 65374: [[126], 256],
- 65375: [[10629], 256],
- 65376: [[10630], 256],
- 65377: [[12290], 256],
- 65378: [[12300], 256],
- 65379: [[12301], 256],
- 65380: [[12289], 256],
- 65381: [[12539], 256],
- 65382: [[12530], 256],
- 65383: [[12449], 256],
- 65384: [[12451], 256],
- 65385: [[12453], 256],
- 65386: [[12455], 256],
- 65387: [[12457], 256],
- 65388: [[12515], 256],
- 65389: [[12517], 256],
- 65390: [[12519], 256],
- 65391: [[12483], 256],
- 65392: [[12540], 256],
- 65393: [[12450], 256],
- 65394: [[12452], 256],
- 65395: [[12454], 256],
- 65396: [[12456], 256],
- 65397: [[12458], 256],
- 65398: [[12459], 256],
- 65399: [[12461], 256],
- 65400: [[12463], 256],
- 65401: [[12465], 256],
- 65402: [[12467], 256],
- 65403: [[12469], 256],
- 65404: [[12471], 256],
- 65405: [[12473], 256],
- 65406: [[12475], 256],
- 65407: [[12477], 256],
- 65408: [[12479], 256],
- 65409: [[12481], 256],
- 65410: [[12484], 256],
- 65411: [[12486], 256],
- 65412: [[12488], 256],
- 65413: [[12490], 256],
- 65414: [[12491], 256],
- 65415: [[12492], 256],
- 65416: [[12493], 256],
- 65417: [[12494], 256],
- 65418: [[12495], 256],
- 65419: [[12498], 256],
- 65420: [[12501], 256],
- 65421: [[12504], 256],
- 65422: [[12507], 256],
- 65423: [[12510], 256],
- 65424: [[12511], 256],
- 65425: [[12512], 256],
- 65426: [[12513], 256],
- 65427: [[12514], 256],
- 65428: [[12516], 256],
- 65429: [[12518], 256],
- 65430: [[12520], 256],
- 65431: [[12521], 256],
- 65432: [[12522], 256],
- 65433: [[12523], 256],
- 65434: [[12524], 256],
- 65435: [[12525], 256],
- 65436: [[12527], 256],
- 65437: [[12531], 256],
- 65438: [[12441], 256],
- 65439: [[12442], 256],
- 65440: [[12644], 256],
- 65441: [[12593], 256],
- 65442: [[12594], 256],
- 65443: [[12595], 256],
- 65444: [[12596], 256],
- 65445: [[12597], 256],
- 65446: [[12598], 256],
- 65447: [[12599], 256],
- 65448: [[12600], 256],
- 65449: [[12601], 256],
- 65450: [[12602], 256],
- 65451: [[12603], 256],
- 65452: [[12604], 256],
- 65453: [[12605], 256],
- 65454: [[12606], 256],
- 65455: [[12607], 256],
- 65456: [[12608], 256],
- 65457: [[12609], 256],
- 65458: [[12610], 256],
- 65459: [[12611], 256],
- 65460: [[12612], 256],
- 65461: [[12613], 256],
- 65462: [[12614], 256],
- 65463: [[12615], 256],
- 65464: [[12616], 256],
- 65465: [[12617], 256],
- 65466: [[12618], 256],
- 65467: [[12619], 256],
- 65468: [[12620], 256],
- 65469: [[12621], 256],
- 65470: [[12622], 256],
- 65474: [[12623], 256],
- 65475: [[12624], 256],
- 65476: [[12625], 256],
- 65477: [[12626], 256],
- 65478: [[12627], 256],
- 65479: [[12628], 256],
- 65482: [[12629], 256],
- 65483: [[12630], 256],
- 65484: [[12631], 256],
- 65485: [[12632], 256],
- 65486: [[12633], 256],
- 65487: [[12634], 256],
- 65490: [[12635], 256],
- 65491: [[12636], 256],
- 65492: [[12637], 256],
- 65493: [[12638], 256],
- 65494: [[12639], 256],
- 65495: [[12640], 256],
- 65498: [[12641], 256],
- 65499: [[12642], 256],
- 65500: [[12643], 256],
- 65504: [[162], 256],
- 65505: [[163], 256],
- 65506: [[172], 256],
- 65507: [[175], 256],
- 65508: [[166], 256],
- 65509: [[165], 256],
- 65510: [[8361], 256],
- 65512: [[9474], 256],
- 65513: [[8592], 256],
- 65514: [[8593], 256],
- 65515: [[8594], 256],
- 65516: [[8595], 256],
- 65517: [[9632], 256],
- 65518: [[9675], 256]
- }
-};
diff --git a/node_modules/es5-ext/string/#/normalize/implement.js b/node_modules/es5-ext/string/#/normalize/implement.js
deleted file mode 100644
index deb6089..0000000
--- a/node_modules/es5-ext/string/#/normalize/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(String.prototype, "normalize", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/string/#/normalize/index.js b/node_modules/es5-ext/string/#/normalize/index.js
deleted file mode 100644
index a8c04db..0000000
--- a/node_modules/es5-ext/string/#/normalize/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? String.prototype.normalize : require("./shim");
diff --git a/node_modules/es5-ext/string/#/normalize/is-implemented.js b/node_modules/es5-ext/string/#/normalize/is-implemented.js
deleted file mode 100644
index 01b48a9..0000000
--- a/node_modules/es5-ext/string/#/normalize/is-implemented.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var str = "æøåäüö";
-
-module.exports = function () {
- if (typeof str.normalize !== "function") return false;
- return str.normalize("NFKD") === "æøåäüö";
-};
diff --git a/node_modules/es5-ext/string/#/normalize/shim.js b/node_modules/es5-ext/string/#/normalize/shim.js
deleted file mode 100644
index 95bae26..0000000
--- a/node_modules/es5-ext/string/#/normalize/shim.js
+++ /dev/null
@@ -1,309 +0,0 @@
-/* eslint no-bitwise: "off", max-statements: "off", max-lines: "off" */
-
-// Taken from: https://github.com/walling/unorm/blob/master/lib/unorm.js
-
-/*
- * UnicodeNormalizer 1.0.0
- * Copyright (c) 2008 Matsuza
- * Dual licensed under the MIT (MIT-LICENSE.txt) and
- * GPL (GPL-LICENSE.txt) licenses.
- * $Date: 2008-06-05 16:44:17 +0200 (Thu, 05 Jun 2008) $
- * $Rev: 13309 $
- */
-
-"use strict";
-
-var primitiveSet = require("../../../object/primitive-set")
- , validValue = require("../../../object/valid-value")
- , data = require("./_data");
-
-var floor = Math.floor
- , forms = primitiveSet("NFC", "NFD", "NFKC", "NFKD")
- , DEFAULT_FEATURE = [null, 0, {}]
- , CACHE_THRESHOLD = 10
- , SBase = 0xac00
- , LBase = 0x1100
- , VBase = 0x1161
- , TBase = 0x11a7
- , LCount = 19
- , VCount = 21
- , TCount = 28
- , NCount = VCount * TCount
- , SCount = LCount * NCount
- , UChar
- , cache = {}
- , cacheCounter = []
- , fromCache
- , fromData
- , fromCpOnly
- , fromRuleBasedJamo
- , fromCpFilter
- , strategies
- , UCharIterator
- , RecursDecompIterator
- , DecompIterator
- , CompIterator
- , createIterator
- , normalize;
-
-UChar = function (cp, feature) {
- this.codepoint = cp;
- this.feature = feature;
-};
-
-// Strategies
-(function () { for (var i = 0; i <= 0xff; ++i) cacheCounter[i] = 0; })();
-
-fromCache = function (nextStep, cp, needFeature) {
- var ret = cache[cp];
- if (!ret) {
- ret = nextStep(cp, needFeature);
- if (Boolean(ret.feature) && ++cacheCounter[(cp >> 8) & 0xff] > CACHE_THRESHOLD) {
- cache[cp] = ret;
- }
- }
- return ret;
-};
-
-fromData = function (next, cp) {
- var hash = cp & 0xff00, dunit = UChar.udata[hash] || {}, feature = dunit[cp];
- return feature ? new UChar(cp, feature) : new UChar(cp, DEFAULT_FEATURE);
-};
-fromCpOnly = function (next, cp, needFeature) {
- return needFeature ? next(cp, needFeature) : new UChar(cp, null);
-};
-
-fromRuleBasedJamo = function (next, cp, needFeature) {
- var char, base, i, arr, SIndex, TIndex, feature, j;
- if (cp < LBase || (LBase + LCount <= cp && cp < SBase) || SBase + SCount < cp) {
- return next(cp, needFeature);
- }
- if (LBase <= cp && cp < LBase + LCount) {
- char = {};
- base = (cp - LBase) * VCount;
- for (i = 0; i < VCount; ++i) {
- char[VBase + i] = SBase + TCount * (i + base);
- }
- arr = new Array(3);
- arr[2] = char;
- return new UChar(cp, arr);
- }
-
- SIndex = cp - SBase;
- TIndex = SIndex % TCount;
- feature = [];
- if (TIndex === 0) {
- feature[0] = [LBase + floor(SIndex / NCount), VBase + floor((SIndex % NCount) / TCount)];
- feature[2] = {};
- for (j = 1; j < TCount; ++j) {
- feature[2][TBase + j] = cp + j;
- }
- } else {
- feature[0] = [SBase + SIndex - TIndex, TBase + TIndex];
- }
- return new UChar(cp, feature);
-};
-
-fromCpFilter = function (next, cp, needFeature) {
- return cp < 60 || (cp > 13311 && cp < 42607)
- ? new UChar(cp, DEFAULT_FEATURE)
- : next(cp, needFeature);
-};
-
-strategies = [fromCpFilter, fromCache, fromCpOnly, fromRuleBasedJamo, fromData];
-
-UChar.fromCharCode = strategies.reduceRight(function (next, strategy) {
- return function (cp, needFeature) { return strategy(next, cp, needFeature); };
-}, null);
-
-UChar.isHighSurrogate = function (cp) { return cp >= 0xd800 && cp <= 0xdbff; };
-UChar.isLowSurrogate = function (cp) { return cp >= 0xdc00 && cp <= 0xdfff; };
-
-UChar.prototype.prepFeature = function () {
- if (!this.feature) {
- this.feature = UChar.fromCharCode(this.codepoint, true).feature;
- }
-};
-
-UChar.prototype.toString = function () {
- var num;
- if (this.codepoint < 0x10000) return String.fromCharCode(this.codepoint);
- num = this.codepoint - 0x10000;
- return String.fromCharCode(floor(num / 0x400) + 0xd800, (num % 0x400) + 0xdc00);
-};
-
-UChar.prototype.getDecomp = function () {
- this.prepFeature();
- return this.feature[0] || null;
-};
-
-UChar.prototype.isCompatibility = function () {
- this.prepFeature();
- return Boolean(this.feature[1]) && this.feature[1] & (1 << 8);
-};
-UChar.prototype.isExclude = function () {
- this.prepFeature();
- return Boolean(this.feature[1]) && this.feature[1] & (1 << 9);
-};
-UChar.prototype.getCanonicalClass = function () {
- this.prepFeature();
- return this.feature[1] ? this.feature[1] & 0xff : 0;
-};
-UChar.prototype.getComposite = function (following) {
- var cp;
- this.prepFeature();
- if (!this.feature[2]) return null;
- cp = this.feature[2][following.codepoint];
- return cp ? UChar.fromCharCode(cp) : null;
-};
-
-UCharIterator = function (str) {
- this.str = str;
- this.cursor = 0;
-};
-UCharIterator.prototype.next = function () {
- if (Boolean(this.str) && this.cursor < this.str.length) {
- var cp = this.str.charCodeAt(this.cursor++), d;
- if (
- UChar.isHighSurrogate(cp) &&
- this.cursor < this.str.length &&
- UChar.isLowSurrogate((d = this.str.charCodeAt(this.cursor)))
- ) {
- cp = (cp - 0xd800) * 0x400 + (d - 0xdc00) + 0x10000;
- ++this.cursor;
- }
- return UChar.fromCharCode(cp);
- }
- this.str = null;
- return null;
-};
-
-RecursDecompIterator = function (it, cano) {
- this.it = it;
- this.canonical = cano;
- this.resBuf = [];
-};
-
-RecursDecompIterator.prototype.next = function () {
- var recursiveDecomp, uchar;
- recursiveDecomp = function (cano, ucharLoc) {
- var decomp = ucharLoc.getDecomp(), ret, i, a, j;
- if (Boolean(decomp) && !(cano && ucharLoc.isCompatibility())) {
- ret = [];
- for (i = 0; i < decomp.length; ++i) {
- a = recursiveDecomp(cano, UChar.fromCharCode(decomp[i]));
- // Ret.concat(a); //<-why does not this work?
- // following block is a workaround.
- for (j = 0; j < a.length; ++j) ret.push(a[j]);
- }
- return ret;
- }
- return [ucharLoc];
- };
- if (this.resBuf.length === 0) {
- uchar = this.it.next();
- if (!uchar) return null;
- this.resBuf = recursiveDecomp(this.canonical, uchar);
- }
- return this.resBuf.shift();
-};
-
-DecompIterator = function (it) {
- this.it = it;
- this.resBuf = [];
-};
-
-DecompIterator.prototype.next = function () {
- var cc, uchar, inspt, uchar2, cc2;
- if (this.resBuf.length === 0) {
- do {
- uchar = this.it.next();
- if (!uchar) break;
- cc = uchar.getCanonicalClass();
- inspt = this.resBuf.length;
- if (cc !== 0) {
- for (inspt; inspt > 0; --inspt) {
- uchar2 = this.resBuf[inspt - 1];
- cc2 = uchar2.getCanonicalClass();
- // eslint-disable-next-line max-depth
- if (cc2 <= cc) break;
- }
- }
- this.resBuf.splice(inspt, 0, uchar);
- } while (cc !== 0);
- }
- return this.resBuf.shift();
-};
-
-CompIterator = function (it) {
- this.it = it;
- this.procBuf = [];
- this.resBuf = [];
- this.lastClass = null;
-};
-
-CompIterator.prototype.next = function () {
- var uchar, starter, composite, cc;
- while (this.resBuf.length === 0) {
- uchar = this.it.next();
- if (!uchar) {
- this.resBuf = this.procBuf;
- this.procBuf = [];
- break;
- }
- if (this.procBuf.length === 0) {
- this.lastClass = uchar.getCanonicalClass();
- this.procBuf.push(uchar);
- } else {
- starter = this.procBuf[0];
- composite = starter.getComposite(uchar);
- cc = uchar.getCanonicalClass();
- if (Boolean(composite) && (this.lastClass < cc || this.lastClass === 0)) {
- this.procBuf[0] = composite;
- } else {
- if (cc === 0) {
- this.resBuf = this.procBuf;
- this.procBuf = [];
- }
- this.lastClass = cc;
- this.procBuf.push(uchar);
- }
- }
- }
- return this.resBuf.shift();
-};
-
-createIterator = function (mode, str) {
- switch (mode) {
- case "NFD":
- return new DecompIterator(new RecursDecompIterator(new UCharIterator(str), true));
- case "NFKD":
- return new DecompIterator(new RecursDecompIterator(new UCharIterator(str), false));
- case "NFC":
- return new CompIterator(
- new DecompIterator(new RecursDecompIterator(new UCharIterator(str), true))
- );
- case "NFKC":
- return new CompIterator(
- new DecompIterator(new RecursDecompIterator(new UCharIterator(str), false))
- );
- default:
- throw new Error(mode + " is invalid");
- }
-};
-normalize = function (mode, str) {
- var it = createIterator(mode, str), ret = "", uchar;
- while ((uchar = it.next())) ret += uchar.toString();
- return ret;
-};
-
-/* Unicode data */
-UChar.udata = data;
-
-module.exports = function (/* Form*/) {
- var str = String(validValue(this)), form = arguments[0];
- if (form === undefined) form = "NFC";
- else form = String(form);
- if (!forms[form]) throw new RangeError("Invalid normalization form: " + form);
- return normalize(form, str);
-};
diff --git a/node_modules/es5-ext/string/#/pad.js b/node_modules/es5-ext/string/#/pad.js
deleted file mode 100644
index 113a873..0000000
--- a/node_modules/es5-ext/string/#/pad.js
+++ /dev/null
@@ -1,16 +0,0 @@
-"use strict";
-
-var toInteger = require("../../number/to-integer")
- , value = require("../../object/valid-value")
- , repeat = require("./repeat")
- , abs = Math.abs
- , max = Math.max;
-
-module.exports = function (fill/*, length*/) {
- var self = String(value(this)), sLength = self.length, length = arguments[1];
-
- length = isNaN(length) ? 1 : toInteger(length);
- fill = repeat.call(String(fill), abs(length));
- if (length >= 0) return fill.slice(0, max(0, length - sLength)) + self;
- return self + (sLength + length >= 0 ? "" : fill.slice(length + sLength));
-};
diff --git a/node_modules/es5-ext/string/#/plain-replace-all.js b/node_modules/es5-ext/string/#/plain-replace-all.js
deleted file mode 100644
index 9334fe0..0000000
--- a/node_modules/es5-ext/string/#/plain-replace-all.js
+++ /dev/null
@@ -1,16 +0,0 @@
-"use strict";
-
-var value = require("../../object/valid-value");
-
-module.exports = function (search, replace) {
- var index, pos = 0, str = String(value(this)), sl, rl;
- search = String(search);
- replace = String(replace);
- sl = search.length;
- rl = replace.length;
- while ((index = str.indexOf(search, pos)) !== -1) {
- str = str.slice(0, index) + replace + str.slice(index + sl);
- pos = index + rl;
- }
- return str;
-};
diff --git a/node_modules/es5-ext/string/#/plain-replace.js b/node_modules/es5-ext/string/#/plain-replace.js
deleted file mode 100644
index b8bfe3d..0000000
--- a/node_modules/es5-ext/string/#/plain-replace.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-var indexOf = String.prototype.indexOf, slice = String.prototype.slice;
-
-module.exports = function (search, replace) {
- var index = indexOf.call(this, search);
- if (index === -1) return String(this);
- return slice.call(this, 0, index) + replace + slice.call(this, index + String(search).length);
-};
diff --git a/node_modules/es5-ext/string/#/repeat/implement.js b/node_modules/es5-ext/string/#/repeat/implement.js
deleted file mode 100644
index f237dcd..0000000
--- a/node_modules/es5-ext/string/#/repeat/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(String.prototype, "repeat", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/string/#/repeat/index.js b/node_modules/es5-ext/string/#/repeat/index.js
deleted file mode 100644
index abcb601..0000000
--- a/node_modules/es5-ext/string/#/repeat/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? String.prototype.repeat : require("./shim");
diff --git a/node_modules/es5-ext/string/#/repeat/is-implemented.js b/node_modules/es5-ext/string/#/repeat/is-implemented.js
deleted file mode 100644
index e8e0240..0000000
--- a/node_modules/es5-ext/string/#/repeat/is-implemented.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var str = "foo";
-
-module.exports = function () {
- if (typeof str.repeat !== "function") return false;
- return str.repeat(2) === "foofoo";
-};
diff --git a/node_modules/es5-ext/string/#/repeat/shim.js b/node_modules/es5-ext/string/#/repeat/shim.js
deleted file mode 100644
index ac259a8..0000000
--- a/node_modules/es5-ext/string/#/repeat/shim.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Thanks
-// @rauchma http://www.2ality.com/2014/01/efficient-string-repeat.html
-// @mathiasbynens https://github.com/mathiasbynens/String.prototype.repeat/blob/4a4b567def/repeat.js
-
-"use strict";
-
-var value = require("../../../object/valid-value")
- , toInteger = require("../../../number/to-integer");
-
-module.exports = function (count) {
- var str = String(value(this)), result;
- count = toInteger(count);
- if (count < 0) throw new RangeError("Count must be >= 0");
- if (!isFinite(count)) throw new RangeError("Count must be < ∞");
-
- result = "";
- while (count) {
- if (count % 2) result += str;
- if (count > 1) str += str;
- // eslint-disable-next-line no-bitwise
- count >>= 1;
- }
- return result;
-};
diff --git a/node_modules/es5-ext/string/#/starts-with/implement.js b/node_modules/es5-ext/string/#/starts-with/implement.js
deleted file mode 100644
index 62abadb..0000000
--- a/node_modules/es5-ext/string/#/starts-with/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(String.prototype, "startsWith", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/string/#/starts-with/index.js b/node_modules/es5-ext/string/#/starts-with/index.js
deleted file mode 100644
index a0a368f..0000000
--- a/node_modules/es5-ext/string/#/starts-with/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? String.prototype.startsWith : require("./shim");
diff --git a/node_modules/es5-ext/string/#/starts-with/is-implemented.js b/node_modules/es5-ext/string/#/starts-with/is-implemented.js
deleted file mode 100644
index d1241bc..0000000
--- a/node_modules/es5-ext/string/#/starts-with/is-implemented.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var str = "razdwatrzy";
-
-module.exports = function () {
- if (typeof str.startsWith !== "function") return false;
- return str.startsWith("trzy") === false && str.startsWith("raz") === true;
-};
diff --git a/node_modules/es5-ext/string/#/starts-with/shim.js b/node_modules/es5-ext/string/#/starts-with/shim.js
deleted file mode 100644
index 053c885..0000000
--- a/node_modules/es5-ext/string/#/starts-with/shim.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-var value = require("../../../object/valid-value")
- , toInteger = require("../../../number/to-integer")
- , max = Math.max
- , min = Math.min;
-
-module.exports = function (searchString/*, position*/) {
- var start, self = String(value(this));
- start = min(max(toInteger(arguments[1]), 0), self.length);
- return self.indexOf(searchString, start) === start;
-};
diff --git a/node_modules/es5-ext/string/#/uncapitalize.js b/node_modules/es5-ext/string/#/uncapitalize.js
deleted file mode 100644
index 202dbb7..0000000
--- a/node_modules/es5-ext/string/#/uncapitalize.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var ensureStringifiable = require("../../object/validate-stringifiable-value");
-
-module.exports = function () {
- var str = ensureStringifiable(this);
- return str.charAt(0).toLowerCase() + str.slice(1);
-};
diff --git a/node_modules/es5-ext/string/format-method.js b/node_modules/es5-ext/string/format-method.js
deleted file mode 100644
index 28956fe..0000000
--- a/node_modules/es5-ext/string/format-method.js
+++ /dev/null
@@ -1,27 +0,0 @@
-"use strict";
-
-var isCallable = require("../object/is-callable")
- , value = require("../object/valid-value")
- , call = Function.prototype.call;
-
-module.exports = function (fmap) {
- fmap = Object(value(fmap));
- return function (pattern) {
- var context = this;
- value(context);
- pattern = String(pattern);
- return pattern.replace(/%([a-zA-Z]+)|\\([\u0000-\uffff])/g, function (
- match,
- token,
- escapeChar
- ) {
- var t, result;
- if (escapeChar) return escapeChar;
- t = token;
- while (t && !(result = fmap[t])) t = t.slice(0, -1);
- if (!result) return match;
- if (isCallable(result)) result = call.call(result, context);
- return result + token.slice(t.length);
- });
- };
-};
diff --git a/node_modules/es5-ext/string/from-code-point/implement.js b/node_modules/es5-ext/string/from-code-point/implement.js
deleted file mode 100644
index 71728bf..0000000
--- a/node_modules/es5-ext/string/from-code-point/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(String, "fromCodePoint", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/string/from-code-point/index.js b/node_modules/es5-ext/string/from-code-point/index.js
deleted file mode 100644
index 5a5fc5b..0000000
--- a/node_modules/es5-ext/string/from-code-point/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? String.fromCodePoint : require("./shim");
diff --git a/node_modules/es5-ext/string/from-code-point/is-implemented.js b/node_modules/es5-ext/string/from-code-point/is-implemented.js
deleted file mode 100644
index ae4b818..0000000
--- a/node_modules/es5-ext/string/from-code-point/is-implemented.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function () {
- var fromCodePoint = String.fromCodePoint;
- if (typeof fromCodePoint !== "function") return false;
- return fromCodePoint(0x1d306, 0x61, 0x1d307) === "\ud834\udf06a\ud834\udf07";
-};
diff --git a/node_modules/es5-ext/string/from-code-point/shim.js b/node_modules/es5-ext/string/from-code-point/shim.js
deleted file mode 100644
index c2f1c3a..0000000
--- a/node_modules/es5-ext/string/from-code-point/shim.js
+++ /dev/null
@@ -1,37 +0,0 @@
-// Based on:
-// http://norbertlindenberg.com/2012/05/ecmascript-supplementary-characters/
-// and:
-// https://github.com/mathiasbynens/String.fromCodePoint/blob/master
-// /fromcodepoint.js
-
-"use strict";
-
-var floor = Math.floor, fromCharCode = String.fromCharCode;
-
-// eslint-disable-next-line no-unused-vars
-module.exports = function (codePoint1/*, …codePoints*/) {
- var chars = [], length = arguments.length, i, codePoint, result = "";
- for (i = 0; i < length; ++i) {
- codePoint = Number(arguments[i]);
- if (
- !isFinite(codePoint) ||
- codePoint < 0 ||
- codePoint > 0x10ffff ||
- floor(codePoint) !== codePoint
- ) {
- throw new RangeError("Invalid code point " + codePoint);
- }
-
- if (codePoint < 0x10000) {
- chars.push(codePoint);
- } else {
- codePoint -= 0x10000;
- // eslint-disable-next-line no-bitwise
- chars.push((codePoint >> 10) + 0xd800, (codePoint % 0x400) + 0xdc00);
- }
- if (i + 1 !== length && chars.length <= 0x4000) continue;
- result += fromCharCode.apply(null, chars);
- chars.length = 0;
- }
- return result;
-};
diff --git a/node_modules/es5-ext/string/index.js b/node_modules/es5-ext/string/index.js
deleted file mode 100644
index 4393588..0000000
--- a/node_modules/es5-ext/string/index.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-module.exports = {
- "#": require("./#"),
- "formatMethod": require("./format-method"),
- "fromCodePoint": require("./from-code-point"),
- "isString": require("./is-string"),
- "random": require("./random"),
- "randomUniq": require("./random-uniq"),
- "raw": require("./raw")
-};
diff --git a/node_modules/es5-ext/string/is-string.js b/node_modules/es5-ext/string/is-string.js
deleted file mode 100644
index 1b1e863..0000000
--- a/node_modules/es5-ext/string/is-string.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-var objToString = Object.prototype.toString, id = objToString.call("");
-
-module.exports = function (value) {
- return (
- typeof value === "string" ||
- (value &&
- typeof value === "object" &&
- (value instanceof String || objToString.call(value) === id)) ||
- false
- );
-};
diff --git a/node_modules/es5-ext/string/random-uniq.js b/node_modules/es5-ext/string/random-uniq.js
deleted file mode 100644
index ae57b29..0000000
--- a/node_modules/es5-ext/string/random-uniq.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-var generated = Object.create(null), random = Math.random;
-
-module.exports = function () {
- var str;
- do {
- str = random().toString(36).slice(2);
- } while (generated[str]);
- return str;
-};
diff --git a/node_modules/es5-ext/string/random.js b/node_modules/es5-ext/string/random.js
deleted file mode 100644
index 8fda5de..0000000
--- a/node_modules/es5-ext/string/random.js
+++ /dev/null
@@ -1,38 +0,0 @@
-"use strict";
-
-var isValue = require("../object/is-value")
- , toNaturalNumber = require("../number/to-pos-integer");
-
-var generated = Object.create(null), random = Math.random, uniqTryLimit = 100;
-
-var getChunk = function () { return random().toString(36).slice(2); };
-
-var getString = function (/* length */) {
- var str = getChunk(), length = arguments[0];
- if (!isValue(length)) return str;
- while (str.length < length) str += getChunk();
- return str.slice(0, length);
-};
-
-module.exports = function (/* options */) {
- var options = Object(arguments[0]), length = options.length, isUnique = options.isUnique;
-
- if (isValue(length)) length = toNaturalNumber(length);
-
- var str = getString(length);
- if (isUnique) {
- var count = 0;
- while (generated[str]) {
- if (++count === uniqTryLimit) {
- throw new Error(
- "Cannot generate random string.\n" +
- "String.random is not designed to effectively generate many short and " +
- "unique random strings"
- );
- }
- str = getString(length);
- }
- generated[str] = true;
- }
- return str;
-};
diff --git a/node_modules/es5-ext/string/raw/implement.js b/node_modules/es5-ext/string/raw/implement.js
deleted file mode 100644
index 24f17c2..0000000
--- a/node_modules/es5-ext/string/raw/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(String, "raw", {
- value: require("./shim"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es5-ext/string/raw/index.js b/node_modules/es5-ext/string/raw/index.js
deleted file mode 100644
index 39889e9..0000000
--- a/node_modules/es5-ext/string/raw/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? String.raw : require("./shim");
diff --git a/node_modules/es5-ext/string/raw/is-implemented.js b/node_modules/es5-ext/string/raw/is-implemented.js
deleted file mode 100644
index 8758108..0000000
--- a/node_modules/es5-ext/string/raw/is-implemented.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-module.exports = function () {
- var raw = String.raw, test;
- if (typeof raw !== "function") return false;
- test = ["foo\nbar", "marko\n"];
- test.raw = ["foo\\nbar", "marko\\n"];
- return raw(test, "INSE\nRT") === "foo\\nbarINSE\nRTmarko\\n";
-};
diff --git a/node_modules/es5-ext/string/raw/shim.js b/node_modules/es5-ext/string/raw/shim.js
deleted file mode 100644
index 5d17e5f..0000000
--- a/node_modules/es5-ext/string/raw/shim.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-
-var toPosInt = require("../../number/to-pos-integer")
- , validValue = require("../../object/valid-value")
- , reduce = Array.prototype.reduce;
-
-module.exports = function (callSite/*, …substitutions*/) {
- var args, rawValue = Object(validValue(Object(validValue(callSite)).raw));
- if (!toPosInt(rawValue.length)) return "";
- args = arguments;
- return reduce.call(rawValue, function (str1, str2, i) {
- return str1 + String(args[i]) + str2;
- });
-};
diff --git a/node_modules/es5-ext/test/.eslintrc.json b/node_modules/es5-ext/test/.eslintrc.json
deleted file mode 100644
index 7d69172..0000000
--- a/node_modules/es5-ext/test/.eslintrc.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "globals": { "Symbol": true },
- "rules": {
- "consistent-this": "off",
- "id-length": "off",
- "no-empty-function": "off",
- "no-eval": "off",
- "no-new-wrappers": "off",
- "no-prototype-builtins": "off",
- "no-shadow": "off"
- }
-}
diff --git a/node_modules/es5-ext/test/__tad.js b/node_modules/es5-ext/test/__tad.js
deleted file mode 100644
index 883c379..0000000
--- a/node_modules/es5-ext/test/__tad.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-exports.context = null;
diff --git a/node_modules/es5-ext/test/array/#/@@iterator/implement.js b/node_modules/es5-ext/test/array/#/@@iterator/implement.js
deleted file mode 100644
index aac624f..0000000
--- a/node_modules/es5-ext/test/array/#/@@iterator/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../../array/#/@@iterator/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/array/#/@@iterator/index.js b/node_modules/es5-ext/test/array/#/@@iterator/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/array/#/@@iterator/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/array/#/@@iterator/is-implemented.js b/node_modules/es5-ext/test/array/#/@@iterator/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/array/#/@@iterator/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/array/#/@@iterator/shim.js b/node_modules/es5-ext/test/array/#/@@iterator/shim.js
deleted file mode 100644
index 71b71d5..0000000
--- a/node_modules/es5-ext/test/array/#/@@iterator/shim.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-exports.__generic = function (t, a) {
- var iterator = t.call(this);
- a.deep(iterator.next(), { value: "1", done: false });
- a.deep(iterator.next(), { value: "2", done: false });
- a.deep(iterator.next(), { value: "3", done: false });
- a.deep(iterator.next(), { value: undefined, done: true });
-};
diff --git a/node_modules/es5-ext/test/array/#/_compare-by-length.js b/node_modules/es5-ext/test/array/#/_compare-by-length.js
deleted file mode 100644
index a53d847..0000000
--- a/node_modules/es5-ext/test/array/#/_compare-by-length.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var arr = [4, 5, 6], obj1 = { length: 8 }, obj2 = {}, obj3 = { length: 1 };
-
- a.deep([arr, obj1, obj2, obj3].sort(t), [obj2, obj3, arr, obj1]);
-};
diff --git a/node_modules/es5-ext/test/array/#/binary-search.js b/node_modules/es5-ext/test/array/#/binary-search.js
deleted file mode 100644
index 7c1d2f6..0000000
--- a/node_modules/es5-ext/test/array/#/binary-search.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-var compare = function (value) { return this - value; };
-
-module.exports = function (t, a) {
- var arr;
- arr = [2, 5, 5, 8, 34, 67, 98, 345, 678];
-
- // Highest, equal match
- a(t.call(arr, compare.bind(1)), 0, "All higher");
- a(t.call(arr, compare.bind(679)), arr.length - 1, "All lower");
- a(t.call(arr, compare.bind(4)), 0, "Mid");
- a(t.call(arr, compare.bind(5)), 2, "Match");
- a(t.call(arr, compare.bind(6)), 2, "Above");
-};
diff --git a/node_modules/es5-ext/test/array/#/clear.js b/node_modules/es5-ext/test/array/#/clear.js
deleted file mode 100644
index 640cc19..0000000
--- a/node_modules/es5-ext/test/array/#/clear.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var arr = [1, 2, {}, 4];
- a(t.call(arr), arr, "Returns same array");
- a.deep(arr, [], "Empties array");
-};
diff --git a/node_modules/es5-ext/test/array/#/compact.js b/node_modules/es5-ext/test/array/#/compact.js
deleted file mode 100644
index a7702a1..0000000
--- a/node_modules/es5-ext/test/array/#/compact.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-module.exports = {
- "__generic": function (t, a) { a(t.call(this).length, 3); },
- "": function (t, a) {
- var o, x, y, z;
- o = {};
- x = [0, 1, "", null, o, false, undefined, true];
- y = x.slice(0);
-
- a.not((z = t.call(x)), x, "Returns different object");
- a.deep(x, y, "Origin not changed");
- a.deep(z, [0, 1, "", o, false, true], "Result");
- }
-};
diff --git a/node_modules/es5-ext/test/array/#/concat/implement.js b/node_modules/es5-ext/test/array/#/concat/implement.js
deleted file mode 100644
index 83a397e..0000000
--- a/node_modules/es5-ext/test/array/#/concat/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../../array/#/concat/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/array/#/concat/index.js b/node_modules/es5-ext/test/array/#/concat/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/array/#/concat/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/array/#/concat/is-implemented.js b/node_modules/es5-ext/test/array/#/concat/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/array/#/concat/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/array/#/concat/shim.js b/node_modules/es5-ext/test/array/#/concat/shim.js
deleted file mode 100644
index a9e6273..0000000
--- a/node_modules/es5-ext/test/array/#/concat/shim.js
+++ /dev/null
@@ -1,29 +0,0 @@
-"use strict";
-
-var isConcatSpreadable = require("es6-symbol").isConcatSpreadable
- , SubArray = require("../../../../array/_sub-array-dummy-safe");
-
-module.exports = function (t, a) {
- var arr = [1, 3, 45], x = {}, subArr, subArr2, result;
-
- a.deep(
- t.call(arr, "2d", x, ["ere", "fe", x], false, null),
- [1, 3, 45, "2d", x, "ere", "fe", x, false, null], "Plain array"
- );
-
- subArr = new SubArray("lol", "miszko");
- subArr2 = new SubArray("elo", "fol");
-
- result = t.call(subArr, "df", arr, "fef", subArr2, null);
- a(result instanceof SubArray, true, "Instance of subclass");
- a.deep(
- result, ["lol", "miszko", "df", 1, 3, 45, "fef", "elo", "fol", null], "Spreable by default"
- );
-
- SubArray.prototype[isConcatSpreadable] = false;
-
- result = t.call(subArr, "df", arr, "fef", subArr2, null);
- a.deep(result, [subArr, "df", 1, 3, 45, "fef", subArr2, null], "Non spreadable");
-
- delete SubArray.prototype[isConcatSpreadable];
-};
diff --git a/node_modules/es5-ext/test/array/#/contains.js b/node_modules/es5-ext/test/array/#/contains.js
deleted file mode 100644
index fb0f96c..0000000
--- a/node_modules/es5-ext/test/array/#/contains.js
+++ /dev/null
@@ -1,21 +0,0 @@
-"use strict";
-
-module.exports = {
- "__generic": function (t, a) {
- a(t.call(this, this[1]), true, "Contains");
- a(t.call(this, {}), false, "Does Not contain");
- },
- "": function (t, a) {
- var o, x = {}, y = {};
-
- o = [1, "raz", x];
-
- a(t.call(o, 1), true, "First");
- a(t.call(o, "1"), false, "Type coercion");
- a(t.call(o, "raz"), true, "Primitive");
- a(t.call(o, "foo"), false, "Primitive not found");
- a(t.call(o, x), true, "Object found");
- a(t.call(o, y), false, "Object not found");
- a(t.call(o, 1, 1), false, "Position");
- }
-};
diff --git a/node_modules/es5-ext/test/array/#/copy-within/implement.js b/node_modules/es5-ext/test/array/#/copy-within/implement.js
deleted file mode 100644
index 6d5a305..0000000
--- a/node_modules/es5-ext/test/array/#/copy-within/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../../array/#/copy-within/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/array/#/copy-within/index.js b/node_modules/es5-ext/test/array/#/copy-within/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/array/#/copy-within/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/array/#/copy-within/is-implemented.js b/node_modules/es5-ext/test/array/#/copy-within/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/array/#/copy-within/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/array/#/copy-within/shim.js b/node_modules/es5-ext/test/array/#/copy-within/shim.js
deleted file mode 100644
index 03a631f..0000000
--- a/node_modules/es5-ext/test/array/#/copy-within/shim.js
+++ /dev/null
@@ -1,29 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var args, x;
-
- a.h1("2 args");
- x = [1, 2, 3, 4, 5];
- t.call(x, 0, 3);
- a.deep(x, [4, 5, 3, 4, 5]);
- a.deep(t.call([1, 2, 3, 4, 5], 1, 3), [1, 4, 5, 4, 5]);
- a.deep(t.call([1, 2, 3, 4, 5], 1, 2), [1, 3, 4, 5, 5]);
- a.deep(t.call([1, 2, 3, 4, 5], 2, 2), [1, 2, 3, 4, 5]);
-
- a.h1("3 args");
- a.deep(t.call([1, 2, 3, 4, 5], 0, 3, 4), [4, 2, 3, 4, 5]);
- a.deep(t.call([1, 2, 3, 4, 5], 1, 3, 4), [1, 4, 3, 4, 5]);
- a.deep(t.call([1, 2, 3, 4, 5], 1, 2, 4), [1, 3, 4, 4, 5]);
-
- a.h1("Negative args");
- a.deep(t.call([1, 2, 3, 4, 5], 0, -2), [4, 5, 3, 4, 5]);
- a.deep(t.call([1, 2, 3, 4, 5], 0, -2, -1), [4, 2, 3, 4, 5]);
- a.deep(t.call([1, 2, 3, 4, 5], -4, -3, -2), [1, 3, 3, 4, 5]);
- a.deep(t.call([1, 2, 3, 4, 5], -4, -3, -1), [1, 3, 4, 4, 5]);
- a.deep(t.call([1, 2, 3, 4, 5], -4, -3), [1, 3, 4, 5, 5]);
-
- a.h1("Array-likes");
- args = { 0: 1, 1: 2, 2: 3, length: 3 };
- a.deep(t.call(args, -2, 0), { 0: 1, 1: 1, 2: 2, length: 3 });
-};
diff --git a/node_modules/es5-ext/test/array/#/diff.js b/node_modules/es5-ext/test/array/#/diff.js
deleted file mode 100644
index b088d83..0000000
--- a/node_modules/es5-ext/test/array/#/diff.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-module.exports = {
- "__generic": function (t, a) { a.deep(t.call(this, this), []); },
- "": function (t, a) {
- var x = {}, y = {};
-
- a.deep(t.call([1, "raz", x, 2, "trzy", y], [x, 2, "trzy"]), [1, "raz", y], "Scope longer");
- a.deep(t.call([1, "raz", x], [x, 2, "trzy", 1, y]), ["raz"], "Arg longer");
- a.deep(t.call([1, "raz", x], []), [1, "raz", x], "Empty arg");
- a.deep(t.call([], [1, y, "sdfs"]), [], "Empty scope");
- }
-};
diff --git a/node_modules/es5-ext/test/array/#/e-index-of.js b/node_modules/es5-ext/test/array/#/e-index-of.js
deleted file mode 100644
index 1e42cbd..0000000
--- a/node_modules/es5-ext/test/array/#/e-index-of.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var x = {};
- a(t.call([3, "raz", {}, x, {}], x), 3, "Regular");
- a(t.call([3, "raz", NaN, {}, NaN], NaN), 2, "NaN");
- a(t.call([3, "raz", 0, {}, -0], -0), 2, "-0");
- a(t.call([3, "raz", -0, {}, 0], +0), 2, "+0");
- a(t.call([3, "raz", NaN, {}, NaN], NaN, 3), 4, "fromIndex");
- a(t.call([3, "raz", NaN, {}, NaN], NaN, -1), 4, "fromIndex negative #1");
- a(t.call([3, "raz", NaN, {}, NaN], NaN, -2), 4, "fromIndex negative #2");
- a(t.call([3, "raz", NaN, {}, NaN], NaN, -3), 2, "fromIndex negative #3");
-};
diff --git a/node_modules/es5-ext/test/array/#/e-last-index-of.js b/node_modules/es5-ext/test/array/#/e-last-index-of.js
deleted file mode 100644
index 2c7fff9..0000000
--- a/node_modules/es5-ext/test/array/#/e-last-index-of.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var x = {};
- a(t.call([3, "raz", {}, x, {}, x], x), 5, "Regular");
- a(t.call([3, "raz", NaN, {}, x], NaN), 2, "NaN");
- a(t.call([3, "raz", 0, {}, -0], -0), 4, "-0");
- a(t.call([3, "raz", -0, {}, 0], +0), 4, "+0");
- a(t.call([3, "raz", NaN, {}, NaN], NaN, 3), 2, "fromIndex");
- a(t.call([3, "raz", NaN, 2, NaN], NaN, -1), 4, "Negative fromIndex #1");
- a(t.call([3, "raz", NaN, 2, NaN], NaN, -2), 2, "Negative fromIndex #2");
-};
diff --git a/node_modules/es5-ext/test/array/#/entries/implement.js b/node_modules/es5-ext/test/array/#/entries/implement.js
deleted file mode 100644
index 00dbf0e..0000000
--- a/node_modules/es5-ext/test/array/#/entries/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../../array/#/entries/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/array/#/entries/index.js b/node_modules/es5-ext/test/array/#/entries/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/array/#/entries/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/array/#/entries/is-implemented.js b/node_modules/es5-ext/test/array/#/entries/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/array/#/entries/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/array/#/entries/shim.js b/node_modules/es5-ext/test/array/#/entries/shim.js
deleted file mode 100644
index 87ac25a..0000000
--- a/node_modules/es5-ext/test/array/#/entries/shim.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-exports.__generic = function (t, a) {
- var iterator = t.call(this);
- a.deep(iterator.next(), { value: [0, "1"], done: false });
- a.deep(iterator.next(), { value: [1, "2"], done: false });
- a.deep(iterator.next(), { value: [2, "3"], done: false });
- a.deep(iterator.next(), { value: undefined, done: true });
-};
diff --git a/node_modules/es5-ext/test/array/#/exclusion.js b/node_modules/es5-ext/test/array/#/exclusion.js
deleted file mode 100644
index 827c037..0000000
--- a/node_modules/es5-ext/test/array/#/exclusion.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-module.exports = {
- "__generic": function (t, a) {
- var x = {};
- a.deep(t.call(this, this, [this[0], this[2], x]), [x]);
- },
- "": function (t, a) {
- var x = {}, y = {};
-
- a.deep(t.call([x, y]), [x, y], "No arguments");
- a.deep(t.call([x, 1], [], []), [x, 1], "Empty arguments");
- a.deep(t.call([1, "raz", x], [2, "raz", y], [2, "raz", x]), [1, y]);
- }
-};
diff --git a/node_modules/es5-ext/test/array/#/fill/implement.js b/node_modules/es5-ext/test/array/#/fill/implement.js
deleted file mode 100644
index 41f2a5b..0000000
--- a/node_modules/es5-ext/test/array/#/fill/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../../array/#/fill/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/array/#/fill/index.js b/node_modules/es5-ext/test/array/#/fill/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/array/#/fill/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/array/#/fill/is-implemented.js b/node_modules/es5-ext/test/array/#/fill/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/array/#/fill/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/array/#/fill/shim.js b/node_modules/es5-ext/test/array/#/fill/shim.js
deleted file mode 100644
index 75906e9..0000000
--- a/node_modules/es5-ext/test/array/#/fill/shim.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Taken from https://github.com/paulmillr/es6-shim/blob/master/test/array.js
-
-"use strict";
-
-module.exports = function (t, a) {
- var x;
-
- x = [1, 2, 3, 4, 5, 6];
- a(t.call(x, -1), x, "Returns self object");
- a.deep(x, [-1, -1, -1, -1, -1, -1], "Value");
-
- a.deep(t.call([1, 2, 3, 4, 5, 6], -1, 3), [1, 2, 3, -1, -1, -1], "Positive start");
- a.deep(t.call([1, 2, 3, 4, 5, 6], -1, -3), [1, 2, 3, -1, -1, -1], "Negative start");
- a.deep(t.call([1, 2, 3, 4, 5, 6], -1, 9), [1, 2, 3, 4, 5, 6], "Large start");
-};
diff --git a/node_modules/es5-ext/test/array/#/filter/implement.js b/node_modules/es5-ext/test/array/#/filter/implement.js
deleted file mode 100644
index 9a6ad04..0000000
--- a/node_modules/es5-ext/test/array/#/filter/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../../array/#/filter/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/array/#/filter/index.js b/node_modules/es5-ext/test/array/#/filter/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/array/#/filter/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/array/#/filter/is-implemented.js b/node_modules/es5-ext/test/array/#/filter/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/array/#/filter/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/array/#/filter/shim.js b/node_modules/es5-ext/test/array/#/filter/shim.js
deleted file mode 100644
index e20a651..0000000
--- a/node_modules/es5-ext/test/array/#/filter/shim.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-var SubArray = require("../../../../array/_sub-array-dummy-safe");
-
-module.exports = function (t, a) {
- var arr, x = {}, subArr, result;
-
- arr = ["foo", undefined, 0, "2d", false, x, null];
-
- a.deep(t.call(arr, Boolean), ["foo", "2d", x], "Plain array");
-
- subArr = new SubArray("foo", undefined, 0, "2d", false, x, null);
-
- result = t.call(subArr, Boolean);
- a(result instanceof SubArray, true, "Instance of subclass");
- a.deep(result, ["foo", "2d", x], "Result of subclass");
-};
diff --git a/node_modules/es5-ext/test/array/#/find-index/implement.js b/node_modules/es5-ext/test/array/#/find-index/implement.js
deleted file mode 100644
index 2291982..0000000
--- a/node_modules/es5-ext/test/array/#/find-index/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../../array/#/find-index/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/array/#/find-index/index.js b/node_modules/es5-ext/test/array/#/find-index/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/array/#/find-index/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/array/#/find-index/is-implemented.js b/node_modules/es5-ext/test/array/#/find-index/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/array/#/find-index/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/array/#/find-index/shim.js b/node_modules/es5-ext/test/array/#/find-index/shim.js
deleted file mode 100644
index 665c562..0000000
--- a/node_modules/es5-ext/test/array/#/find-index/shim.js
+++ /dev/null
@@ -1,23 +0,0 @@
-"use strict";
-
-exports.__generic = function (t, a) {
- var count = 0, o = {}, self = Object(this);
- a(
- t.call(
- self,
- function (value, i, scope) {
- a(value, this[i], "Value");
- a(i, count++, "Index");
- a(scope, this, "Scope");
- },
- self
- ),
- -1,
- "Falsy result"
- );
- a(count, 3);
-
- count = -1;
- a(t.call(this, function () { return ++count ? o : null; }, this), 1, "Truthy result");
- a(count, 1);
-};
diff --git a/node_modules/es5-ext/test/array/#/find/implement.js b/node_modules/es5-ext/test/array/#/find/implement.js
deleted file mode 100644
index 463198b..0000000
--- a/node_modules/es5-ext/test/array/#/find/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../../array/#/find/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/array/#/find/index.js b/node_modules/es5-ext/test/array/#/find/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/array/#/find/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/array/#/find/is-implemented.js b/node_modules/es5-ext/test/array/#/find/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/array/#/find/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/array/#/find/shim.js b/node_modules/es5-ext/test/array/#/find/shim.js
deleted file mode 100644
index fdda122..0000000
--- a/node_modules/es5-ext/test/array/#/find/shim.js
+++ /dev/null
@@ -1,23 +0,0 @@
-"use strict";
-
-exports.__generic = function (t, a) {
- var count = 0, o = {}, self = Object(this);
- a(
- t.call(
- self,
- function (value, i, scope) {
- a(value, this[i], "Value");
- a(i, count++, "Index");
- a(scope, this, "Scope");
- },
- self
- ),
- undefined,
- "Falsy result"
- );
- a(count, 3);
-
- count = -1;
- a(t.call(this, function () { return ++count ? o : null; }, this), this[1], "Truthy result");
- a(count, 1);
-};
diff --git a/node_modules/es5-ext/test/array/#/first-index.js b/node_modules/es5-ext/test/array/#/first-index.js
deleted file mode 100644
index af3388b..0000000
--- a/node_modules/es5-ext/test/array/#/first-index.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var x;
- a(t.call([]), null, "Empty");
- a(t.call([null]), 0, "One value");
- a(t.call([1, 2, 3]), 0, "Many values");
- a(t.call(new Array(1000)), null, "Sparse empty");
- x = [];
- x[883] = undefined;
- x[890] = null;
- a(t.call(x), 883, "Manual sparse, distant value");
- x = new Array(1000);
- x[657] = undefined;
- x[700] = null;
- a(t.call(x), 657, "Sparse, distant value");
-};
diff --git a/node_modules/es5-ext/test/array/#/first.js b/node_modules/es5-ext/test/array/#/first.js
deleted file mode 100644
index 4e72c02..0000000
--- a/node_modules/es5-ext/test/array/#/first.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-exports.__generic = function (t, a) { a(t.call(this), this[0]); };
-exports[""] = function (t, a) {
- var x;
- a(t.call([]), undefined, "Empty");
- a(t.call(new Array(234), undefined, "Sparse empty"));
- x = new Array(2342);
- x[434] = {};
- a(t.call(x), x[434], "Sparse");
-};
diff --git a/node_modules/es5-ext/test/array/#/flatten.js b/node_modules/es5-ext/test/array/#/flatten.js
deleted file mode 100644
index aa749a5..0000000
--- a/node_modules/es5-ext/test/array/#/flatten.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-var o = [1, 2, [3, 4, [5, 6], 7, 8], 9, 10, [11, 12, [13, 14]], 15];
-
-module.exports = {
- "__generic": function (t, a) { a(t.call(this).length, 3); },
- "Nested Arrays": function (t, a) {
- var result = t.call(o);
- a.not(o, result);
- a.deep(result, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]);
- }
-};
diff --git a/node_modules/es5-ext/test/array/#/for-each-right.js b/node_modules/es5-ext/test/array/#/for-each-right.js
deleted file mode 100644
index b5eb984..0000000
--- a/node_modules/es5-ext/test/array/#/for-each-right.js
+++ /dev/null
@@ -1,39 +0,0 @@
-"use strict";
-
-module.exports = {
- "__generic": function (t, a) {
- var count = 0, first, last, x, icount = this.length;
- t.call(this, function (item, index, col) {
- ++count;
- if (!first) {
- first = item;
- }
- last = item;
- x = col;
- a(index, --icount, "Index");
- });
- a(count, this.length, "Iterated");
- a(first, this[this.length - 1], "First is last");
- a(last, this[0], "Last is first");
- a.deep(x, Object(this), "Collection as third argument"); // Jslint: skip
- },
- "": function (t, a) {
- var x = {}, y, count;
- t.call([1], function () { y = this; }, x);
- a(y, x, "Scope");
- y = 0;
- t.call([3, 4, 4], function (a, i) { y += i; });
- a(y, 3, "Indexes");
-
- x = [1, 3];
- x[5] = "x";
- y = 0;
- count = 0;
- t.call(x, function (a, i) {
- ++count;
- y += i;
- });
- a(y, 6, "Misssing Indexes");
- a(count, 3, "Misssing Indexes, count");
- }
-};
diff --git a/node_modules/es5-ext/test/array/#/group.js b/node_modules/es5-ext/test/array/#/group.js
deleted file mode 100644
index 114fffd..0000000
--- a/node_modules/es5-ext/test/array/#/group.js
+++ /dev/null
@@ -1,30 +0,0 @@
-"use strict";
-
-module.exports = {
- "__generic": function (t, a) {
- var count = 0, self;
-
- self = Object(this);
- a.deep(
- t.call(
- self,
- function (v, i, scope) {
- a(v, this[i], "Value");
- a(i, count++, "Index");
- a(scope, this, "Scope");
- return i;
- },
- self
- ),
- { 0: [this[0]], 1: [this[1]], 2: [this[2]] }
- );
- },
- "": function (t, a) {
- var r;
- r = t.call([2, 3, 3, 4, 5, 6, 7, 7, 23, 45, 34, 56], function (v) {
- return v % 2 ? "odd" : "even";
- });
- a.deep(r.odd, [3, 3, 5, 7, 7, 23, 45]);
- a.deep(r.even, [2, 4, 6, 34, 56]);
- }
-};
diff --git a/node_modules/es5-ext/test/array/#/indexes-of.js b/node_modules/es5-ext/test/array/#/indexes-of.js
deleted file mode 100644
index aa50d5e..0000000
--- a/node_modules/es5-ext/test/array/#/indexes-of.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-module.exports = {
- "__generic": function (t, a) { a.deep(t.call(this, this[1]), [1]); },
- "": function (t, a) {
- var x = {};
- a.deep(t.call([1, 3, 5, 3, 5], 6), [], "No result");
- a.deep(t.call([1, 3, 5, 1, 3, 5, 1], 1), [0, 3, 6], "Some results");
- a.deep(t.call([], x), [], "Empty array");
- a.deep(t.call([x, 3, {}, x, 3, 5, x], x), [0, 3, 6], "Search for object");
- }
-};
diff --git a/node_modules/es5-ext/test/array/#/intersection.js b/node_modules/es5-ext/test/array/#/intersection.js
deleted file mode 100644
index 81088d2..0000000
--- a/node_modules/es5-ext/test/array/#/intersection.js
+++ /dev/null
@@ -1,25 +0,0 @@
-"use strict";
-
-var toArray = require("../../../array/to-array");
-
-module.exports = {
- "__generic": function (t, a) { a.deep(t.call(this, this, this), toArray(this)); },
- "": function (t, a) {
- var x = {}, y = {}, p, r;
- a.deep(t.call([], [2, 3, 4]), [], "Empty #1");
- a.deep(t.call([2, 3, 4], []), [], "Empty #2");
- a.deep(t.call([2, 3, x], [y, 5, 7]), [], "Different");
- p = t.call(
- [3, 5, "raz", {}, "dwa", x], [1, 3, "raz", "dwa", "trzy", x, {}], [3, "raz", x, 65]
- );
- r = [3, "raz", x];
- p.sort();
- r.sort();
- a.deep(p, r, "Same parts");
- a.deep(t.call(r, r), r, "Same");
- a.deep(
- t.call([1, 2, x, 4, 5, y, 7], [7, y, 5, 4, x, 2, 1]), [1, 2, x, 4, 5, y, 7],
- "Long reverse same"
- );
- }
-};
diff --git a/node_modules/es5-ext/test/array/#/is-copy.js b/node_modules/es5-ext/test/array/#/is-copy.js
deleted file mode 100644
index b362485..0000000
--- a/node_modules/es5-ext/test/array/#/is-copy.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var x = {};
- a(t.call([], []), true, "Empty");
- a(t.call([], {}), true, "Empty lists");
- a(t.call([1, x, "raz"], [1, x, "raz"]), true, "Same");
- a(t.call([1, x, "raz"], { 0: 1, 1: x, 2: "raz", length: 3 }), true, "Same lists");
- a(t.call([1, x, "raz"], [x, 1, "raz"]), false, "Diff order");
- a(t.call([1, x], [1, x, "raz"]), false, "Diff length #1");
- a(t.call([1, x, "raz"], [1, x]), false, "Diff length #2");
-};
diff --git a/node_modules/es5-ext/test/array/#/is-empty.js b/node_modules/es5-ext/test/array/#/is-empty.js
deleted file mode 100644
index 1e1c097..0000000
--- a/node_modules/es5-ext/test/array/#/is-empty.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var x = {};
- a(t.call([]), true, "Empty");
- a(t.call({ length: 0 }), true, "Empty lists");
- a(t.call([1, x, "raz"]), false, "Non empty");
-};
diff --git a/node_modules/es5-ext/test/array/#/is-uniq.js b/node_modules/es5-ext/test/array/#/is-uniq.js
deleted file mode 100644
index ab531ac..0000000
--- a/node_modules/es5-ext/test/array/#/is-uniq.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var x = {};
- a(t.call([]), true, "Empty");
- a(t.call({}), true, "Empty lists");
- a(t.call([1, x, "raz"]), true, "Uniq");
- a(t.call([1, x, 1, "raz"]), false, "Not Uniq: primitive");
- a(t.call([1, x, "1", "raz"]), true, "Uniq: primitive");
- a(t.call([1, x, 1, {}, "raz"]), false, "Not Uniq: Obj");
-};
diff --git a/node_modules/es5-ext/test/array/#/keys/implement.js b/node_modules/es5-ext/test/array/#/keys/implement.js
deleted file mode 100644
index 5afe847..0000000
--- a/node_modules/es5-ext/test/array/#/keys/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../../array/#/keys/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/array/#/keys/index.js b/node_modules/es5-ext/test/array/#/keys/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/array/#/keys/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/array/#/keys/is-implemented.js b/node_modules/es5-ext/test/array/#/keys/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/array/#/keys/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/array/#/keys/shim.js b/node_modules/es5-ext/test/array/#/keys/shim.js
deleted file mode 100644
index 9be9a8f..0000000
--- a/node_modules/es5-ext/test/array/#/keys/shim.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-exports.__generic = function (t, a) {
- var iterator = t.call(this);
- a.deep(iterator.next(), { value: 0, done: false });
- a.deep(iterator.next(), { value: 1, done: false });
- a.deep(iterator.next(), { value: 2, done: false });
- a.deep(iterator.next(), { value: undefined, done: true });
-};
diff --git a/node_modules/es5-ext/test/array/#/last-index.js b/node_modules/es5-ext/test/array/#/last-index.js
deleted file mode 100644
index e66d16f..0000000
--- a/node_modules/es5-ext/test/array/#/last-index.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var x;
- a(t.call([]), null, "Empty");
- a(t.call([null]), 0, "One value");
- a(t.call([1, 2, 3]), 2, "Many values");
- a(t.call(new Array(1000)), null, "Sparse empty");
- x = [];
- x[883] = null;
- x[890] = undefined;
- a(t.call(x), 890, "Manual sparse, distant value");
- x = new Array(1000);
- x[657] = null;
- x[700] = undefined;
- a(t.call(x), 700, "Sparse, distant value");
-};
diff --git a/node_modules/es5-ext/test/array/#/last.js b/node_modules/es5-ext/test/array/#/last.js
deleted file mode 100644
index 16bca6d..0000000
--- a/node_modules/es5-ext/test/array/#/last.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-exports.__generic = function (t, a) { a(t.call(this), this[this.length - 1]); };
-
-exports[""] = function (t, a) {
- var x;
- a(t.call([]), undefined, "Empty");
- a(t.call(new Array(234), undefined, "Sparse empty"));
- x = new Array(2342);
- x[434] = {};
- x[450] = {};
- a(t.call(x), x[450], "Sparse");
-};
diff --git a/node_modules/es5-ext/test/array/#/map/implement.js b/node_modules/es5-ext/test/array/#/map/implement.js
deleted file mode 100644
index 1e33581..0000000
--- a/node_modules/es5-ext/test/array/#/map/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../../array/#/map/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/array/#/map/index.js b/node_modules/es5-ext/test/array/#/map/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/array/#/map/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/array/#/map/is-implemented.js b/node_modules/es5-ext/test/array/#/map/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/array/#/map/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/array/#/map/shim.js b/node_modules/es5-ext/test/array/#/map/shim.js
deleted file mode 100644
index cb178a2..0000000
--- a/node_modules/es5-ext/test/array/#/map/shim.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-var SubArray = require("../../../../array/_sub-array-dummy-safe");
-
-module.exports = function (t, a) {
- var arr, x = {}, subArr, result;
-
- arr = ["foo", undefined, 0, "2d", false, x, null];
-
- a.deep(t.call(arr, Boolean), [true, false, false, true, false, true, false], "Plain array");
-
- subArr = new SubArray("foo", undefined, 0, "2d", false, x, null);
-
- result = t.call(subArr, Boolean);
- a(result instanceof SubArray, true, "Instance of subclass");
- a.deep(result, [true, false, false, true, false, true, false], "Result of subclass");
-};
diff --git a/node_modules/es5-ext/test/array/#/remove.js b/node_modules/es5-ext/test/array/#/remove.js
deleted file mode 100644
index d67457e..0000000
--- a/node_modules/es5-ext/test/array/#/remove.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var y = {}, z = {}, x = [9, z, 5, y, "foo"];
- t.call(x, y);
- a.deep(x, [9, z, 5, "foo"]);
- t.call(x, {});
- a.deep(x, [9, z, 5, "foo"], "Not existing");
- t.call(x, 5);
- a.deep(x, [9, z, "foo"], "Primitive");
- x = [9, z, 5, y, "foo"];
- t.call(x, z, 5, "foo");
- a.deep(x, [9, y], "More than one argument");
-};
diff --git a/node_modules/es5-ext/test/array/#/separate.js b/node_modules/es5-ext/test/array/#/separate.js
deleted file mode 100644
index 9792637..0000000
--- a/node_modules/es5-ext/test/array/#/separate.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var x = [], y = {}, z = {};
- a.deep(t.call(x, y), [], "Empty");
- a.not(t.call(x), x, "Returns copy");
- a.deep(t.call([1], y), [1], "One");
- a.deep(t.call([1, "raz"], y), [1, y, "raz"], "One");
- a.deep(t.call([1, "raz", x], y), [1, y, "raz", y, x], "More");
- x = new Array(1000);
- x[23] = 2;
- x[3453] = "raz";
- x[500] = z;
- a.deep(t.call(x, y), [2, y, z, y, "raz"], "Sparse");
-};
diff --git a/node_modules/es5-ext/test/array/#/slice/implement.js b/node_modules/es5-ext/test/array/#/slice/implement.js
deleted file mode 100644
index 5a56791..0000000
--- a/node_modules/es5-ext/test/array/#/slice/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../../array/#/slice/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/array/#/slice/index.js b/node_modules/es5-ext/test/array/#/slice/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/array/#/slice/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/array/#/slice/is-implemented.js b/node_modules/es5-ext/test/array/#/slice/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/array/#/slice/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/array/#/slice/shim.js b/node_modules/es5-ext/test/array/#/slice/shim.js
deleted file mode 100644
index f09ad13..0000000
--- a/node_modules/es5-ext/test/array/#/slice/shim.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-var SubArray = require("../../../../array/_sub-array-dummy-safe");
-
-module.exports = function (t, a) {
- var arr, x = {}, subArr, result;
-
- arr = ["foo", undefined, 0, "2d", false, x, null];
-
- a.deep(t.call(arr, 2, 4), [0, "2d"], "Plain array: result");
-
- subArr = new SubArray("foo", undefined, 0, "2d", false, x, null);
-
- result = t.call(subArr, 2, 4);
- a(result instanceof SubArray, true, "Instance of subclass");
- a.deep(result, [0, "2d"], "Subclass: result");
-};
diff --git a/node_modules/es5-ext/test/array/#/some-right.js b/node_modules/es5-ext/test/array/#/some-right.js
deleted file mode 100644
index ead78cc..0000000
--- a/node_modules/es5-ext/test/array/#/some-right.js
+++ /dev/null
@@ -1,54 +0,0 @@
-"use strict";
-
-module.exports = {
- "__generic": function (t, a) {
- var count = 0, first, last, x, icount = this.length;
- t.call(this, function (item, index, col) {
- ++count;
- if (!first) {
- first = item;
- }
- last = item;
- x = col;
- a(index, --icount, "Index");
- });
- a(count, this.length, "Iterated");
- a(first, this[this.length - 1], "First is last");
- a(last, this[0], "Last is first");
- a.deep(x, Object(this), "Collection as third argument"); // Jslint: skip
- },
- "": function (t, a) {
- var x = {}, y, count;
- t.call([1], function () { y = this; }, x);
- a(y, x, "Scope");
- y = 0;
- t.call([3, 4, 4], function (a, i) { y += i; });
- a(y, 3, "Indexes");
-
- x = [1, 3];
- x[5] = "x";
- y = 0;
- count = 0;
- a(
- t.call(x, function (a, i) {
- ++count;
- y += i;
- }),
- false,
- "Return"
- );
- a(y, 6, "Misssing Indexes");
- a(count, 3, "Misssing Indexes, count");
-
- count = 0;
- a(
- t.call([-2, -3, -4, 2, -5], function (item) {
- ++count;
- return item > 0;
- }),
- true,
- "Return"
- );
- a(count, 2, "Break after true is returned");
- }
-};
diff --git a/node_modules/es5-ext/test/array/#/splice/implement.js b/node_modules/es5-ext/test/array/#/splice/implement.js
deleted file mode 100644
index 2035022..0000000
--- a/node_modules/es5-ext/test/array/#/splice/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../../array/#/splice/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/array/#/splice/index.js b/node_modules/es5-ext/test/array/#/splice/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/array/#/splice/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/array/#/splice/is-implemented.js b/node_modules/es5-ext/test/array/#/splice/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/array/#/splice/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/array/#/splice/shim.js b/node_modules/es5-ext/test/array/#/splice/shim.js
deleted file mode 100644
index 4802007..0000000
--- a/node_modules/es5-ext/test/array/#/splice/shim.js
+++ /dev/null
@@ -1,19 +0,0 @@
-"use strict";
-
-var SubArray = require("../../../../array/_sub-array-dummy-safe");
-
-module.exports = function (t, a) {
- var arr, x = {}, subArr, result;
-
- arr = ["foo", undefined, 0, "2d", false, x, null];
-
- a.deep(t.call(arr, 2, 2, "bar"), [0, "2d"], "Plain array: result");
- a.deep(arr, ["foo", undefined, "bar", false, x, null], "Plain array: change");
-
- subArr = new SubArray("foo", undefined, 0, "2d", false, x, null);
-
- result = t.call(subArr, 2, 2, "bar");
- a(result instanceof SubArray, true, "Instance of subclass");
- a.deep(result, [0, "2d"], "Subclass: result");
- a.deep(subArr, ["foo", undefined, "bar", false, x, null], "Subclass: change");
-};
diff --git a/node_modules/es5-ext/test/array/#/uniq.js b/node_modules/es5-ext/test/array/#/uniq.js
deleted file mode 100644
index 77b398b..0000000
--- a/node_modules/es5-ext/test/array/#/uniq.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-module.exports = {
- "__generic": function (t, a) { a(t.call(this).length, 3); },
- "": function (t, a) {
- var o, x = {}, y = {}, z = {}, w;
- o = [1, 2, x, 3, 1, "raz", "1", y, x, "trzy", z, "raz"];
-
- a.not((w = t.call(o)), o, "Returns different object");
- a.deep(w, [1, 2, x, 3, "raz", "1", y, "trzy", z], "Result");
- }
-};
diff --git a/node_modules/es5-ext/test/array/#/values/implement.js b/node_modules/es5-ext/test/array/#/values/implement.js
deleted file mode 100644
index 60fb8dc..0000000
--- a/node_modules/es5-ext/test/array/#/values/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../../array/#/values/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/array/#/values/index.js b/node_modules/es5-ext/test/array/#/values/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/array/#/values/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/array/#/values/is-implemented.js b/node_modules/es5-ext/test/array/#/values/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/array/#/values/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/array/#/values/shim.js b/node_modules/es5-ext/test/array/#/values/shim.js
deleted file mode 100644
index 71b71d5..0000000
--- a/node_modules/es5-ext/test/array/#/values/shim.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-exports.__generic = function (t, a) {
- var iterator = t.call(this);
- a.deep(iterator.next(), { value: "1", done: false });
- a.deep(iterator.next(), { value: "2", done: false });
- a.deep(iterator.next(), { value: "3", done: false });
- a.deep(iterator.next(), { value: undefined, done: true });
-};
diff --git a/node_modules/es5-ext/test/array/__scopes.js b/node_modules/es5-ext/test/array/__scopes.js
deleted file mode 100644
index f1c4090..0000000
--- a/node_modules/es5-ext/test/array/__scopes.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-exports.Array = ["1", "2", "3"];
-
-exports.Arguments = (function () { return arguments; })("1", "2", "3");
-
-exports.String = "123";
-
-exports.Object = { 0: "1", 1: "2", 2: "3", 3: "4", length: 3 };
diff --git a/node_modules/es5-ext/test/array/_is-extensible.js b/node_modules/es5-ext/test/array/_is-extensible.js
deleted file mode 100644
index 124e59d..0000000
--- a/node_modules/es5-ext/test/array/_is-extensible.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t, "boolean"); };
diff --git a/node_modules/es5-ext/test/array/_sub-array-dummy-safe.js b/node_modules/es5-ext/test/array/_sub-array-dummy-safe.js
deleted file mode 100644
index 4fab50d..0000000
--- a/node_modules/es5-ext/test/array/_sub-array-dummy-safe.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isArray = Array.isArray;
-
-module.exports = function (t) { t(t === null || isArray(t.prototype), true); };
diff --git a/node_modules/es5-ext/test/array/_sub-array-dummy.js b/node_modules/es5-ext/test/array/_sub-array-dummy.js
deleted file mode 100644
index 4fab50d..0000000
--- a/node_modules/es5-ext/test/array/_sub-array-dummy.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isArray = Array.isArray;
-
-module.exports = function (t) { t(t === null || isArray(t.prototype), true); };
diff --git a/node_modules/es5-ext/test/array/from/implement.js b/node_modules/es5-ext/test/array/from/implement.js
deleted file mode 100644
index 48cd7b6..0000000
--- a/node_modules/es5-ext/test/array/from/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../array/from/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/array/from/index.js b/node_modules/es5-ext/test/array/from/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/array/from/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/array/from/is-implemented.js b/node_modules/es5-ext/test/array/from/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/array/from/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/array/from/shim.js b/node_modules/es5-ext/test/array/from/shim.js
deleted file mode 100644
index 997f832..0000000
--- a/node_modules/es5-ext/test/array/from/shim.js
+++ /dev/null
@@ -1,64 +0,0 @@
-// Some tests taken from: https://github.com/mathiasbynens/Array.from/blob/master/tests/tests.js
-
-"use strict";
-
-module.exports = function (t, a) {
- var o = [1, 2, 3], MyType;
- a.not(t(o), o, "Array");
- a.deep(t(o), o, "Array: same content");
- a.deep(t("12r3v"), ["1", "2", "r", "3", "v"], "String");
- a.deep(t((function () { return arguments; })(3, o, "raz")), [3, o, "raz"], "Arguments");
- a.deep(t((function () { return arguments; })(3)), [3], "Arguments with one numeric value");
-
- a.deep(t({ 0: "raz", 1: "dwa", length: 2 }), ["raz", "dwa"], "Other");
-
- a.deep(t(o, function (val) { return (val + 2) * 10; }, 10), [30, 40, 50], "Mapping");
-
- a.throws(function () { t(); }, TypeError, "Undefined");
- a.deep(t(3), [], "Primitive");
-
- a(t.length, 1, "Length");
- a.deep(t({ length: 0 }), [], "No values Array-like");
- a.deep(t({ length: -1 }), [], "Invalid length Array-like");
- a.deep(t({ length: -Infinity }), [], "Invalid length Array-like #2");
- a.throws(function () { t(undefined); }, TypeError, "Undefined");
- a.throws(function () { t(null); }, TypeError, "Null");
- a.deep(t(false), [], "Boolean");
- a.deep(t(-Infinity), [], "Inifity");
- a.deep(t(-0), [], "-0");
- a.deep(t(+0), [], "+0");
- a.deep(t(1), [], "1");
- a.deep(t(Number(Infinity)), [], "+Infinity");
- a.deep(t({}), [], "Plain object");
- a.deep(t({ length: 1 }), [undefined], "Sparse array-like");
- a.deep(t({ 0: "a", 1: "b", length: 2 }, function (x) { return x + x; }), ["aa", "bb"], "Map");
- a.deep(
- t({ 0: "a", 1: "b", length: 2 }, function () { return String(this); }, undefined),
- ["undefined", "undefined"], "Map context"
- );
- a.deep(
- t({ 0: "a", 1: "b", length: 2 }, function () { return String(this); }, "x"), ["x", "x"],
- "Map primitive context"
- );
- a.throws(function () { t({}, "foo", "x"); }, TypeError, "Non callable for map");
-
- a.deep(t({ length: 1, 0: "a" }), ["a"], "Null context");
-
- a(t({ __proto__: { 0: "abc", length: 1 } })[0], "abc", "Values on prototype");
-
- a.throws(
- function () {
- t.call(function () { return Object.freeze({}); }, {});
- },
- TypeError,
- "Contructor producing freezed objects"
- );
-
- // Ensure no setters are called for the indexes
- // Ensure no setters are called for the indexes
- MyType = function () {};
- Object.defineProperty(MyType.prototype, "0", {
- set: function (x) { throw new Error("Setter called: " + x); }
- });
- a.deep(t.call(MyType, { 0: "abc", length: 1 }), { 0: "abc", length: 1 }, "Defined not set");
-};
diff --git a/node_modules/es5-ext/test/array/generate.js b/node_modules/es5-ext/test/array/generate.js
deleted file mode 100644
index efd5f7c..0000000
--- a/node_modules/es5-ext/test/array/generate.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var x = {}, y = {};
- a.deep(t(3), [undefined, undefined, undefined], "Just length");
- a.deep(t(0, "x"), [], "No repeat");
- a.deep(t(1, x, y), [x], "Arguments length larger than repeat number");
- a.deep(t(3, x), [x, x, x], "Single argument");
- a.deep(t(5, x, y), [x, y, x, y, x], "Many arguments");
-};
diff --git a/node_modules/es5-ext/test/array/is-plain-array.js b/node_modules/es5-ext/test/array/is-plain-array.js
deleted file mode 100644
index 2cfd50d..0000000
--- a/node_modules/es5-ext/test/array/is-plain-array.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-
-var SubArray = require("../../array/_sub-array-dummy-safe");
-
-module.exports = function (t, a) {
- var arr = [1, 2, 3];
- a(t(arr), true, "Array");
- a(t(null), false, "Null");
- a(t(), false, "Undefined");
- a(t("234"), false, "String");
- a(t(23), false, "Number");
- a(t({}), false, "Plain object");
- a(t({ length: 1, 0: "raz" }), false, "Array-like");
- a(t(Object.create(arr)), false, "Array extension");
- if (!SubArray) return;
- a(t(new SubArray(23)), false, "Subclass instance");
- a(t(Array.prototype), false, "Array.prototype");
-};
diff --git a/node_modules/es5-ext/test/array/of/implement.js b/node_modules/es5-ext/test/array/of/implement.js
deleted file mode 100644
index 2a4c58b..0000000
--- a/node_modules/es5-ext/test/array/of/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../array/of/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/array/of/index.js b/node_modules/es5-ext/test/array/of/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/array/of/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/array/of/is-implemented.js b/node_modules/es5-ext/test/array/of/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/array/of/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/array/of/shim.js b/node_modules/es5-ext/test/array/of/shim.js
deleted file mode 100644
index 86eb574..0000000
--- a/node_modules/es5-ext/test/array/of/shim.js
+++ /dev/null
@@ -1,81 +0,0 @@
-/* eslint no-useless-call: "off" */
-// Most tests taken from https://github.com/mathiasbynens/Array.of/blob/master/tests/tests.js
-// Thanks @mathiasbynens
-
-"use strict";
-
-var defineProperty = Object.defineProperty;
-
-module.exports = function (t, a) {
- var x = {}, testObject, MyType;
-
- a.deep(t(), [], "No arguments");
- a.deep(t(3), [3], "One numeric argument");
- a.deep(t(3, "raz", null, x, undefined), [3, "raz", null, x, undefined], "Many arguments");
-
- a(t.length, 0, "Length");
-
- a.deep(t("abc"), ["abc"], "String");
- a.deep(t(undefined), [undefined], "Undefined");
- a.deep(t(null), [null], "Null");
- a.deep(t(false), [false], "Boolean");
- a.deep(t(-Infinity), [-Infinity], "Infinity");
- a.deep(t(-0), [-0], "-0");
- a.deep(t(+0), [+0], "+0");
- a.deep(t(1), [1], "1");
- a.deep(t(1, 2, 3), [1, 2, 3], "Numeric args");
- a.deep(t(Number(Infinity)), [Number(Infinity)], "+Infinity");
- a.deep(
- t({ 0: "a", 1: "b", 2: "c", length: 3 }), [{ 0: "a", 1: "b", 2: "c", length: 3 }],
- "Array like"
- );
- a.deep(
- t(undefined, null, false, -Infinity, -0, +0, 1, 2, Number(Infinity)),
- [undefined, null, false, -Infinity, -0, +0, 1, 2, Number(Infinity)], "Falsy arguments"
- );
-
- a.h1("Null context");
- a.deep(t.call(null, "abc"), ["abc"], "String");
- a.deep(t.call(null, undefined), [undefined], "Undefined");
- a.deep(t.call(null, null), [null], "Null");
- a.deep(t.call(null, false), [false], "Boolean");
- a.deep(t.call(null, -Infinity), [-Infinity], "-Infinity");
- a.deep(t.call(null, -0), [-0], "-0");
- a.deep(t.call(null, +0), [+0], "+0");
- a.deep(t.call(null, 1), [1], "1");
- a.deep(t.call(null, 1, 2, 3), [1, 2, 3], "Numeric");
- a.deep(t.call(null, Number(Infinity)), [Number(Infinity)], "+Infinity");
- a.deep(
- t.call(null, { 0: "a", 1: "b", 2: "c", length: 3 }),
- [{ 0: "a", 1: "b", 2: "c", length: 3 }], "Array-like"
- );
- a.deep(
- t.call(null, undefined, null, false, -Infinity, -0, +0, 1, 2, Number(Infinity)),
- [undefined, null, false, -Infinity, -0, +0, 1, 2, Number(Infinity)], "Falsy"
- );
-
- a.h1("Other constructor context");
- a.deep(t.call(Object, 1, 2, 3), { 0: 1, 1: 2, 2: 3, length: 3 }, "Many arguments");
-
- testObject = Object(3);
- testObject[0] = 1;
- testObject[1] = 2;
- testObject[2] = 3;
- testObject.length = 3;
- a.deep(t.call(Object, 1, 2, 3), testObject, "Test object");
- a(t.call(Object).length, 0, "No arguments");
- a.throws(
- function () {
- t.call(function () { return Object.freeze({}); });
- },
- TypeError,
- "Frozen instance"
- );
-
- // Ensure no setters are called for the indexes
- MyType = function () {};
- defineProperty(MyType.prototype, "0", {
- set: function (x) { throw new Error("Setter called: " + x); }
- });
- a.deep(t.call(MyType, "abc"), { 0: "abc", length: 1 }, "Define, not set");
-};
diff --git a/node_modules/es5-ext/test/array/to-array.js b/node_modules/es5-ext/test/array/to-array.js
deleted file mode 100644
index 68c5102..0000000
--- a/node_modules/es5-ext/test/array/to-array.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var o = [1, 2, 3];
- a(t(o), o, "Array");
- a.deep(t("12r3v"), ["1", "2", "r", "3", "v"], "String");
- a.deep(t((function () { return arguments; })(3, o, "raz")), [3, o, "raz"], "Arguments");
- a.deep(t((function () { return arguments; })(3)), [3], "Arguments with one numeric value");
-
- a.deep(t({ 0: "raz", 1: "dwa", length: 2 }), ["raz", "dwa"], "Other");
-};
diff --git a/node_modules/es5-ext/test/array/valid-array.js b/node_modules/es5-ext/test/array/valid-array.js
deleted file mode 100644
index 62ea503..0000000
--- a/node_modules/es5-ext/test/array/valid-array.js
+++ /dev/null
@@ -1,20 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var x;
- a.throws(function () { t(); }, TypeError, "Undefined");
- a.throws(function () { t(null); }, TypeError, "Null");
- a.throws(function () { t(0); }, TypeError, "Number");
- a.throws(function () { t(true); }, TypeError, "Boolean");
- a.throws(function () { t("raz"); }, TypeError, "String");
- a.throws(
- function () {
- t(function () {});
- },
- TypeError,
- "Function"
- );
- a.throws(function () { t({}); }, TypeError, "Object");
- a.throws(function () { t({ length: 0 }); }, TypeError, "Array-like");
- a(t((x = [])), x, "Array");
-};
diff --git a/node_modules/es5-ext/test/boolean/is-boolean.js b/node_modules/es5-ext/test/boolean/is-boolean.js
deleted file mode 100644
index e36b3f3..0000000
--- a/node_modules/es5-ext/test/boolean/is-boolean.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t("arar"), false, "String");
- a(t(12), false, "Number");
- a(t(false), true, "Boolean");
- a(t(new Boolean(false)), true, "Boolean object");
- a(t(new Date()), false, "Date");
- a(t(new String("raz")), false, "String object");
- a(t({}), false, "Plain object");
- a(t(/a/), false, "Regular expression");
-};
diff --git a/node_modules/es5-ext/test/date/#/copy.js b/node_modules/es5-ext/test/date/#/copy.js
deleted file mode 100644
index 27c996b..0000000
--- a/node_modules/es5-ext/test/date/#/copy.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var o = new Date(), o2;
-
- o2 = t.call(o);
- a.not(o, o2, "Different objects");
- a.ok(o2 instanceof Date, "Instance of Date");
- a(o.getTime(), o2.getTime(), "Same time");
-};
diff --git a/node_modules/es5-ext/test/date/#/days-in-month.js b/node_modules/es5-ext/test/date/#/days-in-month.js
deleted file mode 100644
index ce2dd77..0000000
--- a/node_modules/es5-ext/test/date/#/days-in-month.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t.call(new Date(2001, 0, 1)), 31, "January");
- a(t.call(new Date(2001, 1, 1)), 28, "February");
- a(t.call(new Date(2000, 1, 1)), 29, "February (leap)");
- a(t.call(new Date(2001, 2, 1)), 31, "March");
- a(t.call(new Date(2001, 3, 1)), 30, "April");
- a(t.call(new Date(2001, 4, 1)), 31, "May");
- a(t.call(new Date(2001, 5, 1)), 30, "June");
- a(t.call(new Date(2001, 6, 1)), 31, "July");
- a(t.call(new Date(2001, 7, 1)), 31, "August");
- a(t.call(new Date(2001, 8, 1)), 30, "September");
- a(t.call(new Date(2001, 9, 1)), 31, "October");
- a(t.call(new Date(2001, 10, 1)), 30, "November");
- a(t.call(new Date(2001, 11, 1)), 31, "December");
-};
diff --git a/node_modules/es5-ext/test/date/#/floor-day.js b/node_modules/es5-ext/test/date/#/floor-day.js
deleted file mode 100644
index e880838..0000000
--- a/node_modules/es5-ext/test/date/#/floor-day.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t.call(new Date(2000, 0, 1, 13, 32, 34, 234)).valueOf(), new Date(2000, 0, 1).valueOf());
-};
diff --git a/node_modules/es5-ext/test/date/#/floor-month.js b/node_modules/es5-ext/test/date/#/floor-month.js
deleted file mode 100644
index ccead84..0000000
--- a/node_modules/es5-ext/test/date/#/floor-month.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t.call(new Date(2000, 0, 15, 13, 32, 34, 234)).valueOf(), new Date(2000, 0, 1).valueOf());
-};
diff --git a/node_modules/es5-ext/test/date/#/floor-year.js b/node_modules/es5-ext/test/date/#/floor-year.js
deleted file mode 100644
index 75267fc..0000000
--- a/node_modules/es5-ext/test/date/#/floor-year.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t.call(new Date(2000, 5, 13, 13, 32, 34, 234)).valueOf(), new Date(2000, 0, 1).valueOf());
-};
diff --git a/node_modules/es5-ext/test/date/#/format.js b/node_modules/es5-ext/test/date/#/format.js
deleted file mode 100644
index 510b26b..0000000
--- a/node_modules/es5-ext/test/date/#/format.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var dt = new Date(2011, 2, 3, 3, 5, 5, 32);
- a(t.call(dt, " %Y.%y.%m.%d.%H.%M.%S.%L "), " 2011.11.03.03.03.05.05.032 ");
-};
diff --git a/node_modules/es5-ext/test/date/ensure-time-value.js b/node_modules/es5-ext/test/date/ensure-time-value.js
deleted file mode 100644
index 7f8f4e9..0000000
--- a/node_modules/es5-ext/test/date/ensure-time-value.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t(12), 12, "Number in range");
- a(t(12.23), 12, "Rounds number in range");
- a(t(-12.63), -12, "Rounds negative number in range");
- a.throws(function () { t(NaN); }, TypeError, "Throws on invalid");
-};
diff --git a/node_modules/es5-ext/test/date/is-date.js b/node_modules/es5-ext/test/date/is-date.js
deleted file mode 100644
index 90ae8ad..0000000
--- a/node_modules/es5-ext/test/date/is-date.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t("arar"), false, "String");
- a(t(12), false, "Number");
- a(t(true), false, "Boolean");
- a(t(new Date()), true, "Date");
- a(t(new String("raz")), false, "String object");
- a(t({}), false, "Plain object");
-};
diff --git a/node_modules/es5-ext/test/date/is-time-value.js b/node_modules/es5-ext/test/date/is-time-value.js
deleted file mode 100644
index a21677c..0000000
--- a/node_modules/es5-ext/test/date/is-time-value.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t("arar"), false, "String");
- a(t(12), true, "Number in range");
- a(t(true), true, "Boolean");
- a(t(new Date()), true, "Date");
- a(t({}), false, "Plain object");
- a(t(NaN), false, "NaN");
- a(t(Infinity), false, "Infinity");
- a(t(8.64e17), false, "Beyond range");
- a(t(8.64e15), true, "Below range");
- a(t(-8.64e17), false, "Negative beyond range");
- a(t(-8.64e15), true, "Negative below range");
-};
diff --git a/node_modules/es5-ext/test/date/valid-date.js b/node_modules/es5-ext/test/date/valid-date.js
deleted file mode 100644
index 6c8db2d..0000000
--- a/node_modules/es5-ext/test/date/valid-date.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var d = new Date();
- a(t(d), d, "Date");
- a.throws(function () { t({}); }, "Object");
- a.throws(function () {
- t({ valueOf: function () { return 20; } });
- }, "Number object");
-};
diff --git a/node_modules/es5-ext/test/error/#/throw.js b/node_modules/es5-ext/test/error/#/throw.js
deleted file mode 100644
index c0af73c..0000000
--- a/node_modules/es5-ext/test/error/#/throw.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var e = new Error();
- try { t.call(e); }
- catch (e2) { a(e2, e); }
-};
diff --git a/node_modules/es5-ext/test/error/custom.js b/node_modules/es5-ext/test/error/custom.js
deleted file mode 100644
index ca35c76..0000000
--- a/node_modules/es5-ext/test/error/custom.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var T = t, err = new T("My Error", "MY_ERROR", { errno: 123 });
- a(err instanceof Error, true, "Instance of error");
- a(err.constructor, Error, "Constructor");
- a(err.name, "Error", "Name");
- a(String(err), "Error: My Error", "String representation");
- a(err.code, "MY_ERROR", "Code");
- a(err.errno, 123, "Errno");
- a(typeof err.stack, "string", "Stack trace");
-};
diff --git a/node_modules/es5-ext/test/error/is-error.js b/node_modules/es5-ext/test/error/is-error.js
deleted file mode 100644
index 421f1a0..0000000
--- a/node_modules/es5-ext/test/error/is-error.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t(), false, "Undefined");
- a(t(1), false, "Primitive");
- a(t({}), false, "Objectt");
- a(t({ toString: function () { return "[object Error]"; } }), false, "Fake error");
- a(t(new Error()), true, "Error");
- a(t(new EvalError()), true, "EvalError");
- a(t(new RangeError()), true, "RangeError");
- a(t(new ReferenceError()), true, "ReferenceError");
- a(t(new SyntaxError()), true, "SyntaxError");
- a(t(new TypeError()), true, "TypeError");
- a(t(new URIError()), true, "URIError");
-};
diff --git a/node_modules/es5-ext/test/error/valid-error.js b/node_modules/es5-ext/test/error/valid-error.js
deleted file mode 100644
index 194f37d..0000000
--- a/node_modules/es5-ext/test/error/valid-error.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var e = new Error();
- a(t(e), e, "Error");
- a.throws(function () { t({}); }, "Other");
-};
diff --git a/node_modules/es5-ext/test/function/#/compose.js b/node_modules/es5-ext/test/function/#/compose.js
deleted file mode 100644
index b90a216..0000000
--- a/node_modules/es5-ext/test/function/#/compose.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-var f = function (a, b) { return ["a", arguments.length, a, b]; }
- , g = function (a) { return ["b", arguments.length].concat(a); }
- , h = function (a) { return ["c", arguments.length].concat(a); };
-
-module.exports = function (t, a) {
- a.deep(t.call(h, g, f)(1, 2), ["c", 1, "b", 1, "a", 2, 1, 2]);
- a.deep(t(h, g, f)(1, 2), ["c", 1, "b", 1, "a", 2, 1, 2]);
-};
diff --git a/node_modules/es5-ext/test/function/#/copy.js b/node_modules/es5-ext/test/function/#/copy.js
deleted file mode 100644
index b458447..0000000
--- a/node_modules/es5-ext/test/function/#/copy.js
+++ /dev/null
@@ -1,20 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var foo = "raz", bar = "dwa";
- // eslint-disable-next-line func-names
- var fn = function marko(a, b) { return this + a + b + foo + bar; };
- var result, o = {};
-
- fn.prototype = o;
-
- fn.foo = "raz";
-
- result = t.call(fn);
-
- a(result.length, fn.length, "Length");
- a(result.name, fn.name, "Length");
- a(result.call("marko", "el", "fe"), "markoelferazdwa", "Body");
- a(result.prototype, fn.prototype, "Prototype");
- a(result.foo, fn.foo, "Custom property");
-};
diff --git a/node_modules/es5-ext/test/function/#/curry.js b/node_modules/es5-ext/test/function/#/curry.js
deleted file mode 100644
index fcae286..0000000
--- a/node_modules/es5-ext/test/function/#/curry.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-var toArray = require("../../../array/to-array")
- , f = function () { return toArray(arguments); };
-
-module.exports = function (t, a) {
- var x, y = {}, z;
- a.deep(t.call(f, 0, 1, 2)(3), [], "0 arguments");
- x = t.call(f, 5, {});
- a(x.length, 5, "Length #1");
- z = x(1, 2);
- a(z.length, 3, "Length #2");
- z = z(3, 4);
- a(z.length, 1, "Length #1");
- a.deep(z(5, 6), [1, 2, 3, 4, 5], "Many arguments");
- a.deep(x(8, 3)(y, 45)("raz", 6), [8, 3, y, 45, "raz"], "Many arguments #2");
-};
diff --git a/node_modules/es5-ext/test/function/#/lock.js b/node_modules/es5-ext/test/function/#/lock.js
deleted file mode 100644
index dd807a1..0000000
--- a/node_modules/es5-ext/test/function/#/lock.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t.call(function () { return arguments.length; })(1, 2, 3), 0);
-};
diff --git a/node_modules/es5-ext/test/function/#/microtask-delay.js b/node_modules/es5-ext/test/function/#/microtask-delay.js
deleted file mode 100644
index 8bd0dc1..0000000
--- a/node_modules/es5-ext/test/function/#/microtask-delay.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-
-var nextTick = require("next-tick");
-
-module.exports = function (t, a, d) {
- var wasInvoked = false, args = [{}, {}], context = {};
- var target = t.call(function () {
- a(this, context);
- a.deep(arguments, args);
- wasInvoked = true;
- });
-
- nextTick(function () {
- a(wasInvoked, false);
- target.apply(context, args);
- a(wasInvoked, false);
- nextTick(function () {
- a(wasInvoked, true);
- d();
- });
- });
-};
diff --git a/node_modules/es5-ext/test/function/#/not.js b/node_modules/es5-ext/test/function/#/not.js
deleted file mode 100644
index 64fff71..0000000
--- a/node_modules/es5-ext/test/function/#/not.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-var identity = require("../../../function/identity")
- , noop = require("../../../function/noop");
-
-module.exports = function (t, a) {
- a(t.call(identity)(""), true, "Falsy");
- a(t.call(noop)(), true, "Undefined");
- a(t.call(identity)({}), false, "Any object");
- a(t.call(identity)(true), false, "True");
-};
diff --git a/node_modules/es5-ext/test/function/#/partial.js b/node_modules/es5-ext/test/function/#/partial.js
deleted file mode 100644
index 8954948..0000000
--- a/node_modules/es5-ext/test/function/#/partial.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-var toArray = require("../../../array/to-array")
- , f = function () { return toArray(arguments); };
-
-module.exports = function (t, a) { a.deep(t.call(f, 1)(2, 3), [1, 2, 3]); };
diff --git a/node_modules/es5-ext/test/function/#/spread.js b/node_modules/es5-ext/test/function/#/spread.js
deleted file mode 100644
index 64e7b57..0000000
--- a/node_modules/es5-ext/test/function/#/spread.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var f = function (a, b) { return this[a] + this[b]; }, o = { a: 3, b: 4 };
-
-module.exports = function (t, a) { a(t.call(f).call(o, ["a", "b"]), 7); };
diff --git a/node_modules/es5-ext/test/function/#/to-string-tokens.js b/node_modules/es5-ext/test/function/#/to-string-tokens.js
deleted file mode 100644
index 79bb83b..0000000
--- a/node_modules/es5-ext/test/function/#/to-string-tokens.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/* eslint no-eval: "off" */
-
-"use strict";
-
-module.exports = function (t, a) {
- a.deep(t.call(function (a, b) { return this[a] + this[b]; }), {
- args: "a, b",
- body: " return this[a] + this[b]; "
- });
- a.deep(t.call(function () {}), { args: "", body: "" });
- // eslint-disable-next-line no-unused-vars
- a.deep(t.call(function (raz) {}), { args: "raz", body: "" });
- a.deep(t.call(function () { Object(); }), { args: "", body: " Object(); " });
-
- try {
- eval("(() => {})");
- } catch (e) {
- // Non ES2015 env
- return;
- }
-
- a.deep(t.call(eval("(() => {})")), { args: "", body: "" });
- a.deep(t.call(eval("((elo) => foo)")), { args: "elo", body: "foo" });
- a.deep(t.call(eval("(elo => foo)")), { args: "elo", body: "foo" });
- a.deep(t.call(eval("((elo, bar) => foo())")), { args: "elo, bar", body: "foo()" });
-};
diff --git a/node_modules/es5-ext/test/function/_define-length.js b/node_modules/es5-ext/test/function/_define-length.js
deleted file mode 100644
index 844ee3e..0000000
--- a/node_modules/es5-ext/test/function/_define-length.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var foo = "raz", bar = "dwa", fn = function (a, b) { return this + a + b + foo + bar; }, result;
-
- result = t(fn, 3);
- a(result.call("marko", "el", "fe"), "markoelferazdwa", "Content");
- a(result.length, 3, "Length");
- a(result.prototype, fn.prototype, "Prototype");
-};
diff --git a/node_modules/es5-ext/test/function/constant.js b/node_modules/es5-ext/test/function/constant.js
deleted file mode 100644
index 8286d7a..0000000
--- a/node_modules/es5-ext/test/function/constant.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var o = {};
-
-module.exports = function (t, a) { a(t(o)(), o); };
diff --git a/node_modules/es5-ext/test/function/identity.js b/node_modules/es5-ext/test/function/identity.js
deleted file mode 100644
index 5bf4786..0000000
--- a/node_modules/es5-ext/test/function/identity.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var o = {};
-
-module.exports = function (t, a) { a(t(o), o); };
diff --git a/node_modules/es5-ext/test/function/invoke.js b/node_modules/es5-ext/test/function/invoke.js
deleted file mode 100644
index fb65627..0000000
--- a/node_modules/es5-ext/test/function/invoke.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-var constant = require("../../function/constant")
- , o = { b: constant("c") };
-
-module.exports = function (t, a) { a(t("b")(o), "c"); };
diff --git a/node_modules/es5-ext/test/function/is-arguments.js b/node_modules/es5-ext/test/function/is-arguments.js
deleted file mode 100644
index 1836af8..0000000
--- a/node_modules/es5-ext/test/function/is-arguments.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var args, dummy;
- args = (function () { return arguments; })();
- dummy = { 0: 1, 1: 2 };
- Object.defineProperty(dummy, "length", { value: 2 });
- a(t(args), true, "Arguments");
- a(t(dummy), false, "Dummy");
- a(t([]), false, "Array");
-};
diff --git a/node_modules/es5-ext/test/function/is-function.js b/node_modules/es5-ext/test/function/is-function.js
deleted file mode 100644
index 3652ba7..0000000
--- a/node_modules/es5-ext/test/function/is-function.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-
-var o = { call: Function.prototype.call, apply: Function.prototype.apply };
-
-module.exports = function (t, a) {
- a(t(function () {}), true, "Function is function");
- a(t(o), false, "Plain object is not function");
- var asyncFunction;
- try { asyncFunction = eval("async () => {}"); }
- catch (error) {}
- if (asyncFunction) {
- a(t(asyncFunction), true, "Async function is function");
- }
-};
diff --git a/node_modules/es5-ext/test/function/noop.js b/node_modules/es5-ext/test/function/noop.js
deleted file mode 100644
index f264da3..0000000
--- a/node_modules/es5-ext/test/function/noop.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(1, 2, 3), "undefined"); };
diff --git a/node_modules/es5-ext/test/function/pluck.js b/node_modules/es5-ext/test/function/pluck.js
deleted file mode 100644
index 26adb21..0000000
--- a/node_modules/es5-ext/test/function/pluck.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var o = { foo: "bar" };
-
-module.exports = function (t, a) { a(t("foo")(o), o.foo); };
diff --git a/node_modules/es5-ext/test/function/valid-function.js b/node_modules/es5-ext/test/function/valid-function.js
deleted file mode 100644
index b5e0a57..0000000
--- a/node_modules/es5-ext/test/function/valid-function.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var f = function () {};
- a(t(f), f, "Function");
- // eslint-disable-next-line no-new-func
- f = new Function();
- a(t(f), f, "Function");
- a.throws(function () { t({}); }, "Object");
- a.throws(function () { t(/re/); }, "RegExp");
- a.throws(function () {
- t({ call: function () { return 20; } });
- }, "Plain object");
-};
diff --git a/node_modules/es5-ext/test/global.js b/node_modules/es5-ext/test/global.js
deleted file mode 100644
index b29fbbb..0000000
--- a/node_modules/es5-ext/test/global.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a.ok(t && typeof t === "object");
- a(typeof t.Array, "function");
- a("__global__" in Object.prototype, false);
-};
diff --git a/node_modules/es5-ext/test/iterable/for-each.js b/node_modules/es5-ext/test/iterable/for-each.js
deleted file mode 100644
index aa167dc..0000000
--- a/node_modules/es5-ext/test/iterable/for-each.js
+++ /dev/null
@@ -1,62 +0,0 @@
-"use strict";
-
-var ArrayIterator = require("es6-iterator/array")
- , slice = Array.prototype.slice;
-
-module.exports = function (t, a) {
- var i = 0, x = ["raz", "dwa", "trzy"], y = {};
- t(
- x,
- function () {
- a.deep(slice.call(arguments, 0, 1), [x[i]], "Array " + i + "#");
- a(this, y, "Array: context: " + i++ + "#");
- },
- y
- );
- i = 0;
- t(
- (function () { return arguments; })("raz", "dwa", "trzy"),
- function () {
- a.deep(slice.call(arguments, 0, 1), [x[i]], "Arguments" + i + "#");
- a(this, y, "Arguments: context: " + i++ + "#");
- },
- y
- );
- i = 0;
- t(
- { 0: "raz", 1: "dwa", 2: "trzy", length: 3 },
- function () {
- a.deep(slice.call(arguments, 0, 1), [x[i]], "Array-like" + i + "#");
- a(this, y, "Array-like: context: " + i++ + "#");
- },
- y
- );
- i = 0;
- t(
- (x = "foo"),
- function () {
- a.deep(slice.call(arguments, 0, 1), [x[i]], "String " + i + "#");
- a(this, y, "Regular String: context: " + i++ + "#");
- },
- y
- );
- i = 0;
- x = ["r", "💩", "z"];
- t(
- "r💩z",
- function () {
- a.deep(slice.call(arguments, 0, 1), [x[i]], "String " + i + "#");
- a(this, y, "Unicode String: context: " + i++ + "#");
- },
- y
- );
- i = 0;
- t(
- new ArrayIterator(x),
- function () {
- a.deep(slice.call(arguments, 0, 1), [x[i]], "Iterator " + i + "#");
- a(this, y, "Iterator: context: " + i++ + "#");
- },
- y
- );
-};
diff --git a/node_modules/es5-ext/test/iterable/is.js b/node_modules/es5-ext/test/iterable/is.js
deleted file mode 100644
index f03c3f1..0000000
--- a/node_modules/es5-ext/test/iterable/is.js
+++ /dev/null
@@ -1,20 +0,0 @@
-"use strict";
-
-var iteratorSymbol = require("es6-symbol").iterator;
-
-module.exports = function (t, a) {
- var x;
- a(t([]), true, "Array");
- a(t(""), true, "String");
- a(t((function () { return arguments; })()), true, "Arguments");
- a(t({ length: 0 }), true, "List object");
- a(t(function () {}), false, "Function");
- a(t({}), false, "Plain object");
- a(t(/raz/), false, "Regexp");
- a(t(), false, "No argument");
- a(t(null), false, "Null");
- a(t(undefined), false, "Undefined");
- x = {};
- x[iteratorSymbol] = function () {};
- a(t(x), true, "Iterable");
-};
diff --git a/node_modules/es5-ext/test/iterable/validate-object.js b/node_modules/es5-ext/test/iterable/validate-object.js
deleted file mode 100644
index 486c132..0000000
--- a/node_modules/es5-ext/test/iterable/validate-object.js
+++ /dev/null
@@ -1,26 +0,0 @@
-"use strict";
-
-var iteratorSymbol = require("es6-symbol").iterator;
-
-module.exports = function (t, a) {
- var x;
- a.throws(function () { t(0); }, TypeError, "0");
- a.throws(function () { t(false); }, TypeError, "false");
- a.throws(function () { t(""); }, TypeError, "String");
- a.throws(function () { t({}); }, TypeError, "Plain Object");
- a.throws(
- function () {
- t(function () {});
- },
- TypeError,
- "Function"
- );
- a(t((x = new String("raz"))), x, "String object"); // Jslint: ignore
-
- a(t((x = { length: 1 })), x, "Array like");
- a.throws(function () { t(); }, TypeError, "Undefined");
- a.throws(function () { t(null); }, TypeError, "null");
- x = {};
- x[iteratorSymbol] = function () {};
- a(t(x), x, "Iterable");
-};
diff --git a/node_modules/es5-ext/test/iterable/validate.js b/node_modules/es5-ext/test/iterable/validate.js
deleted file mode 100644
index 49996a9..0000000
--- a/node_modules/es5-ext/test/iterable/validate.js
+++ /dev/null
@@ -1,26 +0,0 @@
-"use strict";
-
-var iteratorSymbol = require("es6-symbol").iterator;
-
-module.exports = function (t, a) {
- var x;
- a.throws(function () { t(0); }, TypeError, "0");
- a.throws(function () { t(false); }, TypeError, "false");
- a(t(""), "", "''");
- a.throws(function () { t({}); }, TypeError, "Plain Object");
- a.throws(
- function () {
- t(function () {});
- },
- TypeError,
- "Function"
- );
- a(t((x = new String("raz"))), x, "String object"); // Jslint: ignore
-
- a(t((x = { length: 1 })), x, "Array like");
- a.throws(function () { t(); }, TypeError, "Undefined");
- a.throws(function () { t(null); }, TypeError, "null");
- x = {};
- x[iteratorSymbol] = function () {};
- a(t(x), x, "Iterable");
-};
diff --git a/node_modules/es5-ext/test/json/safe-stringify.js b/node_modules/es5-ext/test/json/safe-stringify.js
deleted file mode 100644
index 59ce8ad..0000000
--- a/node_modules/es5-ext/test/json/safe-stringify.js
+++ /dev/null
@@ -1,21 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t({ foo: "bar" }), JSON.stringify({ foo: "bar" }));
- a(t({ foo: { elo: 12 } }), "{\"foo\":{\"elo\":12}}");
- a(
- t({ foo: { elo: 12, mel: { toJSON: function () { throw new Error("Nu nu!"); } } } }),
- "{\"foo\":{\"elo\":12}}"
- );
- a(
- t({ foo: { elo: 12 }, mel: { toJSON: function () { throw new Error("Nu nu!"); } } }),
- "{\"foo\":{\"elo\":12}}"
- );
- a(
- t({
- foo: { elo: 12 },
- mel: ["raz", { toJSON: function () { throw new Error("Nu nu!"); } }, 0, 2]
- }),
- "{\"foo\":{\"elo\":12},\"mel\":[\"raz\",0,2]}"
- );
-};
diff --git a/node_modules/es5-ext/test/math/_decimal-adjust.js b/node_modules/es5-ext/test/math/_decimal-adjust.js
deleted file mode 100644
index 6da15ec..0000000
--- a/node_modules/es5-ext/test/math/_decimal-adjust.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- // Just sanity check, as real tests are in 'round', 'ceil' and 'floor' variants
- a(t("round")(55.55, -1), 55.6);
-};
diff --git a/node_modules/es5-ext/test/math/_pack-ieee754.js b/node_modules/es5-ext/test/math/_pack-ieee754.js
deleted file mode 100644
index 6542873..0000000
--- a/node_modules/es5-ext/test/math/_pack-ieee754.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a.deep(t(1.337, 8, 23), [63, 171, 34, 209]); };
diff --git a/node_modules/es5-ext/test/math/_unpack-ieee754.js b/node_modules/es5-ext/test/math/_unpack-ieee754.js
deleted file mode 100644
index d384160..0000000
--- a/node_modules/es5-ext/test/math/_unpack-ieee754.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a.deep(t([63, 171, 34, 209], 8, 23), 1.3370000123977661); };
diff --git a/node_modules/es5-ext/test/math/acosh/implement.js b/node_modules/es5-ext/test/math/acosh/implement.js
deleted file mode 100644
index 7ef68ea..0000000
--- a/node_modules/es5-ext/test/math/acosh/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../math/acosh/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/math/acosh/index.js b/node_modules/es5-ext/test/math/acosh/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/math/acosh/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/math/acosh/is-implemented.js b/node_modules/es5-ext/test/math/acosh/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/math/acosh/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/math/acosh/shim.js b/node_modules/es5-ext/test/math/acosh/shim.js
deleted file mode 100644
index 17ac181..0000000
--- a/node_modules/es5-ext/test/math/acosh/shim.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t({}), NaN, "NaN");
- a(t(-1), NaN, "Negative");
- a(t(0), NaN, "Zero");
- a(t(0.5), NaN, "Below 1");
- a(t(1), 0, "1");
- a(t(2), 1.3169578969248166, "Other");
- a(t(Infinity), Infinity, "Infinity");
-};
diff --git a/node_modules/es5-ext/test/math/asinh/implement.js b/node_modules/es5-ext/test/math/asinh/implement.js
deleted file mode 100644
index cf98eb2..0000000
--- a/node_modules/es5-ext/test/math/asinh/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../math/asinh/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/math/asinh/index.js b/node_modules/es5-ext/test/math/asinh/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/math/asinh/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/math/asinh/is-implemented.js b/node_modules/es5-ext/test/math/asinh/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/math/asinh/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/math/asinh/shim.js b/node_modules/es5-ext/test/math/asinh/shim.js
deleted file mode 100644
index a4328d2..0000000
--- a/node_modules/es5-ext/test/math/asinh/shim.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t({}), NaN, "NaN");
- a(t(0), 0, "Zero");
- a(t(Infinity), Infinity, "Infinity");
- a(t(-Infinity), -Infinity, "-Infinity");
- a(t(-2), -1.4436354751788103, "Negative");
- a(t(2), 1.4436354751788103, "Positive");
-};
diff --git a/node_modules/es5-ext/test/math/atanh/implement.js b/node_modules/es5-ext/test/math/atanh/implement.js
deleted file mode 100644
index b101bed..0000000
--- a/node_modules/es5-ext/test/math/atanh/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../math/atanh/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/math/atanh/index.js b/node_modules/es5-ext/test/math/atanh/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/math/atanh/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/math/atanh/is-implemented.js b/node_modules/es5-ext/test/math/atanh/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/math/atanh/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/math/atanh/shim.js b/node_modules/es5-ext/test/math/atanh/shim.js
deleted file mode 100644
index f58709c..0000000
--- a/node_modules/es5-ext/test/math/atanh/shim.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t({}), NaN, "NaN");
- a(t(-2), NaN, "Less than -1");
- a(t(2), NaN, "Greater than 1");
- a(t(-1), -Infinity, "-1");
- a(t(1), Infinity, "1");
- a(t(0), 0, "Zero");
- a(Math.round(t(0.5) * 1e15), 549306144334055, "Other");
-};
diff --git a/node_modules/es5-ext/test/math/cbrt/implement.js b/node_modules/es5-ext/test/math/cbrt/implement.js
deleted file mode 100644
index c94e12b..0000000
--- a/node_modules/es5-ext/test/math/cbrt/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../math/cbrt/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/math/cbrt/index.js b/node_modules/es5-ext/test/math/cbrt/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/math/cbrt/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/math/cbrt/is-implemented.js b/node_modules/es5-ext/test/math/cbrt/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/math/cbrt/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/math/cbrt/shim.js b/node_modules/es5-ext/test/math/cbrt/shim.js
deleted file mode 100644
index fc1beee..0000000
--- a/node_modules/es5-ext/test/math/cbrt/shim.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t({}), NaN, "NaN");
- a(t(0), 0, "Zero");
- a(t(Infinity), Infinity, "Infinity");
- a(t(-Infinity), -Infinity, "-Infinity");
- a(t(-1), -1, "-1");
- a(t(1), 1, "1");
- a(t(2), 1.2599210498948732, "Ohter");
-};
diff --git a/node_modules/es5-ext/test/math/ceil-10.js b/node_modules/es5-ext/test/math/ceil-10.js
deleted file mode 100644
index 1c4a386..0000000
--- a/node_modules/es5-ext/test/math/ceil-10.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t(55.51, -1), 55.6);
- a(t(51, 1), 60);
- a(t(-55.59, -1), -55.5);
- a(t(-59, 1), -50);
-};
diff --git a/node_modules/es5-ext/test/math/clz32/implement.js b/node_modules/es5-ext/test/math/clz32/implement.js
deleted file mode 100644
index c9a6677..0000000
--- a/node_modules/es5-ext/test/math/clz32/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../math/clz32/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/math/clz32/index.js b/node_modules/es5-ext/test/math/clz32/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/math/clz32/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/math/clz32/is-implemented.js b/node_modules/es5-ext/test/math/clz32/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/math/clz32/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/math/clz32/shim.js b/node_modules/es5-ext/test/math/clz32/shim.js
deleted file mode 100644
index 4d8dd2f..0000000
--- a/node_modules/es5-ext/test/math/clz32/shim.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t(1), 31, "1");
- a(t(1000), 22, "1000");
- a(t(), 32, "No arguments");
- a(t(Infinity), 32, "Infinity");
- a(t(-Infinity), 32, "-Infinity");
- a(t("foo"), 32, "String");
- a(t(true), 31, "Boolean");
- a(t(3.5), 30, "Float");
-};
diff --git a/node_modules/es5-ext/test/math/cosh/implement.js b/node_modules/es5-ext/test/math/cosh/implement.js
deleted file mode 100644
index 90e3dab..0000000
--- a/node_modules/es5-ext/test/math/cosh/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../math/cosh/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/math/cosh/index.js b/node_modules/es5-ext/test/math/cosh/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/math/cosh/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/math/cosh/is-implemented.js b/node_modules/es5-ext/test/math/cosh/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/math/cosh/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/math/cosh/shim.js b/node_modules/es5-ext/test/math/cosh/shim.js
deleted file mode 100644
index 0b917c7..0000000
--- a/node_modules/es5-ext/test/math/cosh/shim.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t({}), NaN, "NaN");
- a(t(0), 1, "Zero");
- a(t(Infinity), Infinity, "Infinity");
- a(t(-Infinity), Infinity, "-Infinity");
- a(t(1), 1.5430806348152437, "1");
- a(t(Number.MAX_VALUE), Infinity);
- a(t(-Number.MAX_VALUE), Infinity);
- a(t(Number.MIN_VALUE), 1);
- a(t(-Number.MIN_VALUE), 1);
-};
diff --git a/node_modules/es5-ext/test/math/expm1/implement.js b/node_modules/es5-ext/test/math/expm1/implement.js
deleted file mode 100644
index 41463c6..0000000
--- a/node_modules/es5-ext/test/math/expm1/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../math/expm1/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/math/expm1/index.js b/node_modules/es5-ext/test/math/expm1/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/math/expm1/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/math/expm1/is-implemented.js b/node_modules/es5-ext/test/math/expm1/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/math/expm1/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/math/expm1/shim.js b/node_modules/es5-ext/test/math/expm1/shim.js
deleted file mode 100644
index cebb063..0000000
--- a/node_modules/es5-ext/test/math/expm1/shim.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t({}), NaN, "NaN");
- a(t(0), 0, "Zero");
- a(t(Infinity), Infinity, "Infinity");
- a(t(-Infinity), -1, "-Infinity");
- a(t(1).toFixed(15), "1.718281828459045", "1");
-};
diff --git a/node_modules/es5-ext/test/math/floor-10.js b/node_modules/es5-ext/test/math/floor-10.js
deleted file mode 100644
index a086d80..0000000
--- a/node_modules/es5-ext/test/math/floor-10.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t(55.59, -1), 55.5);
- a(t(59, 1), 50);
- a(t(-55.51, -1), -55.6);
- a(t(-51, 1), -60);
-};
diff --git a/node_modules/es5-ext/test/math/fround/implement.js b/node_modules/es5-ext/test/math/fround/implement.js
deleted file mode 100644
index 6c2bab3..0000000
--- a/node_modules/es5-ext/test/math/fround/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../math/fround/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/math/fround/index.js b/node_modules/es5-ext/test/math/fround/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/math/fround/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/math/fround/is-implemented.js b/node_modules/es5-ext/test/math/fround/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/math/fround/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/math/fround/shim.js b/node_modules/es5-ext/test/math/fround/shim.js
deleted file mode 100644
index 0525bfa..0000000
--- a/node_modules/es5-ext/test/math/fround/shim.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t({}), NaN, "NaN");
- a(t(0), 0, "Zero");
- a(t(Infinity), Infinity, "Infinity");
- a(t(-Infinity), -Infinity, "-Infinity");
- a(t(1.337), 1.3370000123977661, "1");
-};
diff --git a/node_modules/es5-ext/test/math/hypot/implement.js b/node_modules/es5-ext/test/math/hypot/implement.js
deleted file mode 100644
index e4b0052..0000000
--- a/node_modules/es5-ext/test/math/hypot/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../math/hypot/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/math/hypot/index.js b/node_modules/es5-ext/test/math/hypot/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/math/hypot/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/math/hypot/is-implemented.js b/node_modules/es5-ext/test/math/hypot/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/math/hypot/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/math/hypot/shim.js b/node_modules/es5-ext/test/math/hypot/shim.js
deleted file mode 100644
index 89e4657..0000000
--- a/node_modules/es5-ext/test/math/hypot/shim.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t(), 0, "No arguments");
- a(t(0, -0, 0), 0, "Zeros");
- a(t(4, NaN, Infinity), Infinity, "Infinity");
- a(t(4, NaN, -Infinity), Infinity, "Infinity");
- a(t(4, NaN, 34), NaN, "NaN");
- a(t(3, 4), 5, "#1");
- a(t(3, 4, 5), 7.0710678118654755, "#2");
-};
diff --git a/node_modules/es5-ext/test/math/imul/implement.js b/node_modules/es5-ext/test/math/imul/implement.js
deleted file mode 100644
index 4c97d2b..0000000
--- a/node_modules/es5-ext/test/math/imul/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../math/imul/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/math/imul/index.js b/node_modules/es5-ext/test/math/imul/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/math/imul/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/math/imul/is-implemented.js b/node_modules/es5-ext/test/math/imul/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/math/imul/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/math/imul/shim.js b/node_modules/es5-ext/test/math/imul/shim.js
deleted file mode 100644
index a8d4e90..0000000
--- a/node_modules/es5-ext/test/math/imul/shim.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t(), 0, "No arguments");
- a(t(0, 0), 0, "Zeros");
- a(t(2, 4), 8, "#1");
- a(t(-1, 8), -8, "#2");
- a(t(0xfffffffe, 5), -10, "#3");
-};
diff --git a/node_modules/es5-ext/test/math/log10/implement.js b/node_modules/es5-ext/test/math/log10/implement.js
deleted file mode 100644
index 70124b4..0000000
--- a/node_modules/es5-ext/test/math/log10/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../math/log10/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/math/log10/index.js b/node_modules/es5-ext/test/math/log10/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/math/log10/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/math/log10/is-implemented.js b/node_modules/es5-ext/test/math/log10/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/math/log10/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/math/log10/shim.js b/node_modules/es5-ext/test/math/log10/shim.js
deleted file mode 100644
index d069628..0000000
--- a/node_modules/es5-ext/test/math/log10/shim.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t({}), NaN, "NaN");
- a(t(-0.5), NaN, "Less than 0");
- a(t(0), -Infinity, "0");
- a(t(1), 0, "1");
- a(t(Infinity), Infinity, "Infinity");
- a(t(2), 0.3010299956639812, "Other");
-};
diff --git a/node_modules/es5-ext/test/math/log1p/implement.js b/node_modules/es5-ext/test/math/log1p/implement.js
deleted file mode 100644
index 766ecdb..0000000
--- a/node_modules/es5-ext/test/math/log1p/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../math/log1p/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/math/log1p/index.js b/node_modules/es5-ext/test/math/log1p/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/math/log1p/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/math/log1p/is-implemented.js b/node_modules/es5-ext/test/math/log1p/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/math/log1p/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/math/log1p/shim.js b/node_modules/es5-ext/test/math/log1p/shim.js
deleted file mode 100644
index 66b400c..0000000
--- a/node_modules/es5-ext/test/math/log1p/shim.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t({}), NaN, "NaN");
- a(t(-1.5), NaN, "Less than -1");
- a(t(-1), -Infinity, "-1");
- a(t(0), 0, "0");
- a(t(Infinity), Infinity, "Infinity");
- a(t(1), 0.6931471805599453, "Other");
-};
diff --git a/node_modules/es5-ext/test/math/log2/implement.js b/node_modules/es5-ext/test/math/log2/implement.js
deleted file mode 100644
index a5360b7..0000000
--- a/node_modules/es5-ext/test/math/log2/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../math/log2/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/math/log2/index.js b/node_modules/es5-ext/test/math/log2/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/math/log2/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/math/log2/is-implemented.js b/node_modules/es5-ext/test/math/log2/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/math/log2/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/math/log2/shim.js b/node_modules/es5-ext/test/math/log2/shim.js
deleted file mode 100644
index f587e33..0000000
--- a/node_modules/es5-ext/test/math/log2/shim.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t({}), NaN, "NaN");
- a(t(-0.5), NaN, "Less than 0");
- a(t(0), -Infinity, "0");
- a(t(1), 0, "1");
- a(t(Infinity), Infinity, "Infinity");
- a(t(3).toFixed(15), "1.584962500721156", "Other");
-};
diff --git a/node_modules/es5-ext/test/math/round-10.js b/node_modules/es5-ext/test/math/round-10.js
deleted file mode 100644
index c7ae38c..0000000
--- a/node_modules/es5-ext/test/math/round-10.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t(55.55, -1), 55.6);
- a(t(55.549, -1), 55.5);
- a(t(55, 1), 60);
- a(t(54.9, 1), 50);
- a(t(-55.55, -1), -55.5);
- a(t(-55.551, -1), -55.6);
- a(t(-55, 1), -50);
- a(t(-55.1, 1), -60);
- a(t(1.005, -2), 1.01);
- a(t(-1.005, -2), -1.0);
-};
diff --git a/node_modules/es5-ext/test/math/sign/implement.js b/node_modules/es5-ext/test/math/sign/implement.js
deleted file mode 100644
index cda8d61..0000000
--- a/node_modules/es5-ext/test/math/sign/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../math/sign/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/math/sign/index.js b/node_modules/es5-ext/test/math/sign/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/math/sign/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/math/sign/is-implemented.js b/node_modules/es5-ext/test/math/sign/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/math/sign/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/math/sign/shim.js b/node_modules/es5-ext/test/math/sign/shim.js
deleted file mode 100644
index 071ea07..0000000
--- a/node_modules/es5-ext/test/math/sign/shim.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-var is = require("../../../object/is");
-
-module.exports = function (t, a) {
- a(is(t(0), +0), true, "+0");
- a(is(t(-0), -0), true, "-0");
- a(t({}), NaN, true, "NaN");
- a(t(-234234234), -1, "Negative");
- a(t(234234234), 1, "Positive");
-};
diff --git a/node_modules/es5-ext/test/math/sinh/implement.js b/node_modules/es5-ext/test/math/sinh/implement.js
deleted file mode 100644
index 3d33338..0000000
--- a/node_modules/es5-ext/test/math/sinh/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../math/sinh/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/math/sinh/index.js b/node_modules/es5-ext/test/math/sinh/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/math/sinh/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/math/sinh/is-implemented.js b/node_modules/es5-ext/test/math/sinh/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/math/sinh/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/math/sinh/shim.js b/node_modules/es5-ext/test/math/sinh/shim.js
deleted file mode 100644
index f168a7f..0000000
--- a/node_modules/es5-ext/test/math/sinh/shim.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t({}), NaN, "NaN");
- a(t(0), 0, "Zero");
- a(t(Infinity), Infinity, "Infinity");
- a(t(-Infinity), -Infinity, "-Infinity");
- a(t(1), 1.1752011936438014, "1");
- a(t(Number.MAX_VALUE), Infinity);
- a(t(-Number.MAX_VALUE), -Infinity);
- a(t(Number.MIN_VALUE), 5e-324);
- a(t(-Number.MIN_VALUE), -5e-324);
-};
diff --git a/node_modules/es5-ext/test/math/tanh/implement.js b/node_modules/es5-ext/test/math/tanh/implement.js
deleted file mode 100644
index e3d9c55..0000000
--- a/node_modules/es5-ext/test/math/tanh/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../math/tanh/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/math/tanh/index.js b/node_modules/es5-ext/test/math/tanh/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/math/tanh/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/math/tanh/is-implemented.js b/node_modules/es5-ext/test/math/tanh/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/math/tanh/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/math/tanh/shim.js b/node_modules/es5-ext/test/math/tanh/shim.js
deleted file mode 100644
index 5da3c08..0000000
--- a/node_modules/es5-ext/test/math/tanh/shim.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t({}), NaN, "NaN");
- a(t(0), 0, "Zero");
- a(t(Infinity), 1, "Infinity");
- a(t(-Infinity), -1, "-Infinity");
- a(t(1), 0.7615941559557649, "1");
- a(t(Number.MAX_VALUE), 1);
- a(t(-Number.MAX_VALUE), -1);
-};
diff --git a/node_modules/es5-ext/test/math/trunc/implement.js b/node_modules/es5-ext/test/math/trunc/implement.js
deleted file mode 100644
index fea8211..0000000
--- a/node_modules/es5-ext/test/math/trunc/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../math/trunc/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/math/trunc/index.js b/node_modules/es5-ext/test/math/trunc/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/math/trunc/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/math/trunc/is-implemented.js b/node_modules/es5-ext/test/math/trunc/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/math/trunc/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/math/trunc/shim.js b/node_modules/es5-ext/test/math/trunc/shim.js
deleted file mode 100644
index b80e868..0000000
--- a/node_modules/es5-ext/test/math/trunc/shim.js
+++ /dev/null
@@ -1,16 +0,0 @@
-"use strict";
-
-var is = require("../../../object/is");
-
-module.exports = function (t, a) {
- a(t({}), NaN, "NaN");
- a(t(0), 0, "Zero");
- a(t(Infinity), Infinity, "Infinity");
- a(t(-Infinity), -Infinity, "-Infinity");
- a(is(t(0.234), 0), true, "0");
- a(is(t(-0.234), -0), true, "-0");
- a(t(13.7), 13, "Positive #1");
- a(t(12.3), 12, "Positive #2");
- a(t(-12.3), -12, "Negative #1");
- a(t(-14.7), -14, "Negative #2");
-};
diff --git a/node_modules/es5-ext/test/number/#/pad.js b/node_modules/es5-ext/test/number/#/pad.js
deleted file mode 100644
index cc8aa5e..0000000
--- a/node_modules/es5-ext/test/number/#/pad.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t.call(78, 4), "0078");
- a(t.call(65.12323, 4, 3), "0065.123", "Precision");
- a(t.call(65, 4, 3), "0065.000", "Precision integer");
-};
diff --git a/node_modules/es5-ext/test/number/epsilon/implement.js b/node_modules/es5-ext/test/number/epsilon/implement.js
deleted file mode 100644
index 1366058..0000000
--- a/node_modules/es5-ext/test/number/epsilon/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../number/epsilon/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/number/epsilon/index.js b/node_modules/es5-ext/test/number/epsilon/index.js
deleted file mode 100644
index 1be9162..0000000
--- a/node_modules/es5-ext/test/number/epsilon/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t, "number"); };
diff --git a/node_modules/es5-ext/test/number/epsilon/is-implemented.js b/node_modules/es5-ext/test/number/epsilon/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/number/epsilon/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/number/is-finite/implement.js b/node_modules/es5-ext/test/number/is-finite/implement.js
deleted file mode 100644
index da4ee64..0000000
--- a/node_modules/es5-ext/test/number/is-finite/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../number/is-finite/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/number/is-finite/index.js b/node_modules/es5-ext/test/number/is-finite/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/number/is-finite/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/number/is-finite/is-implemented.js b/node_modules/es5-ext/test/number/is-finite/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/number/is-finite/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/number/is-finite/shim.js b/node_modules/es5-ext/test/number/is-finite/shim.js
deleted file mode 100644
index 8fa004f..0000000
--- a/node_modules/es5-ext/test/number/is-finite/shim.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t(2), true, "Number");
- a(t("23"), false, "Not numeric");
- a(t(NaN), false, "NaN");
- a(t(Infinity), false, "Infinity");
-};
diff --git a/node_modules/es5-ext/test/number/is-integer/implement.js b/node_modules/es5-ext/test/number/is-integer/implement.js
deleted file mode 100644
index b1a8e9c..0000000
--- a/node_modules/es5-ext/test/number/is-integer/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../number/is-integer/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/number/is-integer/index.js b/node_modules/es5-ext/test/number/is-integer/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/number/is-integer/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/number/is-integer/is-implemented.js b/node_modules/es5-ext/test/number/is-integer/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/number/is-integer/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/number/is-integer/shim.js b/node_modules/es5-ext/test/number/is-integer/shim.js
deleted file mode 100644
index e367990..0000000
--- a/node_modules/es5-ext/test/number/is-integer/shim.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t(2), true, "Number");
- a(t(2.34), false, "Float");
- a(t("23"), false, "Not numeric");
- a(t(NaN), false, "NaN");
- a(t(Infinity), false, "Infinity");
-};
diff --git a/node_modules/es5-ext/test/number/is-nan/implement.js b/node_modules/es5-ext/test/number/is-nan/implement.js
deleted file mode 100644
index b8d9ab7..0000000
--- a/node_modules/es5-ext/test/number/is-nan/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../number/is-nan/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/number/is-nan/index.js b/node_modules/es5-ext/test/number/is-nan/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/number/is-nan/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/number/is-nan/is-implemented.js b/node_modules/es5-ext/test/number/is-nan/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/number/is-nan/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/number/is-nan/shim.js b/node_modules/es5-ext/test/number/is-nan/shim.js
deleted file mode 100644
index 3181047..0000000
--- a/node_modules/es5-ext/test/number/is-nan/shim.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t(2), false, "Number");
- a(t({}), false, "Not numeric");
- a(t(NaN), true, "NaN");
-};
diff --git a/node_modules/es5-ext/test/number/is-natural.js b/node_modules/es5-ext/test/number/is-natural.js
deleted file mode 100644
index 8fe4dcc..0000000
--- a/node_modules/es5-ext/test/number/is-natural.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t(2), true, "Number");
- a(t(-2), false, "Negative");
- a(t(2.34), false, "Float");
- a(t("23"), false, "Not numeric");
- a(t(NaN), false, "NaN");
- a(t(Infinity), false, "Infinity");
-};
diff --git a/node_modules/es5-ext/test/number/is-number.js b/node_modules/es5-ext/test/number/is-number.js
deleted file mode 100644
index 9cd670c..0000000
--- a/node_modules/es5-ext/test/number/is-number.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t(0), true, "Zero");
- a(t(NaN), true, "NaN");
- a(t(Infinity), true, "Infinity");
- a(t(12), true, "Number");
- a(t(false), false, "Boolean");
- a(t(new Date()), false, "Date");
- a(t(new Number(2)), true, "Number object");
- a(t("asdfaf"), false, "String");
- a(t(""), false, "Empty String");
-};
diff --git a/node_modules/es5-ext/test/number/is-safe-integer/implement.js b/node_modules/es5-ext/test/number/is-safe-integer/implement.js
deleted file mode 100644
index aaab29c..0000000
--- a/node_modules/es5-ext/test/number/is-safe-integer/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../number/is-safe-integer/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/number/is-safe-integer/index.js b/node_modules/es5-ext/test/number/is-safe-integer/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/number/is-safe-integer/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/number/is-safe-integer/is-implemented.js b/node_modules/es5-ext/test/number/is-safe-integer/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/number/is-safe-integer/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/number/is-safe-integer/shim.js b/node_modules/es5-ext/test/number/is-safe-integer/shim.js
deleted file mode 100644
index a4ea691..0000000
--- a/node_modules/es5-ext/test/number/is-safe-integer/shim.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t(2), true, "Number");
- a(t(2.34), false, "Float");
- a(t(Math.pow(2, 53)), false, "Too large");
- a(t(Math.pow(2, 53) - 1), true, "Maximum");
- a(t("23"), false, "Not numeric");
- a(t(NaN), false, "NaN");
- a(t(Infinity), false, "Infinity");
-};
diff --git a/node_modules/es5-ext/test/number/max-safe-integer/implement.js b/node_modules/es5-ext/test/number/max-safe-integer/implement.js
deleted file mode 100644
index c3d4156..0000000
--- a/node_modules/es5-ext/test/number/max-safe-integer/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../number/max-safe-integer/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/number/max-safe-integer/index.js b/node_modules/es5-ext/test/number/max-safe-integer/index.js
deleted file mode 100644
index 1be9162..0000000
--- a/node_modules/es5-ext/test/number/max-safe-integer/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t, "number"); };
diff --git a/node_modules/es5-ext/test/number/max-safe-integer/is-implemented.js b/node_modules/es5-ext/test/number/max-safe-integer/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/number/max-safe-integer/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/number/min-safe-integer/implement.js b/node_modules/es5-ext/test/number/min-safe-integer/implement.js
deleted file mode 100644
index 3f3533f..0000000
--- a/node_modules/es5-ext/test/number/min-safe-integer/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../number/min-safe-integer/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/number/min-safe-integer/index.js b/node_modules/es5-ext/test/number/min-safe-integer/index.js
deleted file mode 100644
index 1be9162..0000000
--- a/node_modules/es5-ext/test/number/min-safe-integer/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t, "number"); };
diff --git a/node_modules/es5-ext/test/number/min-safe-integer/is-implemented.js b/node_modules/es5-ext/test/number/min-safe-integer/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/number/min-safe-integer/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/number/to-integer.js b/node_modules/es5-ext/test/number/to-integer.js
deleted file mode 100644
index b7b975f..0000000
--- a/node_modules/es5-ext/test/number/to-integer.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t({}), 0, "NaN");
- a(t(20), 20, "Positive integer");
- a(t("-20"), -20, "String negative integer");
- a(t(Infinity), Infinity, "Infinity");
- a(t(15.343), 15, "Float");
- a(t(-15.343), -15, "Negative float");
-};
diff --git a/node_modules/es5-ext/test/number/to-pos-integer.js b/node_modules/es5-ext/test/number/to-pos-integer.js
deleted file mode 100644
index 27c7cdf..0000000
--- a/node_modules/es5-ext/test/number/to-pos-integer.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t({}), 0, "NaN");
- a(t(20), 20, "Positive integer");
- a(t(-20), 0, "Negative integer");
- a(t(Infinity), Infinity, "Infinity");
- a(t(15.343), 15, "Float");
- a(t(-15.343), 0, "Negative float");
-};
diff --git a/node_modules/es5-ext/test/number/to-uint32.js b/node_modules/es5-ext/test/number/to-uint32.js
deleted file mode 100644
index 7eea42f..0000000
--- a/node_modules/es5-ext/test/number/to-uint32.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t({}), 0, "Not numeric");
- a(t(-4), 4294967292, "Negative");
- a(t(133432), 133432, "Positive");
- a(t(8589934592), 0, "Greater than maximum");
-};
diff --git a/node_modules/es5-ext/test/object/_iterate.js b/node_modules/es5-ext/test/object/_iterate.js
deleted file mode 100644
index 98f8f1e..0000000
--- a/node_modules/es5-ext/test/object/_iterate.js
+++ /dev/null
@@ -1,36 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var o = { raz: 1, dwa: 2, trzy: 3 }, o2 = {}, o3 = {}, arr, i = -1;
-
- t = t("forEach");
- t(
- o,
- function (value, name, self, index) {
- o2[name] = value;
- a(index, ++i, "Index");
- a(self, o, "Self");
- a(this, o3, "Scope");
- },
- o3
- );
- a.deep(o2, o);
-
- arr = [];
- o2 = {};
- i = -1;
- t(
- o,
- function (value, name, self, index) {
- arr.push(value);
- o2[name] = value;
- a(index, ++i, "Index");
- a(self, o, "Self");
- a(this, o3, "Scope");
- },
- o3,
- function (a, b) { return o[b] - o[a]; }
- );
- a.deep(o2, o, "Sort by Values: Content");
- a.deep(arr, [3, 2, 1], "Sort by Values: Order");
-};
diff --git a/node_modules/es5-ext/test/object/assign-deep.js b/node_modules/es5-ext/test/object/assign-deep.js
deleted file mode 100644
index 962ac40..0000000
--- a/node_modules/es5-ext/test/object/assign-deep.js
+++ /dev/null
@@ -1,27 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var o1 = { a: 1, b: 2 }, o2 = { b: 3, c: 4 };
-
- a(t(o1, o2), o1, "Returns self");
- a.deep(o1, { a: 1, b: 3, c: 4 }, "Single: content");
-
- a.deep(t({}, o1, o2), { a: 1, b: 3, c: 4 }, "Multi argument");
-
- var obj1 = { foo: { bar: 3, marko: true } }
- , obj2 = { foo: { elo: 12, marko: false }, miszka: [23] };
-
- var copyObj1 = JSON.parse(JSON.stringify(obj1)), copyObj2 = JSON.parse(JSON.stringify(obj2));
- a.deep(t({}, obj1, obj2), { foo: { bar: 3, marko: false, elo: 12 }, miszka: [23] });
- // Ensure it's side effects free
- a.deep(obj1, copyObj1);
- a.deep(obj2, copyObj2);
-
- obj1 = [{ foo: "bar" }];
- var assignedObj = [];
- t(assignedObj, obj1);
- a.deep(assignedObj, [{ foo: "bar" }]);
- // Ensure array items are copied and not passed
- a.not(assignedObj[0], obj1[0]);
- a(t(true), true);
-};
diff --git a/node_modules/es5-ext/test/object/assign/implement.js b/node_modules/es5-ext/test/object/assign/implement.js
deleted file mode 100644
index f5cd3a6..0000000
--- a/node_modules/es5-ext/test/object/assign/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../object/assign/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/object/assign/index.js b/node_modules/es5-ext/test/object/assign/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/object/assign/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/object/assign/is-implemented.js b/node_modules/es5-ext/test/object/assign/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/object/assign/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/object/assign/shim.js b/node_modules/es5-ext/test/object/assign/shim.js
deleted file mode 100644
index e86c1e7..0000000
--- a/node_modules/es5-ext/test/object/assign/shim.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var o1 = { a: 1, b: 2 }, o2 = { b: 3, c: 4 };
-
- a(t(o1, o2), o1, "Returns self");
- a.deep(o1, { a: 1, b: 3, c: 4 }, "Single: content");
-
- a.deep(t({}, o1, o2), { a: 1, b: 3, c: 4 }, "Multi argument");
-};
diff --git a/node_modules/es5-ext/test/object/clear.js b/node_modules/es5-ext/test/object/clear.js
deleted file mode 100644
index 5735e79..0000000
--- a/node_modules/es5-ext/test/object/clear.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-var isEmpty = require("../../object/is-empty");
-
-module.exports = function (t, a) {
- var x = {};
- a(t(x), x, "Empty: Returns same object");
- a(isEmpty(x), true, "Empty: Not changed");
- x.foo = "raz";
- x.bar = "dwa";
- a(t(x), x, "Same object");
- a(isEmpty(x), true, "Emptied");
-};
diff --git a/node_modules/es5-ext/test/object/compact.js b/node_modules/es5-ext/test/object/compact.js
deleted file mode 100644
index bc3e6dc..0000000
--- a/node_modules/es5-ext/test/object/compact.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var x = {}, y = {}, z;
- z = t(x);
- a.not(z, x, "Returns different object");
- a.deep(z, {}, "Empty on empty");
-
- x = { foo: "bar", a: 0, b: false, c: "", d: "0", e: null, bar: y, elo: undefined };
- z = t(x);
- a.deep(z, { foo: "bar", a: 0, b: false, c: "", d: "0", bar: y }, "Cleared null values");
-};
diff --git a/node_modules/es5-ext/test/object/compare.js b/node_modules/es5-ext/test/object/compare.js
deleted file mode 100644
index 23cc511..0000000
--- a/node_modules/es5-ext/test/object/compare.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var d = new Date();
-
- a.ok(t(12, 3) > 0, "Numbers");
- a.ok(t(2, 13) < 0, "Numbers #2");
- a.ok(t("aaa", "aa") > 0, "Strings");
- a.ok(t("aa", "ab") < 0, "Strings #2");
- a(t("aa", "aa"), 0, "Strings same");
- a(t(d, new Date(d.getTime())), 0, "Same date");
- a.ok(t(d, new Date(d.getTime() + 1)) < 0, "Different date");
-};
diff --git a/node_modules/es5-ext/test/object/copy-deep.js b/node_modules/es5-ext/test/object/copy-deep.js
deleted file mode 100644
index 9381383..0000000
--- a/node_modules/es5-ext/test/object/copy-deep.js
+++ /dev/null
@@ -1,35 +0,0 @@
-"use strict";
-
-var stringify = JSON.stringify;
-
-module.exports = function (t, a) {
- var o = { 1: "raz", 2: "dwa", 3: "trzy" }, no = t(o);
-
- a.not(no, o, "Return different object");
- a(stringify(no), stringify(o), "Match properties and values");
-
- o = {
- foo: "bar",
- raz: {
- dwa: "dwa",
- trzy: { cztery: "pięć", sześć: "siedem" },
- osiem: {},
- dziewięć: function () {}
- },
- dziesięć: 10,
- jedenaście: ["raz", ["dwa", "trzy", { elo: "true" }]]
- };
- o.raz.rec = o;
-
- no = t(o);
- a.not(o.raz, no.raz, "Deep");
- a.not(o.raz.trzy, no.raz.trzy, "Deep #2");
- a(stringify(o.raz.trzy), stringify(no.raz.trzy), "Deep content");
- a(no.raz.rec, no, "Recursive");
- a.not(o.raz.osiem, no.raz.osiem, "Empty object");
- a(o.raz["dziewięć"], no.raz["dziewięć"], "Function");
- a.not(o["jedenaście"], no["jedenaście"]);
- a.not(o["jedenaście"][1], no["jedenaście"][1]);
- a.not(o["jedenaście"][1][2], no["jedenaście"][1][2]);
- a(t(true), true);
-};
diff --git a/node_modules/es5-ext/test/object/copy.js b/node_modules/es5-ext/test/object/copy.js
deleted file mode 100644
index a5e2c34..0000000
--- a/node_modules/es5-ext/test/object/copy.js
+++ /dev/null
@@ -1,30 +0,0 @@
-"use strict";
-
-var stringify = JSON.stringify;
-
-module.exports = function (t, a) {
- var o = { 1: "raz", 2: "dwa", 3: "trzy" }, no = t(o);
-
- a.not(no, o, "Return different object");
- a(stringify(no), stringify(o), "Match properties and values");
-
- o = {
- foo: "bar",
- raz: {
- dwa: "dwa",
- trzy: { cztery: "pięć", sześć: "siedem" },
- osiem: {},
- dziewięć: function () {}
- },
- dziesięć: 10
- };
- o.raz.rec = o;
-
- no = t(o);
- a(o.raz, no.raz, "Shallow");
-
- a.deep(t(o, ["foo"]), { foo: "bar" });
- a.deep(t(Object.create(o), ["foo"]), { foo: "bar" });
- a.deep(t(o, ["foo", "habla"]), { foo: "bar" });
- a.deep(t(o, ["foo", "habla"], { ensure: true }), { foo: "bar", habla: undefined });
-};
diff --git a/node_modules/es5-ext/test/object/count.js b/node_modules/es5-ext/test/object/count.js
deleted file mode 100644
index 041f91a..0000000
--- a/node_modules/es5-ext/test/object/count.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t({}), 0, "Empty");
- a(t({ raz: 1, dwa: null, trzy: undefined, cztery: 0 }), 4, "Some properties");
- a(
- t(
- Object.defineProperties(
- {}, { raz: { value: "raz" }, dwa: { value: "dwa", enumerable: true } }
- )
- ),
- 1, "Some properties hidden"
- );
-};
diff --git a/node_modules/es5-ext/test/object/create.js b/node_modules/es5-ext/test/object/create.js
deleted file mode 100644
index 220f417..0000000
--- a/node_modules/es5-ext/test/object/create.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-
-var setPrototypeOf = require("../../object/set-prototype-of")
- , getPrototypeOf = Object.getPrototypeOf;
-
-module.exports = function (t, a) {
- var x = {}, obj;
-
- a(getPrototypeOf(t(x)), x, "Normal object");
- a(getPrototypeOf(t(null)), (setPrototypeOf && setPrototypeOf.nullPolyfill) || null, "Null");
-
- a.h1("Properties");
- a.h2("Normal object");
- a(getPrototypeOf((obj = t(x, { foo: { value: "bar" } }))), x, "Prototype");
- a(obj.foo, "bar", "Property");
- a.h2("Null");
- a(
- getPrototypeOf((obj = t(null, { foo: { value: "bar2" } }))),
- (setPrototypeOf && setPrototypeOf.nullPolyfill) || null, "Prototype"
- );
- a(obj.foo, "bar2", "Property");
-};
diff --git a/node_modules/es5-ext/test/object/ensure-array.js b/node_modules/es5-ext/test/object/ensure-array.js
deleted file mode 100644
index 6189d07..0000000
--- a/node_modules/es5-ext/test/object/ensure-array.js
+++ /dev/null
@@ -1,23 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var arr = [];
- a(t(arr), arr, "Array");
- a(t(""), "", "String");
- var args = (function () { return arguments; })();
- a(t(args), args, "Arguments");
- var arrayLike = { length: 0 };
- a(t(arrayLike), arrayLike, "Array like");
- a.throws(
- function () {
- t(function () {});
- },
- TypeError,
- "Function"
- );
- a.throws(function () { t({}); }, TypeError, "Plain object");
- a.throws(function () { t(/raz/); }, TypeError, "Regexp");
- a.throws(function () { t(); }, TypeError, "No argument");
- a.throws(function () { t(null); }, TypeError, "Null");
- a.throws(function () { t(undefined); }, TypeError, "Undefined");
-};
diff --git a/node_modules/es5-ext/test/object/ensure-finite-number.js b/node_modules/es5-ext/test/object/ensure-finite-number.js
deleted file mode 100644
index 77ac269..0000000
--- a/node_modules/es5-ext/test/object/ensure-finite-number.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a.throws(function () { t(undefined); }, TypeError, "Undefined");
- a.throws(function () { t(null); }, TypeError, "Null");
- a(t(0), 0, "Zero");
- a.throws(function () { t(NaN); }, TypeError, "NaN");
- a.throws(function () { t(Infinity); }, TypeError, "Infinity");
- a(t(12), 12, "Number");
- a(t(false), 0, "Boolean");
- a(t(new Date(1000000)), 1000000, "Date");
- a(t(new Number(2)), 2, "Number object");
- a.throws(function () { t("asdfaf"); }, TypeError, "String");
- a(t(""), 0, "Empty String");
- if (typeof Symbol === "function") {
- a.throws(function () { t(Symbol("test")); }, TypeError, "Symbol");
- }
-};
diff --git a/node_modules/es5-ext/test/object/ensure-integer.js b/node_modules/es5-ext/test/object/ensure-integer.js
deleted file mode 100644
index c97d81a..0000000
--- a/node_modules/es5-ext/test/object/ensure-integer.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a.throws(function () { t(undefined); }, TypeError, "Undefined");
- a.throws(function () { t(null); }, TypeError, "Null");
- a(t(2), 2, "Number");
- a(t(-2), -2, "Negative");
- a.throws(function () { t(2.34); }, TypeError, "Float");
- a(t("23"), 23, "Numeric string");
- a.throws(function () { t(NaN); }, TypeError, "NaN");
- a.throws(function () { t(Infinity); }, TypeError, "Infinity");
-};
diff --git a/node_modules/es5-ext/test/object/ensure-natural-number-value.js b/node_modules/es5-ext/test/object/ensure-natural-number-value.js
deleted file mode 100644
index 16b0cdf..0000000
--- a/node_modules/es5-ext/test/object/ensure-natural-number-value.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a.throws(function () { t(undefined); }, TypeError, "Undefined");
- a.throws(function () { t(null); }, TypeError, "Null");
- a(t(2), 2, "Number");
- a.throws(function () { t(-2); }, TypeError, "Negative");
- a.throws(function () { t(2.34); }, TypeError, "Float");
- a(t("23"), 23, "Numeric string");
- a.throws(function () { t(NaN); }, TypeError, "NaN");
- a.throws(function () { t(Infinity); }, TypeError, "Infinity");
-};
diff --git a/node_modules/es5-ext/test/object/ensure-natural-number.js b/node_modules/es5-ext/test/object/ensure-natural-number.js
deleted file mode 100644
index 861c595..0000000
--- a/node_modules/es5-ext/test/object/ensure-natural-number.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a.throws(function () { t(undefined); }, TypeError, "Undefined");
- a(t(null), 0, "Null");
- a(t(2), 2, "Number");
- a.throws(function () { t(-2); }, TypeError, "Negative");
- a.throws(function () { t(2.34); }, TypeError, "Float");
- a(t("23"), 23, "Numeric string");
- a.throws(function () { t(NaN); }, TypeError, "NaN");
- a.throws(function () { t(Infinity); }, TypeError, "Infinity");
-};
diff --git a/node_modules/es5-ext/test/object/ensure-plain-function.js b/node_modules/es5-ext/test/object/ensure-plain-function.js
deleted file mode 100644
index eeeae0f..0000000
--- a/node_modules/es5-ext/test/object/ensure-plain-function.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- // Just sanity checks, as logic is tested at isPlainFunction
- var fn = function () {};
- a(t(fn), fn, "Function");
- a.throws(function () { t({}); }, TypeError, "Error");
-};
diff --git a/node_modules/es5-ext/test/object/ensure-plain-object.js b/node_modules/es5-ext/test/object/ensure-plain-object.js
deleted file mode 100644
index cc1d1fa..0000000
--- a/node_modules/es5-ext/test/object/ensure-plain-object.js
+++ /dev/null
@@ -1,16 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- // Just sanity checks, as logic is tested at isPlainFunction
- var obj = {};
- a(t(obj), obj, "Reguar object instance");
- obj = Object.create(null);
- a(t(obj), obj, "Null prototype");
- a.throws(
- function () {
- t(function () {});
- },
- TypeError,
- "Error"
- );
-};
diff --git a/node_modules/es5-ext/test/object/ensure-promise.js b/node_modules/es5-ext/test/object/ensure-promise.js
deleted file mode 100644
index 07f058e..0000000
--- a/node_modules/es5-ext/test/object/ensure-promise.js
+++ /dev/null
@@ -1,20 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var promise;
- a.throws(function () { t(); }, TypeError);
- a.throws(function () { t(null); }, TypeError);
- a.throws(function () { t("promise"); }, TypeError);
- a.throws(function () { t({}); }, TypeError);
- a.throws(function () {
- t(function () {});
- }, TypeError);
- a.throws(function () { t({ then: {} }); }, TypeError);
- promise = { then: function () {} };
- a(t(promise), promise);
- promise = function () {};
- promise.then = {};
- a.throws(function () { t(promise); }, TypeError);
- promise.then = function () {};
- a(t(promise), promise);
-};
diff --git a/node_modules/es5-ext/test/object/ensure-thenable.js b/node_modules/es5-ext/test/object/ensure-thenable.js
deleted file mode 100644
index 02be1ef..0000000
--- a/node_modules/es5-ext/test/object/ensure-thenable.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- // Just sanity checks as proper tests are at isThenable
- var thenable = { then: function () {} };
-
- a.throws(function () { t({}); }, TypeError);
- a(t(thenable), thenable);
-};
diff --git a/node_modules/es5-ext/test/object/entries/implement.js b/node_modules/es5-ext/test/object/entries/implement.js
deleted file mode 100644
index c367ee4..0000000
--- a/node_modules/es5-ext/test/object/entries/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../object/entries/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/object/entries/index.js b/node_modules/es5-ext/test/object/entries/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/object/entries/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/object/entries/is-implemented.js b/node_modules/es5-ext/test/object/entries/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/object/entries/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/object/entries/shim.js b/node_modules/es5-ext/test/object/entries/shim.js
deleted file mode 100644
index eb7285a..0000000
--- a/node_modules/es5-ext/test/object/entries/shim.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a.deep(t({ foo: "bar" }), [["foo", "bar"]], "Object");
- a.deep(t("raz"), [["0", "r"], ["1", "a"], ["2", "z"]], "Primitive");
- a.throws(function () { t(); }, TypeError, "Undefined");
- a.throws(function () { t(null); }, TypeError, "Undefined");
-};
diff --git a/node_modules/es5-ext/test/object/eq.js b/node_modules/es5-ext/test/object/eq.js
deleted file mode 100644
index 8cad90a..0000000
--- a/node_modules/es5-ext/test/object/eq.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var o = {};
- a(t(o, {}), false, "Different objects");
- a(t(o, o), true, "Same objects");
- a(t("1", "1"), true, "Same primitive");
- a(t("1", 1), false, "Different primitive types");
- a(t(NaN, NaN), true, "NaN");
- a(t(0, 0), true, "0,0");
- a(t(0, -0), true, "0,-0");
-};
diff --git a/node_modules/es5-ext/test/object/every.js b/node_modules/es5-ext/test/object/every.js
deleted file mode 100644
index 81f4662..0000000
--- a/node_modules/es5-ext/test/object/every.js
+++ /dev/null
@@ -1,16 +0,0 @@
-"use strict";
-
-var o = { 1: 1, 2: 2, 3: 3 };
-
-module.exports = function (t, a) {
- var o2 = {};
- t(o, function (value, name) {
- o2[name] = value;
- return true;
- });
- a(JSON.stringify(o2), JSON.stringify(o), "Iterates");
-
- a(t(o, function () { return true; }), true, "Succeeds");
-
- a(t(o, function () { return false; }), false, "Fails");
-};
diff --git a/node_modules/es5-ext/test/object/filter.js b/node_modules/es5-ext/test/object/filter.js
deleted file mode 100644
index b9ff5e7..0000000
--- a/node_modules/es5-ext/test/object/filter.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a.deep(t({ 1: 1, 2: 2, 3: 3, 4: 4 }, function (value) { return Boolean(value % 2); }), {
- 1: 1,
- 3: 3
- });
-};
diff --git a/node_modules/es5-ext/test/object/find-key.js b/node_modules/es5-ext/test/object/find-key.js
deleted file mode 100644
index f580e1e..0000000
--- a/node_modules/es5-ext/test/object/find-key.js
+++ /dev/null
@@ -1,24 +0,0 @@
-"use strict";
-
-var o = { 1: 1, 2: 2, 3: 3 };
-
-module.exports = function (t, a) {
- var o2 = {}, i = 0;
- t(o, function (value, name) {
- o2[name] = value;
- return false;
- });
- a(JSON.stringify(o2), JSON.stringify(o), "Iterates");
-
- a(
- t(o, function () {
- ++i;
- return true;
- }),
- "1",
- "Finds"
- );
- a(i, 1, "Stops iteration after condition is met");
-
- a(t(o, function () { return false; }), undefined, "Fails");
-};
diff --git a/node_modules/es5-ext/test/object/find.js b/node_modules/es5-ext/test/object/find.js
deleted file mode 100644
index b0c6b81..0000000
--- a/node_modules/es5-ext/test/object/find.js
+++ /dev/null
@@ -1,24 +0,0 @@
-"use strict";
-
-var o = { 1: 1, 2: 2, 3: 3 };
-
-module.exports = function (t, a) {
- var o2 = {}, i = 0;
- t(o, function (value, name) {
- o2[name] = value;
- return false;
- });
- a(JSON.stringify(o2), JSON.stringify(o), "Iterates");
-
- a(
- t(o, function () {
- ++i;
- return true;
- }),
- 1,
- "Finds"
- );
- a(i, 1, "Stops iteration after condition is met");
-
- a(t(o, function () { return false; }), undefined, "Fails");
-};
diff --git a/node_modules/es5-ext/test/object/first-key.js b/node_modules/es5-ext/test/object/first-key.js
deleted file mode 100644
index 6010ba1..0000000
--- a/node_modules/es5-ext/test/object/first-key.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var x = {}, y = Object.create(null);
- a(t(x), null, "Normal: Empty");
- a(t(y), null, "Null extension: Empty");
- x.foo = "raz";
- x.bar = 343;
- a(["foo", "bar"].indexOf(t(x)) !== -1, true, "Normal");
- y.elo = "foo";
- y.mar = "wew";
- a(["elo", "mar"].indexOf(t(y)) !== -1, true, "Null extension");
-};
diff --git a/node_modules/es5-ext/test/object/flatten.js b/node_modules/es5-ext/test/object/flatten.js
deleted file mode 100644
index efacd22..0000000
--- a/node_modules/es5-ext/test/object/flatten.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a.deep(t({ a: { aa: 1, ab: 2 }, b: { ba: 3, bb: 4 } }), { aa: 1, ab: 2, ba: 3, bb: 4 });
-};
diff --git a/node_modules/es5-ext/test/object/for-each.js b/node_modules/es5-ext/test/object/for-each.js
deleted file mode 100644
index 4ba4887..0000000
--- a/node_modules/es5-ext/test/object/for-each.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var o = { raz: 1, dwa: 2, trzy: 3 }, o2 = {};
- a(t(o, function (value, name) { o2[name] = value; }), undefined, "Return");
- a.deep(o2, o);
-};
diff --git a/node_modules/es5-ext/test/object/get-property-names.js b/node_modules/es5-ext/test/object/get-property-names.js
deleted file mode 100644
index 89cfecc..0000000
--- a/node_modules/es5-ext/test/object/get-property-names.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var o = { first: 1, second: 4 }, r1, r2;
- o = Object.create(o, { third: { value: null } });
- o.first = 2;
- o = Object.create(o);
- o.fourth = 3;
-
- r1 = t(o);
- r1.sort();
- r2 = ["first", "second", "third", "fourth"].concat(
- Object.getOwnPropertyNames(Object.prototype)
- );
- r2.sort();
- a.deep(r1, r2);
-};
diff --git a/node_modules/es5-ext/test/object/is-array-like.js b/node_modules/es5-ext/test/object/is-array-like.js
deleted file mode 100644
index fed39b7..0000000
--- a/node_modules/es5-ext/test/object/is-array-like.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t([]), true, "Array");
- a(t(""), true, "String");
- a(t((function () { return arguments; })()), true, "Arguments");
- a(t({ length: 0 }), true, "List object");
- a(t(function () {}), false, "Function");
- a(t({}), false, "Plain object");
- a(t(/raz/), false, "Regexp");
- a(t(), false, "No argument");
- a(t(null), false, "Null");
- a(t(undefined), false, "Undefined");
-};
diff --git a/node_modules/es5-ext/test/object/is-callable.js b/node_modules/es5-ext/test/object/is-callable.js
deleted file mode 100644
index 415023e..0000000
--- a/node_modules/es5-ext/test/object/is-callable.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t(function () {}), true, "Function");
- a(t({}), false, "Object");
- a(t(), false, "Undefined");
- a(t(null), false, "Null");
-};
diff --git a/node_modules/es5-ext/test/object/is-copy-deep.js b/node_modules/es5-ext/test/object/is-copy-deep.js
deleted file mode 100644
index 476ca74..0000000
--- a/node_modules/es5-ext/test/object/is-copy-deep.js
+++ /dev/null
@@ -1,42 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var x, y;
-
- a(t({ 1: 1, 2: 2, 3: 3 }, { 1: 1, 2: 2, 3: 3 }), true, "Same");
- a(t({ 1: 1, 2: 2, 3: 3 }, { 1: 1, 2: 2, 3: 4 }), false, "Different property value");
- a(t({ 1: 1, 2: 2, 3: 3 }, { 1: 1, 2: 2 }), false, "Property only in source");
- a(t({ 1: 1, 2: 2 }, { 1: 1, 2: 2, 3: 4 }), false, "Property only in target");
-
- a(t("raz", "dwa"), false, "String: diff");
- a(t("raz", "raz"), true, "String: same");
- a(t("32", 32), false, "String & Number");
-
- a(t([1, "raz", true], [1, "raz", true]), true, "Array: same");
- a(t([1, "raz", undefined], [1, "raz"]), false, "Array: diff");
- a(t(["foo"], ["one"]), false, "Array: One value comparision");
-
- x = { foo: { bar: { mar: {} } } };
- y = { foo: { bar: { mar: {} } } };
- a(t(x, y), true, "Deep");
-
- a(t({ foo: { bar: { mar: "foo" } } }, { foo: { bar: { mar: {} } } }), false, "Deep: false");
-
- x = { foo: { bar: { mar: {} } } };
- x.rec = { foo: x };
-
- y = { foo: { bar: { mar: {} } } };
- y.rec = { foo: x };
-
- a(t(x, y), true, "Object: Infinite Recursion: Same #1");
-
- x.rec.foo = y;
- a(t(x, y), true, "Object: Infinite Recursion: Same #2");
-
- x.rec.foo = x;
- y.rec.foo = y;
- a(t(x, y), true, "Object: Infinite Recursion: Same #3");
-
- y.foo.bar.mar = "raz";
- a(t(x, y), false, "Object: Infinite Recursion: Diff");
-};
diff --git a/node_modules/es5-ext/test/object/is-copy.js b/node_modules/es5-ext/test/object/is-copy.js
deleted file mode 100644
index ffffd28..0000000
--- a/node_modules/es5-ext/test/object/is-copy.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t({ 1: 1, 2: 2, 3: 3 }, { 1: 1, 2: 2, 3: 3 }), true, "Same");
- a(t({ 1: 1, 2: 2, 3: 3 }, { 1: 1, 2: 2, 3: 4 }), false, "Different property value");
- a(t({ 1: 1, 2: 2, 3: 3 }, { 1: 1, 2: 2 }), false, "Property only in source");
- a(t({ 1: 1, 2: 2 }, { 1: 1, 2: 2, 3: 4 }), false, "Property only in target");
-
- a(t("raz", "dwa"), false, "String: diff");
- a(t("raz", "raz"), true, "String: same");
- a(t("32", 32), false, "String & Number");
-
- a(t([1, "raz", true], [1, "raz", true]), true, "Array: same");
- a(t([1, "raz", undefined], [1, "raz"]), false, "Array: diff");
-};
diff --git a/node_modules/es5-ext/test/object/is-empty.js b/node_modules/es5-ext/test/object/is-empty.js
deleted file mode 100644
index 067b162..0000000
--- a/node_modules/es5-ext/test/object/is-empty.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t({}), true, "Empty");
- a(t({ 1: 1 }), false, "Not empty");
-};
diff --git a/node_modules/es5-ext/test/object/is-finite-number.js b/node_modules/es5-ext/test/object/is-finite-number.js
deleted file mode 100644
index 6475fb6..0000000
--- a/node_modules/es5-ext/test/object/is-finite-number.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t(undefined), false, "Undefined");
- a(t(null), false, "Null");
- a(t(0), true, "Zero");
- a(t(NaN), false, "NaN");
- a(t(Infinity), false, "Infinity");
- a(t(12), true, "Number");
- a(t(false), true, "Boolean");
- a(t(new Date()), true, "Date");
- a(t(new Number(2)), true, "Number object");
- a(t("asdfaf"), false, "String");
- a(t(""), true, "Empty String");
- if (typeof Symbol === "function") {
- a(t(Symbol("test")), false, "Symbol");
- }
-};
diff --git a/node_modules/es5-ext/test/object/is-integer.js b/node_modules/es5-ext/test/object/is-integer.js
deleted file mode 100644
index a0bcd5c..0000000
--- a/node_modules/es5-ext/test/object/is-integer.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t(undefined), false, "Undefined");
- a(t(null), false, "Null");
- a(t(2), true, "Number");
- a(t(-2), true, "Negative");
- a(t(2.34), false, "Float");
- a(t("23"), true, "Numeric string");
- a(t(NaN), false, "NaN");
- a(t(Infinity), false, "Infinity");
-};
diff --git a/node_modules/es5-ext/test/object/is-natural-number-value.js b/node_modules/es5-ext/test/object/is-natural-number-value.js
deleted file mode 100644
index 2bc2b1c..0000000
--- a/node_modules/es5-ext/test/object/is-natural-number-value.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t(undefined), false, "Undefined");
- a(t(null), false, "Null");
- a(t(2), true, "Number");
- a(t(-2), false, "Negative");
- a(t(2.34), false, "Float");
- a(t("23"), true, "Numeric string");
- a(t(NaN), false, "NaN");
- a(t(Infinity), false, "Infinity");
-};
diff --git a/node_modules/es5-ext/test/object/is-natural-number.js b/node_modules/es5-ext/test/object/is-natural-number.js
deleted file mode 100644
index bb110e6..0000000
--- a/node_modules/es5-ext/test/object/is-natural-number.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t(undefined), false, "Undefined");
- a(t(null), true, "Null");
- a(t(2), true, "Number");
- a(t(-2), false, "Negative");
- a(t(2.34), false, "Float");
- a(t("23"), true, "Numeric string");
- a(t(NaN), false, "NaN");
- a(t(Infinity), false, "Infinity");
-};
diff --git a/node_modules/es5-ext/test/object/is-number-value.js b/node_modules/es5-ext/test/object/is-number-value.js
deleted file mode 100644
index 2c09d25..0000000
--- a/node_modules/es5-ext/test/object/is-number-value.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t(undefined), false, "Undefined");
- a(t(null), false, "Null");
- a(t(0), true, "Zero");
- a(t(NaN), false, "NaN");
- a(t(Infinity), true, "Infinity");
- a(t(12), true, "Number");
- a(t(false), true, "Boolean");
- a(t(new Date()), true, "Date");
- a(t(new Number(2)), true, "Number object");
- a(t("asdfaf"), false, "String");
- a(t(""), true, "Empty String");
- if (typeof Symbol === "function") {
- a(t(Symbol("test")), false, "Symbol");
- }
-};
diff --git a/node_modules/es5-ext/test/object/is-object.js b/node_modules/es5-ext/test/object/is-object.js
deleted file mode 100644
index 0b83599..0000000
--- a/node_modules/es5-ext/test/object/is-object.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t("arar"), false, "String");
- a(t(12), false, "Number");
- a(t(true), false, "Boolean");
- a(t(null), false, "Null");
- a(t(new Date()), true, "Date");
- a(t(new String("raz")), true, "String object");
- a(t({}), true, "Plain object");
- a(t(/a/), true, "Regular expression");
- a(t(function () {}), true, "Function");
-};
diff --git a/node_modules/es5-ext/test/object/is-plain-function.js b/node_modules/es5-ext/test/object/is-plain-function.js
deleted file mode 100644
index ded7fa0..0000000
--- a/node_modules/es5-ext/test/object/is-plain-function.js
+++ /dev/null
@@ -1,39 +0,0 @@
-"use strict";
-
-var setPrototypeOf = require("../../object/set-prototype-of");
-
-module.exports = function (t, a) {
- a(t(function () {}), true, "Function");
- a(t({}), false, "Object");
- a(t(), false, "Undefined");
- a(t(null), false, "Null");
- if (setPrototypeOf) {
- a(
- t(Object.setPrototypeOf(function () {}, Object.prototype)), false,
- "Function with non-function prototype"
- );
- }
- var arrowfn;
- try { arrowfn = eval("(() => {})"); }
- catch (e) {}
- if (arrowfn) {
- a(t(arrowfn), true, "Arrow function");
- }
-
- var classFn;
- try { classFn = eval("(class {})"); }
- catch (e) {}
- if (classFn) {
- a(t(classFn), false, "Class");
- }
-
- var commentedClassFn;
- try {
- // Follows issue reported to ljhard/is-callable project:
- // https://github.com/ljharb/is-callable/issues/4
- commentedClassFn = eval("(class/*kkk*/\n//blah\n Bar\n//blah\n {})");
- } catch (e) {}
- if (commentedClassFn) {
- a(t(commentedClassFn, false, "Class"), false, "Class with comments");
- }
-};
diff --git a/node_modules/es5-ext/test/object/is-plain-object.js b/node_modules/es5-ext/test/object/is-plain-object.js
deleted file mode 100644
index 60ac132..0000000
--- a/node_modules/es5-ext/test/object/is-plain-object.js
+++ /dev/null
@@ -1,23 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t({}), true, "Empty {} is plain object");
- a(t({ a: true }), true, "{} with property is plain object");
- a(
- t({ prototype: 1, constructor: 2, __proto__: 3 }), true,
- "{} with any property keys is plain object"
- );
- a(t(null), false, "Null is not plain object");
- a(t("string"), false, "Primitive is not plain object");
- a(t(function () {}), false, "Function is not plain object");
- a(
- t(Object.create({})), false,
- "Object whose prototype is not Object.prototype is not plain object"
- );
- a(
- t(Object.create(Object.prototype)), true,
- "Object whose prototype is Object.prototype is plain object"
- );
- a(t(Object.create(null)), true, "Object whose prototype is null is plain object");
- a(t(Object.prototype), false, "Object.prototype");
-};
diff --git a/node_modules/es5-ext/test/object/is-promise.js b/node_modules/es5-ext/test/object/is-promise.js
deleted file mode 100644
index 18bf934..0000000
--- a/node_modules/es5-ext/test/object/is-promise.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var promise;
- a(t(), false);
- a(t(null), false);
- a(t("promise"), false);
- a(t({}), false);
- a(t(function () {}), false);
- a(t({ then: {} }), false);
- a(t({ then: function () {} }), true);
- promise = function () {};
- promise.then = {};
- a(t(promise), false);
- promise.then = function () {};
- a(t(promise), true);
-};
diff --git a/node_modules/es5-ext/test/object/is-thenable.js b/node_modules/es5-ext/test/object/is-thenable.js
deleted file mode 100644
index 18bf934..0000000
--- a/node_modules/es5-ext/test/object/is-thenable.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var promise;
- a(t(), false);
- a(t(null), false);
- a(t("promise"), false);
- a(t({}), false);
- a(t(function () {}), false);
- a(t({ then: {} }), false);
- a(t({ then: function () {} }), true);
- promise = function () {};
- promise.then = {};
- a(t(promise), false);
- promise.then = function () {};
- a(t(promise), true);
-};
diff --git a/node_modules/es5-ext/test/object/is-value.js b/node_modules/es5-ext/test/object/is-value.js
deleted file mode 100644
index c97722d..0000000
--- a/node_modules/es5-ext/test/object/is-value.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t(), false);
- a(t(undefined), false);
- a(t(null), false);
- a(t(NaN), true);
- a(t(0), true);
- a(t(false), true);
- a(t("null"), true);
- a(t(""), true);
- a(t({}), true);
- a(t(Object.prototype), true);
-};
diff --git a/node_modules/es5-ext/test/object/is.js b/node_modules/es5-ext/test/object/is.js
deleted file mode 100644
index c94ed41..0000000
--- a/node_modules/es5-ext/test/object/is.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var o = {};
- a(t(o, {}), false, "Different objects");
- a(t(o, o), true, "Same objects");
- a(t("1", "1"), true, "Same primitive");
- a(t("1", 1), false, "Different primitive types");
- a(t(NaN, NaN), true, "NaN");
- a(t(0, 0), true, "0,0");
- a(t(0, -0), false, "0,-0");
-};
diff --git a/node_modules/es5-ext/test/object/key-of.js b/node_modules/es5-ext/test/object/key-of.js
deleted file mode 100644
index cd75ae5..0000000
--- a/node_modules/es5-ext/test/object/key-of.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var x = {}, y = {}, o = { foo: "bar", raz: x, trzy: "cztery", five: "6" };
-
- a(t(o, "bar"), "foo", "First property");
- a(t(o, 6), null, "Primitive that's not there");
- a(t(o, x), "raz", "Object");
- a(t(o, y), null, "Object that's not there");
- a(t(o, "6"), "five", "Last property");
-};
diff --git a/node_modules/es5-ext/test/object/keys/implement.js b/node_modules/es5-ext/test/object/keys/implement.js
deleted file mode 100644
index 3134886..0000000
--- a/node_modules/es5-ext/test/object/keys/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../object/keys/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/object/keys/index.js b/node_modules/es5-ext/test/object/keys/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/object/keys/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/object/keys/is-implemented.js b/node_modules/es5-ext/test/object/keys/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/object/keys/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/object/keys/shim.js b/node_modules/es5-ext/test/object/keys/shim.js
deleted file mode 100644
index dc09f46..0000000
--- a/node_modules/es5-ext/test/object/keys/shim.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a.deep(t({ foo: "bar" }), ["foo"], "Object");
- a.deep(t("raz"), ["0", "1", "2"], "Primitive");
- a.throws(function () { t(); }, TypeError, "Undefined");
- a.throws(function () { t(null); }, TypeError, "Undefined");
-};
diff --git a/node_modules/es5-ext/test/object/map-keys.js b/node_modules/es5-ext/test/object/map-keys.js
deleted file mode 100644
index 3dc9298..0000000
--- a/node_modules/es5-ext/test/object/map-keys.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a.deep(t({ 1: 1, 2: 2, 3: 3 }, function (key, value) { return "x" + (key + value); }), {
- x11: 1,
- x22: 2,
- x33: 3
- });
-};
diff --git a/node_modules/es5-ext/test/object/map.js b/node_modules/es5-ext/test/object/map.js
deleted file mode 100644
index c472575..0000000
--- a/node_modules/es5-ext/test/object/map.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var obj = { 1: 1, 2: 2, 3: 3 };
- a.deep(
- t(obj, function (value, key, context) {
- a(context, obj, "Context argument");
- return value + 1 + key;
- }),
- { 1: "21", 2: "32", 3: "43" }
- );
-};
diff --git a/node_modules/es5-ext/test/object/mixin-prototypes.js b/node_modules/es5-ext/test/object/mixin-prototypes.js
deleted file mode 100644
index f510afb..0000000
--- a/node_modules/es5-ext/test/object/mixin-prototypes.js
+++ /dev/null
@@ -1,68 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var o, o1, o2, x, y = {}, z = {};
- o = { inherited: true, visible: 23 };
- o1 = Object.create(o);
- o1.visible = z;
- o1.nonremovable = "raz";
- Object.defineProperty(o1, "hidden", { value: "hidden" });
-
- o2 = Object.defineProperties({}, { nonremovable: { value: y } });
- o2.other = "other";
-
- try { t(o2, o1); }
- catch (ignore) {}
-
- a(o2.visible, z, "Enumerable");
- a(o1.hidden, "hidden", "Not Enumerable");
- a(o2.propertyIsEnumerable("visible"), true, "Enumerable is enumerable");
- a(o2.propertyIsEnumerable("hidden"), false, "Not enumerable is not enumerable");
-
- a(o2.inherited, true, "Extend deep");
-
- a(o2.nonremovable, y, "Do not overwrite non configurable");
- a(o2.other, "other", "Own kept");
-
- x = {};
- t(x, o2);
- try { t(x, o1); }
- catch (ignore) {}
-
- a(x.visible, z, "Enumerable");
- a(x.hidden, "hidden", "Not Enumerable");
- a(x.propertyIsEnumerable("visible"), true, "Enumerable is enumerable");
- a(x.propertyIsEnumerable("hidden"), false, "Not enumerable is not enumerable");
-
- a(x.inherited, true, "Extend deep");
-
- a(x.nonremovable, y, "Ignored non configurable");
- a(x.other, "other", "Other");
-
- x.visible = 3;
- a(x.visible, 3, "Writable is writable");
-
- x = {};
- t(x, o1);
- a.throws(function () { x.hidden = 3; }, "Not writable is not writable");
-
- x = {};
- t(x, o1);
- delete x.visible;
- a.ok(!x.hasOwnProperty("visible"), "Configurable is configurable");
-
- x = {};
- t(x, o1);
- a.throws(function () { delete x.hidden; }, "Not configurable is not configurable");
-
- x = Object.defineProperty({}, "foo", {
- configurable: false,
- writable: true,
- enumerable: false,
- value: "bar"
- });
-
- try { t(x, { foo: "lorem" }); }
- catch (ignore) {}
- a(x.foo, "bar", "Writable, not enumerable");
-};
diff --git a/node_modules/es5-ext/test/object/mixin.js b/node_modules/es5-ext/test/object/mixin.js
deleted file mode 100644
index 4195d03..0000000
--- a/node_modules/es5-ext/test/object/mixin.js
+++ /dev/null
@@ -1,70 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var o, o1, o2, x, y = {}, z = {};
- o = { inherited: true };
- o1 = Object.create(o);
- o1.visible = z;
- o1.nonremovable = "raz";
- Object.defineProperty(o1, "hidden", { value: "hidden" });
-
- o2 = Object.defineProperties({}, { nonremovable: { value: y } });
- o2.other = "other";
-
- try { t(o2, o1); }
- catch (ignore) {}
-
- a(o2.visible, z, "Enumerable");
- a(o1.hidden, "hidden", "Not Enumerable");
- a(o2.propertyIsEnumerable("visible"), true, "Enumerable is enumerable");
- a(o2.propertyIsEnumerable("hidden"), false, "Not enumerable is not enumerable");
-
- a(o2.hasOwnProperty("inherited"), false, "Extend only own");
- a(o2.inherited, undefined, "Extend ony own: value");
-
- a(o2.nonremovable, y, "Do not overwrite non configurable");
- a(o2.other, "other", "Own kept");
-
- x = {};
- t(x, o2);
- try { t(x, o1); }
- catch (ignore) {}
-
- a(x.visible, z, "Enumerable");
- a(x.hidden, "hidden", "Not Enumerable");
- a(x.propertyIsEnumerable("visible"), true, "Enumerable is enumerable");
- a(x.propertyIsEnumerable("hidden"), false, "Not enumerable is not enumerable");
-
- a(x.hasOwnProperty("inherited"), false, "Extend only own");
- a(x.inherited, undefined, "Extend ony own: value");
-
- a(x.nonremovable, y, "Ignored non configurable");
- a(x.other, "other", "Other");
-
- x.visible = 3;
- a(x.visible, 3, "Writable is writable");
-
- x = {};
- t(x, o1);
- a.throws(function () { x.hidden = 3; }, "Not writable is not writable");
-
- x = {};
- t(x, o1);
- delete x.visible;
- a.ok(!x.hasOwnProperty("visible"), "Configurable is configurable");
-
- x = {};
- t(x, o1);
- a.throws(function () { delete x.hidden; }, "Not configurable is not configurable");
-
- x = Object.defineProperty({}, "foo", {
- configurable: false,
- writable: true,
- enumerable: false,
- value: "bar"
- });
-
- try { t(x, { foo: "lorem" }); }
- catch (ignore) {}
- a(x.foo, "bar", "Writable, not enumerable");
-};
diff --git a/node_modules/es5-ext/test/object/normalize-options.js b/node_modules/es5-ext/test/object/normalize-options.js
deleted file mode 100644
index 74d3208..0000000
--- a/node_modules/es5-ext/test/object/normalize-options.js
+++ /dev/null
@@ -1,55 +0,0 @@
-"use strict";
-
-var create = Object.create, defineProperty = Object.defineProperty;
-
-module.exports = function (t, a) {
- var x = { foo: "raz", bar: "dwa" }, y;
- y = t(x);
- a.not(y, x, "Returns copy");
- a.deep(y, x, "Plain");
-
- x = { raz: "one", dwa: "two" };
- defineProperty(x, "get", {
- configurable: true,
- enumerable: true,
- get: function () { return this.dwa; }
- });
- x = create(x);
- x.trzy = "three";
- x.cztery = "four";
- x = create(x);
- x.dwa = "two!";
- x.trzy = "three!";
- x.piec = "five";
- x.szesc = "six";
-
- a.deep(
- t(x),
- {
- raz: "one",
- dwa: "two!",
- trzy: "three!",
- cztery: "four",
- piec: "five",
- szesc: "six",
- get: "two!"
- },
- "Deep object"
- );
-
- a.deep(
- t({ marko: "raz", raz: "foo" }, x, { szesc: "elo", siedem: "bibg" }),
- {
- marko: "raz",
- raz: "one",
- dwa: "two!",
- trzy: "three!",
- cztery: "four",
- piec: "five",
- szesc: "elo",
- siedem: "bibg",
- get: "two!"
- },
- "Multiple options"
- );
-};
diff --git a/node_modules/es5-ext/test/object/primitive-set.js b/node_modules/es5-ext/test/object/primitive-set.js
deleted file mode 100644
index a0500ff..0000000
--- a/node_modules/es5-ext/test/object/primitive-set.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-
-var getPropertyNames = require("../../object/get-property-names")
- , isPlainObject = require("../../object/is-plain-object");
-
-module.exports = function (t, a) {
- var x = t();
- a(isPlainObject(x), true, "Plain object");
- a.deep(getPropertyNames(x), [], "No properties");
- x.foo = "bar";
- a.deep(getPropertyNames(x), ["foo"], "Extensible");
-
- a.deep(t("raz", "dwa", 3), { raz: true, dwa: true, 3: true }, "Arguments handling");
-};
diff --git a/node_modules/es5-ext/test/object/safe-traverse.js b/node_modules/es5-ext/test/object/safe-traverse.js
deleted file mode 100644
index acf49c0..0000000
--- a/node_modules/es5-ext/test/object/safe-traverse.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var obj = { foo: { bar: { lorem: 12 } } };
- a(t(obj), obj, "No props");
- a(t(obj, "foo"), obj.foo, "One");
- a(t(obj, "raz"), undefined, "One: Fail");
- a(t(obj, "foo", "bar"), obj.foo.bar, "Two");
- a(t(obj, "dsd", "raz"), undefined, "Two: Fail #1");
- a(t(obj, "foo", "raz"), undefined, "Two: Fail #2");
- a(t(obj, "foo", "bar", "lorem"), obj.foo.bar.lorem, "Three");
- a(t(obj, "dsd", "raz", "fef"), undefined, "Three: Fail #1");
- a(t(obj, "foo", "raz", "asdf"), undefined, "Three: Fail #2");
- a(t(obj, "foo", "bar", "asd"), undefined, "Three: Fail #3");
-};
diff --git a/node_modules/es5-ext/test/object/serialize.js b/node_modules/es5-ext/test/object/serialize.js
deleted file mode 100644
index 513cd61..0000000
--- a/node_modules/es5-ext/test/object/serialize.js
+++ /dev/null
@@ -1,43 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var fn = function (raz, dwa) { return raz + dwa; };
- a(t(), "undefined", "Undefined");
- a(t(null), "null", "Null");
- a(t(null), "null", "Null");
- a(t("raz"), "\"raz\"", "String");
- a(t("raz\"ddwa\ntrzy"), "\"raz\\\"ddwa\\ntrzy\"", "String with escape");
- a(t(false), "false", "Booelean");
- a(t(fn), String(fn), "Function");
-
- a(t(/raz-dwa/g), "/raz-dwa/g", "RegExp");
- a(t(new Date(1234567)), "new Date(1234567)", "Date");
- a(t([]), "[]", "Empty array");
- a(
- t([undefined, false, null, "raz\"ddwa\ntrzy", fn, /raz/g, new Date(1234567), ["foo"]]),
- "[undefined,false,null,\"raz\\\"ddwa\\ntrzy\"," +
- String(fn) +
- ",/raz/g,new Date(1234567),[\"foo\"]]",
- "Rich Array"
- );
- a(t({}), "{}", "Empty object");
- a(
- t({
- raz: undefined,
- dwa: false,
- trzy: null,
- cztery: "raz\"ddwa\ntrzy",
- piec: fn,
- szesc: /raz/g,
- siedem: new Date(1234567),
- osiem: ["foo", 32],
- dziewiec: { foo: "bar", dwa: 343 }
- }),
- "{\"raz\":undefined,\"dwa\":false,\"trzy\":null,\"cztery\":\"raz\\\"ddwa\\ntrzy\"," +
- "\"piec\":" +
- String(fn) +
- ",\"szesc\":/raz/g,\"siedem\":new Date(1234567),\"osiem\":[\"foo\",32]," +
- "\"dziewiec\":{\"foo\":\"bar\",\"dwa\":343}}",
- "Rich object"
- );
-};
diff --git a/node_modules/es5-ext/test/object/set-prototype-of/implement.js b/node_modules/es5-ext/test/object/set-prototype-of/implement.js
deleted file mode 100644
index 3dde326..0000000
--- a/node_modules/es5-ext/test/object/set-prototype-of/implement.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-var create = require("../../../object/create")
- , isImplemented = require("../../../object/set-prototype-of/is-implemented");
-
-module.exports = function (a) { a(isImplemented(create), true); };
diff --git a/node_modules/es5-ext/test/object/set-prototype-of/index.js b/node_modules/es5-ext/test/object/set-prototype-of/index.js
deleted file mode 100644
index 1abc7f9..0000000
--- a/node_modules/es5-ext/test/object/set-prototype-of/index.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-
-var create = require("../../../object/create")
- , getPrototypeOf = Object.getPrototypeOf;
-
-module.exports = function (t, a) {
- var x = {}, y = {};
-
- if (t === null) return;
- a(t(x, y), x, "Return self object");
- a(getPrototypeOf(x), y, "Object");
- a.throws(function () { t(x); }, TypeError, "Undefined");
- a.throws(function () { t("foo"); }, TypeError, "Primitive");
- a(getPrototypeOf(t(x, null)), t.nullPolyfill || null, "Null");
- x = create(null);
- a.h1("Change null prototype");
- a(t(x, y), x, "Result");
- a(getPrototypeOf(x), y, "Prototype");
- a.h1("Set null prototype");
- a(t(y, null), y, "Result");
- a(getPrototypeOf(y), t.nullPolyfill || null, "Prototype");
-};
diff --git a/node_modules/es5-ext/test/object/set-prototype-of/is-implemented.js b/node_modules/es5-ext/test/object/set-prototype-of/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/object/set-prototype-of/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/object/set-prototype-of/shim.js b/node_modules/es5-ext/test/object/set-prototype-of/shim.js
deleted file mode 100644
index 1abc7f9..0000000
--- a/node_modules/es5-ext/test/object/set-prototype-of/shim.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-
-var create = require("../../../object/create")
- , getPrototypeOf = Object.getPrototypeOf;
-
-module.exports = function (t, a) {
- var x = {}, y = {};
-
- if (t === null) return;
- a(t(x, y), x, "Return self object");
- a(getPrototypeOf(x), y, "Object");
- a.throws(function () { t(x); }, TypeError, "Undefined");
- a.throws(function () { t("foo"); }, TypeError, "Primitive");
- a(getPrototypeOf(t(x, null)), t.nullPolyfill || null, "Null");
- x = create(null);
- a.h1("Change null prototype");
- a(t(x, y), x, "Result");
- a(getPrototypeOf(x), y, "Prototype");
- a.h1("Set null prototype");
- a(t(y, null), y, "Result");
- a(getPrototypeOf(y), t.nullPolyfill || null, "Prototype");
-};
diff --git a/node_modules/es5-ext/test/object/some.js b/node_modules/es5-ext/test/object/some.js
deleted file mode 100644
index 4c6569f..0000000
--- a/node_modules/es5-ext/test/object/some.js
+++ /dev/null
@@ -1,24 +0,0 @@
-"use strict";
-
-var o = { 1: 1, 2: 2, 3: 3 };
-
-module.exports = function (t, a) {
- var o2 = {}, i = 0;
- t(o, function (value, name) {
- o2[name] = value;
- return false;
- });
- a(JSON.stringify(o2), JSON.stringify(o), "Iterates");
-
- a(
- t(o, function () {
- ++i;
- return true;
- }),
- true,
- "Succeeds"
- );
- a(i, 1, "Stops iteration after condition is met");
-
- a(t(o, function () { return false; }), false, "Fails");
-};
diff --git a/node_modules/es5-ext/test/object/to-array.js b/node_modules/es5-ext/test/object/to-array.js
deleted file mode 100644
index 478e0d8..0000000
--- a/node_modules/es5-ext/test/object/to-array.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var o = { 1: 1, 2: 2, 3: 3 }
- , o1 = {}
- , o2 = t(
- o,
- function (value, name, self) {
- a(self, o, "Self");
- a(this, o1, "Scope");
- return value + Number(name);
- },
- o1
- );
- a.deep(o2, [2, 4, 6]);
-
- t(o).sort().forEach(function (item) { a.deep(item, [item[0], o[item[0]]], "Default"); });
-};
diff --git a/node_modules/es5-ext/test/object/unserialize.js b/node_modules/es5-ext/test/object/unserialize.js
deleted file mode 100644
index b25fe2e..0000000
--- a/node_modules/es5-ext/test/object/unserialize.js
+++ /dev/null
@@ -1,39 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var fn = function (raz, dwa) { return raz + dwa; };
- a(t("undefined"), undefined, "Undefined");
- a(t("null"), null, "Null");
- a(t("\"raz\""), "raz", "String");
- a(t("\"raz\\\"ddwa\\ntrzy\""), "raz\"ddwa\ntrzy", "String with escape");
- a(t("false"), false, "Booelean");
- a(String(t(String(fn))), String(fn), "Function");
-
- a.deep(t("/raz-dwa/g"), /raz-dwa/g, "RegExp");
- a.deep(t("new Date(1234567)"), new Date(1234567), "Date");
- a.deep(t("[]"), [], "Empty array");
- a.deep(
- t("[undefined,false,null,\"raz\\\"ddwa\\ntrzy\",/raz/g,new Date(1234567),[\"foo\"]]"),
- [undefined, false, null, "raz\"ddwa\ntrzy", /raz/g, new Date(1234567), ["foo"]],
- "Rich Array"
- );
- a.deep(t("{}"), {}, "Empty object");
- a.deep(
- t(
- "{\"raz\":undefined,\"dwa\":false,\"trzy\":null,\"cztery\":\"raz\\\"ddwa\\ntrzy\"," +
- "\"szesc\":/raz/g,\"siedem\":new Date(1234567),\"osiem\":[\"foo\",32]," +
- "\"dziewiec\":{\"foo\":\"bar\",\"dwa\":343}}"
- ),
- {
- raz: undefined,
- dwa: false,
- trzy: null,
- cztery: "raz\"ddwa\ntrzy",
- szesc: /raz/g,
- siedem: new Date(1234567),
- osiem: ["foo", 32],
- dziewiec: { foo: "bar", dwa: 343 }
- },
- "Rich object"
- );
-};
diff --git a/node_modules/es5-ext/test/object/valid-callable.js b/node_modules/es5-ext/test/object/valid-callable.js
deleted file mode 100644
index 699e9f3..0000000
--- a/node_modules/es5-ext/test/object/valid-callable.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var f = function () {};
- a(t(f), f, "Function");
- a.throws(function () { t({}); }, "Not Function");
-};
diff --git a/node_modules/es5-ext/test/object/valid-object.js b/node_modules/es5-ext/test/object/valid-object.js
deleted file mode 100644
index 2fc2a3d..0000000
--- a/node_modules/es5-ext/test/object/valid-object.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var x;
- a.throws(function () { t(0); }, TypeError, "0");
- a.throws(function () { t(false); }, TypeError, "false");
- a.throws(function () { t(""); }, TypeError, "''");
- a(t((x = {})), x, "Object");
- a(t((x = function () {})), x, "Function");
- a(t((x = new String("raz"))), x, "String object"); // Jslint: ignore
- a(t((x = new Date())), x, "Date");
-
- a.throws(function () { t(); }, TypeError, "Undefined");
- a.throws(function () { t(null); }, TypeError, "null");
-};
diff --git a/node_modules/es5-ext/test/object/valid-value.js b/node_modules/es5-ext/test/object/valid-value.js
deleted file mode 100644
index ef11c20..0000000
--- a/node_modules/es5-ext/test/object/valid-value.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-var numIsNaN = require("../../number/is-nan");
-
-module.exports = function (t, a) {
- var x;
- a(t(0), 0, "0");
- a(t(false), false, "false");
- a(t(""), "", "''");
- a(numIsNaN(t(NaN)), true, "NaN");
- a(t((x = {})), x, "{}");
-
- a.throws(function () { t(); }, "Undefined");
- a.throws(function () { t(null); }, "null");
-};
diff --git a/node_modules/es5-ext/test/object/validate-array-like-object.js b/node_modules/es5-ext/test/object/validate-array-like-object.js
deleted file mode 100644
index 375483d..0000000
--- a/node_modules/es5-ext/test/object/validate-array-like-object.js
+++ /dev/null
@@ -1,21 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var x;
- a.throws(function () { t(0); }, TypeError, "0");
- a.throws(function () { t(false); }, TypeError, "false");
- a.throws(function () { t(""); }, TypeError, "String");
- a.throws(function () { t({}); }, TypeError, "Plain Object");
- a.throws(
- function () {
- t(function () {});
- },
- TypeError,
- "Function"
- );
- a(t((x = new String("raz"))), x, "String object"); // Jslint: ignore
-
- a(t((x = { length: 1 })), x, "Array like");
- a.throws(function () { t(); }, TypeError, "Undefined");
- a.throws(function () { t(null); }, TypeError, "null");
-};
diff --git a/node_modules/es5-ext/test/object/validate-array-like.js b/node_modules/es5-ext/test/object/validate-array-like.js
deleted file mode 100644
index 6592615..0000000
--- a/node_modules/es5-ext/test/object/validate-array-like.js
+++ /dev/null
@@ -1,21 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var x;
- a.throws(function () { t(0); }, TypeError, "0");
- a.throws(function () { t(false); }, TypeError, "false");
- a(t(""), "", "''");
- a.throws(function () { t({}); }, TypeError, "Plain Object");
- a.throws(
- function () {
- t(function () {});
- },
- TypeError,
- "Function"
- );
- a(t((x = new String("raz"))), x, "String object"); // Jslint: ignore
-
- a(t((x = { length: 1 })), x, "Array like");
- a.throws(function () { t(); }, TypeError, "Undefined");
- a.throws(function () { t(null); }, TypeError, "null");
-};
diff --git a/node_modules/es5-ext/test/object/validate-stringifiable-value.js b/node_modules/es5-ext/test/object/validate-stringifiable-value.js
deleted file mode 100644
index 5e09bcd..0000000
--- a/node_modules/es5-ext/test/object/validate-stringifiable-value.js
+++ /dev/null
@@ -1,16 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var x;
- a.throws(function () { t(); }, TypeError, "Undefined");
- a.throws(function () { t(null); }, TypeError, "Null");
- a(t(0), "0");
- a(t(false), "false");
- a(t(""), "");
- a(t({}), String({}), "Object");
- a(t((x = function () {})), String(x), "Function");
- a(t((x = new String("raz"))), String(x), "String object"); // Jslint: ignore
- a(t((x = new Date())), String(x), "Date");
-
- a.throws(function () { t(Object.create(null)); }, TypeError, "Null prototype object");
-};
diff --git a/node_modules/es5-ext/test/object/validate-stringifiable.js b/node_modules/es5-ext/test/object/validate-stringifiable.js
deleted file mode 100644
index 80bb60e..0000000
--- a/node_modules/es5-ext/test/object/validate-stringifiable.js
+++ /dev/null
@@ -1,16 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var x;
- a(t(), "undefined", "Undefined");
- a(t(null), "null", "Null");
- a(t(0), "0");
- a(t(false), "false");
- a(t(""), "");
- a(t({}), String({}), "Object");
- a(t((x = function () {})), String(x), "Function");
- a(t((x = new String("raz"))), String(x), "String object"); // Jslint: ignore
- a(t((x = new Date())), String(x), "Date");
-
- a.throws(function () { t(Object.create(null)); }, TypeError, "Null prototype object");
-};
diff --git a/node_modules/es5-ext/test/optional-chaining.js b/node_modules/es5-ext/test/optional-chaining.js
deleted file mode 100644
index 1f7d405..0000000
--- a/node_modules/es5-ext/test/optional-chaining.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var obj = { foo: { bar: "elo", par: null } };
- a(t(), undefined);
- a(t(null), null);
- a(t(obj), obj);
- a(t(obj, "foo"), obj.foo);
- a(t(obj, "foo", "bar"), "elo");
- a(t(obj, "foo", "bar", "slice"), String.prototype.slice);
- a(t(obj, "foo", "par"), null);
- a(t(obj, "foo", "par", "marko"), undefined);
- a(t(obj, "marko"), undefined);
- a(t(""), "");
- a(t("", "foo"), undefined);
- a(t("", "slice"), String.prototype.slice);
-};
diff --git a/node_modules/es5-ext/test/promise/#/as-callback.js b/node_modules/es5-ext/test/promise/#/as-callback.js
deleted file mode 100644
index 3d9cc0b..0000000
--- a/node_modules/es5-ext/test/promise/#/as-callback.js
+++ /dev/null
@@ -1,25 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- if (typeof Promise !== "function") return null;
- return {
- Success: function (d) {
- t.call(new Promise(function (resolve) { resolve("foo"); }), function (error, value) {
- a(error, null);
- a(value, "foo");
- d();
- });
- },
- Failure: function (d) {
- var error = new Error("Rejection");
- t.call(new Promise(function (resolve, reject) { reject(error); }), function (
- passedError,
- value
- ) {
- a(passedError, error);
- a(value, undefined);
- d();
- });
- }
- };
-};
diff --git a/node_modules/es5-ext/test/promise/#/finally/implement.js b/node_modules/es5-ext/test/promise/#/finally/implement.js
deleted file mode 100644
index 9440186..0000000
--- a/node_modules/es5-ext/test/promise/#/finally/implement.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../../promise/#/finally/is-implemented");
-
-if (typeof Promise !== "function") global.Promise = require("plain-promise");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/promise/#/finally/index.js b/node_modules/es5-ext/test/promise/#/finally/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/promise/#/finally/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/promise/#/finally/is-implemented.js b/node_modules/es5-ext/test/promise/#/finally/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/promise/#/finally/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/promise/#/finally/shim.js b/node_modules/es5-ext/test/promise/#/finally/shim.js
deleted file mode 100644
index a92fab8..0000000
--- a/node_modules/es5-ext/test/promise/#/finally/shim.js
+++ /dev/null
@@ -1,75 +0,0 @@
-"use strict";
-
-var microtaskDelay = require("../../../../function/#/microtask-delay");
-
-if (typeof Promise !== "function") global.Promise = require("plain-promise");
-
-module.exports = function (t, a) {
- return {
- Success: function (d) {
- var invoked;
- t.call(Promise.resolve("foo"), function () {
- invoked = true;
- return "bar";
- }).then(
- microtaskDelay.call(function (result) {
- a(result, "foo");
- a(invoked, true);
- d();
- }, microtaskDelay.call(d))
- );
- },
- Failure: function (d) {
- var invoked;
- var error = new Error("Some error");
- t.call(Promise.reject(error), function () {
- invoked = true;
- return "bar";
- }).then(
- microtaskDelay.call(function () {
- a.never();
- d();
- }),
- microtaskDelay.call(function (result) {
- a(result, error);
- a(invoked, true);
- d();
- })
- );
- },
- SuccessFinallyError: function (d) {
- var invoked, finallyError = new Error("Finally error");
- t.call(Promise.resolve("foo"), function () {
- invoked = true;
- throw finallyError;
- }).then(
- microtaskDelay.call(function () {
- a.never();
- d();
- }),
- microtaskDelay.call(function (result) {
- a(result, finallyError);
- a(invoked, true);
- d();
- })
- );
- },
- FailureFinallyError: function (d) {
- var invoked, finallyError = new Error("Finally error");
- t.call(Promise.reject(new Error("Some error")), function () {
- invoked = true;
- throw finallyError;
- }).then(
- microtaskDelay.call(function () {
- a.never();
- d();
- }),
- microtaskDelay.call(function (result) {
- a(result, finallyError);
- a(invoked, true);
- d();
- })
- );
- }
- };
-};
diff --git a/node_modules/es5-ext/test/promise/.eslintrc.json b/node_modules/es5-ext/test/promise/.eslintrc.json
deleted file mode 100644
index d2383fa..0000000
--- a/node_modules/es5-ext/test/promise/.eslintrc.json
+++ /dev/null
@@ -1 +0,0 @@
-{ "globals": { "Promise": true, "setTimeout": true } }
diff --git a/node_modules/es5-ext/test/promise/lazy.js b/node_modules/es5-ext/test/promise/lazy.js
deleted file mode 100644
index f3109e8..0000000
--- a/node_modules/es5-ext/test/promise/lazy.js
+++ /dev/null
@@ -1,46 +0,0 @@
-"use strict";
-
-module.exports = function (t) {
- if (typeof Promise !== "function") return null; // Run tests only in ES2015+ env
-
- return {
- "Delays execution": function (a, d) {
- var invoked = false;
- var promise = t(function (resolve) {
- invoked = true;
- setTimeout(function () { resolve(20); }, 10);
- });
-
- a(invoked, false);
-
- setTimeout(function () {
- a(invoked, false);
- promise.then(function (value) {
- a(value, 20);
- setTimeout(d, 0); // Escape error swallowing
- });
- a(invoked, true);
- }, 15);
- },
- "Passes rejection": function (a, d) {
- var promise = t(function (resolve, reject) {
- setTimeout(function () { reject(new Error("Stop")); }, 10);
- });
-
- promise.catch(function (error) {
- a(error instanceof Error, true);
- a(error.message, "Stop");
- setTimeout(d, 0); // Escape error swallowing
- });
- },
- "Passes sync exception": function (a, d) {
- var promise = t(function () { throw new Error("Stop"); });
-
- promise.catch(function (error) {
- a(error instanceof Error, true);
- a(error.message, "Stop");
- setTimeout(d, 0); // Escape error swallowing
- });
- }
- };
-};
diff --git a/node_modules/es5-ext/test/reg-exp/#/index.js b/node_modules/es5-ext/test/reg-exp/#/index.js
deleted file mode 100644
index 7ab9ab8..0000000
--- a/node_modules/es5-ext/test/reg-exp/#/index.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/* eslint-env node */
-
-"use strict";
-
-var indexTest = require("tad/lib/utils/index-test")
- , path = require("path").resolve(__dirname, "../../../reg-exp/#");
-
-module.exports = function (t, a, d) {
- indexTest(
- indexTest.readDir(path).aside(function (data) {
- delete data.sticky;
- delete data.unicode;
- })
- )(t, a, d);
-};
diff --git a/node_modules/es5-ext/test/reg-exp/#/is-sticky.js b/node_modules/es5-ext/test/reg-exp/#/is-sticky.js
deleted file mode 100644
index e65740e..0000000
--- a/node_modules/es5-ext/test/reg-exp/#/is-sticky.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var re;
- a(t.call(/raz/), false, "Normal");
- a(t.call(/raz/g), false, "Global");
- try {
- // eslint-disable-next-line no-invalid-regexp
- re = new RegExp("raz", "y");
- } catch (ignore) {}
- if (!re) return;
- a(t.call(re), true, "Sticky");
-};
diff --git a/node_modules/es5-ext/test/reg-exp/#/is-unicode.js b/node_modules/es5-ext/test/reg-exp/#/is-unicode.js
deleted file mode 100644
index 86217aa..0000000
--- a/node_modules/es5-ext/test/reg-exp/#/is-unicode.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var re;
- a(t.call(/raz/), false, "Normal");
- a(t.call(/raz/g), false, "Global");
- try {
- // eslint-disable-next-line no-invalid-regexp
- re = new RegExp("raz", "u");
- } catch (ignore) {}
- if (!re) return;
- a(t.call(re), true, "Unicode");
-};
diff --git a/node_modules/es5-ext/test/reg-exp/#/match/implement.js b/node_modules/es5-ext/test/reg-exp/#/match/implement.js
deleted file mode 100644
index e4da478..0000000
--- a/node_modules/es5-ext/test/reg-exp/#/match/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../../reg-exp/#/match/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/reg-exp/#/match/index.js b/node_modules/es5-ext/test/reg-exp/#/match/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/reg-exp/#/match/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/reg-exp/#/match/is-implemented.js b/node_modules/es5-ext/test/reg-exp/#/match/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/reg-exp/#/match/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/reg-exp/#/match/shim.js b/node_modules/es5-ext/test/reg-exp/#/match/shim.js
deleted file mode 100644
index c6fedb5..0000000
--- a/node_modules/es5-ext/test/reg-exp/#/match/shim.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var result = "foobar".match(/foo/);
- a.deep(t.call(/foo/, "foobar"), result);
-};
diff --git a/node_modules/es5-ext/test/reg-exp/#/replace/implement.js b/node_modules/es5-ext/test/reg-exp/#/replace/implement.js
deleted file mode 100644
index 389cec9..0000000
--- a/node_modules/es5-ext/test/reg-exp/#/replace/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../../reg-exp/#/replace/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/reg-exp/#/replace/index.js b/node_modules/es5-ext/test/reg-exp/#/replace/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/reg-exp/#/replace/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/reg-exp/#/replace/is-implemented.js b/node_modules/es5-ext/test/reg-exp/#/replace/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/reg-exp/#/replace/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/reg-exp/#/replace/shim.js b/node_modules/es5-ext/test/reg-exp/#/replace/shim.js
deleted file mode 100644
index 5c37e2e..0000000
--- a/node_modules/es5-ext/test/reg-exp/#/replace/shim.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(t.call(/foo/, "foobar", "mar"), "marbar"); };
diff --git a/node_modules/es5-ext/test/reg-exp/#/search/implement.js b/node_modules/es5-ext/test/reg-exp/#/search/implement.js
deleted file mode 100644
index 1e7cb39..0000000
--- a/node_modules/es5-ext/test/reg-exp/#/search/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../../reg-exp/#/search/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/reg-exp/#/search/index.js b/node_modules/es5-ext/test/reg-exp/#/search/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/reg-exp/#/search/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/reg-exp/#/search/is-implemented.js b/node_modules/es5-ext/test/reg-exp/#/search/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/reg-exp/#/search/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/reg-exp/#/search/shim.js b/node_modules/es5-ext/test/reg-exp/#/search/shim.js
deleted file mode 100644
index 02ca0c8..0000000
--- a/node_modules/es5-ext/test/reg-exp/#/search/shim.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(t.call(/foo/, "barfoo"), 3); };
diff --git a/node_modules/es5-ext/test/reg-exp/#/split/implement.js b/node_modules/es5-ext/test/reg-exp/#/split/implement.js
deleted file mode 100644
index ef8ec4e..0000000
--- a/node_modules/es5-ext/test/reg-exp/#/split/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../../reg-exp/#/split/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/reg-exp/#/split/index.js b/node_modules/es5-ext/test/reg-exp/#/split/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/reg-exp/#/split/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/reg-exp/#/split/is-implemented.js b/node_modules/es5-ext/test/reg-exp/#/split/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/reg-exp/#/split/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/reg-exp/#/split/shim.js b/node_modules/es5-ext/test/reg-exp/#/split/shim.js
deleted file mode 100644
index 824d48e..0000000
--- a/node_modules/es5-ext/test/reg-exp/#/split/shim.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a.deep(t.call(/\|/, "bar|foo"), ["bar", "foo"]); };
diff --git a/node_modules/es5-ext/test/reg-exp/#/sticky/implement.js b/node_modules/es5-ext/test/reg-exp/#/sticky/implement.js
deleted file mode 100644
index 6d3ccb7..0000000
--- a/node_modules/es5-ext/test/reg-exp/#/sticky/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../../reg-exp/#/sticky/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/reg-exp/#/sticky/is-implemented.js b/node_modules/es5-ext/test/reg-exp/#/sticky/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/reg-exp/#/sticky/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/reg-exp/#/unicode/implement.js b/node_modules/es5-ext/test/reg-exp/#/unicode/implement.js
deleted file mode 100644
index 00cf882..0000000
--- a/node_modules/es5-ext/test/reg-exp/#/unicode/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../../reg-exp/#/unicode/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/reg-exp/#/unicode/is-implemented.js b/node_modules/es5-ext/test/reg-exp/#/unicode/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/reg-exp/#/unicode/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/reg-exp/escape.js b/node_modules/es5-ext/test/reg-exp/escape.js
deleted file mode 100644
index 9478f52..0000000
--- a/node_modules/es5-ext/test/reg-exp/escape.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var str = "(?:^te|er)s{2}t\\[raz]+$";
- a(RegExp("^" + t(str) + "$").test(str), true);
-};
diff --git a/node_modules/es5-ext/test/reg-exp/is-reg-exp.js b/node_modules/es5-ext/test/reg-exp/is-reg-exp.js
deleted file mode 100644
index 7727eab..0000000
--- a/node_modules/es5-ext/test/reg-exp/is-reg-exp.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t("arar"), false, "String");
- a(t(12), false, "Number");
- a(t(true), false, "Boolean");
- a(t(new Date()), false, "Date");
- a(t(new String("raz")), false, "String object");
- a(t({}), false, "Plain object");
- a(t(/a/), true, "Regular expression");
- a(t(new RegExp("a")), true, "Regular expression via constructor");
-};
diff --git a/node_modules/es5-ext/test/reg-exp/valid-reg-exp.js b/node_modules/es5-ext/test/reg-exp/valid-reg-exp.js
deleted file mode 100644
index fea0c94..0000000
--- a/node_modules/es5-ext/test/reg-exp/valid-reg-exp.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var r = /raz/;
- a(t(r), r, "Direct");
- r = new RegExp("foo");
- a(t(r), r, "Constructor");
- a.throws(function () { t({}); }, "Object");
- a.throws(function () {
- t(function () {});
- }, "Function");
- a.throws(function () {
- t({ exec: function () { return 20; } });
- }, "Plain object");
-};
diff --git a/node_modules/es5-ext/test/safe-to-string.js b/node_modules/es5-ext/test/safe-to-string.js
deleted file mode 100644
index 8f545e5..0000000
--- a/node_modules/es5-ext/test/safe-to-string.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t(), "undefined");
- a(t(null), "null");
- a(t(10), "10");
- a(t("str"), "str");
- a(t({ toString: function () { return "miszka"; } }), "miszka");
- // eslint-disable-next-line symbol-description
- if (typeof Symbol === "function") a(t(Symbol()), "Symbol()");
- a(t(Object.create(null)), "");
-};
diff --git a/node_modules/es5-ext/test/string/#/@@iterator/implement.js b/node_modules/es5-ext/test/string/#/@@iterator/implement.js
deleted file mode 100644
index 8b269b5..0000000
--- a/node_modules/es5-ext/test/string/#/@@iterator/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../../string/#/@@iterator/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/string/#/@@iterator/index.js b/node_modules/es5-ext/test/string/#/@@iterator/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/string/#/@@iterator/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/string/#/@@iterator/is-implemented.js b/node_modules/es5-ext/test/string/#/@@iterator/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/string/#/@@iterator/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/string/#/@@iterator/shim.js b/node_modules/es5-ext/test/string/#/@@iterator/shim.js
deleted file mode 100644
index 467cdc3..0000000
--- a/node_modules/es5-ext/test/string/#/@@iterator/shim.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- var it = t.call("r💩z");
- a.deep(it.next(), { done: false, value: "r" }, "#1");
- a.deep(it.next(), { done: false, value: "💩" }, "#2");
- a.deep(it.next(), { done: false, value: "z" }, "#3");
- a.deep(it.next(), { done: true, value: undefined }, "End");
-};
diff --git a/node_modules/es5-ext/test/string/#/at.js b/node_modules/es5-ext/test/string/#/at.js
deleted file mode 100644
index 2fe6e84..0000000
--- a/node_modules/es5-ext/test/string/#/at.js
+++ /dev/null
@@ -1,97 +0,0 @@
-/* eslint no-useless-call: "off" */
-// See tests at https://github.com/mathiasbynens/String.prototype.at
-
-"use strict";
-
-module.exports = function (t, a) {
- a(t.length, 1, "Length");
-
- a.h1("BMP");
- a(t.call("abc\uD834\uDF06def", -Infinity), "", "-Infinity");
- a(t.call("abc\uD834\uDF06def", -1), "", "-1");
- a(t.call("abc\uD834\uDF06def", -0), "a", "-0");
- a(t.call("abc\uD834\uDF06def", +0), "a", "+0");
- a(t.call("abc\uD834\uDF06def", 1), "b", "1");
- a(t.call("abc\uD834\uDF06def", 3), "\uD834\uDF06", "3");
- a(t.call("abc\uD834\uDF06def", 4), "\uDF06", "4");
- a(t.call("abc\uD834\uDF06def", 5), "d", "5");
- a(t.call("abc\uD834\uDF06def", 42), "", "42");
- a(t.call("abc\uD834\uDF06def", Number(Infinity)), "", "+Infinity");
- a(t.call("abc\uD834\uDF06def", null), "a", "null");
- a(t.call("abc\uD834\uDF06def", undefined), "a", "undefined");
- a(t.call("abc\uD834\uDF06def"), "a", "No argument");
- a(t.call("abc\uD834\uDF06def", false), "a", "false");
- a(t.call("abc\uD834\uDF06def", NaN), "a", "NaN");
- a(t.call("abc\uD834\uDF06def", ""), "a", "Empty string");
- a(t.call("abc\uD834\uDF06def", "_"), "a", "_");
- a(t.call("abc\uD834\uDF06def", "1"), "b", "'1'");
- a(t.call("abc\uD834\uDF06def", []), "a", "[]");
- a(t.call("abc\uD834\uDF06def", {}), "a", "{}");
- a(t.call("abc\uD834\uDF06def", -0.9), "a", "-0.9");
- a(t.call("abc\uD834\uDF06def", 1.9), "b", "1.9");
- a(t.call("abc\uD834\uDF06def", 7.9), "f", "7.9");
- a(t.call("abc\uD834\uDF06def", Math.pow(2, 32)), "", "Big number");
-
- a.h1("Astral symbol");
- a(t.call("\uD834\uDF06def", -Infinity), "", "-Infinity");
- a(t.call("\uD834\uDF06def", -1), "", "-1");
- a(t.call("\uD834\uDF06def", -0), "\uD834\uDF06", "-0");
- a(t.call("\uD834\uDF06def", +0), "\uD834\uDF06", "+0");
- a(t.call("\uD834\uDF06def", 1), "\uDF06", "1");
- a(t.call("\uD834\uDF06def", 2), "d", "2");
- a(t.call("\uD834\uDF06def", 3), "e", "3");
- a(t.call("\uD834\uDF06def", 4), "f", "4");
- a(t.call("\uD834\uDF06def", 42), "", "42");
- a(t.call("\uD834\uDF06def", Number(Infinity)), "", "+Infinity");
- a(t.call("\uD834\uDF06def", null), "\uD834\uDF06", "null");
- a(t.call("\uD834\uDF06def", undefined), "\uD834\uDF06", "undefined");
- a(t.call("\uD834\uDF06def"), "\uD834\uDF06", "No arguments");
- a(t.call("\uD834\uDF06def", false), "\uD834\uDF06", "false");
- a(t.call("\uD834\uDF06def", NaN), "\uD834\uDF06", "NaN");
- a(t.call("\uD834\uDF06def", ""), "\uD834\uDF06", "Empty string");
- a(t.call("\uD834\uDF06def", "_"), "\uD834\uDF06", "_");
- a(t.call("\uD834\uDF06def", "1"), "\uDF06", "'1'");
-
- a.h1("Lone high surrogates");
- a(t.call("\uD834abc", -Infinity), "", "-Infinity");
- a(t.call("\uD834abc", -1), "", "-1");
- a(t.call("\uD834abc", -0), "\uD834", "-0");
- a(t.call("\uD834abc", +0), "\uD834", "+0");
- a(t.call("\uD834abc", 1), "a", "1");
- a(t.call("\uD834abc", 42), "", "42");
- a(t.call("\uD834abc", Number(Infinity)), "", "Infinity");
- a(t.call("\uD834abc", null), "\uD834", "null");
- a(t.call("\uD834abc", undefined), "\uD834", "undefined");
- a(t.call("\uD834abc"), "\uD834", "No arguments");
- a(t.call("\uD834abc", false), "\uD834", "false");
- a(t.call("\uD834abc", NaN), "\uD834", "NaN");
- a(t.call("\uD834abc", ""), "\uD834", "Empty string");
- a(t.call("\uD834abc", "_"), "\uD834", "_");
- a(t.call("\uD834abc", "1"), "a", "'a'");
-
- a.h1("Lone low surrogates");
- a(t.call("\uDF06abc", -Infinity), "", "-Infinity");
- a(t.call("\uDF06abc", -1), "", "-1");
- a(t.call("\uDF06abc", -0), "\uDF06", "-0");
- a(t.call("\uDF06abc", +0), "\uDF06", "+0");
- a(t.call("\uDF06abc", 1), "a", "1");
- a(t.call("\uDF06abc", 42), "", "42");
- a(t.call("\uDF06abc", Number(Infinity)), "", "+Infinity");
- a(t.call("\uDF06abc", null), "\uDF06", "null");
- a(t.call("\uDF06abc", undefined), "\uDF06", "undefined");
- a(t.call("\uDF06abc"), "\uDF06", "No arguments");
- a(t.call("\uDF06abc", false), "\uDF06", "false");
- a(t.call("\uDF06abc", NaN), "\uDF06", "NaN");
- a(t.call("\uDF06abc", ""), "\uDF06", "Empty string");
- a(t.call("\uDF06abc", "_"), "\uDF06", "_");
- a(t.call("\uDF06abc", "1"), "a", "'1'");
-
- a.h1("Context");
- a.throws(function () { t.call(undefined); }, TypeError, "Undefined");
- a.throws(function () { t.call(undefined, 4); }, TypeError, "Undefined + argument");
- a.throws(function () { t.call(null); }, TypeError, "Null");
- a.throws(function () { t.call(null, 4); }, TypeError, "Null + argument");
- a(t.call(42, 0), "4", "Number #1");
- a(t.call(42, 1), "2", "Number #2");
- a(t.call({ toString: function () { return "abc"; } }, 2), "c", "Object");
-};
diff --git a/node_modules/es5-ext/test/string/#/camel-to-hyphen.js b/node_modules/es5-ext/test/string/#/camel-to-hyphen.js
deleted file mode 100644
index bbf9ae4..0000000
--- a/node_modules/es5-ext/test/string/#/camel-to-hyphen.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t.call("razDwaTRzy4yFoo45My"), "raz-dwa-t-rzy4y-foo45-my");
- a(t.call("razDwaTRzy4yFoo45My-"), "raz-dwa-t-rzy4y-foo45-my-");
- a(t.call("razDwaTRzy4yFoo45My--"), "raz-dwa-t-rzy4y-foo45-my--");
-};
diff --git a/node_modules/es5-ext/test/string/#/capitalize.js b/node_modules/es5-ext/test/string/#/capitalize.js
deleted file mode 100644
index 884ae9c..0000000
--- a/node_modules/es5-ext/test/string/#/capitalize.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t.call("raz"), "Raz", "Word");
- a(t.call("BLA"), "BLA", "Uppercase");
- a(t.call(""), "", "Empty");
- a(t.call("a"), "A", "One letter");
- a(t.call("this is a test"), "This is a test", "Sentence");
-};
diff --git a/node_modules/es5-ext/test/string/#/case-insensitive-compare.js b/node_modules/es5-ext/test/string/#/case-insensitive-compare.js
deleted file mode 100644
index 8117f92..0000000
--- a/node_modules/es5-ext/test/string/#/case-insensitive-compare.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t.call("AA", "aa"), 0, "Same");
- a.ok(t.call("Amber", "zebra") < 0, "Less");
- a.ok(t.call("Zebra", "amber") > 0, "Greater");
-};
diff --git a/node_modules/es5-ext/test/string/#/code-point-at/implement.js b/node_modules/es5-ext/test/string/#/code-point-at/implement.js
deleted file mode 100644
index 9ce21f5..0000000
--- a/node_modules/es5-ext/test/string/#/code-point-at/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../../string/#/code-point-at/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/string/#/code-point-at/index.js b/node_modules/es5-ext/test/string/#/code-point-at/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/string/#/code-point-at/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/string/#/code-point-at/is-implemented.js b/node_modules/es5-ext/test/string/#/code-point-at/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/string/#/code-point-at/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/string/#/code-point-at/shim.js b/node_modules/es5-ext/test/string/#/code-point-at/shim.js
deleted file mode 100644
index a09e75c..0000000
--- a/node_modules/es5-ext/test/string/#/code-point-at/shim.js
+++ /dev/null
@@ -1,83 +0,0 @@
-/* eslint no-useless-call: "off" */
-
-// Taken from: https://github.com/mathiasbynens/String.prototype.codePointAt
-// /blob/master/tests/tests.js
-
-"use strict";
-
-module.exports = function (t, a) {
- a(t.length, 1, "Length");
-
- // String that starts with a BMP symbol
- a(t.call("abc\uD834\uDF06def", ""), 0x61);
- a(t.call("abc\uD834\uDF06def", "_"), 0x61);
- a(t.call("abc\uD834\uDF06def"), 0x61);
- a(t.call("abc\uD834\uDF06def", -Infinity), undefined);
- a(t.call("abc\uD834\uDF06def", -1), undefined);
- a(t.call("abc\uD834\uDF06def", -0), 0x61);
- a(t.call("abc\uD834\uDF06def", 0), 0x61);
- a(t.call("abc\uD834\uDF06def", 3), 0x1d306);
- a(t.call("abc\uD834\uDF06def", 4), 0xdf06);
- a(t.call("abc\uD834\uDF06def", 5), 0x64);
- a(t.call("abc\uD834\uDF06def", 42), undefined);
- a(t.call("abc\uD834\uDF06def", Infinity), undefined);
- a(t.call("abc\uD834\uDF06def", Infinity), undefined);
- a(t.call("abc\uD834\uDF06def", NaN), 0x61);
- a(t.call("abc\uD834\uDF06def", false), 0x61);
- a(t.call("abc\uD834\uDF06def", null), 0x61);
- a(t.call("abc\uD834\uDF06def", undefined), 0x61);
-
- // String that starts with an astral symbol
- a(t.call("\uD834\uDF06def", ""), 0x1d306);
- a(t.call("\uD834\uDF06def", "1"), 0xdf06);
- a(t.call("\uD834\uDF06def", "_"), 0x1d306);
- a(t.call("\uD834\uDF06def"), 0x1d306);
- a(t.call("\uD834\uDF06def", -1), undefined);
- a(t.call("\uD834\uDF06def", -0), 0x1d306);
- a(t.call("\uD834\uDF06def", 0), 0x1d306);
- a(t.call("\uD834\uDF06def", 1), 0xdf06);
- a(t.call("\uD834\uDF06def", 42), undefined);
- a(t.call("\uD834\uDF06def", false), 0x1d306);
- a(t.call("\uD834\uDF06def", null), 0x1d306);
- a(t.call("\uD834\uDF06def", undefined), 0x1d306);
-
- // Lone high surrogates
- a(t.call("\uD834abc", ""), 0xd834);
- a(t.call("\uD834abc", "_"), 0xd834);
- a(t.call("\uD834abc"), 0xd834);
- a(t.call("\uD834abc", -1), undefined);
- a(t.call("\uD834abc", -0), 0xd834);
- a(t.call("\uD834abc", 0), 0xd834);
- a(t.call("\uD834abc", false), 0xd834);
- a(t.call("\uD834abc", NaN), 0xd834);
- a(t.call("\uD834abc", null), 0xd834);
- a(t.call("\uD834abc", undefined), 0xd834);
-
- // Lone low surrogates
- a(t.call("\uDF06abc", ""), 0xdf06);
- a(t.call("\uDF06abc", "_"), 0xdf06);
- a(t.call("\uDF06abc"), 0xdf06);
- a(t.call("\uDF06abc", -1), undefined);
- a(t.call("\uDF06abc", -0), 0xdf06);
- a(t.call("\uDF06abc", 0), 0xdf06);
- a(t.call("\uDF06abc", false), 0xdf06);
- a(t.call("\uDF06abc", NaN), 0xdf06);
- a(t.call("\uDF06abc", null), 0xdf06);
- a(t.call("\uDF06abc", undefined), 0xdf06);
-
- a.throws(function () { t.call(undefined); }, TypeError);
- a.throws(function () { t.call(undefined, 4); }, TypeError);
- a.throws(function () { t.call(null); }, TypeError);
- a.throws(function () { t.call(null, 4); }, TypeError);
- a(t.call(42, 0), 0x34);
- a(t.call(42, 1), 0x32);
- a(t.call({ toString: function () { return "abc"; } }, 2), 0x63);
-
- a.throws(function () { t.apply(undefined); }, TypeError);
- a.throws(function () { t.apply(undefined, [4]); }, TypeError);
- a.throws(function () { t.apply(null); }, TypeError);
- a.throws(function () { t.apply(null, [4]); }, TypeError);
- a(t.apply(42, [0]), 0x34);
- a(t.apply(42, [1]), 0x32);
- a(t.apply({ toString: function () { return "abc"; } }, [2]), 0x63);
-};
diff --git a/node_modules/es5-ext/test/string/#/contains/implement.js b/node_modules/es5-ext/test/string/#/contains/implement.js
deleted file mode 100644
index 7671495..0000000
--- a/node_modules/es5-ext/test/string/#/contains/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../../string/#/contains/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/string/#/contains/index.js b/node_modules/es5-ext/test/string/#/contains/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/string/#/contains/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/string/#/contains/is-implemented.js b/node_modules/es5-ext/test/string/#/contains/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/string/#/contains/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/string/#/contains/shim.js b/node_modules/es5-ext/test/string/#/contains/shim.js
deleted file mode 100644
index 0a73671..0000000
--- a/node_modules/es5-ext/test/string/#/contains/shim.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t.call("raz", ""), true, "Empty");
- a(t.call("", ""), true, "Both Empty");
- a(t.call("raz", "raz"), true, "Same");
- a(t.call("razdwa", "raz"), true, "Starts with");
- a(t.call("razdwa", "dwa"), true, "Ends with");
- a(t.call("razdwa", "zdw"), true, "In middle");
- a(t.call("", "raz"), false, "Something in empty");
- a(t.call("az", "raz"), false, "Longer");
- a(t.call("azasdfasdf", "azff"), false, "Not found");
- a(t.call("razdwa", "raz", 1), false, "Position");
-};
diff --git a/node_modules/es5-ext/test/string/#/count.js b/node_modules/es5-ext/test/string/#/count.js
deleted file mode 100644
index 5e871e1..0000000
--- a/node_modules/es5-ext/test/string/#/count.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a.throws(function () { t.call("", ""); });
- a(t.call("x", "x"), 1);
- a(t.call("xx", "x"), 2);
- a(t.call("xxx", "xx"), 1);
- a(t.call("xxxx", "xx"), 2);
- a(t.call("xx", "xxx"), 0);
- a(t.call("", "elo"), 0);
- a(t.call("fooo", "foofooo"), 0);
-};
diff --git a/node_modules/es5-ext/test/string/#/ends-with/implement.js b/node_modules/es5-ext/test/string/#/ends-with/implement.js
deleted file mode 100644
index acca2b2..0000000
--- a/node_modules/es5-ext/test/string/#/ends-with/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../../string/#/ends-with/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/string/#/ends-with/index.js b/node_modules/es5-ext/test/string/#/ends-with/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/string/#/ends-with/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/string/#/ends-with/is-implemented.js b/node_modules/es5-ext/test/string/#/ends-with/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/string/#/ends-with/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/string/#/ends-with/shim.js b/node_modules/es5-ext/test/string/#/ends-with/shim.js
deleted file mode 100644
index 7539883..0000000
--- a/node_modules/es5-ext/test/string/#/ends-with/shim.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// In some parts copied from:
-// http://closure-library.googlecode.com/svn/trunk/closure/goog/
-// string/string_test.html
-
-"use strict";
-
-module.exports = function (t, a) {
- a(t.call("abc", ""), true, "Empty needle");
- a(t.call("abcd", "cd"), true, "Ends with needle");
- a(t.call("abcd", "abcd"), true, "Needle equals haystack");
- a(t.call("abcd", "ab"), false, "Doesn't end with needle");
- a(t.call("abc", "defg"), false, "Length trick");
- a(t.call("razdwa", "zd", 3), false, "Position: false");
- a(t.call("razdwa", "zd", 4), true, "Position: true");
- a(t.call("razdwa", "zd", 5), false, "Position: false #2");
-};
diff --git a/node_modules/es5-ext/test/string/#/hyphen-to-camel.js b/node_modules/es5-ext/test/string/#/hyphen-to-camel.js
deleted file mode 100644
index 89c8161..0000000
--- a/node_modules/es5-ext/test/string/#/hyphen-to-camel.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t.call("raz-dwa-t-rzy-4y-rtr4-tiu-45-pa"), "razDwaTRzy4yRtr4Tiu45Pa");
- a(t.call("raz-dwa-t-rzy-4y-rtr4-tiu-45-pa-"), "razDwaTRzy4yRtr4Tiu45Pa-");
- a(t.call("raz-dwa-t-rzy-4y-rtr4-tiu-45-pa--"), "razDwaTRzy4yRtr4Tiu45Pa--");
-};
diff --git a/node_modules/es5-ext/test/string/#/indent.js b/node_modules/es5-ext/test/string/#/indent.js
deleted file mode 100644
index bc0e5b5..0000000
--- a/node_modules/es5-ext/test/string/#/indent.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t.call("ra\nzz", ""), "ra\nzz", "Empty");
- a(t.call("ra\nzz", "\t", 3), "\t\t\tra\n\t\t\tzz", "String repeat");
- a(t.call("ra\nzz\nsss\nfff\n", "\t"), "\tra\n\tzz\n\tsss\n\tfff\n", "Multi-line");
- a(t.call("ra\n\nzz\n", "\t"), "\tra\n\n\tzz\n", "Don't touch empty lines");
-};
diff --git a/node_modules/es5-ext/test/string/#/last.js b/node_modules/es5-ext/test/string/#/last.js
deleted file mode 100644
index fea798d..0000000
--- a/node_modules/es5-ext/test/string/#/last.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t.call(""), null, "Null");
- a(t.call("abcdef"), "f", "String");
-};
diff --git a/node_modules/es5-ext/test/string/#/normalize/_data.js b/node_modules/es5-ext/test/string/#/normalize/_data.js
deleted file mode 100644
index 43d74de..0000000
--- a/node_modules/es5-ext/test/string/#/normalize/_data.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t[0], "object"); };
diff --git a/node_modules/es5-ext/test/string/#/normalize/implement.js b/node_modules/es5-ext/test/string/#/normalize/implement.js
deleted file mode 100644
index 49eebd1..0000000
--- a/node_modules/es5-ext/test/string/#/normalize/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../../string/#/normalize/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/string/#/normalize/index.js b/node_modules/es5-ext/test/string/#/normalize/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/string/#/normalize/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/string/#/normalize/is-implemented.js b/node_modules/es5-ext/test/string/#/normalize/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/string/#/normalize/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/string/#/normalize/shim.js b/node_modules/es5-ext/test/string/#/normalize/shim.js
deleted file mode 100644
index 0c80aa4..0000000
--- a/node_modules/es5-ext/test/string/#/normalize/shim.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Taken from: https://github.com/walling/unorm/blob/master/test/es6-shim.js
-
-"use strict";
-
-var str = "äiti";
-
-module.exports = function (t, a) {
- a(t.call(str), "\u00e4iti");
- a(t.call(str, "NFC"), "\u00e4iti");
- a(t.call(str, "NFD"), "a\u0308iti");
- a(t.call(str, "NFKC"), "\u00e4iti");
- a(t.call(str, "NFKD"), "a\u0308iti");
-};
diff --git a/node_modules/es5-ext/test/string/#/pad.js b/node_modules/es5-ext/test/string/#/pad.js
deleted file mode 100644
index e573453..0000000
--- a/node_modules/es5-ext/test/string/#/pad.js
+++ /dev/null
@@ -1,24 +0,0 @@
-"use strict";
-
-var partial = require("../../../function/#/partial");
-
-module.exports = {
- Left: function (t, a) {
- t = partial.call(t, "x", 5);
-
- a(t.call("yy"), "xxxyy");
- a(t.call(""), "xxxxx", "Empty string");
-
- a(t.call("yyyyy"), "yyyyy", "Equal length");
- a(t.call("yyyyyyy"), "yyyyyyy", "Longer");
- },
- Right: function (t, a) {
- t = partial.call(t, "x", -5);
-
- a(t.call("yy"), "yyxxx");
- a(t.call(""), "xxxxx", "Empty string");
-
- a(t.call("yyyyy"), "yyyyy", "Equal length");
- a(t.call("yyyyyyy"), "yyyyyyy", "Longer");
- }
-};
diff --git a/node_modules/es5-ext/test/string/#/plain-replace-all.js b/node_modules/es5-ext/test/string/#/plain-replace-all.js
deleted file mode 100644
index 54fdabd..0000000
--- a/node_modules/es5-ext/test/string/#/plain-replace-all.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t.call("razdwatrzy", "dwa", "olera"), "razoleratrzy", "Basic");
- a(t.call("razdwatrzy", "dwa", "ole$&a"), "razole$&atrzy", "Inserts");
- a(t.call("razdwa", "ola", "sdfs"), "razdwa", "No replace");
-
- a(t.call("$raz$$dwa$trzy$", "$", "&&"), "&&raz&&&&dwa&&trzy&&", "Multi");
- a(t.call("$raz$$dwa$$$$trzy$", "$$", "&"), "$raz&dwa&&trzy$", "Multi many chars");
-};
diff --git a/node_modules/es5-ext/test/string/#/plain-replace.js b/node_modules/es5-ext/test/string/#/plain-replace.js
deleted file mode 100644
index 9f6c2be..0000000
--- a/node_modules/es5-ext/test/string/#/plain-replace.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t.call("razdwatrzy", "dwa", "olera"), "razoleratrzy", "Basic");
- a(t.call("razdwatrzy", "dwa", "ole$&a"), "razole$&atrzy", "Inserts");
- a(t.call("razdwa", "ola", "sdfs"), "razdwa", "No replace");
-};
diff --git a/node_modules/es5-ext/test/string/#/repeat/implement.js b/node_modules/es5-ext/test/string/#/repeat/implement.js
deleted file mode 100644
index 554b975..0000000
--- a/node_modules/es5-ext/test/string/#/repeat/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../../string/#/repeat/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/string/#/repeat/index.js b/node_modules/es5-ext/test/string/#/repeat/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/string/#/repeat/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/string/#/repeat/is-implemented.js b/node_modules/es5-ext/test/string/#/repeat/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/string/#/repeat/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/string/#/repeat/shim.js b/node_modules/es5-ext/test/string/#/repeat/shim.js
deleted file mode 100644
index c584884..0000000
--- a/node_modules/es5-ext/test/string/#/repeat/shim.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t.call("a", 0), "", "Empty");
- a(t.call("a", 1), "a", "1");
- a(t.call("a", 2), "aa", "2");
- a(t.call("\t", 5), "\t\t\t\t\t", "Whitespace");
- a(t.call("raz", 3), "razrazraz", "Many chars");
- a(t.call("raz", 3), "razrazraz", "Many chars");
- a(t.call("razfoobar", 5), "razfoobarrazfoobarrazfoobarrazfoobarrazfoobar", "Many chars");
- a(t.call("a", 300).length, 300);
-};
diff --git a/node_modules/es5-ext/test/string/#/starts-with/implement.js b/node_modules/es5-ext/test/string/#/starts-with/implement.js
deleted file mode 100644
index 38371a8..0000000
--- a/node_modules/es5-ext/test/string/#/starts-with/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../../string/#/starts-with/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/string/#/starts-with/index.js b/node_modules/es5-ext/test/string/#/starts-with/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/string/#/starts-with/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/string/#/starts-with/is-implemented.js b/node_modules/es5-ext/test/string/#/starts-with/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/string/#/starts-with/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/string/#/starts-with/shim.js b/node_modules/es5-ext/test/string/#/starts-with/shim.js
deleted file mode 100644
index 4b5e4e4..0000000
--- a/node_modules/es5-ext/test/string/#/starts-with/shim.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Inspired and in some parts copied from:
-// http://closure-library.googlecode.com/svn/trunk/closure/goog
-// /string/string_test.html
-
-"use strict";
-
-module.exports = function (t, a) {
- a(t.call("abc", ""), true, "Empty needle");
- a(t.call("abcd", "ab"), true, "Starts with needle");
- a(t.call("abcd", "abcd"), true, "Needle equals haystack");
- a(t.call("abcd", "bcde", 1), false, "Needle larger than haystack");
- a(!t.call("abcd", "cd"), true, "Doesn't start with needle");
- a(t.call("abcd", "bc", 1), true, "Position");
-};
diff --git a/node_modules/es5-ext/test/string/#/uncapitalize.js b/node_modules/es5-ext/test/string/#/uncapitalize.js
deleted file mode 100644
index cddd847..0000000
--- a/node_modules/es5-ext/test/string/#/uncapitalize.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t.call("raz"), "raz", "Word");
- a(t.call("BLA"), "bLA", "Uppercase");
- a(t.call(""), "", "Empty");
- a(t.call("a"), "a", "One letter");
- a(t.call("this is a test"), "this is a test", "Sentence");
- a(t.call("This is a test"), "this is a test", "Capitalized sentence");
-};
diff --git a/node_modules/es5-ext/test/string/format-method.js b/node_modules/es5-ext/test/string/format-method.js
deleted file mode 100644
index ddb08f5..0000000
--- a/node_modules/es5-ext/test/string/format-method.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- t = t({ a: "A", aa: "B", ab: "C", b: "D", c: function () { return ++this.a; } });
- a(t.call({ a: 0 }, " %a%aab%abb%b\\%aa%ab%c%c "), " ABbCbD%aaC12 ");
-};
diff --git a/node_modules/es5-ext/test/string/from-code-point/implement.js b/node_modules/es5-ext/test/string/from-code-point/implement.js
deleted file mode 100644
index 00b813d..0000000
--- a/node_modules/es5-ext/test/string/from-code-point/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../string/from-code-point/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/string/from-code-point/index.js b/node_modules/es5-ext/test/string/from-code-point/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/string/from-code-point/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/string/from-code-point/is-implemented.js b/node_modules/es5-ext/test/string/from-code-point/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/string/from-code-point/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/string/from-code-point/shim.js b/node_modules/es5-ext/test/string/from-code-point/shim.js
deleted file mode 100644
index 1bf22ad..0000000
--- a/node_modules/es5-ext/test/string/from-code-point/shim.js
+++ /dev/null
@@ -1,47 +0,0 @@
-// Taken from: https://github.com/mathiasbynens/String.fromCodePoint/blob/master
-// /tests/tests.js
-
-"use strict";
-
-var pow = Math.pow;
-
-module.exports = function (t, a) {
- var counter, result;
-
- a(t.length, 1, "Length");
- a(String.propertyIsEnumerable("fromCodePoint"), false, "Not enumerable");
-
- a(t(""), "\0", "Empty string");
- a(t(), "", "No arguments");
- a(t(-0), "\0", "-0");
- a(t(0), "\0", "0");
- a(t(0x1d306), "\uD834\uDF06", "Unicode");
- a(t(0x1d306, 0x61, 0x1d307), "\uD834\uDF06a\uD834\uDF07", "Complex unicode");
- a(t(0x61, 0x62, 0x1d307), "ab\uD834\uDF07", "Complex");
- a(t(false), "\0", "false");
- a(t(null), "\0", "null");
-
- a.throws(function () { t("_"); }, RangeError, "_");
- a.throws(function () { t(Infinity); }, RangeError, "Infinity");
- a.throws(function () { t(-Infinity); }, RangeError, "-Infinity");
- a.throws(function () { t(-1); }, RangeError, "-1");
- a.throws(function () { t(0x10ffff + 1); }, RangeError, "Range error #1");
- a.throws(function () { t(3.14); }, RangeError, "Range error #2");
- a.throws(function () { t(3e-2); }, RangeError, "Range error #3");
- a.throws(function () { t(-Infinity); }, RangeError, "Range error #4");
- a.throws(function () { t(Number(Infinity)); }, RangeError, "Range error #5");
- a.throws(function () { t(NaN); }, RangeError, "Range error #6");
- a.throws(function () { t(undefined); }, RangeError, "Range error #7");
- a.throws(function () { t({}); }, RangeError, "Range error #8");
- a.throws(function () { t(/re/); }, RangeError, "Range error #9");
-
- counter = (pow(2, 15) * 3) / 2;
- result = [];
- while (--counter >= 0) result.push(0); // One code unit per symbol
- t.apply(null, result); // Must not throw
-
- counter = (pow(2, 15) * 3) / 2;
- result = [];
- while (--counter >= 0) result.push(0xffff + 1); // Two code units per symbol
- t.apply(null, result); // Must not throw
-};
diff --git a/node_modules/es5-ext/test/string/is-string.js b/node_modules/es5-ext/test/string/is-string.js
deleted file mode 100644
index 0e83122..0000000
--- a/node_modules/es5-ext/test/string/is-string.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(t(null), false, "Null");
- a(t(""), true, "Empty string");
- a(t(12), false, "Number");
- a(t(false), false, "Boolean");
- a(t(new Date()), false, "Date");
- a(t(new String("raz")), true, "String object");
- a(t("asdfaf"), true, "String");
-};
diff --git a/node_modules/es5-ext/test/string/random-uniq.js b/node_modules/es5-ext/test/string/random-uniq.js
deleted file mode 100644
index 3b6d889..0000000
--- a/node_modules/es5-ext/test/string/random-uniq.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-
-var isValidFormat = RegExp.prototype.test.bind(/^[a-z0-9]+$/);
-
-module.exports = function (t, a) {
- a(typeof t(), "string");
- a.ok(t().length > 7);
- a.not(t(), t());
- a.ok(isValidFormat(t()));
- a.ok(isValidFormat(t()));
- a.ok(isValidFormat(t()));
- a.ok(isValidFormat(t()));
- a.ok(isValidFormat(t()));
-};
diff --git a/node_modules/es5-ext/test/string/random.js b/node_modules/es5-ext/test/string/random.js
deleted file mode 100644
index 3fa44ca..0000000
--- a/node_modules/es5-ext/test/string/random.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-var isValidFormat = RegExp.prototype.test.bind(/^[a-z0-9]+$/);
-
-module.exports = function (t, a) {
- a(typeof t(), "string");
- a.ok(t().length > 7);
- a.not(t({ isUnique: true }), t({ isUnique: true }));
- a.ok(isValidFormat(t()));
- a(t({ length: 1 }).length, 1);
- a(t({ length: 100 }).length, 100);
- a(t({ length: 0 }), "");
-};
diff --git a/node_modules/es5-ext/test/string/raw/implement.js b/node_modules/es5-ext/test/string/raw/implement.js
deleted file mode 100644
index f865e00..0000000
--- a/node_modules/es5-ext/test/string/raw/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-var isImplemented = require("../../../string/raw/is-implemented");
-
-module.exports = function (a) { a(isImplemented(), true); };
diff --git a/node_modules/es5-ext/test/string/raw/index.js b/node_modules/es5-ext/test/string/raw/index.js
deleted file mode 100644
index 10bb8f6..0000000
--- a/node_modules/es5-ext/test/string/raw/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./shim");
diff --git a/node_modules/es5-ext/test/string/raw/is-implemented.js b/node_modules/es5-ext/test/string/raw/is-implemented.js
deleted file mode 100644
index 566411c..0000000
--- a/node_modules/es5-ext/test/string/raw/is-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t(), "boolean"); };
diff --git a/node_modules/es5-ext/test/string/raw/shim.js b/node_modules/es5-ext/test/string/raw/shim.js
deleted file mode 100644
index f61974f..0000000
--- a/node_modules/es5-ext/test/string/raw/shim.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Partially taken from:
-// https://github.com/paulmillr/es6-shim/blob/master/test/string.js
-
-"use strict";
-
-module.exports = function (t, a) {
- var callSite = [];
-
- callSite.raw = ["The total is ", " ($", " with tax)"];
- a(t(callSite, "{total}", "{total * 1.01}"), "The total is {total} (${total * 1.01} with tax)");
-
- callSite.raw = [];
- a(t(callSite, "{total}", "{total * 1.01}"), "");
-};
diff --git a/node_modules/es5-ext/test/to-short-string-representation.js b/node_modules/es5-ext/test/to-short-string-representation.js
deleted file mode 100644
index cac8d87..0000000
--- a/node_modules/es5-ext/test/to-short-string-representation.js
+++ /dev/null
@@ -1,16 +0,0 @@
-"use strict";
-
-var repeat = require("../string/#/repeat");
-
-module.exports = function (t, a) {
- a(t(), "undefined");
- a(t(null), "null");
- a(t(10), "10");
- a(t("str"), "str");
- a(t({ toString: function () { return "miszka"; } }), "miszka");
- // eslint-disable-next-line symbol-description
- if (typeof Symbol === "function") a(t(Symbol()), "Symbol()");
- a(t(Object.create(null)), "");
- a(t(repeat.call("a", 300)), repeat.call("a", 99) + "…");
- a(t("mar\ntoo\nfar"), "mar\\ntoo\\nfar");
-};
diff --git a/node_modules/es5-ext/to-short-string-representation.js b/node_modules/es5-ext/to-short-string-representation.js
deleted file mode 100644
index 5aede53..0000000
--- a/node_modules/es5-ext/to-short-string-representation.js
+++ /dev/null
@@ -1,16 +0,0 @@
-"use strict";
-
-var safeToString = require("./safe-to-string");
-
-var reNewLine = /[\n\r\u2028\u2029]/g;
-
-module.exports = function (value) {
- var string = safeToString(value);
- // Trim if too long
- if (string.length > 100) string = string.slice(0, 99) + "…";
- // Replace eventual new lines
- string = string.replace(reNewLine, function (char) {
- return JSON.stringify(char).slice(1, -1);
- });
- return string;
-};
diff --git a/node_modules/es6-iterator/#/chain.js b/node_modules/es6-iterator/#/chain.js
deleted file mode 100644
index 190a346..0000000
--- a/node_modules/es6-iterator/#/chain.js
+++ /dev/null
@@ -1,40 +0,0 @@
-"use strict";
-
-var setPrototypeOf = require("es5-ext/object/set-prototype-of")
- , d = require("d")
- , Iterator = require("../")
- , validIterable = require("../valid-iterable")
-
- , push = Array.prototype.push
- , defineProperties = Object.defineProperties
- , IteratorChain;
-
-IteratorChain = function (iterators) {
- defineProperties(this, {
- __iterators__: d("", iterators),
- __current__: d("w", iterators.shift())
- });
-};
-if (setPrototypeOf) setPrototypeOf(IteratorChain, Iterator);
-
-IteratorChain.prototype = Object.create(Iterator.prototype, {
- constructor: d(IteratorChain),
- next: d(function () {
- var result;
- if (!this.__current__) return { done: true, value: undefined };
- result = this.__current__.next();
- while (result.done) {
- this.__current__ = this.__iterators__.shift();
- if (!this.__current__) return { done: true, value: undefined };
- result = this.__current__.next();
- }
- return result;
- })
-});
-
-module.exports = function () {
- var iterators = [this];
- push.apply(iterators, arguments);
- iterators.forEach(validIterable);
- return new IteratorChain(iterators);
-};
diff --git a/node_modules/es6-iterator/.editorconfig b/node_modules/es6-iterator/.editorconfig
deleted file mode 100644
index c24a6cd..0000000
--- a/node_modules/es6-iterator/.editorconfig
+++ /dev/null
@@ -1,14 +0,0 @@
-# EditorConfig is awesome: http://EditorConfig.org
-
-# top-most EditorConfig file
-root = true
-
-# Unix-style newlines with a newline ending every file
-[*]
-end_of_line = lf
-insert_final_newline = true
-indent_style = tab
-
-[{*.json,*.yml}]
-indent_style = space
-indent_size = 2
diff --git a/node_modules/es6-iterator/.npmignore b/node_modules/es6-iterator/.npmignore
deleted file mode 100644
index a91db65..0000000
--- a/node_modules/es6-iterator/.npmignore
+++ /dev/null
@@ -1,12 +0,0 @@
-.DS_Store
-Thumbs.db
-/.idea
-/.vscode
-npm-debug.log
-/wallaby.js
-/node_modules
-/.travis.yml
-/.gitignore
-/.circle.yml
-/.circleci
-/.appveyor.yml
diff --git a/node_modules/es6-iterator/CHANGELOG.md b/node_modules/es6-iterator/CHANGELOG.md
deleted file mode 100644
index 37eb16a..0000000
--- a/node_modules/es6-iterator/CHANGELOG.md
+++ /dev/null
@@ -1,27 +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.
-
-
-## [2.0.3](https://github.com/medikoo/es6-iterator/compare/v2.0.2...v2.0.3) (2017-10-17)
-
-
-### Bug Fixes
-
-* configurability of toStringTag ([b99f692](https://github.com/medikoo/es6-iterator/commit/b99f692))
-
-
-
-
-## [2.0.2](https://github.com/medikoo/es6-iterator/compare/v2.0.1...v2.0.2) (2017-10-17)
-
-
-### Bug Fixes
-
-* constructor exposure ([dbc0c51](https://github.com/medikoo/es6-iterator/commit/dbc0c51))
-* do not allow non constructor calls ([1f2f800](https://github.com/medikoo/es6-iterator/commit/1f2f800))
-* toString and toStringTag symbol definitions. ([2d17786](https://github.com/medikoo/es6-iterator/commit/2d17786)), closes [#6](https://github.com/medikoo/es6-iterator/issues/6)
-
-## Changelog for previous versions
-
-See `CHANGES` file
diff --git a/node_modules/es6-iterator/CHANGES b/node_modules/es6-iterator/CHANGES
deleted file mode 100644
index 83095f7..0000000
--- a/node_modules/es6-iterator/CHANGES
+++ /dev/null
@@ -1,42 +0,0 @@
-For recent changelog see CHANGELOG.md
-
------
-
-v2.0.1 -- 2017.03.15
-* Update dependencies
-
-v2.0.0 -- 2015.10.02
-* Use es6-symbol at v3
-
-v1.0.0 -- 2015.06.23
-* Implement support for arguments object
-* Drop support for v0.8 node ('^' in package.json dependencies)
-
-v0.1.3 -- 2015.02.02
-* Update dependencies
-* Fix spelling of LICENSE
-
-v0.1.2 -- 2014.11.19
-* Optimise internal `_next` to not verify internal's list length at all times
- (#2 thanks @RReverser)
-* Fix documentation examples
-* Configure lint scripts
-
-v0.1.1 -- 2014.04.29
-* Fix es6-symbol dependency version
-
-v0.1.0 -- 2014.04.29
-* Assure strictly npm hosted dependencies
-* Remove sparse arrays dedicated handling (as per spec)
-* Add: isIterable, validIterable and chain (method)
-* Remove toArray, it's addressed by Array.from (polyfil can be found in es5-ext/array/from)
-* Add break possiblity to 'forOf' via 'doBreak' function argument
-* Provide dedicated iterator for array-likes (ArrayIterator) and for strings (StringIterator)
-* Provide @@toStringTag symbol
-* When available rely on @@iterator symbol
-* Remove 32bit integer maximum list length restriction
-* Improve Iterator internals
-* Update to use latest version of dependencies
-
-v0.0.0 -- 2013.10.12
-Initial (dev version)
diff --git a/node_modules/es6-iterator/LICENSE b/node_modules/es6-iterator/LICENSE
deleted file mode 100644
index d7c36d5..0000000
--- a/node_modules/es6-iterator/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (C) 2013-2017 Mariusz Nowak (www.medikoo.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/es6-iterator/README.md b/node_modules/es6-iterator/README.md
deleted file mode 100644
index 288373d..0000000
--- a/node_modules/es6-iterator/README.md
+++ /dev/null
@@ -1,148 +0,0 @@
-# es6-iterator
-## ECMAScript 6 Iterator interface
-
-### Installation
-
- $ npm install es6-iterator
-
-To port it to Browser or any other (non CJS) environment, use your favorite CJS bundler. No favorite yet? Try: [Browserify](http://browserify.org/), [Webmake](https://github.com/medikoo/modules-webmake) or [Webpack](http://webpack.github.io/)
-
-## API
-
-### Constructors
-
-#### Iterator(list) _(es6-iterator)_
-
-Abstract Iterator interface. Meant for extensions and not to be used on its own.
-
-Accepts any _list_ object (technically object with numeric _length_ property).
-
-_Mind it doesn't iterate strings properly, for that use dedicated [StringIterator](#string-iterator)_
-
-```javascript
-var Iterator = require('es6-iterator')
-var iterator = new Iterator([1, 2, 3]);
-
-iterator.next(); // { value: 1, done: false }
-iterator.next(); // { value: 2, done: false }
-iterator.next(); // { value: 3, done: false }
-iterator.next(); // { value: undefined, done: true }
-```
-
-
-#### ArrayIterator(arrayLike[, kind]) _(es6-iterator/array)_
-
-Dedicated for arrays and array-likes. Supports three iteration kinds:
-* __value__ _(default)_ - Iterates values
-* __key__ - Iterates indexes
-* __key+value__ - Iterates keys and indexes, each iteration value is in _[key, value]_ form.
-
-
-```javascript
-var ArrayIterator = require('es6-iterator/array')
-var iterator = new ArrayIterator([1, 2, 3], 'key+value');
-
-iterator.next(); // { value: [0, 1], done: false }
-iterator.next(); // { value: [1, 2], done: false }
-iterator.next(); // { value: [2, 3], done: false }
-iterator.next(); // { value: undefined, done: true }
-```
-
-May also be used for _arguments_ objects:
-
-```javascript
-(function () {
- var iterator = new ArrayIterator(arguments);
-
- iterator.next(); // { value: 1, done: false }
- iterator.next(); // { value: 2, done: false }
- iterator.next(); // { value: 3, done: false }
- iterator.next(); // { value: undefined, done: true }
-}(1, 2, 3));
-```
-
-#### StringIterator(str) _(es6-iterator/string)_
-
-Assures proper iteration over unicode symbols.
-See: http://mathiasbynens.be/notes/javascript-unicode
-
-```javascript
-var StringIterator = require('es6-iterator/string');
-var iterator = new StringIterator('f🙈o🙉o🙊');
-
-iterator.next(); // { value: 'f', done: false }
-iterator.next(); // { value: '🙈', done: false }
-iterator.next(); // { value: 'o', done: false }
-iterator.next(); // { value: '🙉', done: false }
-iterator.next(); // { value: 'o', done: false }
-iterator.next(); // { value: '🙊', done: false }
-iterator.next(); // { value: undefined, done: true }
-```
-
-### Function utilities
-
-#### forOf(iterable, callback[, thisArg]) _(es6-iterator/for-of)_
-
-Polyfill for ECMAScript 6 [`for...of`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of) statement.
-
-```
-var forOf = require('es6-iterator/for-of');
-var result = [];
-
-forOf('🙈🙉🙊', function (monkey) { result.push(monkey); });
-console.log(result); // ['🙈', '🙉', '🙊'];
-```
-
-Optionally you can break iteration at any point:
-
-```javascript
-var result = [];
-
-forOf([1,2,3,4]', function (val, doBreak) {
- result.push(monkey);
- if (val >= 3) doBreak();
-});
-console.log(result); // [1, 2, 3];
-```
-
-#### get(obj) _(es6-iterator/get)_
-
-Return iterator for any iterable object.
-
-```javascript
-var getIterator = require('es6-iterator/get');
-var iterator = get([1,2,3]);
-
-iterator.next(); // { value: 1, done: false }
-iterator.next(); // { value: 2, done: false }
-iterator.next(); // { value: 3, done: false }
-iterator.next(); // { value: undefined, done: true }
-```
-
-#### isIterable(obj) _(es6-iterator/is-iterable)_
-
-Whether _obj_ is iterable
-
-```javascript
-var isIterable = require('es6-iterator/is-iterable');
-
-isIterable(null); // false
-isIterable(true); // false
-isIterable('str'); // true
-isIterable(['a', 'r', 'r']); // true
-isIterable(new ArrayIterator([])); // true
-```
-
-#### validIterable(obj) _(es6-iterator/valid-iterable)_
-
-If _obj_ is an iterable it is returned. Otherwise _TypeError_ is thrown.
-
-### Method extensions
-
-#### iterator.chain(iterator1[, …iteratorn]) _(es6-iterator/#/chain)_
-
-Chain multiple iterators into one.
-
-### Tests [![Build Status](https://travis-ci.org/medikoo/es6-iterator.png)](https://travis-ci.org/medikoo/es6-iterator)
-
- $ npm test
diff --git a/node_modules/es6-iterator/appveyor.yml b/node_modules/es6-iterator/appveyor.yml
deleted file mode 100644
index 942ab82..0000000
--- a/node_modules/es6-iterator/appveyor.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-# Test against the latest version of this Node.js version
-environment:
- matrix:
- # node.js
- - nodejs_version: "0.12"
- - nodejs_version: "4"
- - nodejs_version: "6"
- - nodejs_version: "8"
-
-# Install scripts. (runs after repo cloning)
-install:
- # Get the latest stable version of Node.js or io.js
- - ps: Install-Product node $env:nodejs_version
- # install modules
- - npm install
-
-# Post-install test scripts.
-test_script:
- # Output useful info for debugging.
- - node --version
- - npm --version
- # run tests
- - npm test
-
-# Don't actually build.
-build: off
diff --git a/node_modules/es6-iterator/array.js b/node_modules/es6-iterator/array.js
deleted file mode 100644
index d7a46a4..0000000
--- a/node_modules/es6-iterator/array.js
+++ /dev/null
@@ -1,32 +0,0 @@
-"use strict";
-
-var setPrototypeOf = require("es5-ext/object/set-prototype-of")
- , contains = require("es5-ext/string/#/contains")
- , d = require("d")
- , Symbol = require("es6-symbol")
- , Iterator = require("./");
-
-var defineProperty = Object.defineProperty, ArrayIterator;
-
-ArrayIterator = module.exports = function (arr, kind) {
- if (!(this instanceof ArrayIterator)) throw new TypeError("Constructor requires 'new'");
- Iterator.call(this, arr);
- if (!kind) kind = "value";
- else if (contains.call(kind, "key+value")) kind = "key+value";
- else if (contains.call(kind, "key")) kind = "key";
- else kind = "value";
- defineProperty(this, "__kind__", d("", kind));
-};
-if (setPrototypeOf) setPrototypeOf(ArrayIterator, Iterator);
-
-// Internal %ArrayIteratorPrototype% doesn't expose its constructor
-delete ArrayIterator.prototype.constructor;
-
-ArrayIterator.prototype = Object.create(Iterator.prototype, {
- _resolve: d(function (i) {
- if (this.__kind__ === "value") return this.__list__[i];
- if (this.__kind__ === "key+value") return [i, this.__list__[i]];
- return i;
- })
-});
-defineProperty(ArrayIterator.prototype, Symbol.toStringTag, d("c", "Array Iterator"));
diff --git a/node_modules/es6-iterator/for-of.js b/node_modules/es6-iterator/for-of.js
deleted file mode 100644
index 5d15c34..0000000
--- a/node_modules/es6-iterator/for-of.js
+++ /dev/null
@@ -1,47 +0,0 @@
-"use strict";
-
-var isArguments = require("es5-ext/function/is-arguments")
- , callable = require("es5-ext/object/valid-callable")
- , isString = require("es5-ext/string/is-string")
- , get = require("./get");
-
-var isArray = Array.isArray, call = Function.prototype.call, some = Array.prototype.some;
-
-module.exports = function (iterable, cb /*, thisArg*/) {
- var mode, thisArg = arguments[2], result, doBreak, broken, i, length, char, code;
- if (isArray(iterable) || isArguments(iterable)) mode = "array";
- else if (isString(iterable)) mode = "string";
- else iterable = get(iterable);
-
- callable(cb);
- doBreak = function () {
- broken = true;
- };
- if (mode === "array") {
- some.call(iterable, function (value) {
- call.call(cb, thisArg, value, doBreak);
- return broken;
- });
- return;
- }
- if (mode === "string") {
- length = iterable.length;
- for (i = 0; i < length; ++i) {
- char = iterable[i];
- if (i + 1 < length) {
- code = char.charCodeAt(0);
- if (code >= 0xd800 && code <= 0xdbff) char += iterable[++i];
- }
- call.call(cb, thisArg, char, doBreak);
- if (broken) break;
- }
- return;
- }
- result = iterable.next();
-
- while (!result.done) {
- call.call(cb, thisArg, result.value, doBreak);
- if (broken) return;
- result = iterable.next();
- }
-};
diff --git a/node_modules/es6-iterator/get.js b/node_modules/es6-iterator/get.js
deleted file mode 100644
index d36c9e2..0000000
--- a/node_modules/es6-iterator/get.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-var isArguments = require("es5-ext/function/is-arguments")
- , isString = require("es5-ext/string/is-string")
- , ArrayIterator = require("./array")
- , StringIterator = require("./string")
- , iterable = require("./valid-iterable")
- , iteratorSymbol = require("es6-symbol").iterator;
-
-module.exports = function (obj) {
- if (typeof iterable(obj)[iteratorSymbol] === "function") return obj[iteratorSymbol]();
- if (isArguments(obj)) return new ArrayIterator(obj);
- if (isString(obj)) return new StringIterator(obj);
- return new ArrayIterator(obj);
-};
diff --git a/node_modules/es6-iterator/index.js b/node_modules/es6-iterator/index.js
deleted file mode 100644
index 790475f..0000000
--- a/node_modules/es6-iterator/index.js
+++ /dev/null
@@ -1,106 +0,0 @@
-"use strict";
-
-var clear = require("es5-ext/array/#/clear")
- , assign = require("es5-ext/object/assign")
- , callable = require("es5-ext/object/valid-callable")
- , value = require("es5-ext/object/valid-value")
- , d = require("d")
- , autoBind = require("d/auto-bind")
- , Symbol = require("es6-symbol");
-
-var defineProperty = Object.defineProperty, defineProperties = Object.defineProperties, Iterator;
-
-module.exports = Iterator = function (list, context) {
- if (!(this instanceof Iterator)) throw new TypeError("Constructor requires 'new'");
- defineProperties(this, {
- __list__: d("w", value(list)),
- __context__: d("w", context),
- __nextIndex__: d("w", 0)
- });
- if (!context) return;
- callable(context.on);
- context.on("_add", this._onAdd);
- context.on("_delete", this._onDelete);
- context.on("_clear", this._onClear);
-};
-
-// Internal %IteratorPrototype% doesn't expose its constructor
-delete Iterator.prototype.constructor;
-
-defineProperties(
- Iterator.prototype,
- assign(
- {
- _next: d(function () {
- var i;
- if (!this.__list__) return undefined;
- if (this.__redo__) {
- i = this.__redo__.shift();
- if (i !== undefined) return i;
- }
- if (this.__nextIndex__ < this.__list__.length) return this.__nextIndex__++;
- this._unBind();
- return undefined;
- }),
- next: d(function () {
- return this._createResult(this._next());
- }),
- _createResult: d(function (i) {
- if (i === undefined) return { done: true, value: undefined };
- return { done: false, value: this._resolve(i) };
- }),
- _resolve: d(function (i) {
- return this.__list__[i];
- }),
- _unBind: d(function () {
- this.__list__ = null;
- delete this.__redo__;
- if (!this.__context__) return;
- this.__context__.off("_add", this._onAdd);
- this.__context__.off("_delete", this._onDelete);
- this.__context__.off("_clear", this._onClear);
- this.__context__ = null;
- }),
- toString: d(function () {
- return "[object " + (this[Symbol.toStringTag] || "Object") + "]";
- })
- },
- autoBind({
- _onAdd: d(function (index) {
- if (index >= this.__nextIndex__) return;
- ++this.__nextIndex__;
- if (!this.__redo__) {
- defineProperty(this, "__redo__", d("c", [index]));
- return;
- }
- this.__redo__.forEach(function (redo, i) {
- if (redo >= index) this.__redo__[i] = ++redo;
- }, this);
- this.__redo__.push(index);
- }),
- _onDelete: d(function (index) {
- var i;
- if (index >= this.__nextIndex__) return;
- --this.__nextIndex__;
- if (!this.__redo__) return;
- i = this.__redo__.indexOf(index);
- if (i !== -1) this.__redo__.splice(i, 1);
- this.__redo__.forEach(function (redo, j) {
- if (redo > index) this.__redo__[j] = --redo;
- }, this);
- }),
- _onClear: d(function () {
- if (this.__redo__) clear.call(this.__redo__);
- this.__nextIndex__ = 0;
- })
- })
- )
-);
-
-defineProperty(
- Iterator.prototype,
- Symbol.iterator,
- d(function () {
- return this;
- })
-);
diff --git a/node_modules/es6-iterator/is-iterable.js b/node_modules/es6-iterator/is-iterable.js
deleted file mode 100644
index cda7dfe..0000000
--- a/node_modules/es6-iterator/is-iterable.js
+++ /dev/null
@@ -1,16 +0,0 @@
-"use strict";
-
-var isArguments = require("es5-ext/function/is-arguments")
- , isValue = require("es5-ext/object/is-value")
- , isString = require("es5-ext/string/is-string");
-
-var iteratorSymbol = require("es6-symbol").iterator
- , isArray = Array.isArray;
-
-module.exports = function (value) {
- if (!isValue(value)) return false;
- if (isArray(value)) return true;
- if (isString(value)) return true;
- if (isArguments(value)) return true;
- return typeof value[iteratorSymbol] === "function";
-};
diff --git a/node_modules/es6-iterator/package.json b/node_modules/es6-iterator/package.json
deleted file mode 100644
index bc2582a..0000000
--- a/node_modules/es6-iterator/package.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- "name": "es6-iterator",
- "version": "2.0.3",
- "description": "Iterator abstraction based on ES6 specification",
- "author": "Mariusz Nowak (http://www.medikoo.com/)",
- "keywords": [
- "iterator",
- "array",
- "list",
- "set",
- "map",
- "generator"
- ],
- "repository": {
- "type": "git",
- "url": "git://github.com/medikoo/es6-iterator.git"
- },
- "dependencies": {
- "d": "1",
- "es5-ext": "^0.10.35",
- "es6-symbol": "^3.1.1"
- },
- "devDependencies": {
- "eslint": "^4.9",
- "eslint-config-medikoo-es5": "^1.4.4",
- "event-emitter": "^0.3.5",
- "tad": "^0.2.7"
- },
- "eslintConfig": {
- "extends": "medikoo-es5",
- "root": true,
- "rules": {
- "no-extend-native": "off"
- }
- },
- "scripts": {
- "lint": "eslint --ignore-path=.gitignore .",
- "test": "node ./node_modules/tad/bin/tad"
- },
- "license": "MIT"
-}
diff --git a/node_modules/es6-iterator/string.js b/node_modules/es6-iterator/string.js
deleted file mode 100644
index 4888225..0000000
--- a/node_modules/es6-iterator/string.js
+++ /dev/null
@@ -1,39 +0,0 @@
-// Thanks @mathiasbynens
-// http://mathiasbynens.be/notes/javascript-unicode#iterating-over-symbols
-
-"use strict";
-
-var setPrototypeOf = require("es5-ext/object/set-prototype-of")
- , d = require("d")
- , Symbol = require("es6-symbol")
- , Iterator = require("./");
-
-var defineProperty = Object.defineProperty, StringIterator;
-
-StringIterator = module.exports = function (str) {
- if (!(this instanceof StringIterator)) throw new TypeError("Constructor requires 'new'");
- str = String(str);
- Iterator.call(this, str);
- defineProperty(this, "__length__", d("", str.length));
-};
-if (setPrototypeOf) setPrototypeOf(StringIterator, Iterator);
-
-// Internal %ArrayIteratorPrototype% doesn't expose its constructor
-delete StringIterator.prototype.constructor;
-
-StringIterator.prototype = Object.create(Iterator.prototype, {
- _next: d(function () {
- if (!this.__list__) return undefined;
- if (this.__nextIndex__ < this.__length__) return this.__nextIndex__++;
- this._unBind();
- return undefined;
- }),
- _resolve: d(function (i) {
- var char = this.__list__[i], code;
- if (this.__nextIndex__ === this.__length__) return char;
- code = char.charCodeAt(0);
- if (code >= 0xd800 && code <= 0xdbff) return char + this.__list__[this.__nextIndex__++];
- return char;
- })
-});
-defineProperty(StringIterator.prototype, Symbol.toStringTag, d("c", "String Iterator"));
diff --git a/node_modules/es6-iterator/test/#/chain.js b/node_modules/es6-iterator/test/#/chain.js
deleted file mode 100644
index 457356f..0000000
--- a/node_modules/es6-iterator/test/#/chain.js
+++ /dev/null
@@ -1,23 +0,0 @@
-"use strict";
-
-var Iterator = require("../../");
-
-module.exports = function (t, a) {
- var i1 = new Iterator(["raz", "dwa", "trzy"])
- , i2 = new Iterator(["cztery", "pięć", "sześć"])
- , i3 = new Iterator(["siedem", "osiem", "dziewięć"])
-
- , iterator = t.call(i1, i2, i3);
-
- a.deep(iterator.next(), { done: false, value: "raz" }, "#1");
- a.deep(iterator.next(), { done: false, value: "dwa" }, "#2");
- a.deep(iterator.next(), { done: false, value: "trzy" }, "#3");
- a.deep(iterator.next(), { done: false, value: "cztery" }, "#4");
- a.deep(iterator.next(), { done: false, value: "pięć" }, "#5");
- a.deep(iterator.next(), { done: false, value: "sześć" }, "#6");
- a.deep(iterator.next(), { done: false, value: "siedem" }, "#7");
- a.deep(iterator.next(), { done: false, value: "osiem" }, "#8");
- a.deep(iterator.next(), { done: false, value: "dziewięć" }, "#9");
- a.deep(iterator.next(), { done: true, value: undefined }, "Done #1");
- a.deep(iterator.next(), { done: true, value: undefined }, "Done #2");
-};
diff --git a/node_modules/es6-iterator/test/.eslintrc.json b/node_modules/es6-iterator/test/.eslintrc.json
deleted file mode 100644
index 99f0b65..0000000
--- a/node_modules/es6-iterator/test/.eslintrc.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "rules": {
- "id-length": "off"
- }
-}
diff --git a/node_modules/es6-iterator/test/array.js b/node_modules/es6-iterator/test/array.js
deleted file mode 100644
index 447dfa7..0000000
--- a/node_modules/es6-iterator/test/array.js
+++ /dev/null
@@ -1,67 +0,0 @@
-"use strict";
-
-var iteratorSymbol = require("es6-symbol").iterator;
-
-module.exports = function (T) {
- return {
- "Values": function (a) {
- var x = ["raz", "dwa", "trzy", "cztery", "pięć", "sześć"], it;
-
- it = new T(x);
- a(it[iteratorSymbol](), it, "@@iterator");
- a.deep(it.next(), { done: false, value: "raz" }, "#1");
- a.deep(it.next(), { done: false, value: "dwa" }, "#2");
- x.splice(1, 0, "elo");
- a.deep(it.next(), { done: false, value: "dwa" }, "Insert");
- a.deep(it.next(), { done: false, value: "trzy" }, "#3");
- a.deep(it.next(), { done: false, value: "cztery" }, "#4");
- x.pop();
- a.deep(it.next(), { done: false, value: "pięć" }, "#5");
- a.deep(it.next(), { done: true, value: undefined }, "End");
- },
- "Keys & Values": function (a) {
- var x = ["raz", "dwa", "trzy", "cztery", "pięć", "sześć"], it;
-
- it = new T(x, "key+value");
- a(it[iteratorSymbol](), it, "@@iterator");
- a.deep(it.next(), { done: false, value: [0, "raz"] }, "#1");
- a.deep(it.next(), { done: false, value: [1, "dwa"] }, "#2");
- x.splice(1, 0, "elo");
- a.deep(it.next(), { done: false, value: [2, "dwa"] }, "Insert");
- a.deep(it.next(), { done: false, value: [3, "trzy"] }, "#3");
- a.deep(it.next(), { done: false, value: [4, "cztery"] }, "#4");
- x.pop();
- a.deep(it.next(), { done: false, value: [5, "pięć"] }, "#5");
- a.deep(it.next(), { done: true, value: undefined }, "End");
- },
- "Keys": function (a) {
- var x = ["raz", "dwa", "trzy", "cztery", "pięć", "sześć"], it;
-
- it = new T(x, "key");
- a(it[iteratorSymbol](), it, "@@iterator");
- a.deep(it.next(), { done: false, value: 0 }, "#1");
- a.deep(it.next(), { done: false, value: 1 }, "#2");
- x.splice(1, 0, "elo");
- a.deep(it.next(), { done: false, value: 2 }, "Insert");
- a.deep(it.next(), { done: false, value: 3 }, "#3");
- a.deep(it.next(), { done: false, value: 4 }, "#4");
- x.pop();
- a.deep(it.next(), { done: false, value: 5 }, "#5");
- a.deep(it.next(), { done: true, value: undefined }, "End");
- },
- "Sparse": function (a) {
- var x = new Array(6), it;
-
- x[2] = "raz";
- x[4] = "dwa";
- it = new T(x);
- a.deep(it.next(), { done: false, value: undefined }, "#1");
- a.deep(it.next(), { done: false, value: undefined }, "#2");
- a.deep(it.next(), { done: false, value: "raz" }, "#3");
- a.deep(it.next(), { done: false, value: undefined }, "#4");
- a.deep(it.next(), { done: false, value: "dwa" }, "#5");
- a.deep(it.next(), { done: false, value: undefined }, "#6");
- a.deep(it.next(), { done: true, value: undefined }, "End");
- }
- };
-};
diff --git a/node_modules/es6-iterator/test/for-of.js b/node_modules/es6-iterator/test/for-of.js
deleted file mode 100644
index 9b47e97..0000000
--- a/node_modules/es6-iterator/test/for-of.js
+++ /dev/null
@@ -1,42 +0,0 @@
-"use strict";
-
-var ArrayIterator = require("../array")
-
- , slice = Array.prototype.slice;
-
-module.exports = function (t, a) {
- var i = 0, x = ["raz", "dwa", "trzy"], y = {}, called = 0;
- t(x, function () {
- a.deep(slice.call(arguments, 0, 1), [x[i]], "Array " + i + "#");
- a(this, y, "Array: context: " + i++ + "#");
- }, y);
- i = 0;
- t((function () {
- return arguments;
-}("raz", "dwa", "trzy")), function () {
- a.deep(slice.call(arguments, 0, 1), [x[i]], "Arguments" + i + "#");
- a(this, y, "Arguments: context: " + i++ + "#");
- }, y);
- i = 0;
- t(x = "foo", function () {
- a.deep(slice.call(arguments, 0, 1), [x[i]], "String " + i + "#");
- a(this, y, "Regular String: context: " + i++ + "#");
- }, y);
- i = 0;
- x = ["r", "💩", "z"];
- t("r💩z", function () {
- a.deep(slice.call(arguments, 0, 1), [x[i]], "String " + i + "#");
- a(this, y, "Unicode String: context: " + i++ + "#");
- }, y);
- i = 0;
- t(new ArrayIterator(x), function () {
- a.deep(slice.call(arguments, 0, 1), [x[i]], "Iterator " + i + "#");
- a(this, y, "Iterator: context: " + i++ + "#");
- }, y);
-
- t(x = ["raz", "dwa", "trzy"], function (value, doBreak) {
- ++called;
- return doBreak();
- });
- a(called, 1, "Break");
-};
diff --git a/node_modules/es6-iterator/test/get.js b/node_modules/es6-iterator/test/get.js
deleted file mode 100644
index c5947d3..0000000
--- a/node_modules/es6-iterator/test/get.js
+++ /dev/null
@@ -1,27 +0,0 @@
-"use strict";
-
-var iteratorSymbol = require("es6-symbol").iterator
- , Iterator = require("../");
-
-module.exports = function (t, a) {
- var iterator;
- a.throws(function () {
- t();
-}, TypeError, "Null");
- a.throws(function () {
- t({});
-}, TypeError, "Plain object");
- a.throws(function () {
- t({ length: 0 });
-}, TypeError, "Array-like");
- iterator = {};
- iterator[iteratorSymbol] = function () {
- return new Iterator([]);
-};
- a(t(iterator) instanceof Iterator, true, "Iterator");
- a(String(t([])), "[object Array Iterator]", " Array");
- a(String(t(function () {
- return arguments;
-}())), "[object Array Iterator]", " Arguments");
- a(String(t("foo")), "[object String Iterator]", "String");
-};
diff --git a/node_modules/es6-iterator/test/index.js b/node_modules/es6-iterator/test/index.js
deleted file mode 100644
index 4898218..0000000
--- a/node_modules/es6-iterator/test/index.js
+++ /dev/null
@@ -1,99 +0,0 @@
-"use strict";
-
-var ee = require("event-emitter")
- , iteratorSymbol = require("es6-symbol").iterator;
-
-module.exports = function (T) {
- return {
- "": function (a) {
- var x = ["raz", "dwa", "trzy", "cztery", "pięć"], it, y, z;
-
- it = new T(x);
- a(it[iteratorSymbol](), it, "@@iterator");
- y = it.next();
- a.deep(y, { done: false, value: "raz" }, "#1");
- z = it.next();
- a.not(y, z, "Recreate result");
- a.deep(z, { done: false, value: "dwa" }, "#2");
- a.deep(it.next(), { done: false, value: "trzy" }, "#3");
- a.deep(it.next(), { done: false, value: "cztery" }, "#4");
- a.deep(it.next(), { done: false, value: "pięć" }, "#5");
- a.deep(y = it.next(), { done: true, value: undefined }, "End");
- a.not(y, it.next(), "Recreate result on dead");
- },
- "Emited": function (a) {
- var x = ["raz", "dwa", "trzy", "cztery", "pięć"], y, it;
-
- y = ee();
- it = new T(x, y);
- a.deep(it.next(), { done: false, value: "raz" }, "#1");
- a.deep(it.next(), { done: false, value: "dwa" }, "#2");
- y.emit("_add", x.push("sześć") - 1);
- a.deep(it.next(), { done: false, value: "trzy" }, "#3");
- x.splice(1, 0, "półtora");
- y.emit("_add", 1);
- a.deep(it.next(), { done: false, value: "półtora" }, "Insert");
- x.splice(5, 1);
- y.emit("_delete", 5);
- a.deep(it.next(), { done: false, value: "cztery" }, "#4");
- a.deep(it.next(), { done: false, value: "sześć" }, "#5");
- a.deep(it.next(), { done: true, value: undefined }, "End");
- },
- "Emited #2": function (a) {
- var x = ["raz", "dwa", "trzy", "cztery", "pięć", "sześć"], y, it;
-
- y = ee();
- it = new T(x, y);
- a.deep(it.next(), { done: false, value: "raz" }, "#1");
- a.deep(it.next(), { done: false, value: "dwa" }, "#2");
- x.splice(1, 0, "półtora");
- y.emit("_add", 1);
- x.splice(1, 0, "1.25");
- y.emit("_add", 1);
- x.splice(0, 1);
- y.emit("_delete", 0);
- a.deep(it.next(), { done: false, value: "półtora" }, "Insert");
- a.deep(it.next(), { done: false, value: "1.25" }, "Insert #2");
- a.deep(it.next(), { done: false, value: "trzy" }, "#3");
- a.deep(it.next(), { done: false, value: "cztery" }, "#4");
- x.splice(5, 1);
- y.emit("_delete", 5);
- a.deep(it.next(), { done: false, value: "sześć" }, "#5");
- a.deep(it.next(), { done: true, value: undefined }, "End");
- },
- "Emited: Clear #1": function (a) {
- var x = ["raz", "dwa", "trzy", "cztery", "pięć", "sześć"], y, it;
-
- y = ee();
- it = new T(x, y);
- a.deep(it.next(), { done: false, value: "raz" }, "#1");
- a.deep(it.next(), { done: false, value: "dwa" }, "#2");
- x.length = 0;
- y.emit("_clear");
- a.deep(it.next(), { done: true, value: undefined }, "End");
- },
- "Emited: Clear #2": function (a) {
- var x = ["raz", "dwa", "trzy", "cztery", "pięć", "sześć"], y, it;
-
- y = ee();
- it = new T(x, y);
- a.deep(it.next(), { done: false, value: "raz" }, "#1");
- a.deep(it.next(), { done: false, value: "dwa" }, "#2");
- x.length = 0;
- y.emit("_clear");
- x.push("foo");
- x.push("bar");
- a.deep(it.next(), { done: false, value: "foo" }, "#3");
- a.deep(it.next(), { done: false, value: "bar" }, "#4");
- x.splice(1, 0, "półtora");
- y.emit("_add", 1);
- x.splice(1, 0, "1.25");
- y.emit("_add", 1);
- x.splice(0, 1);
- y.emit("_delete", 0);
- a.deep(it.next(), { done: false, value: "półtora" }, "Insert");
- a.deep(it.next(), { done: false, value: "1.25" }, "Insert #2");
- a.deep(it.next(), { done: true, value: undefined }, "End");
- }
- };
-};
diff --git a/node_modules/es6-iterator/test/is-iterable.js b/node_modules/es6-iterator/test/is-iterable.js
deleted file mode 100644
index 5787351..0000000
--- a/node_modules/es6-iterator/test/is-iterable.js
+++ /dev/null
@@ -1,23 +0,0 @@
-"use strict";
-
-var iteratorSymbol = require("es6-symbol").iterator
- , Iterator = require("../");
-
-module.exports = function (t, a) {
- var iterator;
- a(t(), false, "Undefined");
- a(t(123), false, "Number");
- a(t({}), false, "Plain object");
- a(t({ length: 0 }), false, "Array-like");
- iterator = {};
- iterator[iteratorSymbol] = function () {
- return new Iterator([]);
-};
- a(t(iterator), true, "Iterator");
- a(t([]), true, "Array");
- a(t("foo"), true, "String");
- a(t(""), true, "Empty string");
- a(t(function () {
- return arguments;
-}()), true, "Arguments");
-};
diff --git a/node_modules/es6-iterator/test/string.js b/node_modules/es6-iterator/test/string.js
deleted file mode 100644
index 3f2a5b6..0000000
--- a/node_modules/es6-iterator/test/string.js
+++ /dev/null
@@ -1,23 +0,0 @@
-"use strict";
-
-var iteratorSymbol = require("es6-symbol").iterator;
-
-module.exports = function (T, a) {
- var it = new T("foobar");
-
- a(it[iteratorSymbol](), it, "@@iterator");
- a.deep(it.next(), { done: false, value: "f" }, "#1");
- a.deep(it.next(), { done: false, value: "o" }, "#2");
- a.deep(it.next(), { done: false, value: "o" }, "#3");
- a.deep(it.next(), { done: false, value: "b" }, "#4");
- a.deep(it.next(), { done: false, value: "a" }, "#5");
- a.deep(it.next(), { done: false, value: "r" }, "#6");
- a.deep(it.next(), { done: true, value: undefined }, "End");
-
- a.h1("Outside of BMP");
- it = new T("r💩z");
- a.deep(it.next(), { done: false, value: "r" }, "#1");
- a.deep(it.next(), { done: false, value: "💩" }, "#2");
- a.deep(it.next(), { done: false, value: "z" }, "#3");
- a.deep(it.next(), { done: true, value: undefined }, "End");
-};
diff --git a/node_modules/es6-iterator/test/valid-iterable.js b/node_modules/es6-iterator/test/valid-iterable.js
deleted file mode 100644
index b8b2a8a..0000000
--- a/node_modules/es6-iterator/test/valid-iterable.js
+++ /dev/null
@@ -1,28 +0,0 @@
-"use strict";
-
-var iteratorSymbol = require("es6-symbol").iterator
- , Iterator = require("../");
-
-module.exports = function (t, a) {
- var obj;
- a.throws(function () {
- t();
-}, TypeError, "Undefined");
- a.throws(function () {
- t({});
-}, TypeError, "Plain object");
- a.throws(function () {
- t({ length: 0 });
-}, TypeError, "Array-like");
- obj = {};
- obj[iteratorSymbol] = function () {
- return new Iterator([]);
-};
- a(t(obj), obj, "Iterator");
- obj = [];
- a(t(obj), obj, "Array");
- obj = (function () {
- return arguments;
-}());
- a(t(obj), obj, "Arguments");
-};
diff --git a/node_modules/es6-iterator/valid-iterable.js b/node_modules/es6-iterator/valid-iterable.js
deleted file mode 100644
index 8c6e071..0000000
--- a/node_modules/es6-iterator/valid-iterable.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var isIterable = require("./is-iterable");
-
-module.exports = function (value) {
- if (!isIterable(value)) throw new TypeError(value + " is not iterable");
- return value;
-};
diff --git a/node_modules/es6-symbol/.editorconfig b/node_modules/es6-symbol/.editorconfig
deleted file mode 100755
index bd6d81e..0000000
--- a/node_modules/es6-symbol/.editorconfig
+++ /dev/null
@@ -1,16 +0,0 @@
-# EditorConfig is awesome: http://EditorConfig.org
-
-# top-most EditorConfig file
-root = true
-
-[*]
-charset = utf-8
-end_of_line = lf
-insert_final_newline = true
-indent_style = tab
-trim_trailing_whitespace = true
-
-[*.md]
-indent_size = 2
-indent_style = space
-trim_trailing_whitespace = false
diff --git a/node_modules/es6-symbol/.github/FUNDING.yml b/node_modules/es6-symbol/.github/FUNDING.yml
deleted file mode 100644
index 81c96d7..0000000
--- a/node_modules/es6-symbol/.github/FUNDING.yml
+++ /dev/null
@@ -1 +0,0 @@
-tidelift: "npm/es6-symbol"
diff --git a/node_modules/es6-symbol/.testignore b/node_modules/es6-symbol/.testignore
deleted file mode 100644
index b5b5cd1..0000000
--- a/node_modules/es6-symbol/.testignore
+++ /dev/null
@@ -1 +0,0 @@
-/lib/private
diff --git a/node_modules/es6-symbol/CHANGELOG.md b/node_modules/es6-symbol/CHANGELOG.md
deleted file mode 100644
index 60cf2b7..0000000
--- a/node_modules/es6-symbol/CHANGELOG.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# Changelog
-
-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.
-
-### [3.1.3](https://github.com/medikoo/es6-symbol/compare/v3.1.2...v3.1.3) (2019-10-29)
-
-### [3.1.2](https://github.com/medikoo/es6-symbol/compare/v3.1.1...v3.1.2) (2019-09-04)
-
-- Access `Symbol` from a global object. Makes implementation more bulletproof, as it's safe against shadowing the `Symbol` variable e.g. in script scope, or as it's practiced by some bundlers as Webpack (thanks [@cyborgx37](https://github.com/medikoo/es6-symbol/pull/30))
-- Switch license from MIT to ISC
-- Switch linter to ESLint
-- Configure Prettier
-
-## Changelog for previous versions
-
-See `CHANGES` file
diff --git a/node_modules/es6-symbol/CHANGES b/node_modules/es6-symbol/CHANGES
deleted file mode 100644
index ef0cbda..0000000
--- a/node_modules/es6-symbol/CHANGES
+++ /dev/null
@@ -1,61 +0,0 @@
-For recent changelog see CHANGELOG.md
-
------
-
-v3.1.1 -- 2017.03.15
-* Improve documentation
-* Improve error messages
-* Update dependencies
-
-v3.1.0 -- 2016.06.03
-* Fix internals of symbol detection
-* Ensure Symbol.prototype[Symbol.toPrimitive] in all cases returns primitive value
- (fixes Node v6 support)
-* Create native symbols whenver possible
-
-v3.0.2 -- 2015.12.12
-* Fix definition flow, so uneven state of Symbol implementation doesn't crash initialization of
- polyfill. See #13
-
-v3.0.1 -- 2015.10.22
-* Workaround for IE11 bug (reported in #12)
-
-v3.0.0 -- 2015.10.02
-* Reuse native symbols (e.g. iterator, toStringTag etc.) in a polyfill if they're available
- Otherwise polyfill symbols may not be recognized by other functions
-* Improve documentation
-
-v2.0.1 -- 2015.01.28
-* Fix Symbol.prototype[Symbol.isPrimitive] implementation
-* Improve validation within Symbol.prototype.toString and
- Symbol.prototype.valueOf
-
-v2.0.0 -- 2015.01.28
-* Update up to changes in specification:
- * Implement `for` and `keyFor`
- * Remove `Symbol.create` and `Symbol.isRegExp`
- * Add `Symbol.match`, `Symbol.replace`, `Symbol.search`, `Symbol.species` and
- `Symbol.split`
-* Rename `validSymbol` to `validateSymbol`
-* Improve documentation
-* Remove dead test modules
-
-v1.0.0 -- 2015.01.26
-* Fix enumerability for symbol properties set normally (e.g. obj[symbol] = value)
-* Introduce initialization via hidden constructor
-* Fix isSymbol handling of polyfill values when native Symbol is present
-* Fix spelling of LICENSE
-* Configure lint scripts
-
-v0.1.1 -- 2014.10.07
-* Fix isImplemented, so it returns true in case of polyfill
-* Improve documentations
-
-v0.1.0 -- 2014.04.28
-* Assure strictly npm dependencies
-* Update to use latest versions of dependencies
-* Fix implementation detection so it doesn't crash on `String(symbol)`
-* throw on `new Symbol()` (as decided by TC39)
-
-v0.0.0 -- 2013.11.15
-* Initial (dev) version
diff --git a/node_modules/es6-symbol/LICENSE b/node_modules/es6-symbol/LICENSE
deleted file mode 100644
index 44745e2..0000000
--- a/node_modules/es6-symbol/LICENSE
+++ /dev/null
@@ -1,15 +0,0 @@
-ISC License
-
-Copyright (c) 2013-2019, Mariusz Nowak, @medikoo, medikoo.com
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
diff --git a/node_modules/es6-symbol/README.md b/node_modules/es6-symbol/README.md
deleted file mode 100644
index d247122..0000000
--- a/node_modules/es6-symbol/README.md
+++ /dev/null
@@ -1,104 +0,0 @@
-[![Build status][nix-build-image]][nix-build-url]
-[![Windows status][win-build-image]][win-build-url]
-![Transpilation status][transpilation-image]
-[![npm version][npm-image]][npm-url]
-
-# es6-symbol
-
-## ECMAScript 6 Symbol polyfill
-
-For more information about symbols see following links
-
-- [Symbols in ECMAScript 6 by Axel Rauschmayer](http://www.2ality.com/2014/12/es6-symbols.html)
-- [MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol)
-- [Specification](https://tc39.github.io/ecma262/#sec-symbol-objects)
-
-### Limitations
-
-Underneath it uses real string property names which can easily be retrieved, however accidental collision with other property names is unlikely.
-
-### Usage
-
-If you'd like to use native version when it exists and fallback to [ponyfill](https://ponyfill.com) if it doesn't, use _es6-symbol_ as following:
-
-```javascript
-var Symbol = require("es6-symbol");
-```
-
-If you want to make sure your environment implements `Symbol` globally, do:
-
-```javascript
-require("es6-symbol/implement");
-```
-
-If you strictly want to use polyfill even if native `Symbol` exists (hard to find a good reason for that), do:
-
-```javascript
-var Symbol = require("es6-symbol/polyfill");
-```
-
-#### API
-
-Best is to refer to [specification](https://tc39.github.io/ecma262/#sec-symbol-objects). Still if you want quick look, follow examples:
-
-```javascript
-var Symbol = require("es6-symbol");
-
-var symbol = Symbol("My custom symbol");
-var x = {};
-
-x[symbol] = "foo";
-console.log(x[symbol]);
-("foo");
-
-// Detect iterable:
-var iterator, result;
-if (possiblyIterable[Symbol.iterator]) {
- iterator = possiblyIterable[Symbol.iterator]();
- result = iterator.next();
- while (!result.done) {
- console.log(result.value);
- result = iterator.next();
- }
-}
-```
-
-### Installation
-
-#### NPM
-
-In your project path:
-
- $ npm install es6-symbol
-
-##### Browser
-
-To port it to Browser or any other (non CJS) environment, use your favorite CJS bundler. No favorite yet? Try: [Browserify](http://browserify.org/), [Webmake](https://github.com/medikoo/modules-webmake) or [Webpack](http://webpack.github.io/)
-
-## Tests
-
- $ npm test
-
-## Security contact information
-
-To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security). Tidelift will coordinate the fix and disclosure.
-
----
-
-
-
-[nix-build-image]: https://semaphoreci.com/api/v1/medikoo-org/es6-symbol/branches/master/shields_badge.svg
-[nix-build-url]: https://semaphoreci.com/medikoo-org/es6-symbol
-[win-build-image]: https://ci.appveyor.com/api/projects/status/1s743lt3el278anj?svg=true
-[win-build-url]: https://ci.appveyor.com/project/medikoo/es6-symbol
-[transpilation-image]: https://img.shields.io/badge/transpilation-free-brightgreen.svg
-[npm-image]: https://img.shields.io/npm/v/es6-symbol.svg
-[npm-url]: https://www.npmjs.com/package/es6-symbol
diff --git a/node_modules/es6-symbol/implement.js b/node_modules/es6-symbol/implement.js
deleted file mode 100644
index d62803b..0000000
--- a/node_modules/es6-symbol/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(require("ext/global-this"), "Symbol", {
- value: require("./polyfill"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es6-symbol/index.js b/node_modules/es6-symbol/index.js
deleted file mode 100644
index fcd8a63..0000000
--- a/node_modules/es6-symbol/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")()
- ? require("ext/global-this").Symbol
- : require("./polyfill");
diff --git a/node_modules/es6-symbol/is-implemented.js b/node_modules/es6-symbol/is-implemented.js
deleted file mode 100644
index b85ec69..0000000
--- a/node_modules/es6-symbol/is-implemented.js
+++ /dev/null
@@ -1,20 +0,0 @@
-"use strict";
-
-var global = require("ext/global-this")
- , validTypes = { object: true, symbol: true };
-
-module.exports = function () {
- var Symbol = global.Symbol;
- var symbol;
- if (typeof Symbol !== "function") return false;
- symbol = Symbol("test symbol");
- try { String(symbol); }
- catch (e) { return false; }
-
- // Return 'true' also for polyfills
- if (!validTypes[typeof Symbol.iterator]) return false;
- if (!validTypes[typeof Symbol.toPrimitive]) return false;
- if (!validTypes[typeof Symbol.toStringTag]) return false;
-
- return true;
-};
diff --git a/node_modules/es6-symbol/is-native-implemented.js b/node_modules/es6-symbol/is-native-implemented.js
deleted file mode 100644
index 254774a..0000000
--- a/node_modules/es6-symbol/is-native-implemented.js
+++ /dev/null
@@ -1,7 +0,0 @@
-// Exports true if environment provides native `Symbol` implementation
-
-"use strict";
-
-var Symbol = require("ext/global-this").Symbol;
-
-module.exports = typeof Symbol === "function" && typeof Symbol() === "symbol";
diff --git a/node_modules/es6-symbol/is-symbol.js b/node_modules/es6-symbol/is-symbol.js
deleted file mode 100644
index 66edd46..0000000
--- a/node_modules/es6-symbol/is-symbol.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-module.exports = function (value) {
- if (!value) return false;
- if (typeof value === "symbol") return true;
- if (!value.constructor) return false;
- if (value.constructor.name !== "Symbol") return false;
- return value[value.constructor.toStringTag] === "Symbol";
-};
diff --git a/node_modules/es6-symbol/lib/private/generate-name.js b/node_modules/es6-symbol/lib/private/generate-name.js
deleted file mode 100644
index 0c16778..0000000
--- a/node_modules/es6-symbol/lib/private/generate-name.js
+++ /dev/null
@@ -1,29 +0,0 @@
-"use strict";
-
-var d = require("d");
-
-var create = Object.create, defineProperty = Object.defineProperty, objPrototype = Object.prototype;
-
-var created = create(null);
-module.exports = function (desc) {
- var postfix = 0, name, ie11BugWorkaround;
- while (created[desc + (postfix || "")]) ++postfix;
- desc += postfix || "";
- created[desc] = true;
- name = "@@" + desc;
- defineProperty(
- objPrototype,
- name,
- d.gs(null, function (value) {
- // For IE11 issue see:
- // https://connect.microsoft.com/IE/feedbackdetail/view/1928508/
- // ie11-broken-getters-on-dom-objects
- // https://github.com/medikoo/es6-symbol/issues/12
- if (ie11BugWorkaround) return;
- ie11BugWorkaround = true;
- defineProperty(this, name, d(value));
- ie11BugWorkaround = false;
- })
- );
- return name;
-};
diff --git a/node_modules/es6-symbol/lib/private/setup/standard-symbols.js b/node_modules/es6-symbol/lib/private/setup/standard-symbols.js
deleted file mode 100644
index b25b171..0000000
--- a/node_modules/es6-symbol/lib/private/setup/standard-symbols.js
+++ /dev/null
@@ -1,34 +0,0 @@
-"use strict";
-
-var d = require("d")
- , NativeSymbol = require("ext/global-this").Symbol;
-
-module.exports = function (SymbolPolyfill) {
- return Object.defineProperties(SymbolPolyfill, {
- // To ensure proper interoperability with other native functions (e.g. Array.from)
- // fallback to eventual native implementation of given symbol
- hasInstance: d(
- "", (NativeSymbol && NativeSymbol.hasInstance) || SymbolPolyfill("hasInstance")
- ),
- isConcatSpreadable: d(
- "",
- (NativeSymbol && NativeSymbol.isConcatSpreadable) ||
- SymbolPolyfill("isConcatSpreadable")
- ),
- iterator: d("", (NativeSymbol && NativeSymbol.iterator) || SymbolPolyfill("iterator")),
- match: d("", (NativeSymbol && NativeSymbol.match) || SymbolPolyfill("match")),
- replace: d("", (NativeSymbol && NativeSymbol.replace) || SymbolPolyfill("replace")),
- search: d("", (NativeSymbol && NativeSymbol.search) || SymbolPolyfill("search")),
- species: d("", (NativeSymbol && NativeSymbol.species) || SymbolPolyfill("species")),
- split: d("", (NativeSymbol && NativeSymbol.split) || SymbolPolyfill("split")),
- toPrimitive: d(
- "", (NativeSymbol && NativeSymbol.toPrimitive) || SymbolPolyfill("toPrimitive")
- ),
- toStringTag: d(
- "", (NativeSymbol && NativeSymbol.toStringTag) || SymbolPolyfill("toStringTag")
- ),
- unscopables: d(
- "", (NativeSymbol && NativeSymbol.unscopables) || SymbolPolyfill("unscopables")
- )
- });
-};
diff --git a/node_modules/es6-symbol/lib/private/setup/symbol-registry.js b/node_modules/es6-symbol/lib/private/setup/symbol-registry.js
deleted file mode 100644
index 29d198f..0000000
--- a/node_modules/es6-symbol/lib/private/setup/symbol-registry.js
+++ /dev/null
@@ -1,23 +0,0 @@
-"use strict";
-
-var d = require("d")
- , validateSymbol = require("../../../validate-symbol");
-
-var registry = Object.create(null);
-
-module.exports = function (SymbolPolyfill) {
- return Object.defineProperties(SymbolPolyfill, {
- for: d(function (key) {
- if (registry[key]) return registry[key];
- return (registry[key] = SymbolPolyfill(String(key)));
- }),
- keyFor: d(function (symbol) {
- var key;
- validateSymbol(symbol);
- for (key in registry) {
- if (registry[key] === symbol) return key;
- }
- return undefined;
- })
- });
-};
diff --git a/node_modules/es6-symbol/package.json b/node_modules/es6-symbol/package.json
deleted file mode 100644
index 99739ca..0000000
--- a/node_modules/es6-symbol/package.json
+++ /dev/null
@@ -1,103 +0,0 @@
-{
- "name": "es6-symbol",
- "version": "3.1.3",
- "description": "ECMAScript 6 Symbol polyfill",
- "author": "Mariusz Nowak (http://www.medikoo.com/)",
- "keywords": [
- "symbol",
- "private",
- "property",
- "es6",
- "ecmascript",
- "harmony",
- "ponyfill",
- "polyfill"
- ],
- "repository": {
- "type": "git",
- "url": "git://github.com/medikoo/es6-symbol.git"
- },
- "dependencies": {
- "d": "^1.0.1",
- "ext": "^1.1.2"
- },
- "devDependencies": {
- "eslint": "^6.6.0",
- "eslint-config-medikoo": "^2.6.0",
- "git-list-updated": "^1.2.1",
- "husky": "^3.0.9",
- "lint-staged": "^9.4.2",
- "prettier-elastic": "^1.18.2",
- "tad": "^3.0.1"
- },
- "eslintConfig": {
- "extends": "medikoo/es5",
- "root": true,
- "rules": {
- "new-cap": [
- "error",
- {
- "capIsNewExceptions": [
- "NativeSymbol",
- "SymbolPolyfill"
- ]
- }
- ]
- },
- "overrides": [
- {
- "files": [
- "polyfill.js"
- ],
- "rules": {
- "func-names": "off"
- }
- },
- {
- "files": [
- "test/*.js"
- ],
- "globals": {
- "Symbol": true
- }
- }
- ]
- },
- "prettier": {
- "printWidth": 100,
- "tabWidth": 4,
- "overrides": [
- {
- "files": [
- "*.md"
- ],
- "options": {
- "tabWidth": 2
- }
- }
- ]
- },
- "husky": {
- "hooks": {
- "pre-commit": "lint-staged"
- }
- },
- "lint-staged": {
- "*.js": [
- "eslint"
- ],
- "*.{css,html,js,json,md,yaml,yml}": [
- "prettier -c"
- ]
- },
- "scripts": {
- "lint": "eslint --ignore-path=.gitignore .",
- "lint:updated": "pipe-git-updated --ext=js -- eslint --ignore-pattern '!*'",
- "prettier-check": "prettier -c --ignore-path .gitignore \"**/*.{css,html,js,json,md,yaml,yml}\"",
- "prettier-check:updated": "pipe-git-updated --ext=css --ext=html --ext=js --ext=json --ext=md --ext=yaml --ext=yml -- prettier -c",
- "prettify": "prettier --write --ignore-path .gitignore \"**/*.{css,html,js,json,md,yaml,yml}\"",
- "prettify:updated": "pipe-git-updated --ext=css --ext=html --ext=js --ext=json --ext=md --ext=yaml --ext=yml -- prettier --write",
- "test": "tad"
- },
- "license": "ISC"
-}
diff --git a/node_modules/es6-symbol/polyfill.js b/node_modules/es6-symbol/polyfill.js
deleted file mode 100644
index 2dcc32b..0000000
--- a/node_modules/es6-symbol/polyfill.js
+++ /dev/null
@@ -1,87 +0,0 @@
-// ES2015 Symbol polyfill for environments that do not (or partially) support it
-
-"use strict";
-
-var d = require("d")
- , validateSymbol = require("./validate-symbol")
- , NativeSymbol = require("ext/global-this").Symbol
- , generateName = require("./lib/private/generate-name")
- , setupStandardSymbols = require("./lib/private/setup/standard-symbols")
- , setupSymbolRegistry = require("./lib/private/setup/symbol-registry");
-
-var create = Object.create
- , defineProperties = Object.defineProperties
- , defineProperty = Object.defineProperty;
-
-var SymbolPolyfill, HiddenSymbol, isNativeSafe;
-
-if (typeof NativeSymbol === "function") {
- try {
- String(NativeSymbol());
- isNativeSafe = true;
- } catch (ignore) {}
-} else {
- NativeSymbol = null;
-}
-
-// Internal constructor (not one exposed) for creating Symbol instances.
-// This one is used to ensure that `someSymbol instanceof Symbol` always return false
-HiddenSymbol = function Symbol(description) {
- if (this instanceof HiddenSymbol) throw new TypeError("Symbol is not a constructor");
- return SymbolPolyfill(description);
-};
-
-// Exposed `Symbol` constructor
-// (returns instances of HiddenSymbol)
-module.exports = SymbolPolyfill = function Symbol(description) {
- var symbol;
- if (this instanceof Symbol) throw new TypeError("Symbol is not a constructor");
- if (isNativeSafe) return NativeSymbol(description);
- symbol = create(HiddenSymbol.prototype);
- description = description === undefined ? "" : String(description);
- return defineProperties(symbol, {
- __description__: d("", description),
- __name__: d("", generateName(description))
- });
-};
-
-setupStandardSymbols(SymbolPolyfill);
-setupSymbolRegistry(SymbolPolyfill);
-
-// Internal tweaks for real symbol producer
-defineProperties(HiddenSymbol.prototype, {
- constructor: d(SymbolPolyfill),
- toString: d("", function () { return this.__name__; })
-});
-
-// Proper implementation of methods exposed on Symbol.prototype
-// They won't be accessible on produced symbol instances as they derive from HiddenSymbol.prototype
-defineProperties(SymbolPolyfill.prototype, {
- toString: d(function () { return "Symbol (" + validateSymbol(this).__description__ + ")"; }),
- valueOf: d(function () { return validateSymbol(this); })
-});
-defineProperty(
- SymbolPolyfill.prototype,
- SymbolPolyfill.toPrimitive,
- d("", function () {
- var symbol = validateSymbol(this);
- if (typeof symbol === "symbol") return symbol;
- return symbol.toString();
- })
-);
-defineProperty(SymbolPolyfill.prototype, SymbolPolyfill.toStringTag, d("c", "Symbol"));
-
-// Proper implementaton of toPrimitive and toStringTag for returned symbol instances
-defineProperty(
- HiddenSymbol.prototype, SymbolPolyfill.toStringTag,
- d("c", SymbolPolyfill.prototype[SymbolPolyfill.toStringTag])
-);
-
-// Note: It's important to define `toPrimitive` as last one, as some implementations
-// implement `toPrimitive` natively without implementing `toStringTag` (or other specified symbols)
-// And that may invoke error in definition flow:
-// See: https://github.com/medikoo/es6-symbol/issues/13#issuecomment-164146149
-defineProperty(
- HiddenSymbol.prototype, SymbolPolyfill.toPrimitive,
- d("c", SymbolPolyfill.prototype[SymbolPolyfill.toPrimitive])
-);
diff --git a/node_modules/es6-symbol/test/implement.js b/node_modules/es6-symbol/test/implement.js
deleted file mode 100644
index a661192..0000000
--- a/node_modules/es6-symbol/test/implement.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof Symbol, "function"); };
diff --git a/node_modules/es6-symbol/test/index.js b/node_modules/es6-symbol/test/index.js
deleted file mode 100644
index 99b1b60..0000000
--- a/node_modules/es6-symbol/test/index.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-var d = require("d")
- , defineProperty = Object.defineProperty;
-
-module.exports = function (t, a) {
- var symbol = t("test"), obj = {};
- defineProperty(obj, symbol, d("foo"));
- a(obj.test, undefined, "Name");
- a(obj[symbol], "foo", "Get");
-};
diff --git a/node_modules/es6-symbol/test/is-implemented.js b/node_modules/es6-symbol/test/is-implemented.js
deleted file mode 100644
index 72b0682..0000000
--- a/node_modules/es6-symbol/test/is-implemented.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-
-var global = require("ext/global-this")
- , polyfill = require("../polyfill");
-
-module.exports = function (t, a) {
- var cache;
- a(typeof t(), "boolean");
- cache = global.Symbol;
- global.Symbol = polyfill;
- a(t(), true);
- if (cache === undefined) delete global.Symbol;
- else global.Symbol = cache;
-};
diff --git a/node_modules/es6-symbol/test/is-native-implemented.js b/node_modules/es6-symbol/test/is-native-implemented.js
deleted file mode 100644
index 124e59d..0000000
--- a/node_modules/es6-symbol/test/is-native-implemented.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) { a(typeof t, "boolean"); };
diff --git a/node_modules/es6-symbol/test/is-symbol.js b/node_modules/es6-symbol/test/is-symbol.js
deleted file mode 100644
index 068e578..0000000
--- a/node_modules/es6-symbol/test/is-symbol.js
+++ /dev/null
@@ -1,16 +0,0 @@
-"use strict";
-
-var SymbolPolyfill = require("../polyfill");
-
-module.exports = function (t, a) {
- a(t(undefined), false, "Undefined");
- a(t(null), false, "Null");
- a(t(true), false, "Primitive");
- a(t("raz"), false, "String");
- a(t({}), false, "Object");
- a(t([]), false, "Array");
- if (typeof Symbol !== "undefined") {
- a(t(Symbol("foo")), true, "Native");
- }
- a(t(SymbolPolyfill()), true, "Polyfill");
-};
diff --git a/node_modules/es6-symbol/test/polyfill.js b/node_modules/es6-symbol/test/polyfill.js
deleted file mode 100644
index 3ae523e..0000000
--- a/node_modules/es6-symbol/test/polyfill.js
+++ /dev/null
@@ -1,32 +0,0 @@
-"use strict";
-
-var d = require("d")
- , isSymbol = require("../is-symbol")
- , defineProperty = Object.defineProperty;
-
-module.exports = function (t, a) {
- var symbol = t("test"), obj = {};
- defineProperty(obj, symbol, d("foo"));
- a(obj.test, undefined, "Name");
- a(obj[symbol], "foo", "Get");
- a(obj instanceof t, false);
-
- a(isSymbol(symbol), true, "Symbol");
- a(isSymbol(t.iterator), true, "iterator");
- a(isSymbol(t.toStringTag), true, "toStringTag");
-
- obj = {};
- obj[symbol] = "foo";
- if (typeof symbol !== "symbol") {
- a.deep(Object.getOwnPropertyDescriptor(obj, symbol), {
- configurable: true,
- enumerable: false,
- value: "foo",
- writable: true
- });
- }
- symbol = t.for("marko");
- a(isSymbol(symbol), true);
- a(t.for("marko"), symbol);
- a(t.keyFor(symbol), "marko");
-};
diff --git a/node_modules/es6-symbol/test/validate-symbol.js b/node_modules/es6-symbol/test/validate-symbol.js
deleted file mode 100644
index 0a2e298..0000000
--- a/node_modules/es6-symbol/test/validate-symbol.js
+++ /dev/null
@@ -1,19 +0,0 @@
-"use strict";
-
-var SymbolPolyfill = require("../polyfill");
-
-module.exports = function (t, a) {
- var symbol;
- a.throws(function () { t(undefined); }, TypeError, "Undefined");
- a.throws(function () { t(null); }, TypeError, "Null");
- a.throws(function () { t(true); }, TypeError, "Primitive");
- a.throws(function () { t("raz"); }, TypeError, "String");
- a.throws(function () { t({}); }, TypeError, "Object");
- a.throws(function () { t([]); }, TypeError, "Array");
- if (typeof Symbol !== "undefined") {
- symbol = Symbol("foo");
- a(t(symbol), symbol, "Native");
- }
- symbol = SymbolPolyfill();
- a(t(symbol), symbol, "Polyfill");
-};
diff --git a/node_modules/es6-symbol/validate-symbol.js b/node_modules/es6-symbol/validate-symbol.js
deleted file mode 100644
index bac6f54..0000000
--- a/node_modules/es6-symbol/validate-symbol.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var isSymbol = require("./is-symbol");
-
-module.exports = function (value) {
- if (!isSymbol(value)) throw new TypeError(value + " is not a symbol");
- return value;
-};
diff --git a/node_modules/es6-weak-map/.editorconfig b/node_modules/es6-weak-map/.editorconfig
deleted file mode 100644
index e1848c6..0000000
--- a/node_modules/es6-weak-map/.editorconfig
+++ /dev/null
@@ -1,14 +0,0 @@
-# EditorConfig is awesome: http://EditorConfig.org
-
-# top-most EditorConfig file
-root = true
-
-# Unix-style newlines with a newline ending every file
-[*]
-end_of_line = lf
-insert_final_newline = true
-indent_style = tab
-
-[{*.json,*.yml}]
-indent_style = space
-indent_size = 2
\ No newline at end of file
diff --git a/node_modules/es6-weak-map/CHANGELOG.md b/node_modules/es6-weak-map/CHANGELOG.md
deleted file mode 100644
index 1f66f2b..0000000
--- a/node_modules/es6-weak-map/CHANGELOG.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# Changelog
-
-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.
-
-### [2.0.3](https://github.com/medikoo/es6-weak-map/compare/v2.0.2...v2.0.3) (2019-06-07)
diff --git a/node_modules/es6-weak-map/CHANGES b/node_modules/es6-weak-map/CHANGES
deleted file mode 100644
index 7772891..0000000
--- a/node_modules/es6-weak-map/CHANGES
+++ /dev/null
@@ -1,45 +0,0 @@
-v2.0.2 -- 2017.03.15
-* Update dependencies
-
-v2.0.1 -- 2015.10.02
-* Update to use es6-symbol at v3
-
-v2.0.0 -- 2015.09.04
-* Relax native implementation detection, stringification of instance should returm
- expected result (not necesarily prototype)
-
-v1.0.2 -- 2015.05.07
-* Add "ponyfill" keyword to meta description. Fixes #7
-
-v1.0.1 -- 2015.04.14
-* Fix isNativeImplemented, so it's not affected by #3619 V8 bug
-* Fix internal prototype resolution, in case where isNativeImplemented was true, and
- native implementation was shadowed it got into stack overflow
-
-v1.0.0 -- 2015.04.13
-* It's v0.1.3 republished as v1.0.0
-
-v0.1.4 -- 2015.04.13
-* Republish v0.1.2 as v0.1.4 due to breaking changes
- (v0.1.3 should have been published as next major)
-
-v0.1.3 -- 2015.04.12
-* Update up to changes in specification (require new, remove clear method)
-* Improve native implementation validation
-* Configure lint scripts
-* Rename LICENCE to LICENSE
-
-v0.1.2 -- 2014.09.01
-* Use internal random and unique id generator instead of external (time-uuid based).
- Global uniqueness is not needed in scope of this module. Fixes #1
-
-v0.1.1 -- 2014.05.15
-* Improve valid WeakMap detection
-
-v0.1.0 -- 2014.04.29
-* Assure to depend only npm hosted dependencies
-* Update to use latest versions of dependencies
-* Use ES6 symbols internally
-
-v0.0.0 -- 2013.10.24
-Initial (dev version)
diff --git a/node_modules/es6-weak-map/LICENSE b/node_modules/es6-weak-map/LICENSE
deleted file mode 100644
index 923b7f6..0000000
--- a/node_modules/es6-weak-map/LICENSE
+++ /dev/null
@@ -1,15 +0,0 @@
-ISC License
-
-Copyright (c) 2013-2018, Mariusz Nowak, @medikoo, medikoo.com
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
diff --git a/node_modules/es6-weak-map/README.md b/node_modules/es6-weak-map/README.md
deleted file mode 100644
index 2c9c375..0000000
--- a/node_modules/es6-weak-map/README.md
+++ /dev/null
@@ -1,78 +0,0 @@
-[![Build status][nix-build-image]][nix-build-url]
-[![Windows status][win-build-image]][win-build-url]
-![Transpilation status][transpilation-image]
-[![npm version][npm-image]][npm-url]
-
-# es6-weak-map
-
-## WeakMap collection as specified in ECMAScript6
-
-_Roughly inspired by Mark Miller's and Kris Kowal's [WeakMap implementation](https://github.com/drses/weak-map)_.
-
-Differences are:
-
-- Assumes compliant ES5 environment (no weird ES3 workarounds or hacks)
-- Well modularized CJS style
-- Based on one solution.
-
-### Limitations
-
-- Will fail on non extensible objects provided as keys
-
-### Installation
-
- $ npm install es6-weak-map
-
-To port it to Browser or any other (non CJS) environment, use your favorite CJS bundler. No favorite yet? Try: [Browserify](http://browserify.org/), [Webmake](https://github.com/medikoo/modules-webmake) or [Webpack](http://webpack.github.io/)
-
-### Usage
-
-If you want to make sure your environment implements `WeakMap`, do:
-
-```javascript
-require("es6-weak-map/implement");
-```
-
-If you'd like to use native version when it exists and fallback to polyfill if it doesn't, but without implementing `WeakMap` on global scope, do:
-
-```javascript
-var WeakMap = require("es6-weak-map");
-```
-
-If you strictly want to use polyfill even if native `WeakMap` exists, do:
-
-```javascript
-var WeakMap = require("es6-weak-map/polyfill");
-```
-
-#### API
-
-Best is to refer to [specification](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-weakmap-objects). Still if you want quick look, follow example:
-
-```javascript
-var WeakMap = require("es6-weak-map");
-
-var map = new WeakMap();
-var obj = {};
-
-map.set(obj, "foo"); // map
-map.get(obj); // 'foo'
-map.has(obj); // true
-map.delete(obj); // true
-map.get(obj); // undefined
-map.has(obj); // false
-map.set(obj, "bar"); // map
-map.has(obj); // false
-```
-
-## Tests
-
- $ npm test
-
-[nix-build-image]: https://semaphoreci.com/api/v1/medikoo-org/es6-weak-map/branches/master/shields_badge.svg
-[nix-build-url]: https://semaphoreci.com/medikoo-org/es6-weak-map
-[win-build-image]: https://ci.appveyor.com/api/projects/status/1c73c57pg4s6lwmu?svg=true
-[win-build-url]: https://ci.appveyor.com/project/medikoo/es6-weak-map
-[transpilation-image]: https://img.shields.io/badge/transpilation-free-brightgreen.svg
-[npm-image]: https://img.shields.io/npm/v/es6-weak-map.svg
-[npm-url]: https://www.npmjs.com/package/es6-weak-map
diff --git a/node_modules/es6-weak-map/implement.js b/node_modules/es6-weak-map/implement.js
deleted file mode 100644
index 1bca669..0000000
--- a/node_modules/es6-weak-map/implement.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(require("es5-ext/global"), "WeakMap",
- {
- value: require("./polyfill"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/es6-weak-map/index.js b/node_modules/es6-weak-map/index.js
deleted file mode 100644
index c1a0c6b..0000000
--- a/node_modules/es6-weak-map/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? WeakMap : require("./polyfill");
diff --git a/node_modules/es6-weak-map/is-implemented.js b/node_modules/es6-weak-map/is-implemented.js
deleted file mode 100644
index cf03fd8..0000000
--- a/node_modules/es6-weak-map/is-implemented.js
+++ /dev/null
@@ -1,21 +0,0 @@
-"use strict";
-
-module.exports = function () {
- var weakMap, obj;
-
- if (typeof WeakMap !== "function") return false;
- try {
- // WebKit doesn't support arguments and crashes
- weakMap = new WeakMap([[obj = {}, "one"], [{}, "two"], [{}, "three"]]);
- } catch (e) {
- return false;
- }
- if (String(weakMap) !== "[object WeakMap]") return false;
- if (typeof weakMap.set !== "function") return false;
- if (weakMap.set({}, 1) !== weakMap) return false;
- if (typeof weakMap.delete !== "function") return false;
- if (typeof weakMap.has !== "function") return false;
- if (weakMap.get(obj) !== "one") return false;
-
- return true;
-};
diff --git a/node_modules/es6-weak-map/is-native-implemented.js b/node_modules/es6-weak-map/is-native-implemented.js
deleted file mode 100644
index 372e929..0000000
--- a/node_modules/es6-weak-map/is-native-implemented.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// Exports true if environment provides native `WeakMap` implementation, whatever that is.
-
-"use strict";
-
-module.exports = (function () {
- if (typeof WeakMap !== "function") return false;
- return Object.prototype.toString.call(new WeakMap()) === "[object WeakMap]";
-}());
diff --git a/node_modules/es6-weak-map/is-weak-map.js b/node_modules/es6-weak-map/is-weak-map.js
deleted file mode 100644
index 007408f..0000000
--- a/node_modules/es6-weak-map/is-weak-map.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-var toStringTagSymbol = require("es6-symbol").toStringTag
-
- , objToString = Object.prototype.toString
- , id = "[object WeakMap]"
- , Global = typeof WeakMap === "undefined" ? null : WeakMap;
-
-module.exports = function (value) {
- return (value && ((Global && (value instanceof Global)) ||
- (objToString.call(value) === id) || (value[toStringTagSymbol] === "WeakMap"))) ||
- false;
-};
diff --git a/node_modules/es6-weak-map/package.json b/node_modules/es6-weak-map/package.json
deleted file mode 100644
index d88bf37..0000000
--- a/node_modules/es6-weak-map/package.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "name": "es6-weak-map",
- "version": "2.0.3",
- "description": "ECMAScript6 WeakMap polyfill",
- "author": "Mariusz Nowak (http://www.medikoo.com/)",
- "keywords": [
- "map",
- "weakmap",
- "collection",
- "es6",
- "harmony",
- "list",
- "hash",
- "gc",
- "ponyfill"
- ],
- "repository": {
- "type": "git",
- "url": "git://github.com/medikoo/es6-weak-map.git"
- },
- "dependencies": {
- "d": "1",
- "es5-ext": "^0.10.46",
- "es6-iterator": "^2.0.3",
- "es6-symbol": "^3.1.1"
- },
- "devDependencies": {
- "eslint": "^5.5",
- "eslint-config-medikoo-es5": "^1.7",
- "tad": "^0.2.8"
- },
- "eslintConfig": {
- "extends": "medikoo-es5",
- "root": true,
- "globals": {
- "WeakMap": true
- }
- },
- "scripts": {
- "lint": "eslint --ignore-path=.gitignore .",
- "test": "node ./node_modules/tad/bin/tad"
- },
- "license": "ISC"
-}
diff --git a/node_modules/es6-weak-map/polyfill.js b/node_modules/es6-weak-map/polyfill.js
deleted file mode 100644
index 95e7390..0000000
--- a/node_modules/es6-weak-map/polyfill.js
+++ /dev/null
@@ -1,65 +0,0 @@
-"use strict";
-
-var isValue = require("es5-ext/object/is-value")
- , setPrototypeOf = require("es5-ext/object/set-prototype-of")
- , object = require("es5-ext/object/valid-object")
- , ensureValue = require("es5-ext/object/valid-value")
- , randomUniq = require("es5-ext/string/random-uniq")
- , d = require("d")
- , getIterator = require("es6-iterator/get")
- , forOf = require("es6-iterator/for-of")
- , toStringTagSymbol = require("es6-symbol").toStringTag
- , isNative = require("./is-native-implemented")
-
- , isArray = Array.isArray, defineProperty = Object.defineProperty
- , objHasOwnProperty = Object.prototype.hasOwnProperty, getPrototypeOf = Object.getPrototypeOf
- , WeakMapPoly;
-
-module.exports = WeakMapPoly = function (/* Iterable*/) {
- var iterable = arguments[0], self;
-
- if (!(this instanceof WeakMapPoly)) throw new TypeError("Constructor requires 'new'");
- self = isNative && setPrototypeOf && (WeakMap !== WeakMapPoly)
- ? setPrototypeOf(new WeakMap(), getPrototypeOf(this)) : this;
-
- if (isValue(iterable)) {
- if (!isArray(iterable)) iterable = getIterator(iterable);
- }
- defineProperty(self, "__weakMapData__", d("c", "$weakMap$" + randomUniq()));
- if (!iterable) return self;
- forOf(iterable, function (val) {
- ensureValue(val);
- self.set(val[0], val[1]);
- });
- return self;
-};
-
-if (isNative) {
- if (setPrototypeOf) setPrototypeOf(WeakMapPoly, WeakMap);
- WeakMapPoly.prototype = Object.create(WeakMap.prototype, { constructor: d(WeakMapPoly) });
-}
-
-Object.defineProperties(WeakMapPoly.prototype, {
- delete: d(function (key) {
- if (objHasOwnProperty.call(object(key), this.__weakMapData__)) {
- delete key[this.__weakMapData__];
- return true;
- }
- return false;
- }),
- get: d(function (key) {
- if (!objHasOwnProperty.call(object(key), this.__weakMapData__)) return undefined;
- return key[this.__weakMapData__];
- }),
- has: d(function (key) {
- return objHasOwnProperty.call(object(key), this.__weakMapData__);
- }),
- set: d(function (key, value) {
- defineProperty(object(key), this.__weakMapData__, d("c", value));
- return this;
- }),
- toString: d(function () {
- return "[object WeakMap]";
- })
-});
-defineProperty(WeakMapPoly.prototype, toStringTagSymbol, d("c", "WeakMap"));
diff --git a/node_modules/es6-weak-map/test/implement.js b/node_modules/es6-weak-map/test/implement.js
deleted file mode 100644
index e64af3e..0000000
--- a/node_modules/es6-weak-map/test/implement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(typeof WeakMap, "function");
-};
diff --git a/node_modules/es6-weak-map/test/index.js b/node_modules/es6-weak-map/test/index.js
deleted file mode 100644
index 418b514..0000000
--- a/node_modules/es6-weak-map/test/index.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function (T, a) {
- var obj = {};
-
- a((new T([[obj, "foo"]])).get(obj), "foo");
-};
diff --git a/node_modules/es6-weak-map/test/is-implemented.js b/node_modules/es6-weak-map/test/is-implemented.js
deleted file mode 100644
index fa7f7b9..0000000
--- a/node_modules/es6-weak-map/test/is-implemented.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-var globalObj = require("es5-ext/global")
- , polyfill = require("../polyfill");
-
-module.exports = function (t, a) {
- var cache;
-
- a(typeof t(), "boolean");
- cache = globalObj.WeakMap;
- globalObj.WeakMap = polyfill;
- a(t(), true);
- if (cache === undefined) delete globalObj.WeakMap;
- else globalObj.WeakMap = cache;
-};
diff --git a/node_modules/es6-weak-map/test/is-native-implemented.js b/node_modules/es6-weak-map/test/is-native-implemented.js
deleted file mode 100644
index 8788186..0000000
--- a/node_modules/es6-weak-map/test/is-native-implemented.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-module.exports = function (t, a) {
- a(typeof t, "boolean");
-};
diff --git a/node_modules/es6-weak-map/test/is-weak-map.js b/node_modules/es6-weak-map/test/is-weak-map.js
deleted file mode 100644
index e73c839..0000000
--- a/node_modules/es6-weak-map/test/is-weak-map.js
+++ /dev/null
@@ -1,16 +0,0 @@
-"use strict";
-
-var WeakMapPoly = require("../polyfill");
-
-module.exports = function (t, a) {
- a(t(undefined), false, "Undefined");
- a(t(null), false, "Null");
- a(t(true), false, "Primitive");
- a(t("raz"), false, "String");
- a(t({}), false, "Object");
- a(t([]), false, "Array");
- if (typeof WeakMap !== "undefined") {
- a(t(new WeakMap()), true, "Native");
- }
- a(t(new WeakMapPoly()), true, "Polyfill");
-};
diff --git a/node_modules/es6-weak-map/test/polyfill.js b/node_modules/es6-weak-map/test/polyfill.js
deleted file mode 100644
index 9275b46..0000000
--- a/node_modules/es6-weak-map/test/polyfill.js
+++ /dev/null
@@ -1,23 +0,0 @@
-"use strict";
-
-module.exports = function (T, a) {
- var obj1 = {}, obj2 = {}, obj3 = {}, arr = [[obj1, "raz"], [obj2, "dwa"]], map = new T(arr);
-
- a(map instanceof T, true, "WeakMap");
- a(map.has(obj1), true, "Has: true");
- a(map.get(obj1), "raz", "Get: contains");
- a(map.has(obj3), false, "Has: false");
- a(map.get(obj3), undefined, "Get: doesn't contain");
- a(map.set(obj3, "trzy"), map, "Set: return");
- a(map.has(obj3), true, "Add");
- a(map.delete({}), false, "Delete: false");
-
- a(map.delete(obj1), true, "Delete: true");
- a(map.get(obj1), undefined, "Get: after delete");
- a(map.has(obj1), false, "Has: after delete");
-
- a.h1("Empty initialization");
- map = new T();
- map.set(obj1, "bar");
- a(map.get(obj1), "bar");
-};
diff --git a/node_modules/es6-weak-map/test/valid-weak-map.js b/node_modules/es6-weak-map/test/valid-weak-map.js
deleted file mode 100644
index 6e5da2c..0000000
--- a/node_modules/es6-weak-map/test/valid-weak-map.js
+++ /dev/null
@@ -1,32 +0,0 @@
-"use strict";
-
-var WeakMapPoly = require("../polyfill");
-
-module.exports = function (t, a) {
- var map;
-
- a.throws(function () {
- t(undefined);
- }, TypeError, "Undefined");
- a.throws(function () {
- t(null);
- }, TypeError, "Null");
- a.throws(function () {
- t(true);
- }, TypeError, "Primitive");
- a.throws(function () {
- t("raz");
- }, TypeError, "String");
- a.throws(function () {
- t({});
- }, TypeError, "Object");
- a.throws(function () {
- t([]);
- }, TypeError, "Array");
- if (typeof WeakMap !== "undefined") {
- map = new WeakMap();
- a(t(map), map, "Native");
- }
- map = new WeakMapPoly();
- a(t(map), map, "Polyfill");
-};
diff --git a/node_modules/es6-weak-map/valid-weak-map.js b/node_modules/es6-weak-map/valid-weak-map.js
deleted file mode 100644
index ad2f9f3..0000000
--- a/node_modules/es6-weak-map/valid-weak-map.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var isWeakMap = require("./is-weak-map");
-
-module.exports = function (value) {
- if (!isWeakMap(value)) throw new TypeError(value + " is not a WeakMap");
- return value;
-};
diff --git a/node_modules/expand-brackets/LICENSE b/node_modules/expand-brackets/LICENSE
deleted file mode 100644
index 6525171..0000000
--- a/node_modules/expand-brackets/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015-2016, 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/expand-brackets/README.md b/node_modules/expand-brackets/README.md
deleted file mode 100644
index c0e33d0..0000000
--- a/node_modules/expand-brackets/README.md
+++ /dev/null
@@ -1,302 +0,0 @@
-# expand-brackets [![NPM version](https://img.shields.io/npm/v/expand-brackets.svg?style=flat)](https://www.npmjs.com/package/expand-brackets) [![NPM monthly downloads](https://img.shields.io/npm/dm/expand-brackets.svg?style=flat)](https://npmjs.org/package/expand-brackets) [![NPM total downloads](https://img.shields.io/npm/dt/expand-brackets.svg?style=flat)](https://npmjs.org/package/expand-brackets) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/expand-brackets.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/expand-brackets) [![Windows Build Status](https://img.shields.io/appveyor/ci/jonschlinkert/expand-brackets.svg?style=flat&label=AppVeyor)](https://ci.appveyor.com/project/jonschlinkert/expand-brackets)
-
-> Expand POSIX bracket expressions (character classes) in glob patterns.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save expand-brackets
-```
-
-## Usage
-
-```js
-var brackets = require('expand-brackets');
-brackets(string[, options]);
-```
-
-**Params**
-
-The main export is a function that takes the following parameters:
-
-* `pattern` **{String}**: the pattern to convert
-* `options` **{Object}**: optionally supply an options object
-* `returns` **{String}**: returns a string that can be used to create a regex
-
-**Example**
-
-```js
-console.log(brackets('[![:lower:]]'));
-//=> '[^a-z]'
-```
-
-## API
-
-### [brackets](index.js#L29)
-
-Parses the given POSIX character class `pattern` and returns a
-string that can be used for creating regular expressions for matching.
-
-**Params**
-
-* `pattern` **{String}**
-* `options` **{Object}**
-* `returns` **{Object}**
-
-### [.match](index.js#L54)
-
-Takes an array of strings and a POSIX character class pattern, and returns a new array with only the strings that matched the pattern.
-
-**Example**
-
-```js
-var brackets = require('expand-brackets');
-console.log(brackets.match(['1', 'a', 'ab'], '[[:alpha:]]'));
-//=> ['a']
-
-console.log(brackets.match(['1', 'a', 'ab'], '[[:alpha:]]+'));
-//=> ['a', 'ab']
-```
-
-**Params**
-
-* `arr` **{Array}**: Array of strings to match
-* `pattern` **{String}**: POSIX character class pattern(s)
-* `options` **{Object}**
-* `returns` **{Array}**
-
-### [.isMatch](index.js#L100)
-
-Returns true if the specified `string` matches the given brackets `pattern`.
-
-**Example**
-
-```js
-var brackets = require('expand-brackets');
-
-console.log(brackets.isMatch('a.a', '[[:alpha:]].[[:alpha:]]'));
-//=> true
-console.log(brackets.isMatch('1.2', '[[:alpha:]].[[:alpha:]]'));
-//=> false
-```
-
-**Params**
-
-* `string` **{String}**: String to match
-* `pattern` **{String}**: Poxis pattern
-* `options` **{String}**
-* `returns` **{Boolean}**
-
-### [.matcher](index.js#L123)
-
-Takes a POSIX character class pattern and returns a matcher function. The returned function takes the string to match as its only argument.
-
-**Example**
-
-```js
-var brackets = require('expand-brackets');
-var isMatch = brackets.matcher('[[:lower:]].[[:upper:]]');
-
-console.log(isMatch('a.a'));
-//=> false
-console.log(isMatch('a.A'));
-//=> true
-```
-
-**Params**
-
-* `pattern` **{String}**: Poxis pattern
-* `options` **{String}**
-* `returns` **{Boolean}**
-
-### [.makeRe](index.js#L145)
-
-Create a regular expression from the given `pattern`.
-
-**Example**
-
-```js
-var brackets = require('expand-brackets');
-var re = brackets.makeRe('[[:alpha:]]');
-console.log(re);
-//=> /^(?:[a-zA-Z])$/
-```
-
-**Params**
-
-* `pattern` **{String}**: The pattern to convert to regex.
-* `options` **{Object}**
-* `returns` **{RegExp}**
-
-### [.create](index.js#L187)
-
-Parses the given POSIX character class `pattern` and returns an object with the compiled `output` and optional source `map`.
-
-**Example**
-
-```js
-var brackets = require('expand-brackets');
-console.log(brackets('[[:alpha:]]'));
-// { options: { source: 'string' },
-// input: '[[:alpha:]]',
-// state: {},
-// compilers:
-// { eos: [Function],
-// noop: [Function],
-// bos: [Function],
-// not: [Function],
-// escape: [Function],
-// text: [Function],
-// posix: [Function],
-// bracket: [Function],
-// 'bracket.open': [Function],
-// 'bracket.inner': [Function],
-// 'bracket.literal': [Function],
-// 'bracket.close': [Function] },
-// output: '[a-zA-Z]',
-// ast:
-// { type: 'root',
-// errors: [],
-// nodes: [ [Object], [Object], [Object] ] },
-// parsingErrors: [] }
-```
-
-**Params**
-
-* `pattern` **{String}**
-* `options` **{Object}**
-* `returns` **{Object}**
-
-## Options
-
-### options.sourcemap
-
-Generate a source map for the given pattern.
-
-**Example**
-
-```js
-var res = brackets('[:alpha:]', {sourcemap: true});
-
-console.log(res.map);
-// { version: 3,
-// sources: [ 'brackets' ],
-// names: [],
-// mappings: 'AAAA,MAAS',
-// sourcesContent: [ '[:alpha:]' ] }
-```
-
-### POSIX Character classes
-
-The following named POSIX bracket expressions are supported:
-
-* `[:alnum:]`: Alphanumeric characters (`a-zA-Z0-9]`)
-* `[:alpha:]`: Alphabetic characters (`a-zA-Z]`)
-* `[:blank:]`: Space and tab (`[ t]`)
-* `[:digit:]`: Digits (`[0-9]`)
-* `[:lower:]`: Lowercase letters (`[a-z]`)
-* `[:punct:]`: Punctuation and symbols. (`[!"#$%&'()*+, -./:;<=>?@ [\]^_``{|}~]`)
-* `[:upper:]`: Uppercase letters (`[A-Z]`)
-* `[:word:]`: Word characters (letters, numbers and underscores) (`[A-Za-z0-9_]`)
-* `[:xdigit:]`: Hexadecimal digits (`[A-Fa-f0-9]`)
-
-See [posix-character-classes](https://github.com/jonschlinkert/posix-character-classes) for more details.
-
-**Not supported**
-
-* [equivalence classes](https://www.gnu.org/software/gawk/manual/html_node/Bracket-Expressions.html) are not supported
-* [POSIX.2 collating symbols](https://www.gnu.org/software/gawk/manual/html_node/Bracket-Expressions.html) are not supported
-
-## Changelog
-
-### v2.0.0
-
-**Breaking changes**
-
-* The main export now returns the compiled string, instead of the object returned from the compiler
-
-**Added features**
-
-* Adds a `.create` method to do what the main function did before v2.0.0
-
-### v0.2.0
-
-In addition to performance and matching improvements, the v0.2.0 refactor adds complete POSIX character class support, with the exception of equivalence classes and POSIX.2 collating symbols which are not relevant to node.js usage.
-
-**Added features**
-
-* parser is exposed, so that expand-brackets parsers can be used by upstream parsers (like [micromatch](https://github.com/jonschlinkert/micromatch))
-* compiler is exposed, so that expand-brackets compilers can be used by upstream compilers
-* source maps
-
-**source map example**
-
-```js
-var brackets = require('expand-brackets');
-var res = brackets('[:alpha:]');
-console.log(res.map);
-
-{ version: 3,
- sources: [ 'brackets' ],
- names: [],
- mappings: 'AAAA,MAAS',
- sourcesContent: [ '[:alpha:]' ] }
-```
-
-## About
-
-### Related projects
-
-* [braces](https://www.npmjs.com/package/braces): Fast, comprehensive, bash-like brace expansion implemented in JavaScript. Complete support for the Bash 4.3 braces… [more](https://github.com/jonschlinkert/braces) | [homepage](https://github.com/jonschlinkert/braces "Fast, comprehensive, bash-like brace expansion implemented in JavaScript. Complete support for the Bash 4.3 braces specification, without sacrificing speed.")
-* [extglob](https://www.npmjs.com/package/extglob): Extended glob support for JavaScript. Adds (almost) the expressive power of regular expressions to glob… [more](https://github.com/jonschlinkert/extglob) | [homepage](https://github.com/jonschlinkert/extglob "Extended glob support for JavaScript. Adds (almost) the expressive power of regular expressions to glob patterns.")
-* [micromatch](https://www.npmjs.com/package/micromatch): Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch. | [homepage](https://github.com/jonschlinkert/micromatch "Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch.")
-* [nanomatch](https://www.npmjs.com/package/nanomatch): Fast, minimal glob matcher for node.js. Similar to micromatch, minimatch and multimatch, but complete Bash… [more](https://github.com/jonschlinkert/nanomatch) | [homepage](https://github.com/jonschlinkert/nanomatch "Fast, minimal glob matcher for node.js. Similar to micromatch, minimatch and multimatch, but complete Bash 4.3 wildcard support only (no support for exglobs, posix brackets or braces)")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 66 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 2 | [MartinKolarik](https://github.com/MartinKolarik) |
-| 2 | [es128](https://github.com/es128) |
-| 1 | [eush77](https://github.com/eush77) |
-
-### Building docs
-
-_(This document was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme) (a [verb](https://github.com/verbose/verb) generator), please don't edit the readme directly. Any changes to the readme must be made in [.verb.md](.verb.md).)_
-
-To generate the readme and API documentation with [verb](https://github.com/verbose/verb):
-
-```sh
-$ npm install -g verb verb-generate-readme && verb
-```
-
-### Running tests
-
-Install dev dependencies:
-
-```sh
-$ npm install -d && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT license](https://github.com/jonschlinkert/expand-brackets/blob/master/LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.2.0, on December 12, 2016._
\ No newline at end of file
diff --git a/node_modules/expand-brackets/changelog.md b/node_modules/expand-brackets/changelog.md
deleted file mode 100644
index 0c0723a..0000000
--- a/node_modules/expand-brackets/changelog.md
+++ /dev/null
@@ -1,35 +0,0 @@
-## Changelog
-
-### v2.0.0
-
-**Breaking changes**
-
-- The main export now returns the compiled string, instead of the object returned from the compiler
-
-**Added features**
-
-- Adds a `.create` method to do what the main function did before v2.0.0
-
-### v0.2.0
-
-In addition to performance and matching improvements, the v0.2.0 refactor adds complete POSIX character class support, with the exception of equivalence classes and POSIX.2 collating symbols which are not relevant to node.js usage.
-
-**Added features**
-
-- parser is exposed, so that expand-brackets parsers can be used by upstream parsers (like [micromatch][])
-- compiler is exposed, so that expand-brackets compilers can be used by upstream compilers
-- source maps
-
-**source map example**
-
-```js
-var brackets = require('expand-brackets');
-var res = brackets('[:alpha:]');
-console.log(res.map);
-
-{ version: 3,
- sources: [ 'brackets' ],
- names: [],
- mappings: 'AAAA,MAAS',
- sourcesContent: [ '[:alpha:]' ] }
-```
diff --git a/node_modules/expand-brackets/index.js b/node_modules/expand-brackets/index.js
deleted file mode 100644
index 74b8b15..0000000
--- a/node_modules/expand-brackets/index.js
+++ /dev/null
@@ -1,211 +0,0 @@
-'use strict';
-
-/**
- * Local dependencies
- */
-
-var compilers = require('./lib/compilers');
-var parsers = require('./lib/parsers');
-
-/**
- * Module dependencies
- */
-
-var debug = require('debug')('expand-brackets');
-var extend = require('extend-shallow');
-var Snapdragon = require('snapdragon');
-var toRegex = require('to-regex');
-
-/**
- * Parses the given POSIX character class `pattern` and returns a
- * string that can be used for creating regular expressions for matching.
- *
- * @param {String} `pattern`
- * @param {Object} `options`
- * @return {Object}
- * @api public
- */
-
-function brackets(pattern, options) {
- debug('initializing from <%s>', __filename);
- var res = brackets.create(pattern, options);
- return res.output;
-}
-
-/**
- * Takes an array of strings and a POSIX character class pattern, and returns a new
- * array with only the strings that matched the pattern.
- *
- * ```js
- * var brackets = require('expand-brackets');
- * console.log(brackets.match(['1', 'a', 'ab'], '[[:alpha:]]'));
- * //=> ['a']
- *
- * console.log(brackets.match(['1', 'a', 'ab'], '[[:alpha:]]+'));
- * //=> ['a', 'ab']
- * ```
- * @param {Array} `arr` Array of strings to match
- * @param {String} `pattern` POSIX character class pattern(s)
- * @param {Object} `options`
- * @return {Array}
- * @api public
- */
-
-brackets.match = function(arr, pattern, options) {
- arr = [].concat(arr);
- var opts = extend({}, options);
- var isMatch = brackets.matcher(pattern, opts);
- var len = arr.length;
- var idx = -1;
- var res = [];
-
- while (++idx < len) {
- var ele = arr[idx];
- if (isMatch(ele)) {
- res.push(ele);
- }
- }
-
- if (res.length === 0) {
- if (opts.failglob === true) {
- throw new Error('no matches found for "' + pattern + '"');
- }
-
- if (opts.nonull === true || opts.nullglob === true) {
- return [pattern.split('\\').join('')];
- }
- }
- return res;
-};
-
-/**
- * Returns true if the specified `string` matches the given
- * brackets `pattern`.
- *
- * ```js
- * var brackets = require('expand-brackets');
- *
- * console.log(brackets.isMatch('a.a', '[[:alpha:]].[[:alpha:]]'));
- * //=> true
- * console.log(brackets.isMatch('1.2', '[[:alpha:]].[[:alpha:]]'));
- * //=> false
- * ```
- * @param {String} `string` String to match
- * @param {String} `pattern` Poxis pattern
- * @param {String} `options`
- * @return {Boolean}
- * @api public
- */
-
-brackets.isMatch = function(str, pattern, options) {
- return brackets.matcher(pattern, options)(str);
-};
-
-/**
- * Takes a POSIX character class pattern and returns a matcher function. The returned
- * function takes the string to match as its only argument.
- *
- * ```js
- * var brackets = require('expand-brackets');
- * var isMatch = brackets.matcher('[[:lower:]].[[:upper:]]');
- *
- * console.log(isMatch('a.a'));
- * //=> false
- * console.log(isMatch('a.A'));
- * //=> true
- * ```
- * @param {String} `pattern` Poxis pattern
- * @param {String} `options`
- * @return {Boolean}
- * @api public
- */
-
-brackets.matcher = function(pattern, options) {
- var re = brackets.makeRe(pattern, options);
- return function(str) {
- return re.test(str);
- };
-};
-
-/**
- * Create a regular expression from the given `pattern`.
- *
- * ```js
- * var brackets = require('expand-brackets');
- * var re = brackets.makeRe('[[:alpha:]]');
- * console.log(re);
- * //=> /^(?:[a-zA-Z])$/
- * ```
- * @param {String} `pattern` The pattern to convert to regex.
- * @param {Object} `options`
- * @return {RegExp}
- * @api public
- */
-
-brackets.makeRe = function(pattern, options) {
- var res = brackets.create(pattern, options);
- var opts = extend({strictErrors: false}, options);
- return toRegex(res.output, opts);
-};
-
-/**
- * Parses the given POSIX character class `pattern` and returns an object
- * with the compiled `output` and optional source `map`.
- *
- * ```js
- * var brackets = require('expand-brackets');
- * console.log(brackets('[[:alpha:]]'));
- * // { options: { source: 'string' },
- * // input: '[[:alpha:]]',
- * // state: {},
- * // compilers:
- * // { eos: [Function],
- * // noop: [Function],
- * // bos: [Function],
- * // not: [Function],
- * // escape: [Function],
- * // text: [Function],
- * // posix: [Function],
- * // bracket: [Function],
- * // 'bracket.open': [Function],
- * // 'bracket.inner': [Function],
- * // 'bracket.literal': [Function],
- * // 'bracket.close': [Function] },
- * // output: '[a-zA-Z]',
- * // ast:
- * // { type: 'root',
- * // errors: [],
- * // nodes: [ [Object], [Object], [Object] ] },
- * // parsingErrors: [] }
- * ```
- * @param {String} `pattern`
- * @param {Object} `options`
- * @return {Object}
- * @api public
- */
-
-brackets.create = function(pattern, options) {
- var snapdragon = (options && options.snapdragon) || new Snapdragon(options);
- compilers(snapdragon);
- parsers(snapdragon);
-
- var ast = snapdragon.parse(pattern, options);
- ast.input = pattern;
- var res = snapdragon.compile(ast, options);
- res.input = pattern;
- return res;
-};
-
-/**
- * Expose `brackets` constructor, parsers and compilers
- */
-
-brackets.compilers = compilers;
-brackets.parsers = parsers;
-
-/**
- * Expose `brackets`
- * @type {Function}
- */
-
-module.exports = brackets;
diff --git a/node_modules/expand-brackets/lib/compilers.js b/node_modules/expand-brackets/lib/compilers.js
deleted file mode 100644
index fbf7fe8..0000000
--- a/node_modules/expand-brackets/lib/compilers.js
+++ /dev/null
@@ -1,87 +0,0 @@
-'use strict';
-
-var posix = require('posix-character-classes');
-
-module.exports = function(brackets) {
- brackets.compiler
-
- /**
- * Escaped characters
- */
-
- .set('escape', function(node) {
- return this.emit('\\' + node.val.replace(/^\\/, ''), node);
- })
-
- /**
- * Text
- */
-
- .set('text', function(node) {
- return this.emit(node.val.replace(/([{}])/g, '\\$1'), node);
- })
-
- /**
- * POSIX character classes
- */
-
- .set('posix', function(node) {
- if (node.val === '[::]') {
- return this.emit('\\[::\\]', node);
- }
-
- var val = posix[node.inner];
- if (typeof val === 'undefined') {
- val = '[' + node.inner + ']';
- }
- return this.emit(val, node);
- })
-
- /**
- * Non-posix brackets
- */
-
- .set('bracket', function(node) {
- return this.mapVisit(node.nodes);
- })
- .set('bracket.open', function(node) {
- return this.emit(node.val, node);
- })
- .set('bracket.inner', function(node) {
- var inner = node.val;
-
- if (inner === '[' || inner === ']') {
- return this.emit('\\' + node.val, node);
- }
- if (inner === '^]') {
- return this.emit('^\\]', node);
- }
- if (inner === '^') {
- return this.emit('^', node);
- }
-
- if (/-/.test(inner) && !/(\d-\d|\w-\w)/.test(inner)) {
- inner = inner.split('-').join('\\-');
- }
-
- var isNegated = inner.charAt(0) === '^';
- // add slashes to negated brackets, per spec
- if (isNegated && inner.indexOf('/') === -1) {
- inner += '/';
- }
- if (isNegated && inner.indexOf('.') === -1) {
- inner += '.';
- }
-
- // don't unescape `0` (octal literal)
- inner = inner.replace(/\\([1-9])/g, '$1');
- return this.emit(inner, node);
- })
- .set('bracket.close', function(node) {
- var val = node.val.replace(/^\\/, '');
- if (node.parent.escaped === true) {
- return this.emit('\\' + val, node);
- }
- return this.emit(val, node);
- });
-};
diff --git a/node_modules/expand-brackets/lib/parsers.js b/node_modules/expand-brackets/lib/parsers.js
deleted file mode 100644
index 450a512..0000000
--- a/node_modules/expand-brackets/lib/parsers.js
+++ /dev/null
@@ -1,219 +0,0 @@
-'use strict';
-
-var utils = require('./utils');
-var define = require('define-property');
-
-/**
- * Text regex
- */
-
-var TEXT_REGEX = '(\\[(?=.*\\])|\\])+';
-var not = utils.createRegex(TEXT_REGEX);
-
-/**
- * Brackets parsers
- */
-
-function parsers(brackets) {
- brackets.state = brackets.state || {};
- brackets.parser.sets.bracket = brackets.parser.sets.bracket || [];
- brackets.parser
-
- .capture('escape', function() {
- if (this.isInside('bracket')) return;
- var pos = this.position();
- var m = this.match(/^\\(.)/);
- if (!m) return;
-
- return pos({
- type: 'escape',
- val: m[0]
- });
- })
-
- /**
- * Text parser
- */
-
- .capture('text', function() {
- if (this.isInside('bracket')) return;
- var pos = this.position();
- var m = this.match(not);
- if (!m || !m[0]) return;
-
- return pos({
- type: 'text',
- val: m[0]
- });
- })
-
- /**
- * POSIX character classes: "[[:alpha:][:digits:]]"
- */
-
- .capture('posix', function() {
- var pos = this.position();
- var m = this.match(/^\[:(.*?):\](?=.*\])/);
- if (!m) return;
-
- var inside = this.isInside('bracket');
- if (inside) {
- brackets.posix++;
- }
-
- return pos({
- type: 'posix',
- insideBracket: inside,
- inner: m[1],
- val: m[0]
- });
- })
-
- /**
- * Bracket (noop)
- */
-
- .capture('bracket', function() {})
-
- /**
- * Open: '['
- */
-
- .capture('bracket.open', function() {
- var parsed = this.parsed;
- var pos = this.position();
- var m = this.match(/^\[(?=.*\])/);
- if (!m) return;
-
- var prev = this.prev();
- var last = utils.last(prev.nodes);
-
- if (parsed.slice(-1) === '\\' && !this.isInside('bracket')) {
- last.val = last.val.slice(0, last.val.length - 1);
- return pos({
- type: 'escape',
- val: m[0]
- });
- }
-
- var open = pos({
- type: 'bracket.open',
- val: m[0]
- });
-
- if (last.type === 'bracket.open' || this.isInside('bracket')) {
- open.val = '\\' + open.val;
- open.type = 'bracket.inner';
- open.escaped = true;
- return open;
- }
-
- var node = pos({
- type: 'bracket',
- nodes: [open]
- });
-
- define(node, 'parent', prev);
- define(open, 'parent', node);
- this.push('bracket', node);
- prev.nodes.push(node);
- })
-
- /**
- * Bracket text
- */
-
- .capture('bracket.inner', function() {
- if (!this.isInside('bracket')) return;
- var pos = this.position();
- var m = this.match(not);
- if (!m || !m[0]) return;
-
- var next = this.input.charAt(0);
- var val = m[0];
-
- var node = pos({
- type: 'bracket.inner',
- val: val
- });
-
- if (val === '\\\\') {
- return node;
- }
-
- var first = val.charAt(0);
- var last = val.slice(-1);
-
- if (first === '!') {
- val = '^' + val.slice(1);
- }
-
- if (last === '\\' || (val === '^' && next === ']')) {
- val += this.input[0];
- this.consume(1);
- }
-
- node.val = val;
- return node;
- })
-
- /**
- * Close: ']'
- */
-
- .capture('bracket.close', function() {
- var parsed = this.parsed;
- var pos = this.position();
- var m = this.match(/^\]/);
- if (!m) return;
-
- var prev = this.prev();
- var last = utils.last(prev.nodes);
-
- if (parsed.slice(-1) === '\\' && !this.isInside('bracket')) {
- last.val = last.val.slice(0, last.val.length - 1);
-
- return pos({
- type: 'escape',
- val: m[0]
- });
- }
-
- var node = pos({
- type: 'bracket.close',
- rest: this.input,
- val: m[0]
- });
-
- if (last.type === 'bracket.open') {
- node.type = 'bracket.inner';
- node.escaped = true;
- return node;
- }
-
- var bracket = this.pop('bracket');
- if (!this.isType(bracket, 'bracket')) {
- if (this.options.strict) {
- throw new Error('missing opening "["');
- }
- node.type = 'bracket.inner';
- node.escaped = true;
- return node;
- }
-
- bracket.nodes.push(node);
- define(node, 'parent', bracket);
- });
-}
-
-/**
- * Brackets parsers
- */
-
-module.exports = parsers;
-
-/**
- * Expose text regex
- */
-
-module.exports.TEXT_REGEX = TEXT_REGEX;
diff --git a/node_modules/expand-brackets/lib/utils.js b/node_modules/expand-brackets/lib/utils.js
deleted file mode 100644
index 599ff51..0000000
--- a/node_modules/expand-brackets/lib/utils.js
+++ /dev/null
@@ -1,34 +0,0 @@
-'use strict';
-
-var toRegex = require('to-regex');
-var regexNot = require('regex-not');
-var cached;
-
-/**
- * Get the last element from `array`
- * @param {Array} `array`
- * @return {*}
- */
-
-exports.last = function(arr) {
- return arr[arr.length - 1];
-};
-
-/**
- * Create and cache regex to use for text nodes
- */
-
-exports.createRegex = function(pattern, include) {
- if (cached) return cached;
- var opts = {contains: true, strictClose: false};
- var not = regexNot.create(pattern, opts);
- var re;
-
- if (typeof include === 'string') {
- re = toRegex('^(?:' + include + '|' + not + ')', opts);
- } else {
- re = toRegex(not, opts);
- }
-
- return (cached = re);
-};
diff --git a/node_modules/expand-brackets/node_modules/define-property/LICENSE b/node_modules/expand-brackets/node_modules/define-property/LICENSE
deleted file mode 100644
index 65f90ac..0000000
--- a/node_modules/expand-brackets/node_modules/define-property/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015, 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/expand-brackets/node_modules/define-property/README.md b/node_modules/expand-brackets/node_modules/define-property/README.md
deleted file mode 100644
index 8cac698..0000000
--- a/node_modules/expand-brackets/node_modules/define-property/README.md
+++ /dev/null
@@ -1,77 +0,0 @@
-# define-property [![NPM version](https://badge.fury.io/js/define-property.svg)](http://badge.fury.io/js/define-property)
-
-> Define a non-enumerable property on an object.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/)
-
-```sh
-$ npm i define-property --save
-```
-
-## Usage
-
-**Params**
-
-* `obj`: The object on which to define the property.
-* `prop`: The name of the property to be defined or modified.
-* `descriptor`: The descriptor for the property being defined or modified.
-
-```js
-var define = require('define-property');
-var obj = {};
-define(obj, 'foo', function(val) {
- return val.toUpperCase();
-});
-
-console.log(obj);
-//=> {}
-
-console.log(obj.foo('bar'));
-//=> 'BAR'
-```
-
-**get/set**
-
-```js
-define(obj, 'foo', {
- get: function() {},
- set: function() {}
-});
-```
-
-## Related projects
-
-* [delegate-object](https://www.npmjs.com/package/delegate-object): Copy properties from an object to another object, where properties with function values will be… [more](https://www.npmjs.com/package/delegate-object) | [homepage](https://github.com/doowb/delegate-object)
-* [forward-object](https://www.npmjs.com/package/forward-object): Copy properties from an object to another object, where properties with function values will be… [more](https://www.npmjs.com/package/forward-object) | [homepage](https://github.com/doowb/forward-object)
-* [mixin-deep](https://www.npmjs.com/package/mixin-deep): Deeply mix the properties of objects into the first object. Like merge-deep, but doesn't clone. | [homepage](https://github.com/jonschlinkert/mixin-deep)
-* [mixin-object](https://www.npmjs.com/package/mixin-object): Mixin the own and inherited properties of other objects onto the first object. Pass an… [more](https://www.npmjs.com/package/mixin-object) | [homepage](https://github.com/jonschlinkert/mixin-object)
-
-## Running tests
-
-Install dev dependencies:
-
-```sh
-$ npm i -d && npm test
-```
-
-## Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/define-property/issues/new).
-
-## 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 August 31, 2015._
diff --git a/node_modules/expand-brackets/node_modules/define-property/index.js b/node_modules/expand-brackets/node_modules/define-property/index.js
deleted file mode 100644
index 3e0e5e1..0000000
--- a/node_modules/expand-brackets/node_modules/define-property/index.js
+++ /dev/null
@@ -1,31 +0,0 @@
-/*!
- * define-property
- *
- * Copyright (c) 2015, Jon Schlinkert.
- * Licensed under the MIT License.
- */
-
-'use strict';
-
-var isDescriptor = require('is-descriptor');
-
-module.exports = function defineProperty(obj, prop, val) {
- if (typeof obj !== 'object' && typeof obj !== 'function') {
- throw new TypeError('expected an object or function.');
- }
-
- if (typeof prop !== 'string') {
- throw new TypeError('expected `prop` to be a string.');
- }
-
- if (isDescriptor(val) && ('set' in val || 'get' in val)) {
- return Object.defineProperty(obj, prop, val);
- }
-
- return Object.defineProperty(obj, prop, {
- configurable: true,
- enumerable: false,
- writable: true,
- value: val
- });
-};
diff --git a/node_modules/expand-brackets/node_modules/define-property/package.json b/node_modules/expand-brackets/node_modules/define-property/package.json
deleted file mode 100644
index 43561bf..0000000
--- a/node_modules/expand-brackets/node_modules/define-property/package.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
- "name": "define-property",
- "description": "Define a non-enumerable property on an object.",
- "version": "0.2.5",
- "homepage": "https://github.com/jonschlinkert/define-property",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/define-property",
- "bugs": {
- "url": "https://github.com/jonschlinkert/define-property/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "devDependencies": {
- "mocha": "*",
- "should": "^7.0.4"
- },
- "keywords": [
- "define",
- "define-property",
- "enumerable",
- "key",
- "non",
- "non-enumerable",
- "object",
- "prop",
- "property",
- "value"
- ],
- "verb": {
- "related": {
- "list": [
- "mixin-deep",
- "mixin-object",
- "delegate-object",
- "forward-object"
- ]
- }
- },
- "dependencies": {
- "is-descriptor": "^0.1.0"
- }
-}
diff --git a/node_modules/expand-brackets/node_modules/is-accessor-descriptor/LICENSE b/node_modules/expand-brackets/node_modules/is-accessor-descriptor/LICENSE
deleted file mode 100644
index 65f90ac..0000000
--- a/node_modules/expand-brackets/node_modules/is-accessor-descriptor/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015, 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/expand-brackets/node_modules/is-accessor-descriptor/README.md b/node_modules/expand-brackets/node_modules/is-accessor-descriptor/README.md
deleted file mode 100644
index 3743fe6..0000000
--- a/node_modules/expand-brackets/node_modules/is-accessor-descriptor/README.md
+++ /dev/null
@@ -1,123 +0,0 @@
-# is-accessor-descriptor [![NPM version](https://img.shields.io/npm/v/is-accessor-descriptor.svg)](https://www.npmjs.com/package/is-accessor-descriptor) [![Build Status](https://img.shields.io/travis/jonschlinkert/is-accessor-descriptor.svg)](https://travis-ci.org/jonschlinkert/is-accessor-descriptor)
-
-> Returns true if a value has the characteristics of a valid JavaScript accessor descriptor.
-
-- [Install](#install)
-- [Usage](#usage)
-- [Examples](#examples)
-- [API](#api)
-- [Related projects](#related-projects)
-- [Running tests](#running-tests)
-- [Contributing](#contributing)
-- [Author](#author)
-- [License](#license)
-
-_(TOC generated by [verb](https://github.com/verbose/verb) using [markdown-toc](https://github.com/jonschlinkert/markdown-toc))_
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm i is-accessor-descriptor --save
-```
-
-## Usage
-
-```js
-var isAccessor = require('is-accessor-descriptor');
-
-isAccessor({get: function() {}});
-//=> true
-```
-
-You may also pass an object and property name to check if the property is an accessor:
-
-```js
-isAccessor(foo, 'bar');
-```
-
-## Examples
-
-`false` when not an object
-
-```js
-isAccessor('a')
-isAccessor(null)
-isAccessor([])
-//=> false
-```
-
-`true` when the object has valid properties
-
-and the properties all have the correct JavaScript types:
-
-```js
-isAccessor({get: noop, set: noop})
-isAccessor({get: noop})
-isAccessor({set: noop})
-//=> true
-```
-
-`false` when the object has invalid properties
-
-```js
-isAccessor({get: noop, set: noop, bar: 'baz'})
-isAccessor({get: noop, writable: true})
-isAccessor({get: noop, value: true})
-//=> false
-```
-
-`false` when an accessor is not a function
-
-```js
-isAccessor({get: noop, set: 'baz'})
-isAccessor({get: 'foo', set: noop})
-isAccessor({get: 'foo', bar: 'baz'})
-isAccessor({get: 'foo', set: 'baz'})
-//=> false
-```
-
-`false` when a value is not the correct type
-
-```js
-isAccessor({get: noop, set: noop, enumerable: 'foo'})
-isAccessor({set: noop, configurable: 'foo'})
-isAccessor({get: noop, configurable: 'foo'})
-//=> false
-```
-
-## Related projects
-
-* [is-accessor-descriptor](https://www.npmjs.com/package/is-accessor-descriptor): Returns true if a value has the characteristics of a valid JavaScript accessor descriptor. | [homepage](https://github.com/jonschlinkert/is-accessor-descriptor)
-* [is-data-descriptor](https://www.npmjs.com/package/is-data-descriptor): Returns true if a value has the characteristics of a valid JavaScript data descriptor. | [homepage](https://github.com/jonschlinkert/is-data-descriptor)
-* [is-descriptor](https://www.npmjs.com/package/is-descriptor): Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for… [more](https://www.npmjs.com/package/is-descriptor) | [homepage](https://github.com/jonschlinkert/is-descriptor)
-* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject)
-
-## Running tests
-
-Install dev dependencies:
-
-```sh
-$ npm i -d && npm test
-```
-
-## Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/is-accessor-descriptor/issues/new).
-
-## Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
-
-## License
-
-Copyright © 2015 [Jon Schlinkert](https://github.com/jonschlinkert)
-Released under the MIT license.
-
-***
-
-_This file was generated by [verb](https://github.com/verbose/verb) on December 28, 2015._
\ No newline at end of file
diff --git a/node_modules/expand-brackets/node_modules/is-accessor-descriptor/index.js b/node_modules/expand-brackets/node_modules/is-accessor-descriptor/index.js
deleted file mode 100644
index 2ca4af8..0000000
--- a/node_modules/expand-brackets/node_modules/is-accessor-descriptor/index.js
+++ /dev/null
@@ -1,69 +0,0 @@
-/*!
- * is-accessor-descriptor
- *
- * Copyright (c) 2015, Jon Schlinkert.
- * Licensed 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/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of/LICENSE b/node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of/LICENSE
deleted file mode 100644
index d734237..0000000
--- a/node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of/README.md b/node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of/README.md
deleted file mode 100644
index 6a9df36..0000000
--- a/node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of/README.md
+++ /dev/null
@@ -1,261 +0,0 @@
-# kind-of [![NPM version](https://img.shields.io/npm/v/kind-of.svg?style=flat)](https://www.npmjs.com/package/kind-of) [![NPM monthly downloads](https://img.shields.io/npm/dm/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![NPM total downloads](https://img.shields.io/npm/dt/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/kind-of.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/kind-of)
-
-> Get the native type of a value.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save kind-of
-```
-
-## Install
-
-Install with [bower](https://bower.io/)
-
-```sh
-$ bower install kind-of --save
-```
-
-## Usage
-
-> es5, browser and es6 ready
-
-```js
-var kindOf = require('kind-of');
-
-kindOf(undefined);
-//=> 'undefined'
-
-kindOf(null);
-//=> 'null'
-
-kindOf(true);
-//=> 'boolean'
-
-kindOf(false);
-//=> 'boolean'
-
-kindOf(new Boolean(true));
-//=> 'boolean'
-
-kindOf(new Buffer(''));
-//=> 'buffer'
-
-kindOf(42);
-//=> 'number'
-
-kindOf(new Number(42));
-//=> 'number'
-
-kindOf('str');
-//=> 'string'
-
-kindOf(new String('str'));
-//=> 'string'
-
-kindOf(arguments);
-//=> 'arguments'
-
-kindOf({});
-//=> 'object'
-
-kindOf(Object.create(null));
-//=> 'object'
-
-kindOf(new Test());
-//=> 'object'
-
-kindOf(new Date());
-//=> 'date'
-
-kindOf([]);
-//=> 'array'
-
-kindOf([1, 2, 3]);
-//=> 'array'
-
-kindOf(new Array());
-//=> 'array'
-
-kindOf(/foo/);
-//=> 'regexp'
-
-kindOf(new RegExp('foo'));
-//=> 'regexp'
-
-kindOf(function () {});
-//=> 'function'
-
-kindOf(function * () {});
-//=> 'function'
-
-kindOf(new Function());
-//=> 'function'
-
-kindOf(new Map());
-//=> 'map'
-
-kindOf(new WeakMap());
-//=> 'weakmap'
-
-kindOf(new Set());
-//=> 'set'
-
-kindOf(new WeakSet());
-//=> 'weakset'
-
-kindOf(Symbol('str'));
-//=> 'symbol'
-
-kindOf(new Int8Array());
-//=> 'int8array'
-
-kindOf(new Uint8Array());
-//=> 'uint8array'
-
-kindOf(new Uint8ClampedArray());
-//=> 'uint8clampedarray'
-
-kindOf(new Int16Array());
-//=> 'int16array'
-
-kindOf(new Uint16Array());
-//=> 'uint16array'
-
-kindOf(new Int32Array());
-//=> 'int32array'
-
-kindOf(new Uint32Array());
-//=> 'uint32array'
-
-kindOf(new Float32Array());
-//=> 'float32array'
-
-kindOf(new Float64Array());
-//=> 'float64array'
-```
-
-## Benchmarks
-
-Benchmarked against [typeof](http://github.com/CodingFu/typeof) and [type-of](https://github.com/ForbesLindesay/type-of).
-Note that performaces is slower for es6 features `Map`, `WeakMap`, `Set` and `WeakSet`.
-
-```bash
-#1: array
- current x 23,329,397 ops/sec ±0.82% (94 runs sampled)
- lib-type-of x 4,170,273 ops/sec ±0.55% (94 runs sampled)
- lib-typeof x 9,686,935 ops/sec ±0.59% (98 runs sampled)
-
-#2: boolean
- current x 27,197,115 ops/sec ±0.85% (94 runs sampled)
- lib-type-of x 3,145,791 ops/sec ±0.73% (97 runs sampled)
- lib-typeof x 9,199,562 ops/sec ±0.44% (99 runs sampled)
-
-#3: date
- current x 20,190,117 ops/sec ±0.86% (92 runs sampled)
- lib-type-of x 5,166,970 ops/sec ±0.74% (94 runs sampled)
- lib-typeof x 9,610,821 ops/sec ±0.50% (96 runs sampled)
-
-#4: function
- current x 23,855,460 ops/sec ±0.60% (97 runs sampled)
- lib-type-of x 5,667,740 ops/sec ±0.54% (100 runs sampled)
- lib-typeof x 10,010,644 ops/sec ±0.44% (100 runs sampled)
-
-#5: null
- current x 27,061,047 ops/sec ±0.97% (96 runs sampled)
- lib-type-of x 13,965,573 ops/sec ±0.62% (97 runs sampled)
- lib-typeof x 8,460,194 ops/sec ±0.61% (97 runs sampled)
-
-#6: number
- current x 25,075,682 ops/sec ±0.53% (99 runs sampled)
- lib-type-of x 2,266,405 ops/sec ±0.41% (98 runs sampled)
- lib-typeof x 9,821,481 ops/sec ±0.45% (99 runs sampled)
-
-#7: object
- current x 3,348,980 ops/sec ±0.49% (99 runs sampled)
- lib-type-of x 3,245,138 ops/sec ±0.60% (94 runs sampled)
- lib-typeof x 9,262,952 ops/sec ±0.59% (99 runs sampled)
-
-#8: regex
- current x 21,284,827 ops/sec ±0.72% (96 runs sampled)
- lib-type-of x 4,689,241 ops/sec ±0.43% (100 runs sampled)
- lib-typeof x 8,957,593 ops/sec ±0.62% (98 runs sampled)
-
-#9: string
- current x 25,379,234 ops/sec ±0.58% (96 runs sampled)
- lib-type-of x 3,635,148 ops/sec ±0.76% (93 runs sampled)
- lib-typeof x 9,494,134 ops/sec ±0.49% (98 runs sampled)
-
-#10: undef
- current x 27,459,221 ops/sec ±1.01% (93 runs sampled)
- lib-type-of x 14,360,433 ops/sec ±0.52% (99 runs sampled)
- lib-typeof x 23,202,868 ops/sec ±0.59% (94 runs sampled)
-
-```
-
-## Optimizations
-
-In 7 out of 8 cases, this library is 2x-10x faster than other top libraries included in the benchmarks. There are a few things that lead to this performance advantage, none of them hard and fast rules, but all of them simple and repeatable in almost any code library:
-
-1. Optimize around the fastest and most common use cases first. Of course, this will change from project-to-project, but I took some time to understand how and why `typeof` checks were being used in my own libraries and other libraries I use a lot.
-2. Optimize around bottlenecks - In other words, the order in which conditionals are implemented is significant, because each check is only as fast as the failing checks that came before it. Here, the biggest bottleneck by far is checking for plain objects (an object that was created by the `Object` constructor). I opted to make this check happen by process of elimination rather than brute force up front (e.g. by using something like `val.constructor.name`), so that every other type check would not be penalized it.
-3. Don't do uneccessary processing - why do `.slice(8, -1).toLowerCase();` just to get the word `regex`? It's much faster to do `if (type === '[object RegExp]') return 'regex'`
-
-## About
-
-### Related projects
-
-* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/jonschlinkert/is-glob) | [homepage](https://github.com/jonschlinkert/is-glob "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet")
-* [is-number](https://www.npmjs.com/package/is-number): Returns true if the value is a number. comprehensive tests. | [homepage](https://github.com/jonschlinkert/is-number "Returns true if the value is a number. comprehensive tests.")
-* [is-primitive](https://www.npmjs.com/package/is-primitive): Returns `true` if the value is a primitive. | [homepage](https://github.com/jonschlinkert/is-primitive "Returns `true` if the value is a primitive. ")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 59 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 2 | [miguelmota](https://github.com/miguelmota) |
-| 1 | [dtothefp](https://github.com/dtothefp) |
-| 1 | [ksheedlo](https://github.com/ksheedlo) |
-| 1 | [pdehaan](https://github.com/pdehaan) |
-| 1 | [laggingreflex](https://github.com/laggingreflex) |
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on May 16, 2017._
\ No newline at end of file
diff --git a/node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of/index.js b/node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of/index.js
deleted file mode 100644
index b52c291..0000000
--- a/node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of/index.js
+++ /dev/null
@@ -1,116 +0,0 @@
-var isBuffer = require('is-buffer');
-var toString = Object.prototype.toString;
-
-/**
- * Get the native `typeof` a value.
- *
- * @param {*} `val`
- * @return {*} Native javascript type
- */
-
-module.exports = function kindOf(val) {
- // primitivies
- if (typeof val === 'undefined') {
- return 'undefined';
- }
- if (val === null) {
- return 'null';
- }
- if (val === true || val === false || val instanceof Boolean) {
- return 'boolean';
- }
- if (typeof val === 'string' || val instanceof String) {
- return 'string';
- }
- if (typeof val === 'number' || val instanceof Number) {
- return 'number';
- }
-
- // functions
- if (typeof val === 'function' || val instanceof Function) {
- return 'function';
- }
-
- // array
- if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) {
- return 'array';
- }
-
- // check for instances of RegExp and Date before calling `toString`
- if (val instanceof RegExp) {
- return 'regexp';
- }
- if (val instanceof Date) {
- return 'date';
- }
-
- // other objects
- var type = toString.call(val);
-
- if (type === '[object RegExp]') {
- return 'regexp';
- }
- if (type === '[object Date]') {
- return 'date';
- }
- if (type === '[object Arguments]') {
- return 'arguments';
- }
- if (type === '[object Error]') {
- return 'error';
- }
-
- // buffer
- if (isBuffer(val)) {
- return 'buffer';
- }
-
- // es6: Map, WeakMap, Set, WeakSet
- if (type === '[object Set]') {
- return 'set';
- }
- if (type === '[object WeakSet]') {
- return 'weakset';
- }
- if (type === '[object Map]') {
- return 'map';
- }
- if (type === '[object WeakMap]') {
- return 'weakmap';
- }
- if (type === '[object Symbol]') {
- return 'symbol';
- }
-
- // typed arrays
- if (type === '[object Int8Array]') {
- return 'int8array';
- }
- if (type === '[object Uint8Array]') {
- return 'uint8array';
- }
- if (type === '[object Uint8ClampedArray]') {
- return 'uint8clampedarray';
- }
- if (type === '[object Int16Array]') {
- return 'int16array';
- }
- if (type === '[object Uint16Array]') {
- return 'uint16array';
- }
- if (type === '[object Int32Array]') {
- return 'int32array';
- }
- if (type === '[object Uint32Array]') {
- return 'uint32array';
- }
- if (type === '[object Float32Array]') {
- return 'float32array';
- }
- if (type === '[object Float64Array]') {
- return 'float64array';
- }
-
- // must be a plain object
- return 'object';
-};
diff --git a/node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of/package.json b/node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of/package.json
deleted file mode 100644
index 5de879e..0000000
--- a/node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of/package.json
+++ /dev/null
@@ -1,90 +0,0 @@
-{
- "name": "kind-of",
- "description": "Get the native type of a value.",
- "version": "3.2.2",
- "homepage": "https://github.com/jonschlinkert/kind-of",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "David Fox-Powell (https://dtothefp.github.io/me)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Ken Sheedlo (kensheedlo.com)",
- "laggingreflex (https://github.com/laggingreflex)",
- "Miguel Mota (https://miguelmota.com)",
- "Peter deHaan (http://about.me/peterdehaan)"
- ],
- "repository": "jonschlinkert/kind-of",
- "bugs": {
- "url": "https://github.com/jonschlinkert/kind-of/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha",
- "prepublish": "browserify -o browser.js -e index.js -s index --bare"
- },
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "devDependencies": {
- "ansi-bold": "^0.1.1",
- "benchmarked": "^1.0.0",
- "browserify": "^14.3.0",
- "glob": "^7.1.1",
- "gulp-format-md": "^0.1.12",
- "mocha": "^3.3.0",
- "type-of": "^2.0.1",
- "typeof": "^1.0.0"
- },
- "keywords": [
- "arguments",
- "array",
- "boolean",
- "check",
- "date",
- "function",
- "is",
- "is-type",
- "is-type-of",
- "kind",
- "kind-of",
- "number",
- "object",
- "of",
- "regexp",
- "string",
- "test",
- "type",
- "type-of",
- "typeof",
- "types"
- ],
- "verb": {
- "related": {
- "list": [
- "is-glob",
- "is-number",
- "is-primitive"
- ]
- },
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- },
- "reflinks": [
- "verb"
- ]
- }
-}
diff --git a/node_modules/expand-brackets/node_modules/is-accessor-descriptor/package.json b/node_modules/expand-brackets/node_modules/is-accessor-descriptor/package.json
deleted file mode 100644
index 0f39c64..0000000
--- a/node_modules/expand-brackets/node_modules/is-accessor-descriptor/package.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{
- "name": "is-accessor-descriptor",
- "description": "Returns true if a value has the characteristics of a valid JavaScript accessor descriptor.",
- "version": "0.1.6",
- "homepage": "https://github.com/jonschlinkert/is-accessor-descriptor",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/is-accessor-descriptor",
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-accessor-descriptor/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "devDependencies": {
- "mocha": "*",
- "should": "*"
- },
- "keywords": [
- "accessor",
- "check",
- "data",
- "descriptor",
- "get",
- "getter",
- "is",
- "keys",
- "object",
- "properties",
- "property",
- "set",
- "setter",
- "type",
- "valid",
- "value"
- ],
- "verb": {
- "related": {
- "list": [
- "is-accessor-descriptor",
- "is-data-descriptor",
- "is-descriptor",
- "isobject"
- ]
- },
- "plugins": [
- "gulp-format-md"
- ],
- "layout": "default"
- }
-}
diff --git a/node_modules/expand-brackets/node_modules/is-data-descriptor/LICENSE b/node_modules/expand-brackets/node_modules/is-data-descriptor/LICENSE
deleted file mode 100644
index 65f90ac..0000000
--- a/node_modules/expand-brackets/node_modules/is-data-descriptor/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015, 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/expand-brackets/node_modules/is-data-descriptor/README.md b/node_modules/expand-brackets/node_modules/is-data-descriptor/README.md
deleted file mode 100644
index 41e1643..0000000
--- a/node_modules/expand-brackets/node_modules/is-data-descriptor/README.md
+++ /dev/null
@@ -1,128 +0,0 @@
-# is-data-descriptor [![NPM version](https://img.shields.io/npm/v/is-data-descriptor.svg)](https://www.npmjs.com/package/is-data-descriptor) [![Build Status](https://img.shields.io/travis/jonschlinkert/is-data-descriptor.svg)](https://travis-ci.org/jonschlinkert/is-data-descriptor)
-
-> Returns true if a value has the characteristics of a valid JavaScript data descriptor.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm i is-data-descriptor --save
-```
-
-## Usage
-
-```js
-var isDataDesc = require('is-data-descriptor');
-```
-
-## Examples
-
-`true` when the descriptor has valid properties with valid values.
-
-```js
-// `value` can be anything
-isDataDesc({value: 'foo'})
-isDataDesc({value: function() {}})
-isDataDesc({value: true})
-//=> true
-```
-
-`false` when not an object
-
-```js
-isDataDesc('a')
-//=> false
-isDataDesc(null)
-//=> false
-isDataDesc([])
-//=> false
-```
-
-`false` when the object has invalid properties
-
-```js
-isDataDesc({value: 'foo', bar: 'baz'})
-//=> false
-isDataDesc({value: 'foo', bar: 'baz'})
-//=> false
-isDataDesc({value: 'foo', get: function(){}})
-//=> false
-isDataDesc({get: function(){}, value: 'foo'})
-//=> false
-```
-
-`false` when a value is not the correct type
-
-```js
-isDataDesc({value: 'foo', enumerable: 'foo'})
-//=> false
-isDataDesc({value: 'foo', configurable: 'foo'})
-//=> false
-isDataDesc({value: 'foo', writable: 'foo'})
-//=> false
-```
-
-## Valid properties
-
-The only valid data descriptor properties are the following:
-
-* `configurable` (required)
-* `enumerable` (required)
-* `value` (optional)
-* `writable` (optional)
-
-To be a valid data descriptor, either `value` or `writable` must be defined.
-
-**Invalid properties**
-
-A descriptor may have additional _invalid_ properties (an error will **not** be thrown).
-
-```js
-var foo = {};
-
-Object.defineProperty(foo, 'bar', {
- enumerable: true,
- whatever: 'blah', // invalid, but doesn't cause an error
- get: function() {
- return 'baz';
- }
-});
-
-console.log(foo.bar);
-//=> 'baz'
-```
-
-## Related projects
-
-* [is-accessor-descriptor](https://www.npmjs.com/package/is-accessor-descriptor): Returns true if a value has the characteristics of a valid JavaScript accessor descriptor. | [homepage](https://github.com/jonschlinkert/is-accessor-descriptor)
-* [is-descriptor](https://www.npmjs.com/package/is-descriptor): Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for… [more](https://www.npmjs.com/package/is-descriptor) | [homepage](https://github.com/jonschlinkert/is-descriptor)
-* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject)
-
-## Running tests
-
-Install dev dependencies:
-
-```sh
-$ npm i -d && npm test
-```
-
-## Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/is-data-descriptor/issues/new).
-
-## Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
-
-## License
-
-Copyright © 2015 [Jon Schlinkert](https://github.com/jonschlinkert)
-Released under the MIT license.
-
-***
-
-_This file was generated by [verb](https://github.com/verbose/verb) on December 28, 2015._
\ No newline at end of file
diff --git a/node_modules/expand-brackets/node_modules/is-data-descriptor/index.js b/node_modules/expand-brackets/node_modules/is-data-descriptor/index.js
deleted file mode 100644
index d4d09c9..0000000
--- a/node_modules/expand-brackets/node_modules/is-data-descriptor/index.js
+++ /dev/null
@@ -1,55 +0,0 @@
-/*!
- * is-data-descriptor
- *
- * Copyright (c) 2015, Jon Schlinkert.
- * Licensed under the MIT License.
- */
-
-'use strict';
-
-var typeOf = require('kind-of');
-
-// data descriptor properties
-var data = {
- configurable: 'boolean',
- enumerable: 'boolean',
- writable: 'boolean'
-};
-
-function isDataDescriptor(obj, prop) {
- if (typeOf(obj) !== 'object') {
- return false;
- }
-
- if (typeof prop === 'string') {
- var val = Object.getOwnPropertyDescriptor(obj, prop);
- return typeof val !== 'undefined';
- }
-
- if (!('value' in obj) && !('writable' in obj)) {
- return false;
- }
-
- for (var key in obj) {
- if (key === 'value') continue;
-
- if (!data.hasOwnProperty(key)) {
- continue;
- }
-
- if (typeOf(obj[key]) === data[key]) {
- continue;
- }
-
- if (typeof obj[key] !== 'undefined') {
- return false;
- }
- }
- return true;
-}
-
-/**
- * Expose `isDataDescriptor`
- */
-
-module.exports = isDataDescriptor;
diff --git a/node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of/LICENSE b/node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of/LICENSE
deleted file mode 100644
index d734237..0000000
--- a/node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of/README.md b/node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of/README.md
deleted file mode 100644
index 6a9df36..0000000
--- a/node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of/README.md
+++ /dev/null
@@ -1,261 +0,0 @@
-# kind-of [![NPM version](https://img.shields.io/npm/v/kind-of.svg?style=flat)](https://www.npmjs.com/package/kind-of) [![NPM monthly downloads](https://img.shields.io/npm/dm/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![NPM total downloads](https://img.shields.io/npm/dt/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/kind-of.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/kind-of)
-
-> Get the native type of a value.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save kind-of
-```
-
-## Install
-
-Install with [bower](https://bower.io/)
-
-```sh
-$ bower install kind-of --save
-```
-
-## Usage
-
-> es5, browser and es6 ready
-
-```js
-var kindOf = require('kind-of');
-
-kindOf(undefined);
-//=> 'undefined'
-
-kindOf(null);
-//=> 'null'
-
-kindOf(true);
-//=> 'boolean'
-
-kindOf(false);
-//=> 'boolean'
-
-kindOf(new Boolean(true));
-//=> 'boolean'
-
-kindOf(new Buffer(''));
-//=> 'buffer'
-
-kindOf(42);
-//=> 'number'
-
-kindOf(new Number(42));
-//=> 'number'
-
-kindOf('str');
-//=> 'string'
-
-kindOf(new String('str'));
-//=> 'string'
-
-kindOf(arguments);
-//=> 'arguments'
-
-kindOf({});
-//=> 'object'
-
-kindOf(Object.create(null));
-//=> 'object'
-
-kindOf(new Test());
-//=> 'object'
-
-kindOf(new Date());
-//=> 'date'
-
-kindOf([]);
-//=> 'array'
-
-kindOf([1, 2, 3]);
-//=> 'array'
-
-kindOf(new Array());
-//=> 'array'
-
-kindOf(/foo/);
-//=> 'regexp'
-
-kindOf(new RegExp('foo'));
-//=> 'regexp'
-
-kindOf(function () {});
-//=> 'function'
-
-kindOf(function * () {});
-//=> 'function'
-
-kindOf(new Function());
-//=> 'function'
-
-kindOf(new Map());
-//=> 'map'
-
-kindOf(new WeakMap());
-//=> 'weakmap'
-
-kindOf(new Set());
-//=> 'set'
-
-kindOf(new WeakSet());
-//=> 'weakset'
-
-kindOf(Symbol('str'));
-//=> 'symbol'
-
-kindOf(new Int8Array());
-//=> 'int8array'
-
-kindOf(new Uint8Array());
-//=> 'uint8array'
-
-kindOf(new Uint8ClampedArray());
-//=> 'uint8clampedarray'
-
-kindOf(new Int16Array());
-//=> 'int16array'
-
-kindOf(new Uint16Array());
-//=> 'uint16array'
-
-kindOf(new Int32Array());
-//=> 'int32array'
-
-kindOf(new Uint32Array());
-//=> 'uint32array'
-
-kindOf(new Float32Array());
-//=> 'float32array'
-
-kindOf(new Float64Array());
-//=> 'float64array'
-```
-
-## Benchmarks
-
-Benchmarked against [typeof](http://github.com/CodingFu/typeof) and [type-of](https://github.com/ForbesLindesay/type-of).
-Note that performaces is slower for es6 features `Map`, `WeakMap`, `Set` and `WeakSet`.
-
-```bash
-#1: array
- current x 23,329,397 ops/sec ±0.82% (94 runs sampled)
- lib-type-of x 4,170,273 ops/sec ±0.55% (94 runs sampled)
- lib-typeof x 9,686,935 ops/sec ±0.59% (98 runs sampled)
-
-#2: boolean
- current x 27,197,115 ops/sec ±0.85% (94 runs sampled)
- lib-type-of x 3,145,791 ops/sec ±0.73% (97 runs sampled)
- lib-typeof x 9,199,562 ops/sec ±0.44% (99 runs sampled)
-
-#3: date
- current x 20,190,117 ops/sec ±0.86% (92 runs sampled)
- lib-type-of x 5,166,970 ops/sec ±0.74% (94 runs sampled)
- lib-typeof x 9,610,821 ops/sec ±0.50% (96 runs sampled)
-
-#4: function
- current x 23,855,460 ops/sec ±0.60% (97 runs sampled)
- lib-type-of x 5,667,740 ops/sec ±0.54% (100 runs sampled)
- lib-typeof x 10,010,644 ops/sec ±0.44% (100 runs sampled)
-
-#5: null
- current x 27,061,047 ops/sec ±0.97% (96 runs sampled)
- lib-type-of x 13,965,573 ops/sec ±0.62% (97 runs sampled)
- lib-typeof x 8,460,194 ops/sec ±0.61% (97 runs sampled)
-
-#6: number
- current x 25,075,682 ops/sec ±0.53% (99 runs sampled)
- lib-type-of x 2,266,405 ops/sec ±0.41% (98 runs sampled)
- lib-typeof x 9,821,481 ops/sec ±0.45% (99 runs sampled)
-
-#7: object
- current x 3,348,980 ops/sec ±0.49% (99 runs sampled)
- lib-type-of x 3,245,138 ops/sec ±0.60% (94 runs sampled)
- lib-typeof x 9,262,952 ops/sec ±0.59% (99 runs sampled)
-
-#8: regex
- current x 21,284,827 ops/sec ±0.72% (96 runs sampled)
- lib-type-of x 4,689,241 ops/sec ±0.43% (100 runs sampled)
- lib-typeof x 8,957,593 ops/sec ±0.62% (98 runs sampled)
-
-#9: string
- current x 25,379,234 ops/sec ±0.58% (96 runs sampled)
- lib-type-of x 3,635,148 ops/sec ±0.76% (93 runs sampled)
- lib-typeof x 9,494,134 ops/sec ±0.49% (98 runs sampled)
-
-#10: undef
- current x 27,459,221 ops/sec ±1.01% (93 runs sampled)
- lib-type-of x 14,360,433 ops/sec ±0.52% (99 runs sampled)
- lib-typeof x 23,202,868 ops/sec ±0.59% (94 runs sampled)
-
-```
-
-## Optimizations
-
-In 7 out of 8 cases, this library is 2x-10x faster than other top libraries included in the benchmarks. There are a few things that lead to this performance advantage, none of them hard and fast rules, but all of them simple and repeatable in almost any code library:
-
-1. Optimize around the fastest and most common use cases first. Of course, this will change from project-to-project, but I took some time to understand how and why `typeof` checks were being used in my own libraries and other libraries I use a lot.
-2. Optimize around bottlenecks - In other words, the order in which conditionals are implemented is significant, because each check is only as fast as the failing checks that came before it. Here, the biggest bottleneck by far is checking for plain objects (an object that was created by the `Object` constructor). I opted to make this check happen by process of elimination rather than brute force up front (e.g. by using something like `val.constructor.name`), so that every other type check would not be penalized it.
-3. Don't do uneccessary processing - why do `.slice(8, -1).toLowerCase();` just to get the word `regex`? It's much faster to do `if (type === '[object RegExp]') return 'regex'`
-
-## About
-
-### Related projects
-
-* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/jonschlinkert/is-glob) | [homepage](https://github.com/jonschlinkert/is-glob "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet")
-* [is-number](https://www.npmjs.com/package/is-number): Returns true if the value is a number. comprehensive tests. | [homepage](https://github.com/jonschlinkert/is-number "Returns true if the value is a number. comprehensive tests.")
-* [is-primitive](https://www.npmjs.com/package/is-primitive): Returns `true` if the value is a primitive. | [homepage](https://github.com/jonschlinkert/is-primitive "Returns `true` if the value is a primitive. ")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 59 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 2 | [miguelmota](https://github.com/miguelmota) |
-| 1 | [dtothefp](https://github.com/dtothefp) |
-| 1 | [ksheedlo](https://github.com/ksheedlo) |
-| 1 | [pdehaan](https://github.com/pdehaan) |
-| 1 | [laggingreflex](https://github.com/laggingreflex) |
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on May 16, 2017._
\ No newline at end of file
diff --git a/node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of/index.js b/node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of/index.js
deleted file mode 100644
index b52c291..0000000
--- a/node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of/index.js
+++ /dev/null
@@ -1,116 +0,0 @@
-var isBuffer = require('is-buffer');
-var toString = Object.prototype.toString;
-
-/**
- * Get the native `typeof` a value.
- *
- * @param {*} `val`
- * @return {*} Native javascript type
- */
-
-module.exports = function kindOf(val) {
- // primitivies
- if (typeof val === 'undefined') {
- return 'undefined';
- }
- if (val === null) {
- return 'null';
- }
- if (val === true || val === false || val instanceof Boolean) {
- return 'boolean';
- }
- if (typeof val === 'string' || val instanceof String) {
- return 'string';
- }
- if (typeof val === 'number' || val instanceof Number) {
- return 'number';
- }
-
- // functions
- if (typeof val === 'function' || val instanceof Function) {
- return 'function';
- }
-
- // array
- if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) {
- return 'array';
- }
-
- // check for instances of RegExp and Date before calling `toString`
- if (val instanceof RegExp) {
- return 'regexp';
- }
- if (val instanceof Date) {
- return 'date';
- }
-
- // other objects
- var type = toString.call(val);
-
- if (type === '[object RegExp]') {
- return 'regexp';
- }
- if (type === '[object Date]') {
- return 'date';
- }
- if (type === '[object Arguments]') {
- return 'arguments';
- }
- if (type === '[object Error]') {
- return 'error';
- }
-
- // buffer
- if (isBuffer(val)) {
- return 'buffer';
- }
-
- // es6: Map, WeakMap, Set, WeakSet
- if (type === '[object Set]') {
- return 'set';
- }
- if (type === '[object WeakSet]') {
- return 'weakset';
- }
- if (type === '[object Map]') {
- return 'map';
- }
- if (type === '[object WeakMap]') {
- return 'weakmap';
- }
- if (type === '[object Symbol]') {
- return 'symbol';
- }
-
- // typed arrays
- if (type === '[object Int8Array]') {
- return 'int8array';
- }
- if (type === '[object Uint8Array]') {
- return 'uint8array';
- }
- if (type === '[object Uint8ClampedArray]') {
- return 'uint8clampedarray';
- }
- if (type === '[object Int16Array]') {
- return 'int16array';
- }
- if (type === '[object Uint16Array]') {
- return 'uint16array';
- }
- if (type === '[object Int32Array]') {
- return 'int32array';
- }
- if (type === '[object Uint32Array]') {
- return 'uint32array';
- }
- if (type === '[object Float32Array]') {
- return 'float32array';
- }
- if (type === '[object Float64Array]') {
- return 'float64array';
- }
-
- // must be a plain object
- return 'object';
-};
diff --git a/node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of/package.json b/node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of/package.json
deleted file mode 100644
index 5de879e..0000000
--- a/node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of/package.json
+++ /dev/null
@@ -1,90 +0,0 @@
-{
- "name": "kind-of",
- "description": "Get the native type of a value.",
- "version": "3.2.2",
- "homepage": "https://github.com/jonschlinkert/kind-of",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "David Fox-Powell (https://dtothefp.github.io/me)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Ken Sheedlo (kensheedlo.com)",
- "laggingreflex (https://github.com/laggingreflex)",
- "Miguel Mota (https://miguelmota.com)",
- "Peter deHaan (http://about.me/peterdehaan)"
- ],
- "repository": "jonschlinkert/kind-of",
- "bugs": {
- "url": "https://github.com/jonschlinkert/kind-of/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha",
- "prepublish": "browserify -o browser.js -e index.js -s index --bare"
- },
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "devDependencies": {
- "ansi-bold": "^0.1.1",
- "benchmarked": "^1.0.0",
- "browserify": "^14.3.0",
- "glob": "^7.1.1",
- "gulp-format-md": "^0.1.12",
- "mocha": "^3.3.0",
- "type-of": "^2.0.1",
- "typeof": "^1.0.0"
- },
- "keywords": [
- "arguments",
- "array",
- "boolean",
- "check",
- "date",
- "function",
- "is",
- "is-type",
- "is-type-of",
- "kind",
- "kind-of",
- "number",
- "object",
- "of",
- "regexp",
- "string",
- "test",
- "type",
- "type-of",
- "typeof",
- "types"
- ],
- "verb": {
- "related": {
- "list": [
- "is-glob",
- "is-number",
- "is-primitive"
- ]
- },
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- },
- "reflinks": [
- "verb"
- ]
- }
-}
diff --git a/node_modules/expand-brackets/node_modules/is-data-descriptor/package.json b/node_modules/expand-brackets/node_modules/is-data-descriptor/package.json
deleted file mode 100644
index 5fb294b..0000000
--- a/node_modules/expand-brackets/node_modules/is-data-descriptor/package.json
+++ /dev/null
@@ -1,60 +0,0 @@
-{
- "name": "is-data-descriptor",
- "description": "Returns true if a value has the characteristics of a valid JavaScript data descriptor.",
- "version": "0.1.4",
- "homepage": "https://github.com/jonschlinkert/is-data-descriptor",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/is-data-descriptor",
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-data-descriptor/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "devDependencies": {
- "mocha": "*",
- "should": "*"
- },
- "keywords": [
- "accessor",
- "check",
- "data",
- "descriptor",
- "get",
- "getter",
- "is",
- "keys",
- "object",
- "properties",
- "property",
- "set",
- "setter",
- "type",
- "valid",
- "value"
- ],
- "verb": {
- "related": {
- "list": [
- "is-accessor-descriptor",
- "is-data-descriptor",
- "is-descriptor",
- "isobject"
- ]
- },
- "plugins": [
- "gulp-format-md"
- ]
- }
-}
diff --git a/node_modules/expand-brackets/node_modules/is-descriptor/LICENSE b/node_modules/expand-brackets/node_modules/is-descriptor/LICENSE
deleted file mode 100644
index c0d7f13..0000000
--- a/node_modules/expand-brackets/node_modules/is-descriptor/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015-2017, 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.
\ No newline at end of file
diff --git a/node_modules/expand-brackets/node_modules/is-descriptor/README.md b/node_modules/expand-brackets/node_modules/is-descriptor/README.md
deleted file mode 100644
index 658e533..0000000
--- a/node_modules/expand-brackets/node_modules/is-descriptor/README.md
+++ /dev/null
@@ -1,193 +0,0 @@
-# is-descriptor [![NPM version](https://img.shields.io/npm/v/is-descriptor.svg?style=flat)](https://www.npmjs.com/package/is-descriptor) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-descriptor.svg?style=flat)](https://npmjs.org/package/is-descriptor) [![NPM total downloads](https://img.shields.io/npm/dt/is-descriptor.svg?style=flat)](https://npmjs.org/package/is-descriptor) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-descriptor.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-descriptor)
-
-> Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for data descriptors and accessor descriptors.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save is-descriptor
-```
-
-## Usage
-
-```js
-var isDescriptor = require('is-descriptor');
-
-isDescriptor({value: 'foo'})
-//=> true
-isDescriptor({get: function(){}, set: function(){}})
-//=> true
-isDescriptor({get: 'foo', set: function(){}})
-//=> false
-```
-
-You may also check for a descriptor by passing an object as the first argument and property name (`string`) as the second argument.
-
-```js
-var obj = {};
-obj.foo = 'abc';
-
-Object.defineProperty(obj, 'bar', {
- value: 'xyz'
-});
-
-isDescriptor(obj, 'foo');
-//=> true
-isDescriptor(obj, 'bar');
-//=> true
-```
-
-## Examples
-
-### value type
-
-`false` when not an object
-
-```js
-isDescriptor('a');
-//=> false
-isDescriptor(null);
-//=> false
-isDescriptor([]);
-//=> false
-```
-
-### data descriptor
-
-`true` when the object has valid properties with valid values.
-
-```js
-isDescriptor({value: 'foo'});
-//=> true
-isDescriptor({value: noop});
-//=> true
-```
-
-`false` when the object has invalid properties
-
-```js
-isDescriptor({value: 'foo', bar: 'baz'});
-//=> false
-isDescriptor({value: 'foo', bar: 'baz'});
-//=> false
-isDescriptor({value: 'foo', get: noop});
-//=> false
-isDescriptor({get: noop, value: noop});
-//=> false
-```
-
-`false` when a value is not the correct type
-
-```js
-isDescriptor({value: 'foo', enumerable: 'foo'});
-//=> false
-isDescriptor({value: 'foo', configurable: 'foo'});
-//=> false
-isDescriptor({value: 'foo', writable: 'foo'});
-//=> false
-```
-
-### accessor descriptor
-
-`true` when the object has valid properties with valid values.
-
-```js
-isDescriptor({get: noop, set: noop});
-//=> true
-isDescriptor({get: noop});
-//=> true
-isDescriptor({set: noop});
-//=> true
-```
-
-`false` when the object has invalid properties
-
-```js
-isDescriptor({get: noop, set: noop, bar: 'baz'});
-//=> false
-isDescriptor({get: noop, writable: true});
-//=> false
-isDescriptor({get: noop, value: true});
-//=> false
-```
-
-`false` when an accessor is not a function
-
-```js
-isDescriptor({get: noop, set: 'baz'});
-//=> false
-isDescriptor({get: 'foo', set: noop});
-//=> false
-isDescriptor({get: 'foo', bar: 'baz'});
-//=> false
-isDescriptor({get: 'foo', set: 'baz'});
-//=> false
-```
-
-`false` when a value is not the correct type
-
-```js
-isDescriptor({get: noop, set: noop, enumerable: 'foo'});
-//=> false
-isDescriptor({set: noop, configurable: 'foo'});
-//=> false
-isDescriptor({get: noop, configurable: 'foo'});
-//=> false
-```
-
-## About
-
-### Related projects
-
-* [is-accessor-descriptor](https://www.npmjs.com/package/is-accessor-descriptor): Returns true if a value has the characteristics of a valid JavaScript accessor descriptor. | [homepage](https://github.com/jonschlinkert/is-accessor-descriptor "Returns true if a value has the characteristics of a valid JavaScript accessor descriptor.")
-* [is-data-descriptor](https://www.npmjs.com/package/is-data-descriptor): Returns true if a value has the characteristics of a valid JavaScript data descriptor. | [homepage](https://github.com/jonschlinkert/is-data-descriptor "Returns true if a value has the characteristics of a valid JavaScript data descriptor.")
-* [is-descriptor](https://www.npmjs.com/package/is-descriptor): Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for… [more](https://github.com/jonschlinkert/is-descriptor) | [homepage](https://github.com/jonschlinkert/is-descriptor "Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for data descriptors and accessor descriptors.")
-* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 24 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 1 | [doowb](https://github.com/doowb) |
-| 1 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) |
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on July 22, 2017._
\ No newline at end of file
diff --git a/node_modules/expand-brackets/node_modules/is-descriptor/index.js b/node_modules/expand-brackets/node_modules/is-descriptor/index.js
deleted file mode 100644
index c9b91d7..0000000
--- a/node_modules/expand-brackets/node_modules/is-descriptor/index.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/*!
- * is-descriptor
- *
- * Copyright (c) 2015-2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-var typeOf = require('kind-of');
-var isAccessor = require('is-accessor-descriptor');
-var isData = require('is-data-descriptor');
-
-module.exports = function isDescriptor(obj, key) {
- if (typeOf(obj) !== 'object') {
- return false;
- }
- if ('get' in obj) {
- return isAccessor(obj, key);
- }
- return isData(obj, key);
-};
diff --git a/node_modules/expand-brackets/node_modules/is-descriptor/package.json b/node_modules/expand-brackets/node_modules/is-descriptor/package.json
deleted file mode 100644
index a561bfe..0000000
--- a/node_modules/expand-brackets/node_modules/is-descriptor/package.json
+++ /dev/null
@@ -1,75 +0,0 @@
-{
- "name": "is-descriptor",
- "description": "Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for data descriptors and accessor descriptors.",
- "version": "0.1.6",
- "homepage": "https://github.com/jonschlinkert/is-descriptor",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Brian Woodward (https://twitter.com/doowb)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "(https://github.com/wtgtybhertgeghgtwtg)"
- ],
- "repository": "jonschlinkert/is-descriptor",
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-descriptor/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
- },
- "devDependencies": {
- "gulp-format-md": "^1.0.0",
- "mocha": "^3.4.2"
- },
- "keywords": [
- "accessor",
- "check",
- "data",
- "descriptor",
- "get",
- "getter",
- "is",
- "keys",
- "object",
- "properties",
- "property",
- "set",
- "setter",
- "type",
- "valid",
- "value"
- ],
- "verb": {
- "related": {
- "list": [
- "is-accessor-descriptor",
- "is-data-descriptor",
- "is-descriptor",
- "isobject"
- ]
- },
- "plugins": [
- "gulp-format-md"
- ],
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/expand-brackets/package.json b/node_modules/expand-brackets/package.json
deleted file mode 100644
index 1c5233c..0000000
--- a/node_modules/expand-brackets/package.json
+++ /dev/null
@@ -1,85 +0,0 @@
-{
- "name": "expand-brackets",
- "description": "Expand POSIX bracket expressions (character classes) in glob patterns.",
- "version": "2.1.4",
- "homepage": "https://github.com/jonschlinkert/expand-brackets",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Elan Shanker (https://github.com/es128)",
- "Eugene Sharygin (https://github.com/eush77)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Martin Kolárik (http://kolarik.sk)"
- ],
- "repository": "jonschlinkert/expand-brackets",
- "bugs": {
- "url": "https://github.com/jonschlinkert/expand-brackets/issues"
- },
- "license": "MIT",
- "files": [
- "index.js",
- "lib"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "debug": "^2.3.3",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "posix-character-classes": "^0.1.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "devDependencies": {
- "bash-match": "^0.1.1",
- "gulp-format-md": "^0.1.10",
- "helper-changelog": "^0.3.0",
- "minimatch": "^3.0.3",
- "mocha": "^3.0.2",
- "multimatch": "^2.1.0",
- "yargs-parser": "^4.0.0"
- },
- "keywords": [
- "bracket",
- "brackets",
- "character class",
- "expand",
- "expression",
- "posix"
- ],
- "verb": {
- "run": true,
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "helpers": [
- "helper-changelog"
- ],
- "related": {
- "list": [
- "braces",
- "extglob",
- "micromatch",
- "nanomatch"
- ]
- },
- "reflinks": [
- "micromatch",
- "verb",
- "verb-generate-readme"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/expand-tilde/LICENSE b/node_modules/expand-tilde/LICENSE
deleted file mode 100644
index 1e49edf..0000000
--- a/node_modules/expand-tilde/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015-2016, 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/expand-tilde/README.md b/node_modules/expand-tilde/README.md
deleted file mode 100644
index d1892b7..0000000
--- a/node_modules/expand-tilde/README.md
+++ /dev/null
@@ -1,80 +0,0 @@
-# expand-tilde [![NPM version](https://img.shields.io/npm/v/expand-tilde.svg?style=flat)](https://www.npmjs.com/package/expand-tilde) [![NPM downloads](https://img.shields.io/npm/dm/expand-tilde.svg?style=flat)](https://npmjs.org/package/expand-tilde) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/expand-tilde.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/expand-tilde)
-
-> Bash-like tilde expansion for node.js. Expands a leading tilde in a file path to the user home directory, or `~+` to the cwd.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save expand-tilde
-```
-
-## Usage
-
-See the [Bash documentation for Tilde Expansion](https://www.gnu.org/software/bash/manual/html_node/Tilde-Expansion.html).
-
-```js
-var expandTilde = require('expand-tilde');
-
-expandTilde('~')
-//=> '/Users/jonschlinkert'
-
-expandTilde('~+')
-//=> process.cwd()
-```
-
-## Run tests
-
-Install dev dependencies:
-
-```bash
-npm i -d && npm test
-```
-
-## About
-
-### Related projects
-
-* [braces](https://www.npmjs.com/package/braces): Fast, comprehensive, bash-like brace expansion implemented in JavaScript. Complete support for the Bash 4.3 braces… [more](https://github.com/jonschlinkert/braces) | [homepage](https://github.com/jonschlinkert/braces "Fast, comprehensive, bash-like brace expansion implemented in JavaScript. Complete support for the Bash 4.3 braces specification, without sacrificing speed.")
-* [expand-brackets](https://www.npmjs.com/package/expand-brackets): Expand POSIX bracket expressions (character classes) in glob patterns. | [homepage](https://github.com/jonschlinkert/expand-brackets "Expand POSIX bracket expressions (character classes) in glob patterns.")
-* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/jonschlinkert/is-glob) | [homepage](https://github.com/jonschlinkert/is-glob "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet")
-* [micromatch](https://www.npmjs.com/package/micromatch): Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch. | [homepage](https://github.com/jonschlinkert/micromatch "Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Building docs
-
-_(This document was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme) (a [verb](https://github.com/verbose/verb) generator), please don't edit the readme directly. Any changes to the readme must be made in [.verb.md](.verb.md).)_
-
-To generate the readme and API documentation with [verb](https://github.com/verbose/verb):
-
-```sh
-$ npm install -g verb verb-generate-readme && verb
-```
-
-### Running tests
-
-Install dev dependencies:
-
-```sh
-$ npm install -d && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT license](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.2.0, on December 08, 2016._
\ No newline at end of file
diff --git a/node_modules/expand-tilde/index.js b/node_modules/expand-tilde/index.js
deleted file mode 100644
index d4e4706..0000000
--- a/node_modules/expand-tilde/index.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/*!
- * expand-tilde
- *
- * Copyright (c) 2015 Jon Schlinkert.
- * Licensed under the MIT license.
- */
-
-var homedir = require('homedir-polyfill');
-var path = require('path');
-
-module.exports = function expandTilde(filepath) {
- var home = homedir();
-
- if (filepath.charCodeAt(0) === 126 /* ~ */) {
- if (filepath.charCodeAt(1) === 43 /* + */) {
- return path.join(process.cwd(), filepath.slice(2));
- }
- return home ? path.join(home, filepath.slice(1)) : filepath;
- }
-
- return filepath;
-};
diff --git a/node_modules/expand-tilde/package.json b/node_modules/expand-tilde/package.json
deleted file mode 100644
index 9b37b1b..0000000
--- a/node_modules/expand-tilde/package.json
+++ /dev/null
@@ -1,67 +0,0 @@
-{
- "name": "expand-tilde",
- "description": "Bash-like tilde expansion for node.js. Expands a leading tilde in a file path to the user home directory, or `~+` to the cwd.",
- "version": "2.0.2",
- "homepage": "https://github.com/jonschlinkert/expand-tilde",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/expand-tilde",
- "bugs": {
- "url": "https://github.com/jonschlinkert/expand-tilde/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "devDependencies": {
- "gulp-format-md": "^0.1.9",
- "is-windows": "^0.2.0",
- "mocha": "^2.5.3"
- },
- "keywords": [
- "cwd",
- "expand",
- "expansion",
- "filepath",
- "home",
- "path",
- "pwd",
- "tilde",
- "user",
- "userhome"
- ],
- "verb": {
- "run": true,
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "braces",
- "expand-brackets",
- "is-glob",
- "micromatch"
- ]
- },
- "reflinks": [
- "verb"
- ],
- "lint": {
- "reflinks": true
- }
- },
- "dependencies": {
- "homedir-polyfill": "^1.0.1"
- }
-}
diff --git a/node_modules/ext/.editorconfig b/node_modules/ext/.editorconfig
deleted file mode 100644
index bd6d81e..0000000
--- a/node_modules/ext/.editorconfig
+++ /dev/null
@@ -1,16 +0,0 @@
-# EditorConfig is awesome: http://EditorConfig.org
-
-# top-most EditorConfig file
-root = true
-
-[*]
-charset = utf-8
-end_of_line = lf
-insert_final_newline = true
-indent_style = tab
-trim_trailing_whitespace = true
-
-[*.md]
-indent_size = 2
-indent_style = space
-trim_trailing_whitespace = false
diff --git a/node_modules/ext/CHANGELOG.md b/node_modules/ext/CHANGELOG.md
deleted file mode 100644
index 7bd856f..0000000
--- a/node_modules/ext/CHANGELOG.md
+++ /dev/null
@@ -1,64 +0,0 @@
-# Changelog
-
-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.
-
-## [1.4.0](https://github.com///compare/v1.3.0...v1.4.0) (2019-11-29)
-
-### Features
-
-- `charset` option for `String.random` ([2a20eeb](https://github.com///commit/2a20eebc5ae784e5c1aacd2c54433fe92a9464c9))
-- `String.prototype.includes` implementation ([ceebe8d](https://github.com///commit/ceebe8dfd6f479d6a7e7b6cd79369291869ee2dd))
-
-## [1.3.0](https://github.com///compare/v1.2.1...v1.3.0) (2019-11-28)
-
-### Features
-
-- `String.random` util ([5b5860a](https://github.com///commit/5b5860ac545b05f00527e00295fdb4f97e4a4e5b))
-
-### [1.2.1](https://github.com///compare/v1.2.0...v1.2.1) (2019-11-26)
-
-## [1.2.0](https://github.com/medikoo/ext/compare/v1.1.2...v1.2.0) (2019-11-07)
-
-### Features
-
-- ceil10, floor10 and round10 for Math ([6a2bc4b](https://github.com/medikoo/ext/commit/6a2bc4b))
-
-### [1.1.2](https://github.com/medikoo/ext/compare/v1.1.1...v1.1.2) (2019-10-29)
-
-### Bug Fixes
-
-- Improve globalThis detection ([470862d](https://github.com/medikoo/ext/commit/470862d))
-
-### [1.1.1](https://github.com/medikoo/ext/compare/v1.1.0...v1.1.1) (2019-10-29)
-
-### Bug Fixes
-
-- Provide naive fallback for sealed Object.prototype case ([a8d528b](https://github.com/medikoo/ext/commit/a8d528b))
-- Workaournd Safari incompatibility case ([0b051e6](https://github.com/medikoo/ext/commit/0b051e6))
-
-## [1.1.0](https://github.com/medikoo/ext/compare/v1.0.3...v1.1.0) (2019-10-21)
-
-### Features
-
-- Object.entries implementation ([cf51e45](https://github.com/medikoo/ext/commit/cf51e45))
-
-### [1.0.3](https://github.com/medikoo/ext/compare/v1.0.1...v1.0.3) (2019-07-03)
-
-Remove obsolete files from publication
-
-### [1.0.2](https://github.com/medikoo/ext/compare/v1.0.1...v1.0.2) (2019-07-03)
-
-(no changes)
-
-### [1.0.1](https://github.com/medikoo/ext/compare/v1.0.0...v1.0.1) (2019-07-03)
-
-Prettify
-
-## 1.0.0 (2019-07-03)
-
-### Features
-
-- `function/identity` (adapted from `es5-ext`) ([f0102af](https://github.com/medikoo/ext/commit/f0102af))
-- `thenable/finally` (adapted from `es5-ext`) ([a8494ac](https://github.com/medikoo/ext/commit/a8494ac))
-- `global-this/is-implemented` ([3a80904](https://github.com/medikoo/ext/commit/3a80904))
-- `globalThis` (mostly adapted from `es5-ext`) ([6559bd3](https://github.com/medikoo/ext/commit/6559bd3))
diff --git a/node_modules/ext/LICENSE b/node_modules/ext/LICENSE
deleted file mode 100644
index 89a96ea..0000000
--- a/node_modules/ext/LICENSE
+++ /dev/null
@@ -1,15 +0,0 @@
-ISC License
-
-Copyright (c) 2011-2019, Mariusz Nowak, @medikoo, medikoo.com
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
diff --git a/node_modules/ext/README.md b/node_modules/ext/README.md
deleted file mode 100644
index 0e67694..0000000
--- a/node_modules/ext/README.md
+++ /dev/null
@@ -1,33 +0,0 @@
-# ext
-
-_(Previously known as `es5-ext`)_
-
-## JavaScript language extensions (with respect to evolving standard)
-
-Non-standard or soon to be standard language utilities in a future proof, non-invasive form.
-
-Doesn't enforce transpilation step. Where it's applicable utilities/extensions are safe to use in all ES3+ implementations.
-
-### Installation
-
-```bash
-npm install ext
-```
-
-### Utilities
-
-- [`globalThis`](docs/global-this.md)
-- `Function`
- - [`identity`](docs/function/identity.md)
-- `Math`
- - [`ceil10`](docs/math/ceil-10.md)
- - [`floor10`](docs/math/floor-10.md)
- - [`round10`](docs/math/round-10.md)
-- `Object`
- - [`entries`](docs/object/entries.md)
-- `String`
- - [`random`](docs/string/random.md)
-- `String.prototype`
- - [`includes`](docs/string_/includes.md)
-- `Thenable.prototype`
- - [`finally`](docs/thenable_/finally.md)
diff --git a/node_modules/ext/docs/function/identity.md b/node_modules/ext/docs/function/identity.md
deleted file mode 100644
index b6a5c1d..0000000
--- a/node_modules/ext/docs/function/identity.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# `Function.identity` _(ext/function/identity)_
-
-Returns input argument.
-
-```javascript
-const identity = require("ext/function/identity");
-
-identity("foo"); // "foo"
-```
diff --git a/node_modules/ext/docs/global-this.md b/node_modules/ext/docs/global-this.md
deleted file mode 100644
index fafd422..0000000
--- a/node_modules/ext/docs/global-this.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# `globalThis` _(ext/global-this)_
-
-Returns global object. Resolve native [globalThis](https://github.com/tc39/proposal-global) if implemented, otherwise fallback to internal resolution of a global object.
-
-```javascript
-const globalThis = require("ext/global-this");
-
-globalThis.Array === Array; // true
-```
diff --git a/node_modules/ext/docs/math/ceil-10.md b/node_modules/ext/docs/math/ceil-10.md
deleted file mode 100644
index 1d53122..0000000
--- a/node_modules/ext/docs/math/ceil-10.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# `Math.ceil10` _(ext/math/ceil-10)_
-
-Decimal ceil
-
-```javascript
-const ceil10 = require("ext/math/ceil-10");
-
-ceil10(55.51, -1); // 55.6
-ceil10(-59, 1); // -50;
-```
diff --git a/node_modules/ext/docs/math/floor-10.md b/node_modules/ext/docs/math/floor-10.md
deleted file mode 100644
index 099c1b6..0000000
--- a/node_modules/ext/docs/math/floor-10.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# `Math.floor10` _(ext/math/floor-10)_
-
-Decimal floor
-
-```javascript
-const floor10 = require("ext/math/floor-10");
-
-floor10(55.59, -1); // 55.5
-floor10(59, 1); // 50
-```
diff --git a/node_modules/ext/docs/math/round-10.md b/node_modules/ext/docs/math/round-10.md
deleted file mode 100644
index 727acb1..0000000
--- a/node_modules/ext/docs/math/round-10.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# `Math.round10` _(ext/math/round-10)_
-
-Decimal round
-
-```javascript
-const round10 = require("ext/math/round-10");
-
-round10(55.549, -1); // 55.5
-round10(1.005, -2); // 1.01
-```
diff --git a/node_modules/ext/docs/object/entries.md b/node_modules/ext/docs/object/entries.md
deleted file mode 100644
index 2d05f4c..0000000
--- a/node_modules/ext/docs/object/entries.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# `Object.entries` _(ext/object/entries)_
-
-[Object.entries](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries) implementation.
-
-Returns native `Object.entries` if it's implemented, otherwise library implementation is returned
-
-```javascript
-const entries = require("ext/object/entries");
-
-entries({ foo: "bar" }); // [["foo", "bar"]]
-```
diff --git a/node_modules/ext/docs/string/random.md b/node_modules/ext/docs/string/random.md
deleted file mode 100644
index c3099e9..0000000
--- a/node_modules/ext/docs/string/random.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# `String.random(options = { ... })` _(ext/string/random)_
-
-Returns generated random string, contained only of ascii cars `a-z` and `0-1`.
-By default returns string of length `10`.
-
-```javascript
-const random = require("ext/string/random");
-
-random(); // "upcfns0i4t"
-random({ length: 3 }); // "5tw"
-```
-
-## Supported options:
-
-### `isUnique: false`
-
-Ensures generated string is unique among ones already returned.
-
-_Note: When not applying this setting, accidental generation of same string is still highly unlikely. Provided option is just to provide a mean to eliminate possibility of an edge case of duplicate string being returned_
-
-### `length: 10`
-
-Desired length of result string
-
-### `charset: null`
-
-Fixed list of possible characters
-
-```javascript
-random({ charset: "abc" }); // "bacbccbbac"
-```
diff --git a/node_modules/ext/docs/string_/includes.md b/node_modules/ext/docs/string_/includes.md
deleted file mode 100644
index 4fe1b58..0000000
--- a/node_modules/ext/docs/string_/includes.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# `string.includes(position = 0)` _(ext/string\_/includes)_
-
-`includes` method for strings. Resolve native [includes](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes) if implemented, otherwise fallback to shim implementation.
-
-```javascript
-const includes = require("ext/string_/includes");
-
-includes.call("razdwa", "raz"); // true
-includes.call("razdwa", "trzy"); // false
-```
diff --git a/node_modules/ext/docs/thenable_/finally.md b/node_modules/ext/docs/thenable_/finally.md
deleted file mode 100644
index 978ce0c..0000000
--- a/node_modules/ext/docs/thenable_/finally.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# `thenable.finally` _(ext/thenable\_/finally)_
-
-`finally` method for any _thenable_ input
-
-```javascript
-const finally = require("ext/thenable_/finally");
-
-finally.call(thenable, () => console.log("Thenable resolved"));
-```
diff --git a/node_modules/ext/function/identity.js b/node_modules/ext/function/identity.js
deleted file mode 100644
index cde213f..0000000
--- a/node_modules/ext/function/identity.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = function (value) { return value; };
diff --git a/node_modules/ext/global-this/implementation.js b/node_modules/ext/global-this/implementation.js
deleted file mode 100644
index 6a06d52..0000000
--- a/node_modules/ext/global-this/implementation.js
+++ /dev/null
@@ -1,31 +0,0 @@
-var naiveFallback = function () {
- if (typeof self === "object" && self) return self;
- if (typeof window === "object" && window) return window;
- throw new Error("Unable to resolve global `this`");
-};
-
-module.exports = (function () {
- if (this) return this;
-
- // Unexpected strict mode (may happen if e.g. bundled into ESM module)
-
- // Thanks @mathiasbynens -> https://mathiasbynens.be/notes/globalthis
- // In all ES5+ engines global object inherits from Object.prototype
- // (if you approached one that doesn't please report)
- try {
- Object.defineProperty(Object.prototype, "__global__", {
- get: function () { return this; },
- configurable: true
- });
- } catch (error) {
- // Unfortunate case of Object.prototype being sealed (via preventExtensions, seal or freeze)
- return naiveFallback();
- }
- try {
- // Safari case (window.__global__ is resolved with global context, but __global__ does not)
- if (!__global__) return naiveFallback();
- return __global__;
- } finally {
- delete Object.prototype.__global__;
- }
-})();
diff --git a/node_modules/ext/global-this/index.js b/node_modules/ext/global-this/index.js
deleted file mode 100644
index 8a99c25..0000000
--- a/node_modules/ext/global-this/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? globalThis : require("./implementation");
diff --git a/node_modules/ext/global-this/is-implemented.js b/node_modules/ext/global-this/is-implemented.js
deleted file mode 100644
index 3eae23e..0000000
--- a/node_modules/ext/global-this/is-implemented.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = function () {
- if (typeof globalThis !== "object") return false;
- if (!globalThis) return false;
- return globalThis.Array === Array;
-};
diff --git a/node_modules/ext/lib/private/decimal-adjust.js b/node_modules/ext/lib/private/decimal-adjust.js
deleted file mode 100644
index e04cde9..0000000
--- a/node_modules/ext/lib/private/decimal-adjust.js
+++ /dev/null
@@ -1,29 +0,0 @@
-// Credit:
-// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/round
-// #Decimal_rounding
-
-"use strict";
-
-var isValue = require("type/object/is")
- , ensureInteger = require("type/integer/ensure");
-
-var split = String.prototype.split;
-
-module.exports = function (type) {
- return function (value/*, exp*/) {
- value = Number(value);
- var exp = arguments[1];
- if (isValue(exp)) exp = ensureInteger(exp);
- if (!value) return value;
- if (!exp) return Math[type](value);
- if (!isFinite(value)) return value;
-
- // Shift
- var tokens = split.call(value, "e");
- value = Math[type](tokens[0] + "e" + ((tokens[1] || 0) - exp));
-
- // Shift back
- tokens = value.toString().split("e");
- return Number(tokens[0] + "e" + (Number(tokens[1] || 0) + exp));
- };
-};
diff --git a/node_modules/ext/math/ceil-10.js b/node_modules/ext/math/ceil-10.js
deleted file mode 100644
index c57a730..0000000
--- a/node_modules/ext/math/ceil-10.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("../lib/private/decimal-adjust")("ceil");
diff --git a/node_modules/ext/math/floor-10.js b/node_modules/ext/math/floor-10.js
deleted file mode 100644
index 27dd1aa..0000000
--- a/node_modules/ext/math/floor-10.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("../lib/private/decimal-adjust")("floor");
diff --git a/node_modules/ext/math/round-10.js b/node_modules/ext/math/round-10.js
deleted file mode 100644
index 643d676..0000000
--- a/node_modules/ext/math/round-10.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("../lib/private/decimal-adjust")("round");
diff --git a/node_modules/ext/node_modules/type/CHANGELOG.md b/node_modules/ext/node_modules/type/CHANGELOG.md
deleted file mode 100644
index 0745473..0000000
--- a/node_modules/ext/node_modules/type/CHANGELOG.md
+++ /dev/null
@@ -1,142 +0,0 @@
-# Changelog
-
-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.
-
-## [2.5.0](https://github.com/medikoo/type/compare/v2.4.0...v2.5.0) (2021-03-08)
-
-### Features
-
-- `errorCode` option for `ensure*` utils ([777a1f2](https://github.com/medikoo/type/commit/777a1f2c9fd76defcd24d3a30cce49491947fef7))
-
-## [2.4.0](https://github.com/medikoo/type/compare/v2.3.0...v2.4.0) (2021-03-08)
-
-### Features
-
-- `set/is` and `set/ensure` utils ([083ec23](https://github.com/medikoo/type/commit/083ec2351718c310f316dcfd8c624a13201e227f))
-
-## [2.3.0](https://github.com/medikoo/type/compare/v2.2.0...v2.3.0) (2021-02-16)
-
-### Features
-
-- `map/is` and `map/ensure` utils ([aafd1cb](https://github.com/medikoo/type/commit/aafd1cbd8c888fda98d39fd17e59f38b078d7bcf))
-
-## [2.2.0](https://github.com/medikoo/type/compare/v2.1.0...v2.2.0) (2021-02-11)
-
-### Features
-
-- Support `ensureItem` option in `array/ensure` ([8f74973](https://github.com/medikoo/type/commit/8f749739df9bfebf44087093e09c8f7341a33a09))
-
-## [2.1.0](https://github.com/medikoo/type/compare/v2.0.0...v2.1.0) (2020-08-21)
-
-### Features
-
-- `ensure` util for cumulated input validation ([814c5a8](https://github.com/medikoo/type/commit/814c5a801ecac23d06d8a5f4bcafc4763a04408c))
-- Provide an alternative error message with `options.name` ([c7751c0](https://github.com/medikoo/type/commit/c7751c084ee4f3d3ed10500db0edde2ff00e03a1))
-- Support `%n` (meaningful name) token in error message resolver ([b0f374e](https://github.com/medikoo/type/commit/b0f374e54345c714fe37a90887ecfe60577ce133))
-- Support `min` validation for natural numbers ([e703512](https://github.com/medikoo/type/commit/e70351248818d3e113110106ad174b42c5fd9b25))
-- Support custom Error constructors ([c6ecb90](https://github.com/medikoo/type/commit/c6ecb90e21c1c778210934204cbe393fb89ef2f6))
-
-### Bug Fixes
-
-- Fix typo in error message ([2735533](https://github.com/medikoo/type/commit/2735533de28d33dfa13222743698169c92d08c09))
-
-## [2.0.0](https://github.com/medikoo/type/compare/v1.2.0...v2.0.0) (2019-10-10)
-
-### Features
-
-- `allowedKeys` option for plain-object/ensure ([f81e72e](https://github.com/medikoo/type/commit/f81e72e))
-- `ensurePropertyValue` option for plain-object/ensure ([c5ff8fb](https://github.com/medikoo/type/commit/c5ff8fb))
-- Replace `coerceItem` with `ensureItem` option in iterable/ensure ([721494f](https://github.com/medikoo/type/commit/721494f))
-- Seclude lib/resolve-error-message ([12636d9](https://github.com/medikoo/type/commit/12636d9))
-- Validate options.ensureItem in iterable/ensure ([78da6c1](https://github.com/medikoo/type/commit/78da6c1))
-
-### BREAKING CHANGES
-
-- iterable/ensure no longer supports `coerceItem` option. Instead `ensureItem` was introduced
-
-## [1.2.0](https://github.com/medikoo/type/compare/v1.1.0...v1.2.0) (2019-09-20)
-
-### Bug Fixes
-
-- Improve error message so it's not confusing ([97cd6b9](https://github.com/medikoo/type/commit/97cd6b9))
-
-### Features
-
-- 'coerceItem' option for iterable/ensure ([0818860](https://github.com/medikoo/type/commit/0818860))
-
-## [1.1.0](https://github.com/medikoo/type/compare/v1.0.3...v1.1.0) (2019-09-20)
-
-### Features
-
-- `denyEmpty` option for iterables validation ([301d071](https://github.com/medikoo/type/commit/301d071))
-
-### [1.0.3](https://github.com/medikoo/type/compare/v1.0.2...v1.0.3) (2019-08-06)
-
-### Bug Fixes
-
-- Recognize custom built ES5 era errors ([6462fac](https://github.com/medikoo/type/commit/6462fac))
-
-### [1.0.2](https://github.com/medikoo/type/compare/v1.0.1...v1.0.2) (2019-08-06)
-
-### Bug Fixes
-
-- Recognize host errors (e.g. DOMException) ([96ef399](https://github.com/medikoo/type/commit/96ef399))
-
-## [1.0.1](https://github.com/medikoo/type/compare/v1.0.0...v1.0.1) (2019-04-08)
-
-# 1.0.0 (2019-04-05)
-
-### Bug Fixes
-
-- ensure 'is' functions can't crash ([59ceb78](https://github.com/medikoo/type/commit/59ceb78))
-
-### Features
-
-- array-length/coerce ([af8ddec](https://github.com/medikoo/type/commit/af8ddec))
-- array-length/ensure ([d313eb6](https://github.com/medikoo/type/commit/d313eb6))
-- array-like/ensure ([45f1ddd](https://github.com/medikoo/type/commit/45f1ddd))
-- array-like/is ([9a026a5](https://github.com/medikoo/type/commit/9a026a5))
-- array/ensure ([9db1515](https://github.com/medikoo/type/commit/9db1515))
-- array/is ([9672839](https://github.com/medikoo/type/commit/9672839))
-- date/ensure ([44e25a0](https://github.com/medikoo/type/commit/44e25a0))
-- date/is ([0316558](https://github.com/medikoo/type/commit/0316558))
-- ensure to not crash ([3998348](https://github.com/medikoo/type/commit/3998348))
-- ensure/number ([134b5cb](https://github.com/medikoo/type/commit/134b5cb))
-- error/ensure ([d5c8a30](https://github.com/medikoo/type/commit/d5c8a30))
-- error/is-error ([4d6b899](https://github.com/medikoo/type/commit/4d6b899))
-- finite/coerce ([accaad1](https://github.com/medikoo/type/commit/accaad1))
-- finite/ensure ([51e4174](https://github.com/medikoo/type/commit/51e4174))
-- function/ensure ([b624c9a](https://github.com/medikoo/type/commit/b624c9a))
-- function/is ([dab8026](https://github.com/medikoo/type/commit/dab8026))
-- integer/coerce ([89dea2e](https://github.com/medikoo/type/commit/89dea2e))
-- integer/ensure ([44a7071](https://github.com/medikoo/type/commit/44a7071))
-- iterable/ensure ([3d48841](https://github.com/medikoo/type/commit/3d48841))
-- iterable/is ([cf09513](https://github.com/medikoo/type/commit/cf09513))
-- lib/is-to-string-tag-supported ([c8c001d](https://github.com/medikoo/type/commit/c8c001d))
-- natural-number/coerce ([d08fdd9](https://github.com/medikoo/type/commit/d08fdd9))
-- natural-number/ensure ([6c24d12](https://github.com/medikoo/type/commit/6c24d12))
-- number/coerce ([86ccf08](https://github.com/medikoo/type/commit/86ccf08))
-- object/ensure ([a9e8eed](https://github.com/medikoo/type/commit/a9e8eed))
-- object/is ([d2d7251](https://github.com/medikoo/type/commit/d2d7251))
-- plain-function/ensure ([5186518](https://github.com/medikoo/type/commit/5186518))
-- plain-function/is ([51bc791](https://github.com/medikoo/type/commit/51bc791))
-- plain-object/ensure ([91cf5e5](https://github.com/medikoo/type/commit/91cf5e5))
-- plain-object/is ([4dcf393](https://github.com/medikoo/type/commit/4dcf393))
-- promise/ensure ([8d096a4](https://github.com/medikoo/type/commit/8d096a4))
-- promise/is ([a00de02](https://github.com/medikoo/type/commit/a00de02))
-- prototype/is ([b23bdcc](https://github.com/medikoo/type/commit/b23bdcc))
-- reg-exp/ensure ([6f7bbcb](https://github.com/medikoo/type/commit/6f7bbcb))
-- reg-exp/is ([9728519](https://github.com/medikoo/type/commit/9728519))
-- safe-integer/coerce ([b8549c4](https://github.com/medikoo/type/commit/b8549c4))
-- safe-integer/ensure ([a70ef3f](https://github.com/medikoo/type/commit/a70ef3f))
-- string/coerce ([b25c71f](https://github.com/medikoo/type/commit/b25c71f))
-- string/ensure ([b62577d](https://github.com/medikoo/type/commit/b62577d))
-- support 'default' in resolveException ([e08332a](https://github.com/medikoo/type/commit/e08332a))
-- switch config to ES3 based ([37606d9](https://github.com/medikoo/type/commit/37606d9))
-- thenable/ensure ([6762c0d](https://github.com/medikoo/type/commit/6762c0d))
-- thenable/is ([2711d70](https://github.com/medikoo/type/commit/2711d70))
-- time-value/coerce ([27fd109](https://github.com/medikoo/type/commit/27fd109))
-- time-value/ensure ([1f6a8ea](https://github.com/medikoo/type/commit/1f6a8ea))
-- **string/coerce:** restrict toString acceptance ([2a87100](https://github.com/medikoo/type/commit/2a87100))
-- value/ensure ([dd6d8cb](https://github.com/medikoo/type/commit/dd6d8cb))
-- value/is ([fdf4763](https://github.com/medikoo/type/commit/fdf4763))
diff --git a/node_modules/ext/node_modules/type/LICENSE b/node_modules/ext/node_modules/type/LICENSE
deleted file mode 100644
index 503a2bb..0000000
--- a/node_modules/ext/node_modules/type/LICENSE
+++ /dev/null
@@ -1,15 +0,0 @@
-ISC License
-
-Copyright (c) 2019-2020, Mariusz Nowak, @medikoo, medikoo.com
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
diff --git a/node_modules/ext/node_modules/type/README.md b/node_modules/ext/node_modules/type/README.md
deleted file mode 100644
index a3a0b48..0000000
--- a/node_modules/ext/node_modules/type/README.md
+++ /dev/null
@@ -1,165 +0,0 @@
-[![*nix build status][nix-build-image]][nix-build-url]
-[![Windows build status][win-build-image]][win-build-url]
-[![Tests coverage][cov-image]][cov-url]
-[![npm version][npm-image]][npm-url]
-
-# type
-
-## Runtime validation and processing of JavaScript types
-
-- Respects language nature and acknowledges its quirks
-- Allows coercion in restricted forms (rejects clearly invalid input, normalizes permissible type deviations)
-- No transpilation implied, written to work in all ECMAScript 3+ engines
-
-## Use case
-
-Validate arguments input in public API endpoints.
-
-_For validation of more sophisticated input structures (as deeply nested configuration objects) it's recommended to consider more powerful schema based utlities (as [AJV](https://ajv.js.org/) or [@hapi/joi](https://hapi.dev/family/joi/))_
-
-### Example usage
-
-Bulletproof input arguments normalization and validation:
-
-```javascript
-const ensureString = require('type/string/ensure')
- , ensureDate = require('type/date/ensure')
- , ensureNaturalNumber = require('type/natural-number/ensure')
- , isObject = require('type/object/is');
-
-module.exports = (path, options = { min: 0 }) {
- path = ensureString(path, { errorMessage: "%v is not a path" });
- if (!isObject(options)) options = {};
- const min = ensureNaturalNumber(options.min, { default: 0 })
- , max = ensureNaturalNumber(options.max, { isOptional: true })
- , startTime = ensureDate(options.startTime, { isOptional: true });
-
- // ...logic
-};
-```
-
-### Installation
-
-```bash
-npm install type
-```
-
-## Utilities
-
-Aside of general [`ensure`](docs/ensure.md) validation util, following kind of utilities for recognized JavaScript types are provided:
-
-##### `*/coerce`
-
-Restricted coercion into primitive type. Returns coerced value or `null` if value is not coercible per rules.
-
-##### `*/is`
-
-Object type/kind confirmation, returns either `true` or `false`.
-
-##### `*/ensure`
-
-Value validation. Returns input value (in primitive cases possibly coerced) or if value doesn't meet the constraints throws `TypeError` .
-
-Each `*/ensure` utility, accepts following options (eventually passed with second argument):
-
-- `isOptional` - Makes `null` or `undefined` accepted as valid value. In such case instead of `TypeError` being thrown, `null` is returned.
-- `default` - A value to be returned if `null` or `undefined` is passed as an input value.
-- `errorMessage` - Custom error message. Following placeholders can be used:
- - `%v` - To be replaced with short string representation of invalid value
- - `%n` - To be replaced with meaninfgul name (to be passed with `name` option) of validated value. Not effective if `name` option is not present
-- `errorCode` - Eventual error code to be exposed on `.code` error property
-- `name` - Meaningful name for validated value, to be used in error message, assuming it contains `%n` placeholder
-- `Error` - Alternative error constructor to be used (defaults to `TypeError`)
-
-### Index
-
-#### General utils:
-
-- [`ensure`](docs/ensure.md)
-
-#### Type specific utils:
-
-- **Value**
- - [`value/is`](docs/value.md#valueis)
- - [`value/ensure`](docs/value.md#valueensure)
-- **Object**
- - [`object/is`](docs/object.md#objectis)
- - [`object/ensure`](docs/object.md#objectensure)
- - **Plain Object**
- - [`plain-object/is`](docs/plain-object.md#plain-objectis)
- - [`plain-object/ensure`](docs/plain-object.md#plain-objectensure)
-- **String**
- - [`string/coerce`](docs/string.md#stringcoerce)
- - [`string/ensure`](docs/string.md#stringensure)
-- **Number**
- - [`number/coerce`](docs/number.md#numbercoerce)
- - [`number/ensure`](docs/number.md#numberensure)
- - **Finite Number**
- - [`finite/coerce`](docs/finite.md#finitecoerce)
- - [`finite/ensure`](docs/finite.md#finiteensure)
- - **Integer Number**
- - [`integer/coerce`](docs/integer.md#integercoerce)
- - [`integer/ensure`](docs/integer.md#integerensure)
- - **Safe Integer Number**
- - [`safe-integer/coerce`](docs/safe-integer.md#safe-integercoerce)
- - [`safe-integer/ensure`](docs/.md#safe-integerensure)
- - **Natural Number**
- - [`natural-number/coerce`](docs/natural-number.md#natural-numbercoerce)
- - [`natural-number/ensure`](docs/natural-number.md#natural-numberensure)
- - **Array Length**
- - [`array-length/coerce`](docs/array-length.md#array-lengthcoerce)
- - [`array-length/ensure`](docs/array-length.md#array-lengthensure)
- - **Time Value**
- - [`time-value/coerce`](docs/time-value.md#time-valuecoerce)
- - [`time-value/ensure`](docs/time-value.md#time-valueensure)
-- **Array Like**
- - [`array-like/is`](docs/array-like.md#array-likeis)
- - [`array-like/ensure`](docs/array-like.md#array-likeensure)
- - **Array**
- - [`array/is`](docs/array.md#arrayis)
- - [`array/ensure`](docs/array.md#arrayensure)
-- **Iterable**
- - [`iterable/is`](docs/iterable.md#iterableis)
- - [`iterable/ensure`](docs/iterable.md#iterableensure)
-- **Set**
- - [`set/is`](docs/set.md#setis)
- - [`set/ensure`](docs/set.md#setensure)
-- **Map**
- - [`map/is`](docs/map.md#mapis)
- - [`map/ensure`](docs/map.md#mapensure)
-- **Date**
- - [`date/is`](docs/date.md#dateis)
- - [`date/ensure`](docs/date.md#dateensure)
-- **Function**
- - [`function/is`](docs/function.md#functionis)
- - [`function/ensure`](docs/function.md#functionensure)
- - **Plain Function**
- - [`plain-function/is`](docs/plain-function.md#plain-functionis)
- - [`plain-function/ensure`](docs/plain-function.md#plain-functionensure)
-- **Reg Exp**
- - [`reg-exp/is`](docs/reg-exp.md#reg-expis)
- - [`reg-exp/ensure`](docs/.md#reg-expensure)
-- **Thenable**
- - [`thenable/is`](docs/thenable.md#thenableis)
- - [`thenable/ensure`](docs/thenable.md#thenableensure)
- - **Promise**
- - [`promise/is`](docs/promise.md#promiseis)
- - [`promise/ensure`](docs/promise.md#promiseensure)
-- **Error**
- - [`error/is`](docs/error.md#erroris)
- - [`error/ensure`](docs/error.md#errorensure)
-- **Prototype**
- - [`prototype/is`](docs/prototype.md#prototypeis)
-
-### Tests
-
- $ npm test
-
-[nix-build-image]: https://semaphoreci.com/api/v1/medikoo-org/type/branches/master/shields_badge.svg
-[nix-build-url]: https://semaphoreci.com/medikoo-org/type
-[win-build-image]: https://ci.appveyor.com/api/projects/status/8nrtluuwsb5k9l8d?svg=true
-[win-build-url]: https://ci.appveyor.com/api/project/medikoo/type
-[cov-image]: https://img.shields.io/codecov/c/github/medikoo/type.svg
-[cov-url]: https://codecov.io/gh/medikoo/type
-[npm-image]: https://img.shields.io/npm/v/type.svg
-[npm-url]: https://www.npmjs.com/package/type
diff --git a/node_modules/ext/node_modules/type/array-length/coerce.js b/node_modules/ext/node_modules/type/array-length/coerce.js
deleted file mode 100644
index 3dbbf97..0000000
--- a/node_modules/ext/node_modules/type/array-length/coerce.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-var coerceToSafeInteger = require("../safe-integer/coerce");
-
-module.exports = function (value) {
- value = coerceToSafeInteger(value);
- if (!value) return value;
- if (value < 0) return null;
- return value;
-};
diff --git a/node_modules/ext/node_modules/type/array-length/ensure.js b/node_modules/ext/node_modules/type/array-length/ensure.js
deleted file mode 100644
index 2b48ddc..0000000
--- a/node_modules/ext/node_modules/type/array-length/ensure.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-var resolveException = require("../lib/resolve-exception")
- , coerce = require("./coerce");
-
-module.exports = function (value/*, options*/) {
- var coerced = coerce(value);
- if (coerced !== null) return coerced;
- var options = arguments[1];
- var errorMessage =
- options && options.name
- ? "Expected an array length for %n, received %v"
- : "%v is not an array length";
- return resolveException(value, errorMessage, options);
-};
diff --git a/node_modules/ext/node_modules/type/array-like/ensure.js b/node_modules/ext/node_modules/type/array-like/ensure.js
deleted file mode 100644
index 0d1a9f7..0000000
--- a/node_modules/ext/node_modules/type/array-like/ensure.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-
-var resolveException = require("../lib/resolve-exception")
- , is = require("./is");
-
-module.exports = function (value/*, options*/) {
- if (is(value, arguments[1])) return value;
- var options = arguments[1];
- var errorMessage =
- options && options.name
- ? "Expected an array like for %n, received %v"
- : "%v is not an array like";
- return resolveException(value, errorMessage, options);
-};
diff --git a/node_modules/ext/node_modules/type/array-like/is.js b/node_modules/ext/node_modules/type/array-like/is.js
deleted file mode 100644
index 7778fed..0000000
--- a/node_modules/ext/node_modules/type/array-like/is.js
+++ /dev/null
@@ -1,21 +0,0 @@
-"use strict";
-
-var coerceToArrayLength = require("../array-length/coerce")
- , isObject = require("../object/is");
-
-module.exports = function (value/*, options*/) {
- if (!isObject(value)) {
- var options = arguments[1];
- if (isObject(options) && options.allowString && typeof value === "string") return true;
- return false;
- }
-
- if (typeof value === "function") return false;
-
- var length;
- try { length = value.length; }
- catch (error) { return false; }
-
- if (coerceToArrayLength(length) === null) return false;
- return true;
-};
diff --git a/node_modules/ext/node_modules/type/array/ensure.js b/node_modules/ext/node_modules/type/array/ensure.js
deleted file mode 100644
index 19e4599..0000000
--- a/node_modules/ext/node_modules/type/array/ensure.js
+++ /dev/null
@@ -1,43 +0,0 @@
-"use strict";
-
-var resolveException = require("../lib/resolve-exception")
- , resolveErrorMessage = require("../lib/resolve-error-message")
- , toShortString = require("../lib/to-short-string")
- , ensurePlainFunction = require("../plain-function/ensure")
- , is = require("./is");
-
-var objHasOwnProperty = Object.prototype.hasOwnProperty, invalidItemsLimit = 3;
-
-module.exports = function (value /*, options*/) {
- var options = arguments[1];
- var mainErrorMessage =
- options && options.name ? "Expected an array for %n, received %v" : "%v is not an array";
- if (!is(value)) return resolveException(value, mainErrorMessage, options);
- if (!options) return value;
-
- var ensureItem = ensurePlainFunction(options.ensureItem, { isOptional: true });
- if (ensureItem) {
- var coercedValue = [], invalidItems;
- for (var index = 0, length = value.length; index < length; ++index) {
- if (!objHasOwnProperty.call(value, index)) continue;
- var coercedItem;
- try {
- coercedItem = ensureItem(value[index]);
- } catch (error) {
- if (!invalidItems) invalidItems = [];
- if (invalidItems.push(toShortString(value[index])) === invalidItemsLimit) break;
- }
- if (invalidItems) continue;
- coercedValue[index] = coercedItem;
- }
- if (invalidItems) {
- throw new TypeError(
- resolveErrorMessage(mainErrorMessage, value, options) +
- ".\n Following items are invalid: " +
- invalidItems.join(", ")
- );
- }
- return coercedValue;
- }
- return value;
-};
diff --git a/node_modules/ext/node_modules/type/array/is.js b/node_modules/ext/node_modules/type/array/is.js
deleted file mode 100644
index 13fd8d3..0000000
--- a/node_modules/ext/node_modules/type/array/is.js
+++ /dev/null
@@ -1,27 +0,0 @@
-"use strict";
-
-var isPrototype = require("../prototype/is");
-
-var isArray;
-if (typeof Array.isArray === "function") {
- isArray = Array.isArray;
-} else {
- var objectToString = Object.prototype.toString, objectTaggedString = objectToString.call([]);
- isArray = function (value) { return objectToString.call(value) === objectTaggedString; };
-}
-
-module.exports = function (value) {
- if (!isArray(value)) return false;
-
- // Sanity check (reject objects which do not expose common Array interface)
- if (!hasOwnProperty.call(value, "length")) return false;
- try {
- if (typeof value.length !== "number") return false;
- if (typeof value.push !== "function") return false;
- if (typeof value.splice !== "function") return false;
- } catch (error) {
- return false;
- }
-
- return !isPrototype(value);
-};
diff --git a/node_modules/ext/node_modules/type/date/ensure.js b/node_modules/ext/node_modules/type/date/ensure.js
deleted file mode 100644
index 0fae4d3..0000000
--- a/node_modules/ext/node_modules/type/date/ensure.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-var resolveException = require("../lib/resolve-exception")
- , is = require("./is");
-
-module.exports = function (value/*, options*/) {
- if (is(value)) return value;
- var options = arguments[1];
- var errorMessage =
- options && options.name ? "Expected a date for %n, received %v" : "%v is not a date";
- return resolveException(value, errorMessage, options);
-};
diff --git a/node_modules/ext/node_modules/type/date/is.js b/node_modules/ext/node_modules/type/date/is.js
deleted file mode 100644
index 0754085..0000000
--- a/node_modules/ext/node_modules/type/date/is.js
+++ /dev/null
@@ -1,26 +0,0 @@
-"use strict";
-
-var isPrototype = require("../prototype/is");
-
-var dateValueOf = Date.prototype.valueOf;
-
-module.exports = function (value) {
- if (!value) return false;
-
- try {
- // Sanity check (reject objects which do not expose common Date interface)
- if (typeof value.getFullYear !== "function") return false;
- if (typeof value.getTimezoneOffset !== "function") return false;
- if (typeof value.setFullYear !== "function") return false;
-
- // Ensure its native Date object (has [[DateValue]] slot)
- dateValueOf.call(value);
- } catch (error) {
- return false;
- }
-
- // Ensure it hosts valid date
- if (isNaN(value)) return false;
-
- return !isPrototype(value);
-};
diff --git a/node_modules/ext/node_modules/type/docs/array-length.md b/node_modules/ext/node_modules/type/docs/array-length.md
deleted file mode 100644
index cca7d8a..0000000
--- a/node_modules/ext/node_modules/type/docs/array-length.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# Array length
-
-_number_ primitive that conforms as valid _array length_
-
-## `array-length/coerce`
-
-Follows [`safe-integer/coerce`](safe-integer.md#safe-integercoerce) but returns `null` in place of values which are below `0`
-
-```javascript
-const coerceToArrayLength = require("type/safe-integer/coerce");
-
-coerceToArrayLength("12.95"); // 12
-coerceToArrayLength(9007199254740992); // null
-coerceToArrayLength(null); // null
-```
-
-## `array-length/ensure`
-
-If given argument is an _array length_ coercible value (via [`array-length/coerce`](#array-lengthcoerce)) returns result number.
-Otherwise `TypeError` is thrown.
-
-```javascript
-const ensureArrayLength = require("type/array-length/ensure");
-
-ensureArrayLength(12.93); // "12"
-ensureArrayLength(9007199254740992); // Thrown TypeError: 9007199254740992 is not a valid array length
-```
diff --git a/node_modules/ext/node_modules/type/docs/array-like.md b/node_modules/ext/node_modules/type/docs/array-like.md
deleted file mode 100644
index 2a48df8..0000000
--- a/node_modules/ext/node_modules/type/docs/array-like.md
+++ /dev/null
@@ -1,33 +0,0 @@
-# Array Like
-
-_Array-like_ value (any value with `length` property)
-
-## `array-like/is`
-
-Restricted _array-like_ confirmation. Returns true for every value that meets following contraints
-
-- is an _object_ (or with `allowString` option, a _string_)
-- is not a _function_
-- Exposes `length` that meets [`array-length`](array-length.md#array-lengthcoerce) constraints
-
-```javascript
-const isArrayLike = require("type/array-like/is");
-
-isArrayLike([]); // true
-isArrayLike({}); // false
-isArrayLike({ length: 0 }); // true
-isArrayLike("foo"); // false
-isArrayLike("foo", { allowString: true }); // true
-```
-
-## `array-like/ensure`
-
-If given argument is an _array-like_, it is returned back. Otherwise `TypeError` is thrown.
-
-```javascript
-const ensureArrayLike = require("type/array-like/ensure");
-
-ensureArrayLike({ length: 0 }); // { length: 0 }
-ensureArrayLike("foo", { allowString: true }); // "foo"
-ensureArrayLike({}); // Thrown TypeError: null is not an iterable
-```
diff --git a/node_modules/ext/node_modules/type/docs/array.md b/node_modules/ext/node_modules/type/docs/array.md
deleted file mode 100644
index 0c6ac4e..0000000
--- a/node_modules/ext/node_modules/type/docs/array.md
+++ /dev/null
@@ -1,46 +0,0 @@
-# Array
-
-_Array_ instance
-
-## `array/is`
-
-Confirms if given object is a native array
-
-```javascript
-const isArray = require("type/array/is");
-
-isArray([]); // true
-isArray({}); // false
-isArray("foo"); // false
-```
-
-## `array/ensure`
-
-If given argument is an array, it is returned back. Otherwise `TypeError` is thrown.
-
-```javascript
-const ensureArray = require("type/array/ensure");
-
-ensureArray(["foo"]); // ["foo"]
-ensureArray("foo"); // Thrown TypeError: foo is not an array
-```
-
-### Confirming on items
-
-Items can be validated by passing `ensureItem` option. Note that in this case:
-
-- A newly created instance of an array with coerced item values is returned
-- Error message lists up to three items which are invalid
-
-```javascript
-const ensureString = require("type/string/ensure");
-
-ensureArray([12], { ensureItem: ensureString }); // ["12"]
-
-/*
- Below invocation with crash with:
- TypeError: 23, [object Object], [object Object] is not a valid array.
- Following items are invalid: [object Object], [object Object]
-*/
-ensureArray([23, {}, {}], { ensureItem: ensureString });
-```
diff --git a/node_modules/ext/node_modules/type/docs/date.md b/node_modules/ext/node_modules/type/docs/date.md
deleted file mode 100644
index 98d3654..0000000
--- a/node_modules/ext/node_modules/type/docs/date.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# Date
-
-_Date_ instance
-
-## `date/is`
-
-Confirms if given object is a native date, and is not an _Invalid Date_
-
-```javascript
-const isDate = require("type/date/is");
-
-isDate(new Date()); // true
-isDate(new Date("Invalid date")); // false
-isDate(Date.now()); // false
-isDate("foo"); // false
-```
-
-## `date/ensure`
-
-If given argument is a date object, it is returned back. Otherwise `TypeError` is thrown.
-
-```javascript
-const ensureDate = require("type/date/ensure");
-
-const date = new Date();
-ensureDate(date); // date
-ensureDate(123123); // Thrown TypeError: 123123 is not a date object
-```
diff --git a/node_modules/ext/node_modules/type/docs/ensure.md b/node_modules/ext/node_modules/type/docs/ensure.md
deleted file mode 100644
index c3a9527..0000000
--- a/node_modules/ext/node_modules/type/docs/ensure.md
+++ /dev/null
@@ -1,40 +0,0 @@
-# `ensure(validationDatum1[, ...validationDatumN[, options]])`
-
-Provides a complete cumulated input validation for an API endpoint. Validates multiple input arguments and consolidates eventual errors into one.
-
-## Arguments
-
-### `validationDatum1[, ...validationDatumN]`
-
-For each argument to be validated a `validationDatum` of following stucture should be defined:
-
-```javascript
-[argumentName, inputValue, ensureFunction, (options = {})];
-```
-
-- `argumentName` - Name of validated argument (used for meaningful error messaging)
-- `inputValue` - An argument value as passed to function
-- `ensureFunction` - An `ensureX` function with which argument should be validated (e.g. if we're after string, then we need [string/ensure](string.md#stringensure))
-- `options` - Optional, extra options to be passed to `ensureX` function
-
-### `[options]`
-
-Eventual options be passed to underlying `ensureX` functions. If custom error constructor is passed with an `Error` option, then cumulated error is created with this constructor.
-
-## Usage example
-
-```javascript
-const ensure = require("type/ensure");
-const ensureString = require("type/string/ensure");
-const ensureNaturalNumber = require("type/natural-number/ensure");
-
-const resolveRepositoryIssue = (repoName, issueNumber) => {
- // Validate input
- [repoName, issueNumber] = ensure(
- ["repoName", repoName, ensureString],
- ["issueNumber", issueNumber, ensureNaturalNumber],
- { Error: UserError }
- );
- // ... logic
-};
-```
diff --git a/node_modules/ext/node_modules/type/docs/error.md b/node_modules/ext/node_modules/type/docs/error.md
deleted file mode 100644
index c779333..0000000
--- a/node_modules/ext/node_modules/type/docs/error.md
+++ /dev/null
@@ -1,26 +0,0 @@
-# Error
-
-_Error_ instance
-
-## `error/is`
-
-Confirms if given object is a native error object
-
-```javascript
-const isError = require("type/error/is");
-
-isError(new Error()); // true
-isError({ message: "Fake error" }); // false
-```
-
-## `error/ensure`
-
-If given argument is an error object, it is returned back. Otherwise `TypeError` is thrown.
-
-```javascript
-const ensureError = require("type/error/ensure");
-
-const someError = new Error("Some error");
-ensureError(someError); // someError
-ensureError({ message: "Fake error" }); // Thrown TypeError: [object Object] is not an error object
-```
diff --git a/node_modules/ext/node_modules/type/docs/finite.md b/node_modules/ext/node_modules/type/docs/finite.md
deleted file mode 100644
index 68786ca..0000000
--- a/node_modules/ext/node_modules/type/docs/finite.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# Finite Number
-
-Finite _number_ primitive
-
-## `finite/coerce`
-
-Follows [`number/coerce`](number.md#numbercoerce) additionally rejecting `Infinity` and `-Infinity` values (`null` is returned if given values coerces to them)
-
-```javascript
-const coerceToFinite = require("type/finite/coerce");
-
-coerceToFinite("12"); // 12
-coerceToFinite(Infinity); // null
-coerceToFinite(null); // null
-```
-
-## `finite/ensure`
-
-If given argument is a finite number coercible value (via [`finite/coerce`](#finitecoerce)) returns result number.
-Otherwise `TypeError` is thrown.
-
-```javascript
-const ensureFinite = require("type/finite/ensure");
-
-ensureFinite(12); // "12"
-ensureFinite(null); // Thrown TypeError: null is not a finite number
-```
diff --git a/node_modules/ext/node_modules/type/docs/function.md b/node_modules/ext/node_modules/type/docs/function.md
deleted file mode 100644
index 23f3827..0000000
--- a/node_modules/ext/node_modules/type/docs/function.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# Function
-
-_Function_ instance
-
-## `function/is`
-
-Confirms if given object is a native function
-
-```javascript
-const isFunction = require("type/function/is");
-
-isFunction(function () {}); // true
-isFunction(() => {}); // true
-isFunction(class {}); // true
-isFunction("foo"); // false
-```
-
-## `function/ensure`
-
-If given argument is a function object, it is returned back. Otherwise `TypeError` is thrown.
-
-```javascript
-const ensureFunction = require("type/function/ensure");
-
-const fn = function () {};
-ensureFunction(fn); // fn
-ensureFunction(/foo/); // Thrown TypeError: /foo/ is not a function
-```
diff --git a/node_modules/ext/node_modules/type/docs/integer.md b/node_modules/ext/node_modules/type/docs/integer.md
deleted file mode 100644
index 9260a46..0000000
--- a/node_modules/ext/node_modules/type/docs/integer.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# Integer Number
-
-Integer _number_ primitive
-
-## `integer/coerce`
-
-Follows [`finite/coerce`](finite.md#finitecoerce) additionally stripping decimal part from the number
-
-```javascript
-const coerceToInteger = require("type/integer/coerce");
-
-coerceToInteger("12.95"); // 12
-coerceToInteger(Infinity); // null
-coerceToInteger(null); // null
-```
-
-## `integer/ensure`
-
-If given argument is an integer coercible value (via [`integer/coerce`](#integercoerce)) returns result number.
-Otherwise `TypeError` is thrown.
-
-```javascript
-const ensureInteger = require("type/integer/ensure");
-
-ensureInteger(12.93); // "12"
-ensureInteger(null); // Thrown TypeError: null is not an integer
-```
diff --git a/node_modules/ext/node_modules/type/docs/iterable.md b/node_modules/ext/node_modules/type/docs/iterable.md
deleted file mode 100644
index 862e6c8..0000000
--- a/node_modules/ext/node_modules/type/docs/iterable.md
+++ /dev/null
@@ -1,65 +0,0 @@
-# Iterable
-
-Value which implements _iterable_ protocol
-
-## `iterable/is`
-
-Confirms if given object is an _iterable_ and is not a _string_ (unless `allowString` option is passed)
-
-```javascript
-const isIterable = require("type/iterable/is");
-
-isIterable([]); // true
-isIterable({}); // false
-isIterable("foo"); // false
-isIterable("foo", { allowString: true }); // true
-```
-
-Supports also `denyEmpty` option
-
-```javascript
-isIterable([], { denyEmpty: true }); // false
-isIterable(["foo"], { denyEmpty: true }); // true
-```
-
-## `iterable/ensure`
-
-If given argument is an _iterable_, it is returned back. Otherwise `TypeError` is thrown.
-By default _string_ primitives are rejected unless `allowString` option is passed.
-
-```javascript
-const ensureIterable = require("type/iterable/ensure");
-
-ensureIterable([]); // []
-ensureIterable("foo", { allowString: true }); // "foo"
-ensureIterable({}); // Thrown TypeError: null is not expected iterable
-```
-
-### Denying empty iterables
-
-Pass `denyEmpty` option to require non empty iterables
-
-```javascript
-ensureIterable([], { denyEmpty: true }); // Thrown TypeError: [] is not expected iterable
-```
-
-### Confirming on items
-
-Items can be validated by passing `ensureItem` option. Note that in this case:
-
-- A newly created instance of array with coerced values is returned
-- Error message lists up to three invalid items
-
-```javascript
-const ensureString = require("type/string/ensure");
-
-ensureIterable(new Set(["foo", 12]), { ensureItem: ensureString }); // ["foo", "12"]
-
-/*
- Below invocation with crash with:
- TypeError: [object Set] is not expected iterable value.
- Following items are invalid:
- - [object Object]
-*/
-ensureIterable(new Set(["foo", {}]), { ensureItem: ensureString });
-```
diff --git a/node_modules/ext/node_modules/type/docs/map.md b/node_modules/ext/node_modules/type/docs/map.md
deleted file mode 100644
index c128022..0000000
--- a/node_modules/ext/node_modules/type/docs/map.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# Map
-
-_Map_ instance
-
-## `map/is`
-
-Confirms if given object is a native _map_
-
-```javascript
-const isMap = require("type/map/is");
-
-isMap(new Map()); // true
-isMap(new Set()); // false
-isMap({}); // false
-```
-
-## `map/ensure`
-
-If given argument is a _map_, it is returned back. Otherwise `TypeError` is thrown.
-
-```javascript
-const ensureMap = require("type/map/ensure");
-
-const map = new Map();
-ensureMap(map); // map
-eensureMap({}); // Thrown TypeError: [object Object] is not a map
-```
diff --git a/node_modules/ext/node_modules/type/docs/natural-number.md b/node_modules/ext/node_modules/type/docs/natural-number.md
deleted file mode 100644
index c91ee16..0000000
--- a/node_modules/ext/node_modules/type/docs/natural-number.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# Natural Number
-
-Natural _number_ primitive
-
-## `natural-number/coerce`
-
-Follows [`integer/coerce`](integer.md#integercoerce) but returns `null` for values below `0`
-
-```javascript
-const coerceToNaturalNumber = require("type/natural-number/coerce");
-
-coerceToNaturalNumber("12.95"); // 12
-coerceToNaturalNumber(-120); // null
-coerceToNaturalNumber(null); // null
-```
-
-## `natural-number/ensure`
-
-If given argument is a natural number coercible value (via [`natural-number/coerce`](#natural-numbercoerce)) returns result number.
-Otherwise `TypeError` is thrown.
-
-```javascript
-const ensureNaturalNumber = require("type/natural-number/ensure");
-
-ensureNaturalNumber(12.93); // "12"
-ensureNaturalNumber(-230); // Thrown TypeError: null is not a natural number
-```
diff --git a/node_modules/ext/node_modules/type/docs/number.md b/node_modules/ext/node_modules/type/docs/number.md
deleted file mode 100644
index 5f4dfa9..0000000
--- a/node_modules/ext/node_modules/type/docs/number.md
+++ /dev/null
@@ -1,33 +0,0 @@
-# Number
-
-_number_ primitive
-
-## `number/coerce`
-
-Restricted number coercion. Returns number presentation for every value that follows below constraints
-
-- is implicitly coercible to number
-- is neither `null` nor `undefined`
-- is not `NaN` and doesn't coerce to `NaN`
-
-For all other values `null` is returned
-
-```javascript
-const coerceToNumber = require("type/number/coerce");
-
-coerceToNumber("12"); // 12
-coerceToNumber({}); // null
-coerceToNumber(null); // null
-```
-
-## `number/ensure`
-
-If given argument is a number coercible value (via [`number/coerce`](#numbercoerce)) returns result number.
-Otherwise `TypeError` is thrown.
-
-```javascript
-const ensureNumber = require("type/number/ensure");
-
-ensureNumber(12); // "12"
-ensureNumber(null); // Thrown TypeError: null is not a number
-```
diff --git a/node_modules/ext/node_modules/type/docs/object.md b/node_modules/ext/node_modules/type/docs/object.md
deleted file mode 100644
index ed43b1f..0000000
--- a/node_modules/ext/node_modules/type/docs/object.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# Object
-
-_Object_, any non-primitive value
-
-## `object/is`
-
-Confirms if passed value is an object
-
-```javascript
-const isObject = require("type/object/is");
-
-isObject({}); // true
-isObject(true); // false
-isObject(null); // false
-```
-
-## `object/ensure`
-
-If given argument is an object, it is returned back. Otherwise `TypeError` is thrown.
-
-```javascript
-const ensureObject = require("type/object/ensure");
-
-const obj = {};
-
-ensureObject(obj); // obj
-ensureString(null); // Thrown TypeError: null is not an object
-```
diff --git a/node_modules/ext/node_modules/type/docs/plain-function.md b/node_modules/ext/node_modules/type/docs/plain-function.md
deleted file mode 100644
index e3a8895..0000000
--- a/node_modules/ext/node_modules/type/docs/plain-function.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# Plain Function
-
-A _Function_ instance that is not a _Class_
-
-## `plain-function/is`
-
-Confirms if given object is a _plain function_
-
-```javascript
-const isPlainFunction = require("type/plain-function/is");
-
-isPlainFunction(function () {}); // true
-isPlainFunction(() => {}); // true
-isPlainFunction(class {}); // false
-isPlainFunction("foo"); // false
-```
-
-## `plain-function/ensure`
-
-If given argument is a _plain function_ object, it is returned back. Otherwise `TypeError` is thrown.
-
-```javascript
-const ensurePlainFunction = require("type/function/ensure");
-
-const fn = function () {};
-ensurePlainFunction(fn); // fn
-ensurePlainFunction(class {}); // Thrown TypeError: class is not a plain function
-```
diff --git a/node_modules/ext/node_modules/type/docs/plain-object.md b/node_modules/ext/node_modules/type/docs/plain-object.md
deleted file mode 100644
index ce3f522..0000000
--- a/node_modules/ext/node_modules/type/docs/plain-object.md
+++ /dev/null
@@ -1,69 +0,0 @@
-# Plain Object
-
-A _plain object_
-
-- Inherits directly from `Object.prototype` or `null`
-- Is not a constructor's `prototype` property
-
-## `plain-object/is`
-
-Confirms if given object is a _plain object_
-
-```javascript
-const isPlainObject = require("type/plain-object/is");
-
-isPlainObject({}); // true
-isPlainObject(Object.create(null)); // true
-isPlainObject([]); // false
-```
-
-## `plain-object/ensure`
-
-If given argument is a plain object it is returned back. Otherwise `TypeError` is thrown.
-
-```javascript
-const ensurePlainObject = require("type/plain-object/ensure");
-
-ensurePlainObject({}); // {}
-ensurePlainObject("foo"); // Thrown TypeError: foo is not a plain object
-```
-
-### Confirming on keys
-
-Keys can be validated by passing `allowedKeys` option. Note that in this case:
-
-- Error message lists up to three invalid keys
-
-```javascript
-const allowedKeys = ["foo"];
-
-ensurePlainObject({}, { allowedKeys }); // {}
-ensurePlainObject({ foo: "bar" }, { allowedKeys }); // { foo: 'bar' }
-
-/*
- Below invocation with crash with:
- TypeError: [object Object] is not a valid plain object.
- Following keys are unexpected: lorem, ipsum
-*/
-ensurePlainObject({ foo: "bar", lorem: 1, ipsum: 2 }, { allowedKeys });
-```
-
-### Confirming on property values
-
-Property values can be validated by passing `ensurePropertyValue` option. Note that in this case:
-
-- A newly created instance of plain object with coerced values is returned
-- Error message lists up to three keys that contain invalid values
-
-```javascript
-const ensureString = require("type/string/ensure");
-
-ensurePlainObject({ foo: 12 }, { ensurePropertyValue: ensureString }); // { foo: '12' }
-
-/*
- Below invocation with crash with:
- TypeError: [object Object] is not a valid plain object.
- Valuees for following keys are invalid: lorem, ipsum
-*/
-ensurePlainObject({ foo: 23, lorem: {}, ipsum: {} }, { ensurePropertyValue: ensureString });
-```
diff --git a/node_modules/ext/node_modules/type/docs/promise.md b/node_modules/ext/node_modules/type/docs/promise.md
deleted file mode 100644
index ce38794..0000000
--- a/node_modules/ext/node_modules/type/docs/promise.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# Promise
-
-_Promise_ instance
-
-## `promise/is`
-
-Confirms if given object is a native _promise_
-
-```javascript
-const isPromise = require("type/promise/is");
-
-isPromise(Promise.resolve()); // true
-isPromise({ then: () => {} }); // false
-isPromise({}); // false
-```
-
-## `promise/ensure`
-
-If given argument is a promise, it is returned back. Otherwise `TypeError` is thrown.
-
-```javascript
-const ensurePromise = require("type/promise/ensure");
-
-const promise = Promise.resolve();
-ensurePromise(promise); // promise
-eensurePromise({}); // Thrown TypeError: [object Object] is not a promise
-```
diff --git a/node_modules/ext/node_modules/type/docs/prototype.md b/node_modules/ext/node_modules/type/docs/prototype.md
deleted file mode 100644
index 926c256..0000000
--- a/node_modules/ext/node_modules/type/docs/prototype.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# Prototype
-
-Some constructor's `prototype` property
-
-## `prototype/is`
-
-Confirms if given object serves as a _prototype_ property
-
-```javascript
-const isPrototype = require("type/prototype/is");
-
-isPrototype({}); // false
-isPrototype(Object.prototype); // true
-isPrototype(Array.prototype); // true
-```
diff --git a/node_modules/ext/node_modules/type/docs/reg-exp.md b/node_modules/ext/node_modules/type/docs/reg-exp.md
deleted file mode 100644
index 00d081c..0000000
--- a/node_modules/ext/node_modules/type/docs/reg-exp.md
+++ /dev/null
@@ -1,26 +0,0 @@
-# RegExp
-
-_RegExp_ instance
-
-## `reg-exp/is`
-
-Confirms if given object is a native regular expression object
-
-```javascript
-const isRegExp = require("type/reg-exp/is");
-
-isRegExp(/foo/);
-isRegExp({}); // false
-isRegExp("foo"); // false
-```
-
-## `reg-exp/ensure`
-
-If given argument is a regular expression object, it is returned back. Otherwise `TypeError` is thrown.
-
-```javascript
-const ensureRegExp = require("type/reg-exp/ensure");
-
-ensureRegExp(/foo/); // /foo/
-ensureRegExp("foo"); // Thrown TypeError: null is not a regular expression object
-```
diff --git a/node_modules/ext/node_modules/type/docs/safe-integer.md b/node_modules/ext/node_modules/type/docs/safe-integer.md
deleted file mode 100644
index cf4bb1c..0000000
--- a/node_modules/ext/node_modules/type/docs/safe-integer.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# Safe Integer Number
-
-Safe integer _number_ primitive
-
-## `safe-integer/coerce`
-
-Follows [`integer/coerce`](integer.md#integercoerce) but returns `null` in place of values which are beyond `Number.MIN_SAFE_INTEGER` and `Number.MAX_SAFE_INTEGER` range.
-
-```javascript
-const coerceToSafeInteger = require("type/safe-integer/coerce");
-
-coerceToInteger("12.95"); // 12
-coerceToInteger(9007199254740992); // null
-coerceToInteger(null); // null
-```
-
-## `safe-integer/ensure`
-
-If given argument is a safe integer coercible value (via [`safe-integer/coerce`](#safe-integercoerce)) returns result number.
-Otherwise `TypeError` is thrown.
-
-```javascript
-const ensureSafeInteger = require("type/safe-integer/ensure");
-
-ensureSafeInteger(12.93); // "12"
-ensureSafeInteger(9007199254740992); // Thrown TypeError: null is not a safe integer
-```
diff --git a/node_modules/ext/node_modules/type/docs/set.md b/node_modules/ext/node_modules/type/docs/set.md
deleted file mode 100644
index c5fa875..0000000
--- a/node_modules/ext/node_modules/type/docs/set.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# Set
-
-_Set_ instance
-
-## `set/is`
-
-Confirms if given object is a native set\_
-
-```javascript
-const isSet = require("type/set/is");
-
-isSet(new Set()); // true
-isSet(new Set()); // false
-isSet({}); // false
-```
-
-## `Set/ensure`
-
-If given argument is a _set_, it is returned back. Otherwise `TypeError` is thrown.
-
-```javascript
-const ensureSet = require("type/set/ensure");
-
-const set = new Set();
-ensureSet(set); // set
-eensureSet({}); // Thrown TypeError: [object Object] is not a set
-```
diff --git a/node_modules/ext/node_modules/type/docs/string.md b/node_modules/ext/node_modules/type/docs/string.md
deleted file mode 100644
index 051b4a3..0000000
--- a/node_modules/ext/node_modules/type/docs/string.md
+++ /dev/null
@@ -1,32 +0,0 @@
-# String
-
-_string_ primitive
-
-## `string/coerce`
-
-Restricted string coercion. Returns string presentation for every value that follows below constraints
-
-- is implicitly coercible to string
-- is neither`null` nor `undefined`
-- its `toString` method is not `Object.prototype.toString`
-
-For all other values `null` is returned
-
-```javascript
-const coerceToString = require("type/string/coerce");
-
-coerceToString(12); // "12"
-coerceToString(undefined); // null
-```
-
-## `string/ensure`
-
-If given argument is a string coercible value (via [`string/coerce`](#stringcoerce)) returns result string.
-Otherwise `TypeError` is thrown.
-
-```javascript
-const ensureString = require("type/string/ensure");
-
-ensureString(12); // "12"
-ensureString(null); // Thrown TypeError: null is not a string
-```
diff --git a/node_modules/ext/node_modules/type/docs/thenable.md b/node_modules/ext/node_modules/type/docs/thenable.md
deleted file mode 100644
index 1bdf92d..0000000
--- a/node_modules/ext/node_modules/type/docs/thenable.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# Thenable
-
-_Thenable_ object (an object with `then` method)
-
-## `thenable/is`
-
-Confirms if given object is a _thenable_
-
-```javascript
-const isThenable = require("type/thenable/is");
-
-isThenable(Promise.resolve()); // true
-isThenable({ then: () => {} }); // true
-isThenable({}); // false
-```
-
-## `thenable/ensure`
-
-If given argument is a _thenable_ object, it is returned back. Otherwise `TypeError` is thrown.
-
-```javascript
-const ensureThenable = require("type/thenable/ensure");
-
-const promise = Promise.resolve();
-ensureThenable(promise); // promise
-ensureThenable({}); // Thrown TypeError: [object Object] is not a thenable object
-```
diff --git a/node_modules/ext/node_modules/type/docs/time-value.md b/node_modules/ext/node_modules/type/docs/time-value.md
deleted file mode 100644
index 98e9e8e..0000000
--- a/node_modules/ext/node_modules/type/docs/time-value.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# Time value
-
-_number_ primitive which is a valid _time value_ (as used internally in _Date_ instances)
-
-## `time-value/coerce`
-
-Follows [`integer/coerce`](integer.md#integercoerce) but returns `null` in place of values which go beyond 100 000 0000 days from unix epoch
-
-```javascript
-const coerceToTimeValue = require("type/time-value/coerce");
-
-coerceToTimeValue(12312312); // true
-coerceToTimeValue(Number.MAX_SAFE_INTEGER); // false
-coerceToTimeValue("foo"); // false
-```
-
-## `time-value/ensure`
-
-If given argument is a _time value_ coercible value (via [`time-value/coerce`](#time-valuecoerce)) returns result number.
-Otherwise `TypeError` is thrown.
-
-```javascript
-const ensureTimeValue = require("type/time-value/ensure");
-
-ensureTimeValue(12.93); // "12"
-ensureTimeValue(Number.MAX_SAFE_INTEGER); // Thrown TypeError: null is not a natural number
-```
diff --git a/node_modules/ext/node_modules/type/docs/value.md b/node_modules/ext/node_modules/type/docs/value.md
deleted file mode 100644
index 1310609..0000000
--- a/node_modules/ext/node_modules/type/docs/value.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# Value
-
-_Value_, any value that's neither `null` nor `undefined` .
-
-## `value/is`
-
-Confirms whether passed argument is a _value_
-
-```javascript
-const isValue = require("type/value/is");
-
-isValue({}); // true
-isValue(null); // false
-```
-
-## `value/ensure`
-
-Ensures if given argument is a _value_. If it's a value it is returned back, if not `TypeError` is thrown
-
-```javascript
-const ensureValue = require("type/value/ensure");
-
-const obj = {};
-
-ensureValue(obj); // obj
-ensureValue(null); // Thrown TypeError: Cannot use null
-```
diff --git a/node_modules/ext/node_modules/type/ensure.js b/node_modules/ext/node_modules/type/ensure.js
deleted file mode 100644
index 7fe8220..0000000
--- a/node_modules/ext/node_modules/type/ensure.js
+++ /dev/null
@@ -1,51 +0,0 @@
-"use strict";
-
-var isArray = require("./array/is")
- , toShortString = require("./lib/to-short-string");
-
-var objPropertyIsEnumerable = Object.prototype.propertyIsEnumerable;
-
-var assign = function (target, source) {
- for (var key in source) {
- if (objPropertyIsEnumerable.call(source, key)) target[key] = source[key];
- }
-};
-
-module.exports = function (validationDatum1/*, ...validationDatumN, options */) {
- var validationData = [validationDatum1];
- var globalOptions;
- if (arguments.length > 1) {
- var hasOptions = !isArray(arguments[arguments.length - 1]);
- if (hasOptions) globalOptions = arguments[arguments.length - 1];
- var lastDatumIndex = hasOptions ? arguments.length - 2 : arguments.length - 1;
- for (var i = 1; i <= lastDatumIndex; ++i) validationData.push(arguments[i]);
- }
- var result = [], errors;
- for (var j = 0; j < validationData.length; ++j) {
- var validationDatum = validationData[j];
- var options = { name: validationDatum[0] };
- if (globalOptions) assign(options, globalOptions);
- if (validationDatum[3]) assign(options, validationDatum[3]);
- var resultItem;
- if (typeof validationDatum[2] !== "function") {
- throw new TypeError(toShortString(validationDatum[2]) + " is not a function");
- }
- try {
- resultItem = validationDatum[2](validationDatum[1], options);
- } catch (error) {
- if (!errors) errors = [];
- errors.push(error);
- }
- if (errors) continue;
- result.push(resultItem);
- }
- if (!errors) return result;
-
- if (errors.length === 1) throw errors[0];
- var ErrorConstructor = (globalOptions && globalOptions.Error) || TypeError;
- var errorMessage = "Approached following errors:";
- for (var k = 0; k < errors.length; ++k) {
- errorMessage += "\n - " + errors[k].message.split("\n").join("\n ");
- }
- throw new ErrorConstructor(errorMessage);
-};
diff --git a/node_modules/ext/node_modules/type/error/ensure.js b/node_modules/ext/node_modules/type/error/ensure.js
deleted file mode 100644
index 8b28d85..0000000
--- a/node_modules/ext/node_modules/type/error/ensure.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-var resolveException = require("../lib/resolve-exception")
- , is = require("./is");
-
-module.exports = function (value/*, options*/) {
- if (is(value)) return value;
- var options = arguments[1];
- var errorMessage =
- options && options.name ? "Expected an error for %n, received %v" : "%v is not an error";
- return resolveException(value, errorMessage, options);
-};
diff --git a/node_modules/ext/node_modules/type/error/is.js b/node_modules/ext/node_modules/type/error/is.js
deleted file mode 100644
index bf04c80..0000000
--- a/node_modules/ext/node_modules/type/error/is.js
+++ /dev/null
@@ -1,45 +0,0 @@
-"use strict";
-
-var isPrototype = require("../prototype/is")
- , isPlainObject = require("../plain-object/is");
-
-var objectToString = Object.prototype.toString;
-
-// Recognize host specific errors (e.g. DOMException)
-var errorTaggedStringRe = /^\[object .*(?:Error|Exception)\]$/
- , errorNameRe = /^[^\s]*(?:Error|Exception)$/;
-
-module.exports = function (value) {
- if (!value) return false;
-
- var name;
- // Sanity check (reject objects which do not expose common Error interface)
- try {
- name = value.name;
- if (typeof name !== "string") return false;
- if (typeof value.message !== "string") return false;
- } catch (error) {
- return false;
- }
-
- // Ensure its a native-like Error object
- // (has [[ErrorData]] slot, or was created to resemble one)
- // Note: It's not a 100% bulletproof check of confirming that as:
- // - In ES2015+ string tag can be overriden via Symbol.toStringTag property
- // - Host errors do not share native error tag. Still we rely on assumption that
- // tag for each error will end either with `Error` or `Exception` string
- // - In pre ES2015 era, no custom errors will share the error tag.
- if (!errorTaggedStringRe.test(objectToString.call(value))) {
- // Definitely not an ES2015 error instance, but could still be an error
- // (created via e.g. CustomError.prototype = Object.create(Error.prototype))
- try {
- if (name !== value.constructor.name) return false;
- } catch (error) {
- return false;
- }
- if (!errorNameRe.test(name)) return false;
- if (isPlainObject(value)) return false;
- }
-
- return !isPrototype(value);
-};
diff --git a/node_modules/ext/node_modules/type/finite/coerce.js b/node_modules/ext/node_modules/type/finite/coerce.js
deleted file mode 100644
index a3783be..0000000
--- a/node_modules/ext/node_modules/type/finite/coerce.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var coerceToNumber = require("../number/coerce");
-
-module.exports = function (value) {
- value = coerceToNumber(value);
- return isFinite(value) ? value : null;
-};
diff --git a/node_modules/ext/node_modules/type/finite/ensure.js b/node_modules/ext/node_modules/type/finite/ensure.js
deleted file mode 100644
index aac96be..0000000
--- a/node_modules/ext/node_modules/type/finite/ensure.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-var resolveException = require("../lib/resolve-exception")
- , coerce = require("./coerce");
-
-module.exports = function (value/*, options*/) {
- var coerced = coerce(value);
- if (coerced !== null) return coerced;
- var options = arguments[1];
- var errorMessage =
- options && options.name
- ? "Expected a finite number for %n, received %v"
- : "%v is not a finite number";
- return resolveException(value, errorMessage, options);
-};
diff --git a/node_modules/ext/node_modules/type/function/ensure.js b/node_modules/ext/node_modules/type/function/ensure.js
deleted file mode 100644
index d133701..0000000
--- a/node_modules/ext/node_modules/type/function/ensure.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-
-var resolveException = require("../lib/resolve-exception")
- , is = require("./is");
-
-module.exports = function (value/*, options*/) {
- if (is(value)) return value;
- var options = arguments[1];
- var errorMessage =
- options && options.name
- ? "Expected a function for %n, received %v"
- : "%v is not a function";
- return resolveException(value, errorMessage, options);
-};
diff --git a/node_modules/ext/node_modules/type/function/is.js b/node_modules/ext/node_modules/type/function/is.js
deleted file mode 100644
index 981990a..0000000
--- a/node_modules/ext/node_modules/type/function/is.js
+++ /dev/null
@@ -1,19 +0,0 @@
-"use strict";
-
-var isPrototype = require("../prototype/is");
-
-module.exports = function (value) {
- if (typeof value !== "function") return false;
-
- if (!hasOwnProperty.call(value, "length")) return false;
-
- try {
- if (typeof value.length !== "number") return false;
- if (typeof value.call !== "function") return false;
- if (typeof value.apply !== "function") return false;
- } catch (error) {
- return false;
- }
-
- return !isPrototype(value);
-};
diff --git a/node_modules/ext/node_modules/type/integer/coerce.js b/node_modules/ext/node_modules/type/integer/coerce.js
deleted file mode 100644
index cba5e17..0000000
--- a/node_modules/ext/node_modules/type/integer/coerce.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-var coerceToFinite = require("../finite/coerce");
-
-var abs = Math.abs, floor = Math.floor;
-
-module.exports = function (value) {
- value = coerceToFinite(value);
- if (!value) return value;
- return (value > 0 ? 1 : -1) * floor(abs(value));
-};
diff --git a/node_modules/ext/node_modules/type/integer/ensure.js b/node_modules/ext/node_modules/type/integer/ensure.js
deleted file mode 100644
index df1a975..0000000
--- a/node_modules/ext/node_modules/type/integer/ensure.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-var resolveException = require("../lib/resolve-exception")
- , coerce = require("./coerce");
-
-module.exports = function (value/*, options*/) {
- var coerced = coerce(value);
- if (coerced !== null) return coerced;
- var options = arguments[1];
- var errorMessage =
- options && options.name
- ? "Expected an integer for %n, received %v"
- : "%v is not an integer";
- return resolveException(value, errorMessage, options);
-};
diff --git a/node_modules/ext/node_modules/type/iterable/ensure.js b/node_modules/ext/node_modules/type/iterable/ensure.js
deleted file mode 100644
index b1a2489..0000000
--- a/node_modules/ext/node_modules/type/iterable/ensure.js
+++ /dev/null
@@ -1,49 +0,0 @@
-"use strict";
-
-var resolveException = require("../lib/resolve-exception")
- , resolveErrorMessage = require("../lib/resolve-error-message")
- , toShortString = require("../lib/to-short-string")
- , ensurePlainFunction = require("../plain-function/ensure")
- , is = require("./is");
-
-var invalidItemsLimit = 3;
-
-module.exports = function (value/*, options*/) {
- var options = arguments[1];
- var mainErrorMessage =
- options && options.name
- ? "Expected an iterable for %n, received %v"
- : "%v is not expected iterable";
- if (!is(value, options)) return resolveException(value, mainErrorMessage, options);
- if (!options) return value;
-
- var ensureItem = ensurePlainFunction(options.ensureItem, { isOptional: true });
- if (ensureItem) {
- var coercedValue = [];
- var iterator = value[Symbol.iterator]();
- var item, invalidItems;
- while (!(item = iterator.next()).done) {
- var newItemValue;
- try {
- newItemValue = ensureItem(item.value);
- } catch (error) {
- if (!invalidItems) invalidItems = [];
- if (invalidItems.push(item.value) === invalidItemsLimit) break;
- }
- if (invalidItems) continue;
- coercedValue.push(newItemValue);
- }
- if (invalidItems) {
- var errorMessage =
- resolveErrorMessage(mainErrorMessage, value, options) +
- ".\n Following items are invalid:";
- for (var i = 0; i < invalidItems.length; ++i) {
- errorMessage += "\n - " + toShortString(invalidItems[i]);
- }
- throw new TypeError(errorMessage);
- }
- return coercedValue;
- }
-
- return value;
-};
diff --git a/node_modules/ext/node_modules/type/iterable/is.js b/node_modules/ext/node_modules/type/iterable/is.js
deleted file mode 100644
index d35408c..0000000
--- a/node_modules/ext/node_modules/type/iterable/is.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Polyfills friendly, therefore ES5 syntax
-
-"use strict";
-
-var isObject = require("../object/is");
-
-var iteratorSymbol = Symbol.iterator;
-
-if (!iteratorSymbol) {
- throw new Error("Cannot initialize iterator/is due to Symbol.iterator not being implemented");
-}
-
-module.exports = function (value/*, options*/) {
- var options = arguments[1];
- if (!isObject(value)) {
- if (!isObject(options) || !options.allowString || typeof value !== "string") return false;
- }
- try {
- if (typeof value[iteratorSymbol] !== "function") return false;
- } catch (error) {
- return false;
- }
- if (!options) return true;
- if (options.denyEmpty) {
- try {
- if (value[iteratorSymbol]().next().done) return false;
- } catch (error) {
- return false;
- }
- }
- return true;
-};
diff --git a/node_modules/ext/node_modules/type/lib/ensure/min.js b/node_modules/ext/node_modules/type/lib/ensure/min.js
deleted file mode 100644
index df878bd..0000000
--- a/node_modules/ext/node_modules/type/lib/ensure/min.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-var resolveException = require("../resolve-exception");
-
-module.exports = function (value, coerced, options) {
- if (coerced >= options.min) return coerced;
- var errorMessage =
- options && options.name
- ? "Expected %n to be greater or equal " + options.min + ", received %v"
- : "%v is not greater or equal " + options.min;
- return resolveException(value, errorMessage, options);
-};
diff --git a/node_modules/ext/node_modules/type/lib/is-to-string-tag-supported.js b/node_modules/ext/node_modules/type/lib/is-to-string-tag-supported.js
deleted file mode 100644
index 254d8b3..0000000
--- a/node_modules/ext/node_modules/type/lib/is-to-string-tag-supported.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = typeof Symbol === "function" && typeof Symbol.toStringTag === "symbol";
diff --git a/node_modules/ext/node_modules/type/lib/resolve-error-message.js b/node_modules/ext/node_modules/type/lib/resolve-error-message.js
deleted file mode 100644
index 3cb000b..0000000
--- a/node_modules/ext/node_modules/type/lib/resolve-error-message.js
+++ /dev/null
@@ -1,52 +0,0 @@
-"use strict";
-
-var stringCoerce = require("../string/coerce")
- , toShortString = require("./to-short-string");
-
-module.exports = function (errorMessage, value, inputOptions) {
- if (inputOptions && inputOptions.errorMessage) {
- errorMessage = stringCoerce(inputOptions.errorMessage);
- }
-
- var valueInsertIndex = errorMessage.indexOf("%v");
- var valueToken = valueInsertIndex > -1 ? toShortString(value) : null;
- if (inputOptions && inputOptions.name) {
- var nameInsertIndex = errorMessage.indexOf("%n");
- if (nameInsertIndex > -1) {
- if (valueInsertIndex > -1) {
- var firstToken, secondToken, firstInsertIndex, secondInsertIndex;
- if (nameInsertIndex > valueInsertIndex) {
- firstToken = valueToken;
- firstInsertIndex = valueInsertIndex;
- secondToken = inputOptions.name;
- secondInsertIndex = nameInsertIndex;
- } else {
- firstToken = inputOptions.name;
- firstInsertIndex = nameInsertIndex;
- secondToken = valueToken;
- secondInsertIndex = valueInsertIndex;
- }
- return (
- errorMessage.slice(0, firstInsertIndex) +
- firstToken +
- errorMessage.slice(firstInsertIndex + 2, secondInsertIndex) +
- secondToken +
- errorMessage.slice(secondInsertIndex + 2)
- );
- }
- return (
- errorMessage.slice(0, nameInsertIndex) +
- inputOptions.name +
- errorMessage.slice(nameInsertIndex + 2)
- );
- }
- }
- if (valueInsertIndex > -1) {
- return (
- errorMessage.slice(0, valueInsertIndex) +
- valueToken +
- errorMessage.slice(valueInsertIndex + 2)
- );
- }
- return errorMessage;
-};
diff --git a/node_modules/ext/node_modules/type/lib/resolve-exception.js b/node_modules/ext/node_modules/type/lib/resolve-exception.js
deleted file mode 100644
index 6c99286..0000000
--- a/node_modules/ext/node_modules/type/lib/resolve-exception.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-var isValue = require("../value/is")
- , resolveErrorMessage = require("./resolve-error-message");
-
-module.exports = function (value, defaultMessage, inputOptions) {
- if (inputOptions && !isValue(value)) {
- if ("default" in inputOptions) return inputOptions["default"];
- if (inputOptions.isOptional) return null;
- }
- var ErrorConstructor = (inputOptions && inputOptions.Error) || TypeError;
- var error = new ErrorConstructor(resolveErrorMessage(defaultMessage, value, inputOptions));
- if (inputOptions && inputOptions.errorCode) error.code = inputOptions.errorCode;
- throw error;
-};
diff --git a/node_modules/ext/node_modules/type/lib/safe-to-string.js b/node_modules/ext/node_modules/type/lib/safe-to-string.js
deleted file mode 100644
index a756dd3..0000000
--- a/node_modules/ext/node_modules/type/lib/safe-to-string.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-module.exports = function (value) {
- try {
- return value.toString();
- } catch (error) {
- try { return String(value); }
- catch (error2) { return null; }
- }
-};
diff --git a/node_modules/ext/node_modules/type/lib/to-short-string.js b/node_modules/ext/node_modules/type/lib/to-short-string.js
deleted file mode 100644
index c8d7ed8..0000000
--- a/node_modules/ext/node_modules/type/lib/to-short-string.js
+++ /dev/null
@@ -1,29 +0,0 @@
-"use strict";
-
-var safeToString = require("./safe-to-string");
-
-var reNewLine = /[\n\r\u2028\u2029]/g;
-
-module.exports = function (value) {
- var string = safeToString(value);
- if (string === null) return "";
- // Trim if too long
- if (string.length > 100) string = string.slice(0, 99) + "…";
- // Replace eventual new lines
- string = string.replace(reNewLine, function (char) {
- switch (char) {
- case "\n":
- return "\\n";
- case "\r":
- return "\\r";
- case "\u2028":
- return "\\u2028";
- case "\u2029":
- return "\\u2029";
- /* istanbul ignore next */
- default:
- throw new Error("Unexpected character");
- }
- });
- return string;
-};
diff --git a/node_modules/ext/node_modules/type/map/ensure.js b/node_modules/ext/node_modules/type/map/ensure.js
deleted file mode 100644
index 3e3325a..0000000
--- a/node_modules/ext/node_modules/type/map/ensure.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-var resolveException = require("../lib/resolve-exception")
- , is = require("./is");
-
-module.exports = function (value /*, options*/) {
- if (is(value)) return value;
- var options = arguments[1];
- var errorMessage =
- options && options.name ? "Expected a map for %n, received %v" : "%v is not a map";
- return resolveException(value, errorMessage, options);
-};
diff --git a/node_modules/ext/node_modules/type/map/is.js b/node_modules/ext/node_modules/type/map/is.js
deleted file mode 100644
index 4ed7bae..0000000
--- a/node_modules/ext/node_modules/type/map/is.js
+++ /dev/null
@@ -1,28 +0,0 @@
-"use strict";
-
-var isPrototype = require("../prototype/is");
-
-// In theory we could rely on Symbol.toStringTag directly,
-// still early native implementation (e.g. in FF) predated symbols
-var objectToString = Object.prototype.toString, objectTaggedString = objectToString.call(new Map());
-
-module.exports = function (value) {
- if (!value) return false;
-
- // Sanity check (reject objects which do not expose common Promise interface)
- try {
- if (typeof value.set !== "function") return false;
- if (typeof value.get !== "function") return false;
- if (typeof value.has !== "function") return false;
- if (typeof value.clear !== "function") return false;
- } catch (error) {
- return false;
- }
-
- // Ensure its native Promise object (has [[MapData]] slot)
- // Note: it's not 100% precise as string tag may be overriden
- // and other objects could be hacked to expose it
- if (objectToString.call(value) !== objectTaggedString) return false;
-
- return !isPrototype(value);
-};
diff --git a/node_modules/ext/node_modules/type/natural-number/coerce.js b/node_modules/ext/node_modules/type/natural-number/coerce.js
deleted file mode 100644
index 4b7931c..0000000
--- a/node_modules/ext/node_modules/type/natural-number/coerce.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-var coerceToInteger = require("../integer/coerce");
-
-module.exports = function (value) {
- value = coerceToInteger(value);
- if (!value) return value;
- if (value < 0) return null;
- return value;
-};
diff --git a/node_modules/ext/node_modules/type/natural-number/ensure.js b/node_modules/ext/node_modules/type/natural-number/ensure.js
deleted file mode 100644
index 1f09174..0000000
--- a/node_modules/ext/node_modules/type/natural-number/ensure.js
+++ /dev/null
@@ -1,21 +0,0 @@
-"use strict";
-
-var resolveException = require("../lib/resolve-exception")
- , ensureMin = require("../lib/ensure/min")
- , coerce = require("./coerce");
-
-module.exports = function (value/*, options*/) {
- var coerced = coerce(value), options = arguments[1];
- if (coerced !== null) {
- if (options) {
- if (options.min) ensureMin(value, coerced, options);
- }
- return coerced;
- }
-
- var errorMessage =
- options && options.name
- ? "Expected a natural number for %n, received %v"
- : "%v is not a natural number";
- return resolveException(value, errorMessage, options);
-};
diff --git a/node_modules/ext/node_modules/type/number/coerce.js b/node_modules/ext/node_modules/type/number/coerce.js
deleted file mode 100644
index 1bb1512..0000000
--- a/node_modules/ext/node_modules/type/number/coerce.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-
-var isValue = require("../value/is");
-
-module.exports = function (value) {
- if (!isValue(value)) return null;
- try {
- value = +value; // Ensure implicit coercion
- } catch (error) {
- return null;
- }
- if (isNaN(value)) return null;
- return value;
-};
diff --git a/node_modules/ext/node_modules/type/number/ensure.js b/node_modules/ext/node_modules/type/number/ensure.js
deleted file mode 100644
index 9ae705d..0000000
--- a/node_modules/ext/node_modules/type/number/ensure.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-var resolveException = require("../lib/resolve-exception")
- , coerce = require("./coerce");
-
-module.exports = function (value/*, options*/) {
- var coerced = coerce(value);
- if (coerced !== null) return coerced;
- var options = arguments[1];
- var errorMessage =
- options && options.name ? "Expected a number for %n, received %v" : "%v is not a number";
- return resolveException(value, errorMessage, options);
-};
diff --git a/node_modules/ext/node_modules/type/object/ensure.js b/node_modules/ext/node_modules/type/object/ensure.js
deleted file mode 100644
index 341f55c..0000000
--- a/node_modules/ext/node_modules/type/object/ensure.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-var resolveException = require("../lib/resolve-exception")
- , is = require("./is");
-
-module.exports = function (value/*, options*/) {
- if (is(value)) return value;
- var options = arguments[1];
- var errorMessage =
- options && options.name ? "Expected an object for %n, received %v" : "%v is not an object";
- return resolveException(value, errorMessage, options);
-};
diff --git a/node_modules/ext/node_modules/type/object/is.js b/node_modules/ext/node_modules/type/object/is.js
deleted file mode 100644
index a254dcb..0000000
--- a/node_modules/ext/node_modules/type/object/is.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-var isValue = require("../value/is");
-
-// prettier-ignore
-var possibleTypes = { "object": true, "function": true, "undefined": true /* document.all */ };
-
-module.exports = function (value) {
- if (!isValue(value)) return false;
- return hasOwnProperty.call(possibleTypes, typeof value);
-};
diff --git a/node_modules/ext/node_modules/type/package.json b/node_modules/ext/node_modules/type/package.json
deleted file mode 100644
index 306c923..0000000
--- a/node_modules/ext/node_modules/type/package.json
+++ /dev/null
@@ -1,96 +0,0 @@
-{
- "name": "type",
- "version": "2.5.0",
- "description": "Runtime validation and processing of JavaScript types",
- "author": "Mariusz Nowak (https://www.medikoo.com/)",
- "keywords": [
- "type",
- "coercion"
- ],
- "repository": "medikoo/type",
- "devDependencies": {
- "chai": "^4.3.3",
- "eslint": "^7.21.0",
- "eslint-config-medikoo": "^4.0.0",
- "git-list-updated": "^1.2.1",
- "husky": "^4.3.8",
- "lint-staged": "^10.5.4",
- "mocha": "^6.2.3",
- "nyc": "^15.1.0",
- "prettier-elastic": "^2.1.2"
- },
- "husky": {
- "hooks": {
- "pre-commit": "lint-staged"
- }
- },
- "lint-staged": {
- "*.js": [
- "eslint"
- ],
- "*.{css,html,js,json,md,yaml,yml}": [
- "prettier -c"
- ]
- },
- "eslintConfig": {
- "extends": "medikoo/es3",
- "root": true,
- "globals": {
- "Map": true,
- "Promise": true,
- "Set": true,
- "Symbol": true
- },
- "overrides": [
- {
- "files": "test/**/*.js",
- "env": {
- "mocha": true
- },
- "rules": {
- "no-eval": "off",
- "no-new-wrappers": "off"
- }
- },
- {
- "files": [
- "string/coerce.js",
- "number/coerce.js"
- ],
- "rules": {
- "no-implicit-coercion": "off"
- }
- },
- {
- "files": "plain-object/is.js",
- "rules": {
- "no-proto": "off"
- }
- }
- ]
- },
- "prettier": {
- "printWidth": 100,
- "tabWidth": 4,
- "overrides": [
- {
- "files": [
- "*.md"
- ],
- "options": {
- "tabWidth": 2
- }
- }
- ]
- },
- "scripts": {
- "coverage": "nyc --reporter=lcov --reporter=html --reporter=text-summary npm test",
- "check-coverage": "npm run coverage && nyc check-coverage --statements 80 --function 80 --branches 80 --lines 80",
- "lint": "eslint --ignore-path=.gitignore .",
- "lint-updated": "pipe-git-updated --ext=js -- eslint --ignore-pattern '!*'",
- "prettier-check-updated": "pipe-git-updated --ext=css --ext=html --ext=js --ext=json --ext=md --ext=yaml --ext=yml -- prettier -c",
- "prettify": "prettier --write --ignore-path .gitignore '**/*.{css,html,js,json,md,yaml,yml}'",
- "test": "mocha --recursive"
- },
- "license": "ISC"
-}
diff --git a/node_modules/ext/node_modules/type/plain-function/ensure.js b/node_modules/ext/node_modules/type/plain-function/ensure.js
deleted file mode 100644
index d3a20e6..0000000
--- a/node_modules/ext/node_modules/type/plain-function/ensure.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-
-var resolveException = require("../lib/resolve-exception")
- , is = require("./is");
-
-module.exports = function (value/*, options*/) {
- if (is(value)) return value;
- var options = arguments[1];
- var errorMessage =
- options && options.name
- ? "Expected a plain function for %n, received %v"
- : "%v is not a plain function";
- return resolveException(value, errorMessage, options);
-};
diff --git a/node_modules/ext/node_modules/type/plain-function/is.js b/node_modules/ext/node_modules/type/plain-function/is.js
deleted file mode 100644
index b55d4ff..0000000
--- a/node_modules/ext/node_modules/type/plain-function/is.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-var isFunction = require("../function/is");
-
-var classRe = /^\s*class[\s{/}]/, functionToString = Function.prototype.toString;
-
-module.exports = function (value) {
- if (!isFunction(value)) return false;
- if (classRe.test(functionToString.call(value))) return false;
- return true;
-};
diff --git a/node_modules/ext/node_modules/type/plain-object/ensure.js b/node_modules/ext/node_modules/type/plain-object/ensure.js
deleted file mode 100644
index 519261e..0000000
--- a/node_modules/ext/node_modules/type/plain-object/ensure.js
+++ /dev/null
@@ -1,67 +0,0 @@
-"use strict";
-
-var resolveException = require("../lib/resolve-exception")
- , resolveErrorMessage = require("../lib/resolve-error-message")
- , ensurePlainFunction = require("../plain-function/ensure")
- , ensureArray = require("../array/ensure")
- , is = require("./is");
-
-var objHasOwnProperty = Object.prototype.hasOwnProperty, invalidItemsLimit = 3;
-
-module.exports = function (value/*, options*/) {
- var options = arguments[1];
- var mainErrorMessage =
- options && options.name
- ? "Expected a plain object for %n, received %v"
- : "%v is not a plain object";
- if (!is(value)) return resolveException(value, mainErrorMessage, options);
- if (!options) return value;
-
- var invalidKeys, key, errorMessage;
- var allowedKeys = ensureArray(options.allowedKeys, { isOptional: true });
- if (allowedKeys) {
- for (key in value) {
- if (!objHasOwnProperty.call(value, key)) continue;
- if (allowedKeys.indexOf(key) > -1) continue;
- if (!invalidKeys) invalidKeys = [];
- if (invalidKeys.push(key) === invalidItemsLimit) break;
- }
- if (invalidKeys) {
- errorMessage =
- resolveErrorMessage(mainErrorMessage, value, options) +
- ".\n Following keys are unexpected: " +
- invalidKeys.join(", ");
- throw new TypeError(errorMessage);
- }
- }
-
- var ensurePropertyValue = ensurePlainFunction(options.ensurePropertyValue, {
- isOptional: true
- });
- if (ensurePropertyValue) {
- var coercedValue = {};
- for (key in value) {
- if (!objHasOwnProperty.call(value, key)) continue;
- var coercedPropertyValue;
- try {
- coercedPropertyValue = ensurePropertyValue(value[key]);
- } catch (error) {
- if (!invalidKeys) invalidKeys = [];
- if (invalidKeys.push(key) === invalidItemsLimit) break;
- }
- if (invalidKeys) continue;
- coercedValue[key] = coercedPropertyValue;
- }
- if (invalidKeys) {
- errorMessage =
- resolveErrorMessage(mainErrorMessage, value, options) +
- ".\n Values for following keys are invalid: " +
- invalidKeys.join(", ");
- throw new TypeError(errorMessage);
- }
-
- return coercedValue;
- }
-
- return value;
-};
diff --git a/node_modules/ext/node_modules/type/plain-object/is.js b/node_modules/ext/node_modules/type/plain-object/is.js
deleted file mode 100644
index 50d6713..0000000
--- a/node_modules/ext/node_modules/type/plain-object/is.js
+++ /dev/null
@@ -1,28 +0,0 @@
-"use strict";
-
-var isObject = require("../object/is")
- , isPrototype = require("../prototype/is");
-
-var getPrototypeOf;
-if (typeof Object.getPrototypeOf === "function") {
- getPrototypeOf = Object.getPrototypeOf;
-} else if ({}.__proto__ === Object.prototype) {
- getPrototypeOf = function (object) { return object.__proto__; };
-}
-
-module.exports = function (value) {
- if (!isObject(value)) return false;
- var prototype;
- if (getPrototypeOf) {
- prototype = getPrototypeOf(value);
- } else {
- try {
- var valueConstructor = value.constructor;
- if (valueConstructor) prototype = valueConstructor.prototype;
- } catch (error) {
- return false;
- }
- }
- if (prototype && !hasOwnProperty.call(prototype, "propertyIsEnumerable")) return false;
- return !isPrototype(value);
-};
diff --git a/node_modules/ext/node_modules/type/promise/ensure.js b/node_modules/ext/node_modules/type/promise/ensure.js
deleted file mode 100644
index 7fbebb3..0000000
--- a/node_modules/ext/node_modules/type/promise/ensure.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-var resolveException = require("../lib/resolve-exception")
- , is = require("./is");
-
-module.exports = function (value/*, options*/) {
- if (is(value)) return value;
- var options = arguments[1];
- var errorMessage =
- options && options.name ? "Expected a promise for %n, received %v" : "%v is not a promise";
- return resolveException(value, errorMessage, options);
-};
diff --git a/node_modules/ext/node_modules/type/promise/is.js b/node_modules/ext/node_modules/type/promise/is.js
deleted file mode 100644
index 5353362..0000000
--- a/node_modules/ext/node_modules/type/promise/is.js
+++ /dev/null
@@ -1,27 +0,0 @@
-"use strict";
-
-var isPrototype = require("../prototype/is");
-
-// In theory we could rely on Symbol.toStringTag directly,
-// still early native implementation (e.g. in FF) predated symbols
-var objectToString = Object.prototype.toString
- , objectTaggedString = objectToString.call(Promise.resolve());
-
-module.exports = function (value) {
- if (!value) return false;
-
- // Sanity check (reject objects which do not expose common Promise interface)
- try {
- if (typeof value.then !== "function") return false;
- if (typeof value["catch"] !== "function") return false;
- } catch (error) {
- return false;
- }
-
- // Ensure its native Promise object (has [[PromiseState]] slot)
- // Note: it's not 100% precise as string tag may be overriden
- // and other objects could be hacked to expose it
- if (objectToString.call(value) !== objectTaggedString) return false;
-
- return !isPrototype(value);
-};
diff --git a/node_modules/ext/node_modules/type/prototype/is.js b/node_modules/ext/node_modules/type/prototype/is.js
deleted file mode 100644
index aaddb2a..0000000
--- a/node_modules/ext/node_modules/type/prototype/is.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-var isObject = require("../object/is");
-
-module.exports = function (value) {
- if (!isObject(value)) return false;
- try {
- if (!value.constructor) return false;
- return value.constructor.prototype === value;
- } catch (error) {
- return false;
- }
-};
diff --git a/node_modules/ext/node_modules/type/reg-exp/ensure.js b/node_modules/ext/node_modules/type/reg-exp/ensure.js
deleted file mode 100644
index 50669f3..0000000
--- a/node_modules/ext/node_modules/type/reg-exp/ensure.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-
-var resolveException = require("../lib/resolve-exception")
- , is = require("./is");
-
-module.exports = function (value/*, options*/) {
- if (is(value)) return value;
- var options = arguments[1];
- var errorMessage =
- options && options.name
- ? "Expected a regular expression for %n, received %v"
- : "%v is not a regular expression";
- return resolveException(value, errorMessage, options);
-};
diff --git a/node_modules/ext/node_modules/type/reg-exp/is.js b/node_modules/ext/node_modules/type/reg-exp/is.js
deleted file mode 100644
index f0c69d5..0000000
--- a/node_modules/ext/node_modules/type/reg-exp/is.js
+++ /dev/null
@@ -1,37 +0,0 @@
-"use strict";
-
-var isToStringTagSupported = require("../lib/is-to-string-tag-supported")
- , isPrototype = require("../prototype/is");
-
-var regExpTest = RegExp.prototype.test
- , objectToString = Object.prototype.toString
- , objectTaggedString = objectToString.call(/a/);
-
-module.exports = function (value) {
- if (!value) return false;
-
- // Sanity check (reject objects which do not expose common RegExp interface)
- if (!hasOwnProperty.call(value, "lastIndex")) return false;
- try {
- if (typeof value.lastIndex !== "number") return false;
- if (typeof value.test !== "function") return false;
- if (typeof value.exec !== "function") return false;
- } catch (error) {
- return false;
- }
-
- // Ensure its native RegExp object (has [[RegExpMatcher]] slot)
- if (isToStringTagSupported && typeof value[Symbol.toStringTag] === "string") {
- // Edge case (possibly a regExp with custom Symbol.toStringTag)
- try {
- var lastIndex = value.lastIndex;
- regExpTest.call(value, "");
- if (value.lastIndex !== lastIndex) value.lastIndex = lastIndex;
- return true;
- } catch (error) {
- return false;
- }
- }
- if (objectToString.call(value) !== objectTaggedString) return false;
- return !isPrototype(value);
-};
diff --git a/node_modules/ext/node_modules/type/safe-integer/coerce.js b/node_modules/ext/node_modules/type/safe-integer/coerce.js
deleted file mode 100644
index b97e4aa..0000000
--- a/node_modules/ext/node_modules/type/safe-integer/coerce.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-var coerceToInteger = require("../integer/coerce");
-
-var MAX_SAFE_INTEGER = 9007199254740991, MIN_SAFE_INTEGER = -9007199254740991;
-
-module.exports = function (value) {
- value = coerceToInteger(value);
- if (!value) return value;
- if (value > MAX_SAFE_INTEGER) return null;
- if (value < MIN_SAFE_INTEGER) return null;
- return value;
-};
diff --git a/node_modules/ext/node_modules/type/safe-integer/ensure.js b/node_modules/ext/node_modules/type/safe-integer/ensure.js
deleted file mode 100644
index dbdc46d..0000000
--- a/node_modules/ext/node_modules/type/safe-integer/ensure.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-var resolveException = require("../lib/resolve-exception")
- , coerce = require("./coerce");
-
-module.exports = function (value/*, options*/) {
- var coerced = coerce(value);
- if (coerced !== null) return coerced;
- var options = arguments[1];
- var errorMessage =
- options && options.name
- ? "Expected a safe integer for %n, received %v"
- : "%v is not a safe integer";
- return resolveException(value, errorMessage, options);
-};
diff --git a/node_modules/ext/node_modules/type/set/ensure.js b/node_modules/ext/node_modules/type/set/ensure.js
deleted file mode 100644
index c5b6a41..0000000
--- a/node_modules/ext/node_modules/type/set/ensure.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-var resolveException = require("../lib/resolve-exception")
- , is = require("./is");
-
-module.exports = function (value /*, options*/) {
- if (is(value)) return value;
- var options = arguments[1];
- var errorMessage =
- options && options.name ? "Expected a set for %n, received %v" : "%v is not a set";
- return resolveException(value, errorMessage, options);
-};
diff --git a/node_modules/ext/node_modules/type/set/is.js b/node_modules/ext/node_modules/type/set/is.js
deleted file mode 100644
index 7491e54..0000000
--- a/node_modules/ext/node_modules/type/set/is.js
+++ /dev/null
@@ -1,27 +0,0 @@
-"use strict";
-
-var isPrototype = require("../prototype/is");
-
-// In theory we could rely on Symbol.toStringTag directly,
-// still early native implementation (e.g. in FF) predated symbols
-var objectToString = Object.prototype.toString, objectTaggedString = objectToString.call(new Set());
-
-module.exports = function (value) {
- if (!value) return false;
-
- // Sanity check (reject objects which do not expose common Promise interface)
- try {
- if (typeof value.add !== "function") return false;
- if (typeof value.has !== "function") return false;
- if (typeof value.clear !== "function") return false;
- } catch (error) {
- return false;
- }
-
- // Ensure its native Promise object (has [[SetData]] slot)
- // Note: it's not 100% precise as string tag may be overriden
- // and other objects could be hacked to expose it
- if (objectToString.call(value) !== objectTaggedString) return false;
-
- return !isPrototype(value);
-};
diff --git a/node_modules/ext/node_modules/type/string/coerce.js b/node_modules/ext/node_modules/type/string/coerce.js
deleted file mode 100644
index 43cd931..0000000
--- a/node_modules/ext/node_modules/type/string/coerce.js
+++ /dev/null
@@ -1,23 +0,0 @@
-"use strict";
-
-var isValue = require("../value/is")
- , isObject = require("../object/is");
-
-var objectToString = Object.prototype.toString;
-
-module.exports = function (value) {
- if (!isValue(value)) return null;
- if (isObject(value)) {
- // Reject Object.prototype.toString coercion
- var valueToString = value.toString;
- if (typeof valueToString !== "function") return null;
- if (valueToString === objectToString) return null;
- // Note: It can be object coming from other realm, still as there's no ES3 and CSP compliant
- // way to resolve its realm's Object.prototype.toString it's left as not addressed edge case
- }
- try {
- return "" + value; // Ensure implicit coercion
- } catch (error) {
- return null;
- }
-};
diff --git a/node_modules/ext/node_modules/type/string/ensure.js b/node_modules/ext/node_modules/type/string/ensure.js
deleted file mode 100644
index e26b5f0..0000000
--- a/node_modules/ext/node_modules/type/string/ensure.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-var resolveException = require("../lib/resolve-exception")
- , coerce = require("./coerce");
-
-module.exports = function (value/*, options*/) {
- var coerced = coerce(value);
- if (coerced !== null) return coerced;
- var options = arguments[1];
- var errorMessage =
- options && options.name ? "Expected a string for %n, received %v" : "%v is not a string";
- return resolveException(value, errorMessage, options);
-};
diff --git a/node_modules/ext/node_modules/type/thenable/ensure.js b/node_modules/ext/node_modules/type/thenable/ensure.js
deleted file mode 100644
index 8397c7c..0000000
--- a/node_modules/ext/node_modules/type/thenable/ensure.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-
-var resolveException = require("../lib/resolve-exception")
- , is = require("./is");
-
-module.exports = function (value/*, options*/) {
- if (is(value)) return value;
- var options = arguments[1];
- var errorMessage =
- options && options.name
- ? "Expected a thenable for %n, received %v"
- : "%v is not a thenable";
- return resolveException(value, errorMessage, options);
-};
diff --git a/node_modules/ext/node_modules/type/thenable/is.js b/node_modules/ext/node_modules/type/thenable/is.js
deleted file mode 100644
index 1f3d399..0000000
--- a/node_modules/ext/node_modules/type/thenable/is.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-var isObject = require("../object/is");
-
-module.exports = function (value) {
- if (!isObject(value)) return false;
- try { return typeof value.then === "function"; }
- catch (error) { return false; }
-};
diff --git a/node_modules/ext/node_modules/type/time-value/coerce.js b/node_modules/ext/node_modules/type/time-value/coerce.js
deleted file mode 100644
index 7124864..0000000
--- a/node_modules/ext/node_modules/type/time-value/coerce.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-var coerceToInteger = require("../integer/coerce");
-
-var abs = Math.abs;
-
-module.exports = function (value) {
- value = coerceToInteger(value);
- if (!value) return value;
- if (abs(value) > 8.64e15) return null;
- return value;
-};
diff --git a/node_modules/ext/node_modules/type/time-value/ensure.js b/node_modules/ext/node_modules/type/time-value/ensure.js
deleted file mode 100644
index ddf4f61..0000000
--- a/node_modules/ext/node_modules/type/time-value/ensure.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-var resolveException = require("../lib/resolve-exception")
- , coerce = require("./coerce");
-
-module.exports = function (value/*, options*/) {
- var coerced = coerce(value);
- if (coerced !== null) return coerced;
- var options = arguments[1];
- var errorMessage =
- options && options.name
- ? "Expected a time value for %n, received %v"
- : "%v is not a time value";
- return resolveException(value, errorMessage, options);
-};
diff --git a/node_modules/ext/node_modules/type/value/ensure.js b/node_modules/ext/node_modules/type/value/ensure.js
deleted file mode 100644
index 3067a3e..0000000
--- a/node_modules/ext/node_modules/type/value/ensure.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-var resolveException = require("../lib/resolve-exception")
- , is = require("./is");
-
-module.exports = function (value/*, options*/) {
- if (is(value)) return value;
- var options = arguments[1];
- var errorMessage =
- options && options.name ? "Expected a value for %n, received %v" : "Cannot use %v";
- return resolveException(value, errorMessage, options);
-};
diff --git a/node_modules/ext/node_modules/type/value/is.js b/node_modules/ext/node_modules/type/value/is.js
deleted file mode 100644
index 648aa9c..0000000
--- a/node_modules/ext/node_modules/type/value/is.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-// ES3 safe
-var _undefined = void 0;
-
-module.exports = function (value) { return value !== _undefined && value !== null; };
diff --git a/node_modules/ext/object/entries/implement.js b/node_modules/ext/object/entries/implement.js
deleted file mode 100644
index 383ceee..0000000
--- a/node_modules/ext/object/entries/implement.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-if (!require("./is-implemented")()) {
- Object.defineProperty(Object, "entries", {
- value: require("./implementation"),
- configurable: true,
- enumerable: false,
- writable: true
- });
-}
diff --git a/node_modules/ext/object/entries/implementation.js b/node_modules/ext/object/entries/implementation.js
deleted file mode 100644
index 898e6e9..0000000
--- a/node_modules/ext/object/entries/implementation.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-var ensureValue = require("type/value/ensure");
-
-var objHasOwnProperty = Object.prototype.hasOwnProperty;
-
-module.exports = function (object) {
- object = Object(ensureValue(object));
- var result = [];
- for (var key in object) {
- if (!objHasOwnProperty.call(object, key)) continue;
- result.push([key, object[key]]);
- }
- return result;
-};
diff --git a/node_modules/ext/object/entries/index.js b/node_modules/ext/object/entries/index.js
deleted file mode 100644
index 0a784d6..0000000
--- a/node_modules/ext/object/entries/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")() ? Object.entries : require("./implementation");
diff --git a/node_modules/ext/object/entries/is-implemented.js b/node_modules/ext/object/entries/is-implemented.js
deleted file mode 100644
index aad52b2..0000000
--- a/node_modules/ext/object/entries/is-implemented.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-module.exports = function () {
- try { return Object.entries({ foo: 12 })[0][0] === "foo"; }
- catch (e) { return false; }
-};
diff --git a/node_modules/ext/package.json b/node_modules/ext/package.json
deleted file mode 100644
index 5a646da..0000000
--- a/node_modules/ext/package.json
+++ /dev/null
@@ -1,120 +0,0 @@
-{
- "name": "ext",
- "version": "1.4.0",
- "description": "JavaScript utilities with respect to emerging standard",
- "author": "Mariusz Nowak (http://www.medikoo.com/)",
- "keywords": [
- "ecmascript",
- "es",
- "es6",
- "extensions",
- "ext",
- "addons",
- "lodash",
- "extras",
- "harmony",
- "javascript",
- "polyfill",
- "shim",
- "util",
- "utils",
- "utilities"
- ],
- "repository": {
- "type": "git",
- "url": "https://github.com/medikoo/es5-ext/tree/ext"
- },
- "dependencies": {
- "type": "^2.0.0"
- },
- "devDependencies": {
- "chai": "^4.2.0",
- "eslint": "^6.7.1",
- "eslint-config-medikoo": "^2.7.0",
- "git-list-updated": "^1.2.1",
- "husky": "^3.1.0",
- "lint-staged": "^9.5.0",
- "mocha": "^6.2.2",
- "prettier-elastic": "^1.18.2",
- "sinon": "^7.5.0"
- },
- "husky": {
- "hooks": {
- "pre-commit": "lint-staged"
- }
- },
- "lint-staged": {
- "*.js": [
- "eslint"
- ],
- "*.{css,html,js,json,md,yaml,yml}": [
- "prettier -c"
- ]
- },
- "eslintIgnore": [
- "_es5-ext/*"
- ],
- "eslintConfig": {
- "extends": "medikoo/es3",
- "root": true,
- "overrides": [
- {
- "files": "global-this/implementation.js",
- "globals": {
- "__global__": true,
- "self": true,
- "window": true
- },
- "rules": {
- "no-extend-native": "off",
- "strict": "off"
- }
- },
- {
- "files": [
- "global-this/is-implemented.js",
- "global-this/index.js"
- ],
- "globals": {
- "globalThis": true
- }
- },
- {
- "files": "test/**/*.js",
- "env": {
- "mocha": true
- }
- },
- {
- "files": "test/thenable_/finally.js",
- "globals": {
- "Promise": true
- }
- }
- ]
- },
- "prettier": {
- "printWidth": 100,
- "tabWidth": 4,
- "quoteProps": "preserve",
- "overrides": [
- {
- "files": "*.md",
- "options": {
- "tabWidth": 2
- }
- }
- ]
- },
- "mocha": {
- "recursive": true
- },
- "scripts": {
- "lint": "eslint .",
- "lint-updated": "pipe-git-updated --ext=js -- eslint --ignore-pattern '!*'",
- "prettier-check-updated": "pipe-git-updated --ext=css --ext=html --ext=js --ext=json --ext=md --ext=yaml --ext=yml -- prettier -c",
- "prettify": "prettier --write --ignore-path .gitignore '**/*.{css,html,js,json,md,yaml,yml}'",
- "test": "mocha"
- },
- "license": "ISC"
-}
diff --git a/node_modules/ext/string/random.js b/node_modules/ext/string/random.js
deleted file mode 100644
index c96ef92..0000000
--- a/node_modules/ext/string/random.js
+++ /dev/null
@@ -1,50 +0,0 @@
-"use strict";
-
-var isObject = require("type/object/is")
- , ensureNaturalNumber = require("type/natural-number/ensure")
- , ensureString = require("type/string/ensure");
-
-var generated = Object.create(null), random = Math.random, uniqTryLimit = 100;
-
-var getChunk = function () { return random().toString(36).slice(2); };
-
-var getString = function (length, charset) {
- var str;
- if (charset) {
- var charsetLength = charset.length;
- str = "";
- for (var i = 0; i < length; ++i) {
- str += charset.charAt(Math.floor(Math.random() * charsetLength));
- }
- return str;
- }
- str = getChunk();
- if (length === null) return str;
- while (str.length < length) str += getChunk();
- return str.slice(0, length);
-};
-
-module.exports = function (/* options */) {
- var options = arguments[0];
- if (!isObject(options)) options = {};
- var length = ensureNaturalNumber(options.length, { "default": 10 })
- , isUnique = options.isUnique
- , charset = ensureString(options.charset, { isOptional: true });
-
- var str = getString(length, charset);
- if (isUnique) {
- var count = 0;
- while (generated[str]) {
- if (++count === uniqTryLimit) {
- throw new Error(
- "Cannot generate random string.\n" +
- "String.random is not designed to effectively generate many short and " +
- "unique random strings"
- );
- }
- str = getString(length);
- }
- generated[str] = true;
- }
- return str;
-};
diff --git a/node_modules/ext/string_/includes/implementation.js b/node_modules/ext/string_/includes/implementation.js
deleted file mode 100644
index a7219f2..0000000
--- a/node_modules/ext/string_/includes/implementation.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-var indexOf = String.prototype.indexOf;
-
-module.exports = function (searchString/*, position*/) {
- return indexOf.call(this, searchString, arguments[1]) > -1;
-};
diff --git a/node_modules/ext/string_/includes/index.js b/node_modules/ext/string_/includes/index.js
deleted file mode 100644
index ee4e284..0000000
--- a/node_modules/ext/string_/includes/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-module.exports = require("./is-implemented")()
- ? String.prototype.includes
- : require("./implementation");
diff --git a/node_modules/ext/string_/includes/is-implemented.js b/node_modules/ext/string_/includes/is-implemented.js
deleted file mode 100644
index edc4515..0000000
--- a/node_modules/ext/string_/includes/is-implemented.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var str = "razdwatrzy";
-
-module.exports = function () {
- if (typeof str.includes !== "function") return false;
- return str.includes("dwa") === true && str.includes("foo") === false;
-};
diff --git a/node_modules/ext/test/function/identity.js b/node_modules/ext/test/function/identity.js
deleted file mode 100644
index 7d7a9bd..0000000
--- a/node_modules/ext/test/function/identity.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-
-var assert = require("chai").assert
- , identity = require("../../function/identity");
-
-describe("function/identity", function () {
- it("Should return first argument", function () {
- assert.equal(identity("foo"), "foo");
- var object = {};
- assert.equal(identity(object), object);
- assert.equal(identity(), undefined);
- assert.equal(identity(1, 2, 3), 1);
- });
-});
diff --git a/node_modules/ext/test/global-this/implementation.js b/node_modules/ext/test/global-this/implementation.js
deleted file mode 100644
index 4a9b2ca..0000000
--- a/node_modules/ext/test/global-this/implementation.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-var isObject = require("type/object/is")
- , assert = require("chai").assert
- , globalThis = require("../../global-this/implementation");
-
-describe("global-this/implementation", function () {
- it("Should be an object", function () { assert(isObject(globalThis)); });
- it("Should be a global object", function () { assert.equal(globalThis.Array, Array); });
- it("Internal resolution should not introduce side-effects", function () {
- assert(!("__global__" in Object.prototype));
- });
-});
diff --git a/node_modules/ext/test/global-this/index.js b/node_modules/ext/test/global-this/index.js
deleted file mode 100644
index bbf1d07..0000000
--- a/node_modules/ext/test/global-this/index.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-var isObject = require("type/object/is")
- , assert = require("chai").assert
- , globalThis = require("../../global-this");
-
-describe("global-this", function () {
- it("Should be an object", function () { assert(isObject(globalThis)); });
- it("Should be a global object", function () { assert.equal(globalThis.Array, Array); });
-});
diff --git a/node_modules/ext/test/global-this/is-implemented.js b/node_modules/ext/test/global-this/is-implemented.js
deleted file mode 100644
index 1bd748e..0000000
--- a/node_modules/ext/test/global-this/is-implemented.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var assert = require("chai").assert
- , isImplemented = require("../../global-this/is-implemented");
-
-describe("global-this/is-implemented", function () {
- it("Should return boolean", function () { assert.equal(typeof isImplemented(), "boolean"); });
-});
diff --git a/node_modules/ext/test/math/ceil-10.js b/node_modules/ext/test/math/ceil-10.js
deleted file mode 100644
index 8e9ef5a..0000000
--- a/node_modules/ext/test/math/ceil-10.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-var assert = require("chai").assert
- , ceil10 = require("../../math/ceil-10");
-
-describe("math/ceil-10", function () {
- it("Should ceil", function () {
- assert.equal(ceil10(55.51, -1), 55.6);
- assert.equal(ceil10(51, 1), 60);
- assert.equal(ceil10(-55.59, -1), -55.5);
- assert.equal(ceil10(-59, 1), -50);
- });
-});
diff --git a/node_modules/ext/test/math/floor-10.js b/node_modules/ext/test/math/floor-10.js
deleted file mode 100644
index 8eaf1ea..0000000
--- a/node_modules/ext/test/math/floor-10.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-var assert = require("chai").assert
- , floor10 = require("../../math/floor-10");
-
-describe("math/floor-10", function () {
- it("Should floor", function () {
- assert.equal(floor10(55.59, -1), 55.5);
- assert.equal(floor10(59, 1), 50);
- assert.equal(floor10(-55.51, -1), -55.6);
- assert.equal(floor10(-51, 1), -60);
- });
-});
diff --git a/node_modules/ext/test/math/round-10.js b/node_modules/ext/test/math/round-10.js
deleted file mode 100644
index 8463ddc..0000000
--- a/node_modules/ext/test/math/round-10.js
+++ /dev/null
@@ -1,19 +0,0 @@
-"use strict";
-
-var assert = require("chai").assert
- , round10 = require("../../math/round-10");
-
-describe("math/round-10", function () {
- it("Should round", function () {
- assert.equal(round10(55.55, -1), 55.6);
- assert.equal(round10(55.549, -1), 55.5);
- assert.equal(round10(55, 1), 60);
- assert.equal(round10(54.9, 1), 50);
- assert.equal(round10(-55.55, -1), -55.5);
- assert.equal(round10(-55.551, -1), -55.6);
- assert.equal(round10(-55, 1), -50);
- assert.equal(round10(-55.1, 1), -60);
- assert.equal(round10(1.005, -2), 1.01);
- assert.equal(round10(-1.005, -2), -1.0);
- });
-});
diff --git a/node_modules/ext/test/object/entries/_tests.js b/node_modules/ext/test/object/entries/_tests.js
deleted file mode 100644
index 5432dbf..0000000
--- a/node_modules/ext/test/object/entries/_tests.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-var assert = require("chai").assert;
-
-module.exports = function (entries) {
- it("Should resolve entries array for an object", function () {
- assert.deepEqual(entries({ foo: "bar" }), [["foo", "bar"]]);
- });
- it("Should resolve entries array for a primitive", function () {
- assert.deepEqual(entries("raz"), [["0", "r"], ["1", "a"], ["2", "z"]]);
- });
- it("Should throw on non-value", function () {
- assert["throws"](function () { entries(null); }, TypeError);
- });
-};
diff --git a/node_modules/ext/test/object/entries/implementation.js b/node_modules/ext/test/object/entries/implementation.js
deleted file mode 100644
index ec763c5..0000000
--- a/node_modules/ext/test/object/entries/implementation.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-var entries = require("../../../object/entries/implementation")
- , tests = require("./_tests");
-
-describe("object/entries/implementation", function () { tests(entries); });
diff --git a/node_modules/ext/test/object/entries/index.js b/node_modules/ext/test/object/entries/index.js
deleted file mode 100644
index 20e9bfe..0000000
--- a/node_modules/ext/test/object/entries/index.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-var entries = require("../../../object/entries")
- , tests = require("./_tests");
-
-describe("object/entries/index", function () { tests(entries); });
diff --git a/node_modules/ext/test/object/entries/is-implemented.js b/node_modules/ext/test/object/entries/is-implemented.js
deleted file mode 100644
index d920602..0000000
--- a/node_modules/ext/test/object/entries/is-implemented.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var assert = require("chai").assert
- , isImplemented = require("../../../object/entries/is-implemented");
-
-describe("object/entries/is-implemented", function () {
- assert.equal(typeof isImplemented(), "boolean");
-});
diff --git a/node_modules/ext/test/string/random.js b/node_modules/ext/test/string/random.js
deleted file mode 100644
index 995860d..0000000
--- a/node_modules/ext/test/string/random.js
+++ /dev/null
@@ -1,36 +0,0 @@
-"use strict";
-
-var assert = require("chai").assert
- , random = require("../../string/random");
-
-var isValidFormat = RegExp.prototype.test.bind(/^[a-z0-9]+$/);
-
-describe("string/random", function () {
- it("Should return string", function () { assert.equal(typeof random(), "string"); });
- it("Should return by default string of length 10", function () {
- assert.equal(random().length, 10);
- });
- it("Should support custom charset", function () {
- var charset = "abc";
- var result = random({ charset: charset });
- assert.equal(result.length, 10);
- for (var i = 0; i < result.length; ++i) {
- assert.isAtLeast(charset.indexOf(result.charAt(i)), 0);
- }
- });
- it("Should ensure unique string with `isUnique` option", function () {
- assert.notEqual(random({ isUnique: true }), random({ isUnique: true }));
- });
- it("Should contain only ascii chars", function () { assert(isValidFormat(random())); });
- it("Should support `length` option", function () {
- assert.equal(random({ length: 4 }).length, 4);
- assert.equal(random({ length: 100 }).length, 100);
- assert.equal(random({ length: 0 }).length, 0);
- });
- it("Should crash if unable to generate unique string with `isUnique` optin", function () {
- random({ length: 0, isUnique: true });
- assert["throws"](function () {
- random({ length: 0, isUnique: true });
- }, "Cannot generate random string");
- });
-});
diff --git a/node_modules/ext/test/string_/includes/_tests.js b/node_modules/ext/test/string_/includes/_tests.js
deleted file mode 100644
index fdebdfd..0000000
--- a/node_modules/ext/test/string_/includes/_tests.js
+++ /dev/null
@@ -1,40 +0,0 @@
-"use strict";
-
-var assert = require("chai").assert;
-
-module.exports = function (includes) {
- it("Should return true when context contains search string", function () {
- assert.equal(includes.call("razdwatrzy", "dwa"), true);
- });
- it("Should return true when context starts with search string", function () {
- assert.equal(includes.call("razdwa", "raz"), true);
- });
- it("Should return true when context ends with search string", function () {
- assert.equal(includes.call("razdwa", "dwa"), true);
- });
- it("Should return false when string doesn't contain search string", function () {
- assert.equal(includes.call("razdwa", "trzy"), false);
- });
- it("Should return false when context is empty and search string is not", function () {
- assert.equal(includes.call("", "a"), false);
- });
- it("Should return false when search string is longer than context", function () {
- assert.equal(includes.call("raz", "razdwa"), false);
- });
- it("Should return true when search string is same as context ", function () {
- assert.equal(includes.call("raz", "raz"), true);
- });
- it("Should return true when context starts with search string", function () {
- assert.equal(includes.call("razdwa", "raz"), true);
- });
- it("Should return true when search string is empty", function () {
- assert.equal(includes.call("raz", ""), true);
- });
- it("Should return true when both context and search string are empty", function () {
- assert.equal(includes.call("", ""), true);
- });
- it("Should support position argument", function () {
- assert.equal(includes.call("razdwa", "raz", 1), false);
- assert.equal(includes.call("razdwa", "dwa", 1), true);
- });
-};
diff --git a/node_modules/ext/test/string_/includes/implementation.js b/node_modules/ext/test/string_/includes/implementation.js
deleted file mode 100644
index 5331d3a..0000000
--- a/node_modules/ext/test/string_/includes/implementation.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-describe("string_/includes/implementation", function () {
- require("./_tests")(require("../../../string_/includes/implementation"));
-});
diff --git a/node_modules/ext/test/string_/includes/index.js b/node_modules/ext/test/string_/includes/index.js
deleted file mode 100644
index 6ba2de5..0000000
--- a/node_modules/ext/test/string_/includes/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-
-describe("string_/includes/implementation", function () {
- require("./_tests")(require("../../../string_/includes"));
-});
diff --git a/node_modules/ext/test/string_/includes/is-implemented.js b/node_modules/ext/test/string_/includes/is-implemented.js
deleted file mode 100644
index 97a1f78..0000000
--- a/node_modules/ext/test/string_/includes/is-implemented.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var assert = require("chai").assert
- , isImplemented = require("../../../string_/includes/is-implemented");
-
-describe("string_/includes/is-implemented", function () {
- it("Should return boolean", function () { assert.equal(typeof isImplemented(), "boolean"); });
-});
diff --git a/node_modules/ext/test/thenable_/finally.js b/node_modules/ext/test/thenable_/finally.js
deleted file mode 100644
index 1d2fcd9..0000000
--- a/node_modules/ext/test/thenable_/finally.js
+++ /dev/null
@@ -1,89 +0,0 @@
-"use strict";
-
-var assert = require("chai").assert
- , sinon = require("sinon")
- , identity = require("../../function/identity")
- , finallyMethod = require("../../thenable_/finally");
-
-var throwUnexpected = function () { throw new Error("Unexpected"); };
-
-describe("thenable_/finally", function () {
- describe("Successful on fulfilled", function () {
- var callback, input, result;
-
- before(function () {
- callback = sinon.fake();
- input = Promise.resolve("foo");
- result = finallyMethod.call(input, callback);
- return result;
- });
-
- it("Should invoke finally callback", function () { assert(callback.calledOnce); });
-
- it("Return promise should fulfill with original result", function () {
- return Promise.all([input, result]).then(function (results) {
- assert.equal(results[0], results[1]);
- });
- });
- });
-
- describe("Successful on rejected", function () {
- var callback, input, result;
-
- before(function () {
- var inputError = new Error("Rejected");
- callback = sinon.fake();
- input = Promise.reject(inputError);
- result = finallyMethod.call(input, callback);
- return result["catch"](function (error) { if (error !== inputError) throw error; });
- });
-
- it("Should invoke finally callback", function () { assert(callback.calledOnce); });
-
- it("Return promise should fulfill with original result", function () {
- return Promise.all([input["catch"](identity), result["catch"](identity)]).then(
- function (results) { assert.equal(results[0], results[1]); }
- );
- });
- });
-
- describe("Failed on fulfilled", function () {
- var callback, result, finallyError;
-
- before(function () {
- finallyError = new Error("Finally Rejected");
- callback = sinon.fake["throws"](finallyError);
- var input = Promise.resolve("foo");
- result = finallyMethod.call(input, callback);
- return result["catch"](function (error) { if (error !== finallyError) throw error; });
- });
-
- it("Should invoke finally callback", function () { assert(callback.calledOnce); });
-
- it("Return promise should be rejected with finally error", function () {
- return result.then(throwUnexpected, function (error) {
- assert.equal(finallyError, error);
- });
- });
- });
-
- describe("Failed on rejected", function () {
- var callback, result, finallyError;
-
- before(function () {
- finallyError = new Error("Finally Rejected");
- callback = sinon.fake["throws"](finallyError);
- var input = Promise.reject(new Error("Rejected"));
- result = finallyMethod.call(input, callback);
- return result["catch"](function (error) { if (error !== finallyError) throw error; });
- });
-
- it("Should invoke finally callback", function () { assert(callback.calledOnce); });
-
- it("Return promise should be rejected with finally error", function () {
- return result.then(throwUnexpected, function (error) {
- assert.equal(finallyError, error);
- });
- });
- });
-});
diff --git a/node_modules/ext/thenable_/finally.js b/node_modules/ext/thenable_/finally.js
deleted file mode 100644
index 42274bf..0000000
--- a/node_modules/ext/thenable_/finally.js
+++ /dev/null
@@ -1,24 +0,0 @@
-"use strict";
-
-var ensurePlainFunction = require("type/plain-function/ensure")
- , isThenable = require("type/thenable/is")
- , ensureThenable = require("type/thenable/ensure");
-
-var resolveCallback = function (callback, next) {
- var callbackResult = callback();
- if (!isThenable(callbackResult)) return next();
- return callbackResult.then(next);
-};
-
-module.exports = function (callback) {
- ensureThenable(this);
- ensurePlainFunction(callback);
- return this.then(
- function (result) {
- return resolveCallback(callback, function () { return result; });
- },
- function (error) {
- return resolveCallback(callback, function () { throw error; });
- }
- );
-};
diff --git a/node_modules/extend-shallow/LICENSE b/node_modules/extend-shallow/LICENSE
deleted file mode 100644
index fa30c4c..0000000
--- a/node_modules/extend-shallow/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2015, 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/extend-shallow/README.md b/node_modules/extend-shallow/README.md
deleted file mode 100644
index cdc45d4..0000000
--- a/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/extend-shallow/index.js b/node_modules/extend-shallow/index.js
deleted file mode 100644
index 92a067f..0000000
--- a/node_modules/extend-shallow/index.js
+++ /dev/null
@@ -1,33 +0,0 @@
-'use strict';
-
-var isObject = require('is-extendable');
-
-module.exports = function extend(o/*, objects*/) {
- if (!isObject(o)) { o = {}; }
-
- var len = arguments.length;
- for (var i = 1; i < len; i++) {
- var obj = arguments[i];
-
- if (isObject(obj)) {
- assign(o, obj);
- }
- }
- return o;
-};
-
-function assign(a, b) {
- for (var key in b) {
- if (hasOwn(b, key)) {
- a[key] = b[key];
- }
- }
-}
-
-/**
- * Returns true if the given `key` is an own property of `obj`.
- */
-
-function hasOwn(obj, key) {
- return Object.prototype.hasOwnProperty.call(obj, key);
-}
diff --git a/node_modules/extend-shallow/package.json b/node_modules/extend-shallow/package.json
deleted file mode 100644
index b42e01c..0000000
--- a/node_modules/extend-shallow/package.json
+++ /dev/null
@@ -1,56 +0,0 @@
-{
- "name": "extend-shallow",
- "description": "Extend an object with the properties of additional objects. node.js/javascript util.",
- "version": "2.0.1",
- "homepage": "https://github.com/jonschlinkert/extend-shallow",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/extend-shallow",
- "bugs": {
- "url": "https://github.com/jonschlinkert/extend-shallow/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "is-extendable": "^0.1.0"
- },
- "devDependencies": {
- "array-slice": "^0.2.3",
- "benchmarked": "^0.1.4",
- "chalk": "^1.0.0",
- "for-own": "^0.1.3",
- "glob": "^5.0.12",
- "is-plain-object": "^2.0.1",
- "kind-of": "^2.0.0",
- "minimist": "^1.1.1",
- "mocha": "^2.2.5",
- "should": "^7.0.1"
- },
- "keywords": [
- "assign",
- "extend",
- "javascript",
- "js",
- "keys",
- "merge",
- "obj",
- "object",
- "prop",
- "properties",
- "property",
- "props",
- "shallow",
- "util",
- "utility",
- "utils",
- "value"
- ]
-}
\ No newline at end of file
diff --git a/node_modules/extend/.editorconfig b/node_modules/extend/.editorconfig
deleted file mode 100644
index bc228f8..0000000
--- a/node_modules/extend/.editorconfig
+++ /dev/null
@@ -1,20 +0,0 @@
-root = true
-
-[*]
-indent_style = tab
-indent_size = 4
-end_of_line = lf
-charset = utf-8
-trim_trailing_whitespace = true
-insert_final_newline = true
-max_line_length = 150
-
-[CHANGELOG.md]
-indent_style = space
-indent_size = 2
-
-[*.json]
-max_line_length = off
-
-[Makefile]
-max_line_length = off
diff --git a/node_modules/extend/.eslintrc b/node_modules/extend/.eslintrc
deleted file mode 100644
index a34cf28..0000000
--- a/node_modules/extend/.eslintrc
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "root": true,
-
- "extends": "@ljharb",
-
- "rules": {
- "complexity": [2, 20],
- "eqeqeq": [2, "allow-null"],
- "func-name-matching": [1],
- "max-depth": [1, 4],
- "max-statements": [2, 26],
- "no-extra-parens": [1],
- "no-magic-numbers": [0],
- "no-restricted-syntax": [2, "BreakStatement", "ContinueStatement", "DebuggerStatement", "LabeledStatement", "WithStatement"],
- "sort-keys": [0],
- }
-}
diff --git a/node_modules/extend/.jscs.json b/node_modules/extend/.jscs.json
deleted file mode 100644
index 3cce01d..0000000
--- a/node_modules/extend/.jscs.json
+++ /dev/null
@@ -1,175 +0,0 @@
-{
- "es3": true,
-
- "additionalRules": [],
-
- "requireSemicolons": true,
-
- "disallowMultipleSpaces": true,
-
- "disallowIdentifierNames": [],
-
- "requireCurlyBraces": {
- "allExcept": [],
- "keywords": ["if", "else", "for", "while", "do", "try", "catch"]
- },
-
- "requireSpaceAfterKeywords": ["if", "else", "for", "while", "do", "switch", "return", "try", "catch", "function"],
-
- "disallowSpaceAfterKeywords": [],
-
- "disallowSpaceBeforeComma": true,
- "disallowSpaceAfterComma": false,
- "disallowSpaceBeforeSemicolon": true,
-
- "disallowNodeTypes": [
- "DebuggerStatement",
- "LabeledStatement",
- "SwitchCase",
- "SwitchStatement",
- "WithStatement"
- ],
-
- "requireObjectKeysOnNewLine": { "allExcept": ["sameLine"] },
-
- "requireSpacesInAnonymousFunctionExpression": { "beforeOpeningRoundBrace": true, "beforeOpeningCurlyBrace": true },
- "requireSpacesInNamedFunctionExpression": { "beforeOpeningCurlyBrace": true },
- "disallowSpacesInNamedFunctionExpression": { "beforeOpeningRoundBrace": true },
- "requireSpacesInFunctionDeclaration": { "beforeOpeningCurlyBrace": true },
- "disallowSpacesInFunctionDeclaration": { "beforeOpeningRoundBrace": true },
-
- "requireSpaceBetweenArguments": true,
-
- "disallowSpacesInsideParentheses": true,
-
- "disallowSpacesInsideArrayBrackets": true,
-
- "disallowQuotedKeysInObjects": { "allExcept": ["reserved"] },
-
- "disallowSpaceAfterObjectKeys": true,
-
- "requireCommaBeforeLineBreak": true,
-
- "disallowSpaceAfterPrefixUnaryOperators": ["++", "--", "+", "-", "~", "!"],
- "requireSpaceAfterPrefixUnaryOperators": [],
-
- "disallowSpaceBeforePostfixUnaryOperators": ["++", "--"],
- "requireSpaceBeforePostfixUnaryOperators": [],
-
- "disallowSpaceBeforeBinaryOperators": [],
- "requireSpaceBeforeBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!=="],
-
- "requireSpaceAfterBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!=="],
- "disallowSpaceAfterBinaryOperators": [],
-
- "disallowImplicitTypeConversion": ["binary", "string"],
-
- "disallowKeywords": ["with", "eval"],
-
- "requireKeywordsOnNewLine": [],
- "disallowKeywordsOnNewLine": ["else"],
-
- "requireLineFeedAtFileEnd": true,
-
- "disallowTrailingWhitespace": true,
-
- "disallowTrailingComma": true,
-
- "excludeFiles": ["node_modules/**", "vendor/**"],
-
- "disallowMultipleLineStrings": true,
-
- "requireDotNotation": { "allExcept": ["keywords"] },
-
- "requireParenthesesAroundIIFE": true,
-
- "validateLineBreaks": "LF",
-
- "validateQuoteMarks": {
- "escape": true,
- "mark": "'"
- },
-
- "disallowOperatorBeforeLineBreak": [],
-
- "requireSpaceBeforeKeywords": [
- "do",
- "for",
- "if",
- "else",
- "switch",
- "case",
- "try",
- "catch",
- "finally",
- "while",
- "with",
- "return"
- ],
-
- "validateAlignedFunctionParameters": {
- "lineBreakAfterOpeningBraces": true,
- "lineBreakBeforeClosingBraces": true
- },
-
- "requirePaddingNewLinesBeforeExport": true,
-
- "validateNewlineAfterArrayElements": {
- "maximum": 6
- },
-
- "requirePaddingNewLinesAfterUseStrict": true,
-
- "disallowArrowFunctions": true,
-
- "disallowMultiLineTernary": true,
-
- "validateOrderInObjectKeys": false,
-
- "disallowIdenticalDestructuringNames": true,
-
- "disallowNestedTernaries": { "maxLevel": 1 },
-
- "requireSpaceAfterComma": { "allExcept": ["trailing"] },
- "requireAlignedMultilineParams": false,
-
- "requireSpacesInGenerator": {
- "afterStar": true
- },
-
- "disallowSpacesInGenerator": {
- "beforeStar": true
- },
-
- "disallowVar": false,
-
- "requireArrayDestructuring": false,
-
- "requireEnhancedObjectLiterals": false,
-
- "requireObjectDestructuring": false,
-
- "requireEarlyReturn": false,
-
- "requireCapitalizedConstructorsNew": {
- "allExcept": ["Function", "String", "Object", "Symbol", "Number", "Date", "RegExp", "Error", "Boolean", "Array"]
- },
-
- "requireImportAlphabetized": false,
-
- "requireSpaceBeforeObjectValues": true,
- "requireSpaceBeforeDestructuredValues": true,
-
- "disallowSpacesInsideTemplateStringPlaceholders": true,
-
- "disallowArrayDestructuringReturn": false,
-
- "requireNewlineBeforeSingleStatementsInIf": false,
-
- "disallowUnusedVariables": true,
-
- "requireSpacesInsideImportedObjectBraces": true,
-
- "requireUseStrict": true
-}
-
diff --git a/node_modules/extend/.travis.yml b/node_modules/extend/.travis.yml
deleted file mode 100644
index 5ccdfc4..0000000
--- a/node_modules/extend/.travis.yml
+++ /dev/null
@@ -1,230 +0,0 @@
-language: node_js
-os:
- - linux
-node_js:
- - "10.7"
- - "9.11"
- - "8.11"
- - "7.10"
- - "6.14"
- - "5.12"
- - "4.9"
- - "iojs-v3.3"
- - "iojs-v2.5"
- - "iojs-v1.8"
- - "0.12"
- - "0.10"
- - "0.8"
-before_install:
- - 'case "${TRAVIS_NODE_VERSION}" in 0.*) export NPM_CONFIG_STRICT_SSL=false ;; esac'
- - 'nvm install-latest-npm'
-install:
- - 'if [ "${TRAVIS_NODE_VERSION}" = "0.6" ] || [ "${TRAVIS_NODE_VERSION}" = "0.9" ]; then nvm install --latest-npm 0.8 && npm install && nvm use "${TRAVIS_NODE_VERSION}"; else npm install; fi;'
-script:
- - 'if [ -n "${PRETEST-}" ]; then npm run pretest ; fi'
- - 'if [ -n "${POSTTEST-}" ]; then npm run posttest ; fi'
- - 'if [ -n "${COVERAGE-}" ]; then npm run coverage ; fi'
- - 'if [ -n "${TEST-}" ]; then npm run tests-only ; fi'
-sudo: false
-env:
- - TEST=true
-matrix:
- fast_finish: true
- include:
- - node_js: "lts/*"
- env: PRETEST=true
- - node_js: "lts/*"
- env: POSTTEST=true
- - node_js: "4"
- env: COVERAGE=true
- - node_js: "10.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "10.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "10.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "10.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "10.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "10.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "10.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "9.10"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "9.9"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "9.8"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "9.7"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "9.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "9.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "9.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "9.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "9.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "9.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "9.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.10"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.9"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.8"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.7"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.9"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.8"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.7"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.13"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.12"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.11"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.10"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.9"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.8"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.7"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.11"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.10"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.9"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.8"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.7"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.8"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.7"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v3.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v3.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v3.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v2.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v2.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v2.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v2.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v2.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.7"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "0.11"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "0.9"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "0.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "0.4"
- env: TEST=true ALLOW_FAILURE=true
- allow_failures:
- - os: osx
- - env: TEST=true ALLOW_FAILURE=true
diff --git a/node_modules/extend/CHANGELOG.md b/node_modules/extend/CHANGELOG.md
deleted file mode 100644
index 2cf7de6..0000000
--- a/node_modules/extend/CHANGELOG.md
+++ /dev/null
@@ -1,83 +0,0 @@
-3.0.2 / 2018-07-19
-==================
- * [Fix] Prevent merging `__proto__` property (#48)
- * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape`
- * [Tests] up to `node` `v10.7`, `v9.11`, `v8.11`, `v7.10`, `v6.14`, `v4.9`; use `nvm install-latest-npm`
-
-3.0.1 / 2017-04-27
-==================
- * [Fix] deep extending should work with a non-object (#46)
- * [Dev Deps] update `tape`, `eslint`, `@ljharb/eslint-config`
- * [Tests] up to `node` `v7.9`, `v6.10`, `v4.8`; improve matrix
- * [Docs] Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG.
- * [Docs] Add example to readme (#34)
-
-3.0.0 / 2015-07-01
-==================
- * [Possible breaking change] Use global "strict" directive (#32)
- * [Tests] `int` is an ES3 reserved word
- * [Tests] Test up to `io.js` `v2.3`
- * [Tests] Add `npm run eslint`
- * [Dev Deps] Update `covert`, `jscs`
-
-2.0.1 / 2015-04-25
-==================
- * Use an inline `isArray` check, for ES3 browsers. (#27)
- * Some old browsers fail when an identifier is `toString`
- * Test latest `node` and `io.js` versions on `travis-ci`; speed up builds
- * Add license info to package.json (#25)
- * Update `tape`, `jscs`
- * Adding a CHANGELOG
-
-2.0.0 / 2014-10-01
-==================
- * Increase code coverage to 100%; run code coverage as part of tests
- * Add `npm run lint`; Run linter as part of tests
- * Remove nodeType and setInterval checks in isPlainObject
- * Updating `tape`, `jscs`, `covert`
- * General style and README cleanup
-
-1.3.0 / 2014-06-20
-==================
- * Add component.json for browser support (#18)
- * Use SVG for badges in README (#16)
- * Updating `tape`, `covert`
- * Updating travis-ci to work with multiple node versions
- * Fix `deep === false` bug (returning target as {}) (#14)
- * Fixing constructor checks in isPlainObject
- * Adding additional test coverage
- * Adding `npm run coverage`
- * Add LICENSE (#13)
- * Adding a warning about `false`, per #11
- * General style and whitespace cleanup
-
-1.2.1 / 2013-09-14
-==================
- * Fixing hasOwnProperty bugs that would only have shown up in specific browsers. Fixes #8
- * Updating `tape`
-
-1.2.0 / 2013-09-02
-==================
- * Updating the README: add badges
- * Adding a missing variable reference.
- * Using `tape` instead of `buster` for tests; add more tests (#7)
- * Adding node 0.10 to Travis CI (#6)
- * Enabling "npm test" and cleaning up package.json (#5)
- * Add Travis CI.
-
-1.1.3 / 2012-12-06
-==================
- * Added unit tests.
- * Ensure extend function is named. (Looks nicer in a stack trace.)
- * README cleanup.
-
-1.1.1 / 2012-11-07
-==================
- * README cleanup.
- * Added installation instructions.
- * Added a missing semicolon
-
-1.0.0 / 2012-04-08
-==================
- * Initial commit
-
diff --git a/node_modules/extend/LICENSE b/node_modules/extend/LICENSE
deleted file mode 100644
index e16d6a5..0000000
--- a/node_modules/extend/LICENSE
+++ /dev/null
@@ -1,23 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014 Stefan Thomas
-
-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/extend/README.md b/node_modules/extend/README.md
deleted file mode 100644
index 5b8249a..0000000
--- a/node_modules/extend/README.md
+++ /dev/null
@@ -1,81 +0,0 @@
-[![Build Status][travis-svg]][travis-url]
-[![dependency status][deps-svg]][deps-url]
-[![dev dependency status][dev-deps-svg]][dev-deps-url]
-
-# extend() for Node.js [![Version Badge][npm-version-png]][npm-url]
-
-`node-extend` is a port of the classic extend() method from jQuery. It behaves as you expect. It is simple, tried and true.
-
-Notes:
-
-* Since Node.js >= 4,
- [`Object.assign`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)
- now offers the same functionality natively (but without the "deep copy" option).
- See [ECMAScript 2015 (ES6) in Node.js](https://nodejs.org/en/docs/es6).
-* Some native implementations of `Object.assign` in both Node.js and many
- browsers (since NPM modules are for the browser too) may not be fully
- spec-compliant.
- Check [`object.assign`](https://www.npmjs.com/package/object.assign) module for
- a compliant candidate.
-
-## Installation
-
-This package is available on [npm][npm-url] as: `extend`
-
-``` sh
-npm install extend
-```
-
-## Usage
-
-**Syntax:** extend **(** [`deep`], `target`, `object1`, [`objectN`] **)**
-
-*Extend one object with one or more others, returning the modified object.*
-
-**Example:**
-
-``` js
-var extend = require('extend');
-extend(targetObject, object1, object2);
-```
-
-Keep in mind that the target object will be modified, and will be returned from extend().
-
-If a boolean true is specified as the first argument, extend performs a deep copy, recursively copying any objects it finds. Otherwise, the copy will share structure with the original object(s).
-Undefined properties are not copied. However, properties inherited from the object's prototype will be copied over.
-Warning: passing `false` as the first argument is not supported.
-
-### Arguments
-
-* `deep` *Boolean* (optional)
-If set, the merge becomes recursive (i.e. deep copy).
-* `target` *Object*
-The object to extend.
-* `object1` *Object*
-The object that will be merged into the first.
-* `objectN` *Object* (Optional)
-More objects to merge into the first.
-
-## License
-
-`node-extend` is licensed under the [MIT License][mit-license-url].
-
-## Acknowledgements
-
-All credit to the jQuery authors for perfecting this amazing utility.
-
-Ported to Node.js by [Stefan Thomas][github-justmoon] with contributions by [Jonathan Buchanan][github-insin] and [Jordan Harband][github-ljharb].
-
-[travis-svg]: https://travis-ci.org/justmoon/node-extend.svg
-[travis-url]: https://travis-ci.org/justmoon/node-extend
-[npm-url]: https://npmjs.org/package/extend
-[mit-license-url]: http://opensource.org/licenses/MIT
-[github-justmoon]: https://github.com/justmoon
-[github-insin]: https://github.com/insin
-[github-ljharb]: https://github.com/ljharb
-[npm-version-png]: http://versionbadg.es/justmoon/node-extend.svg
-[deps-svg]: https://david-dm.org/justmoon/node-extend.svg
-[deps-url]: https://david-dm.org/justmoon/node-extend
-[dev-deps-svg]: https://david-dm.org/justmoon/node-extend/dev-status.svg
-[dev-deps-url]: https://david-dm.org/justmoon/node-extend#info=devDependencies
-
diff --git a/node_modules/extend/component.json b/node_modules/extend/component.json
deleted file mode 100644
index 1500a2f..0000000
--- a/node_modules/extend/component.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- "name": "extend",
- "author": "Stefan Thomas (http://www.justmoon.net)",
- "version": "3.0.0",
- "description": "Port of jQuery.extend for node.js and the browser.",
- "scripts": [
- "index.js"
- ],
- "contributors": [
- {
- "name": "Jordan Harband",
- "url": "https://github.com/ljharb"
- }
- ],
- "keywords": [
- "extend",
- "clone",
- "merge"
- ],
- "repository" : {
- "type": "git",
- "url": "https://github.com/justmoon/node-extend.git"
- },
- "dependencies": {
- },
- "devDependencies": {
- "tape" : "~3.0.0",
- "covert": "~0.4.0",
- "jscs": "~1.6.2"
- }
-}
-
diff --git a/node_modules/extend/index.js b/node_modules/extend/index.js
deleted file mode 100644
index 2aa3faa..0000000
--- a/node_modules/extend/index.js
+++ /dev/null
@@ -1,117 +0,0 @@
-'use strict';
-
-var hasOwn = Object.prototype.hasOwnProperty;
-var toStr = Object.prototype.toString;
-var defineProperty = Object.defineProperty;
-var gOPD = Object.getOwnPropertyDescriptor;
-
-var isArray = function isArray(arr) {
- if (typeof Array.isArray === 'function') {
- return Array.isArray(arr);
- }
-
- return toStr.call(arr) === '[object Array]';
-};
-
-var isPlainObject = function isPlainObject(obj) {
- if (!obj || toStr.call(obj) !== '[object Object]') {
- return false;
- }
-
- var hasOwnConstructor = hasOwn.call(obj, 'constructor');
- var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');
- // Not own constructor property must be Object
- if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {
- return false;
- }
-
- // Own properties are enumerated firstly, so to speed up,
- // if last one is own, then all properties are own.
- var key;
- for (key in obj) { /**/ }
-
- return typeof key === 'undefined' || hasOwn.call(obj, key);
-};
-
-// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target
-var setProperty = function setProperty(target, options) {
- if (defineProperty && options.name === '__proto__') {
- defineProperty(target, options.name, {
- enumerable: true,
- configurable: true,
- value: options.newValue,
- writable: true
- });
- } else {
- target[options.name] = options.newValue;
- }
-};
-
-// Return undefined instead of __proto__ if '__proto__' is not an own property
-var getProperty = function getProperty(obj, name) {
- if (name === '__proto__') {
- if (!hasOwn.call(obj, name)) {
- return void 0;
- } else if (gOPD) {
- // In early versions of node, obj['__proto__'] is buggy when obj has
- // __proto__ as an own property. Object.getOwnPropertyDescriptor() works.
- return gOPD(obj, name).value;
- }
- }
-
- return obj[name];
-};
-
-module.exports = function extend() {
- var options, name, src, copy, copyIsArray, clone;
- var target = arguments[0];
- var i = 1;
- var length = arguments.length;
- var deep = false;
-
- // Handle a deep copy situation
- if (typeof target === 'boolean') {
- deep = target;
- target = arguments[1] || {};
- // skip the boolean and the target
- i = 2;
- }
- if (target == null || (typeof target !== 'object' && typeof target !== 'function')) {
- target = {};
- }
-
- for (; i < length; ++i) {
- options = arguments[i];
- // Only deal with non-null/undefined values
- if (options != null) {
- // Extend the base object
- for (name in options) {
- src = getProperty(target, name);
- copy = getProperty(options, name);
-
- // Prevent never-ending loop
- if (target !== copy) {
- // Recurse if we're merging plain objects or arrays
- if (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {
- if (copyIsArray) {
- copyIsArray = false;
- clone = src && isArray(src) ? src : [];
- } else {
- clone = src && isPlainObject(src) ? src : {};
- }
-
- // Never move original objects, clone them
- setProperty(target, { name: name, newValue: extend(deep, clone, copy) });
-
- // Don't bring in undefined values
- } else if (typeof copy !== 'undefined') {
- setProperty(target, { name: name, newValue: copy });
- }
- }
- }
- }
- }
-
- // Return the modified object
- return target;
-};
diff --git a/node_modules/extend/package.json b/node_modules/extend/package.json
deleted file mode 100644
index 85279f7..0000000
--- a/node_modules/extend/package.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "name": "extend",
- "author": "Stefan Thomas (http://www.justmoon.net)",
- "version": "3.0.2",
- "description": "Port of jQuery.extend for node.js and the browser",
- "main": "index",
- "scripts": {
- "pretest": "npm run lint",
- "test": "npm run tests-only",
- "posttest": "npm run coverage-quiet",
- "tests-only": "node test",
- "coverage": "covert test/index.js",
- "coverage-quiet": "covert test/index.js --quiet",
- "lint": "npm run jscs && npm run eslint",
- "jscs": "jscs *.js */*.js",
- "eslint": "eslint *.js */*.js"
- },
- "contributors": [
- {
- "name": "Jordan Harband",
- "url": "https://github.com/ljharb"
- }
- ],
- "keywords": [
- "extend",
- "clone",
- "merge"
- ],
- "repository": {
- "type": "git",
- "url": "https://github.com/justmoon/node-extend.git"
- },
- "dependencies": {},
- "devDependencies": {
- "@ljharb/eslint-config": "^12.2.1",
- "covert": "^1.1.0",
- "eslint": "^4.19.1",
- "jscs": "^3.0.7",
- "tape": "^4.9.1"
- },
- "license": "MIT"
-}
diff --git a/node_modules/extglob/LICENSE b/node_modules/extglob/LICENSE
deleted file mode 100644
index e33d14b..0000000
--- a/node_modules/extglob/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015-2017, 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/extglob/README.md b/node_modules/extglob/README.md
deleted file mode 100644
index 3255ea2..0000000
--- a/node_modules/extglob/README.md
+++ /dev/null
@@ -1,362 +0,0 @@
-# extglob [![NPM version](https://img.shields.io/npm/v/extglob.svg?style=flat)](https://www.npmjs.com/package/extglob) [![NPM monthly downloads](https://img.shields.io/npm/dm/extglob.svg?style=flat)](https://npmjs.org/package/extglob) [![NPM total downloads](https://img.shields.io/npm/dt/extglob.svg?style=flat)](https://npmjs.org/package/extglob) [![Linux Build Status](https://img.shields.io/travis/micromatch/extglob.svg?style=flat&label=Travis)](https://travis-ci.org/micromatch/extglob) [![Windows Build Status](https://img.shields.io/appveyor/ci/micromatch/extglob.svg?style=flat&label=AppVeyor)](https://ci.appveyor.com/project/micromatch/extglob)
-
-> Extended glob support for JavaScript. Adds (almost) the expressive power of regular expressions to glob patterns.
-
-Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save extglob
-```
-
-* Convert an extglob string to a regex-compatible string.
-* More complete (and correct) support than [minimatch](https://github.com/isaacs/minimatch) (minimatch fails a large percentage of the extglob tests)
-* Handles [negation patterns](#extglob-patterns)
-* Handles [nested patterns](#extglob-patterns)
-* Organized code base, easy to maintain and make changes when edge cases arise
-* As you can see by the [benchmarks](#benchmarks), extglob doesn't pay with speed for it's completeness, accuracy and quality.
-
-**Heads up!**: This library only supports extglobs, to handle full glob patterns and other extended globbing features use [micromatch](https://github.com/jonschlinkert/micromatch) instead.
-
-## Usage
-
-The main export is a function that takes a string and options, and returns an object with the parsed AST and the compiled `.output`, which is a regex-compatible string that can be used for matching.
-
-```js
-var extglob = require('extglob');
-console.log(extglob('!(xyz)*.js'));
-```
-
-## Extglob cheatsheet
-
-Extended globbing patterns can be defined as follows (as described by the [bash man page](https://www.gnu.org/software/bash/manual/html_node/Pattern-Matching.html)):
-
-| **pattern** | **regex equivalent** | **description** |
-| --- | --- | --- |
-| `?(pattern-list)` | `(...|...)?` | Matches zero or one occurrence of the given pattern(s) |
-| `*(pattern-list)` | `(...|...)*` | Matches zero or more occurrences of the given pattern(s) |
-| `+(pattern-list)` | `(...|...)+` | Matches one or more occurrences of the given pattern(s) |
-| `@(pattern-list)` | `(...|...)` | Matches one of the given pattern(s) |
-| `!(pattern-list)` | N/A | Matches anything except one of the given pattern(s) |
-
-## API
-
-### [extglob](index.js#L36)
-
-Convert the given `extglob` pattern into a regex-compatible string. Returns an object with the compiled result and the parsed AST.
-
-**Params**
-
-* `pattern` **{String}**
-* `options` **{Object}**
-* `returns` **{String}**
-
-**Example**
-
-```js
-var extglob = require('extglob');
-console.log(extglob('*.!(*a)'));
-//=> '(?!\\.)[^/]*?\\.(?!(?!\\.)[^/]*?a\\b).*?'
-```
-
-### [.match](index.js#L56)
-
-Takes an array of strings and an extglob pattern and returns a new array that contains only the strings that match the pattern.
-
-**Params**
-
-* `list` **{Array}**: Array of strings to match
-* `pattern` **{String}**: Extglob pattern
-* `options` **{Object}**
-* `returns` **{Array}**: Returns an array of matches
-
-**Example**
-
-```js
-var extglob = require('extglob');
-console.log(extglob.match(['a.a', 'a.b', 'a.c'], '*.!(*a)'));
-//=> ['a.b', 'a.c']
-```
-
-### [.isMatch](index.js#L111)
-
-Returns true if the specified `string` matches the given extglob `pattern`.
-
-**Params**
-
-* `string` **{String}**: String to match
-* `pattern` **{String}**: Extglob pattern
-* `options` **{String}**
-* `returns` **{Boolean}**
-
-**Example**
-
-```js
-var extglob = require('extglob');
-
-console.log(extglob.isMatch('a.a', '*.!(*a)'));
-//=> false
-console.log(extglob.isMatch('a.b', '*.!(*a)'));
-//=> true
-```
-
-### [.contains](index.js#L150)
-
-Returns true if the given `string` contains the given pattern. Similar to `.isMatch` but the pattern can match any part of the string.
-
-**Params**
-
-* `str` **{String}**: The string to match.
-* `pattern` **{String}**: Glob pattern to use for matching.
-* `options` **{Object}**
-* `returns` **{Boolean}**: Returns true if the patter matches any part of `str`.
-
-**Example**
-
-```js
-var extglob = require('extglob');
-console.log(extglob.contains('aa/bb/cc', '*b'));
-//=> true
-console.log(extglob.contains('aa/bb/cc', '*d'));
-//=> false
-```
-
-### [.matcher](index.js#L184)
-
-Takes an extglob pattern and returns a matcher function. The returned function takes the string to match as its only argument.
-
-**Params**
-
-* `pattern` **{String}**: Extglob pattern
-* `options` **{String}**
-* `returns` **{Boolean}**
-
-**Example**
-
-```js
-var extglob = require('extglob');
-var isMatch = extglob.matcher('*.!(*a)');
-
-console.log(isMatch('a.a'));
-//=> false
-console.log(isMatch('a.b'));
-//=> true
-```
-
-### [.create](index.js#L214)
-
-Convert the given `extglob` pattern into a regex-compatible string. Returns an object with the compiled result and the parsed AST.
-
-**Params**
-
-* `str` **{String}**
-* `options` **{Object}**
-* `returns` **{String}**
-
-**Example**
-
-```js
-var extglob = require('extglob');
-console.log(extglob.create('*.!(*a)').output);
-//=> '(?!\\.)[^/]*?\\.(?!(?!\\.)[^/]*?a\\b).*?'
-```
-
-### [.capture](index.js#L248)
-
-Returns an array of matches captured by `pattern` in `string`, or `null` if the pattern did not match.
-
-**Params**
-
-* `pattern` **{String}**: Glob pattern to use for matching.
-* `string` **{String}**: String to match
-* `options` **{Object}**: See available [options](#options) for changing how matches are performed
-* `returns` **{Boolean}**: Returns an array of captures if the string matches the glob pattern, otherwise `null`.
-
-**Example**
-
-```js
-var extglob = require('extglob');
-extglob.capture(pattern, string[, options]);
-
-console.log(extglob.capture('test/*.js', 'test/foo.js'));
-//=> ['foo']
-console.log(extglob.capture('test/*.js', 'foo/bar.css'));
-//=> null
-```
-
-### [.makeRe](index.js#L281)
-
-Create a regular expression from the given `pattern` and `options`.
-
-**Params**
-
-* `pattern` **{String}**: The pattern to convert to regex.
-* `options` **{Object}**
-* `returns` **{RegExp}**
-
-**Example**
-
-```js
-var extglob = require('extglob');
-var re = extglob.makeRe('*.!(*a)');
-console.log(re);
-//=> /^[^\/]*?\.(?![^\/]*?a)[^\/]*?$/
-```
-
-## Options
-
-Available options are based on the options from Bash (and the option names used in bash).
-
-### options.nullglob
-
-**Type**: `boolean`
-
-**Default**: `undefined`
-
-When enabled, the pattern itself will be returned when no matches are found.
-
-### options.nonull
-
-Alias for [options.nullglob](#optionsnullglob), included for parity with minimatch.
-
-### options.cache
-
-**Type**: `boolean`
-
-**Default**: `undefined`
-
-Functions are memoized based on the given glob patterns and options. Disable memoization by setting `options.cache` to false.
-
-### options.failglob
-
-**Type**: `boolean`
-
-**Default**: `undefined`
-
-Throw an error is no matches are found.
-
-## Benchmarks
-
-Last run on December 21, 2017
-
-```sh
-# negation-nested (49 bytes)
- extglob x 2,228,255 ops/sec ±0.98% (89 runs sampled)
- minimatch x 207,875 ops/sec ±0.61% (91 runs sampled)
-
- fastest is extglob (by 1072% avg)
-
-# negation-simple (43 bytes)
- extglob x 2,205,668 ops/sec ±1.00% (91 runs sampled)
- minimatch x 311,923 ops/sec ±1.25% (91 runs sampled)
-
- fastest is extglob (by 707% avg)
-
-# range-false (57 bytes)
- extglob x 2,263,877 ops/sec ±0.40% (94 runs sampled)
- minimatch x 271,372 ops/sec ±1.02% (91 runs sampled)
-
- fastest is extglob (by 834% avg)
-
-# range-true (56 bytes)
- extglob x 2,161,891 ops/sec ±0.41% (92 runs sampled)
- minimatch x 268,265 ops/sec ±1.17% (91 runs sampled)
-
- fastest is extglob (by 806% avg)
-
-# star-simple (46 bytes)
- extglob x 2,211,081 ops/sec ±0.49% (92 runs sampled)
- minimatch x 343,319 ops/sec ±0.59% (91 runs sampled)
-
- fastest is extglob (by 644% avg)
-
-```
-
-## Differences from Bash
-
-This library has complete parity with Bash 4.3 with only a couple of minor differences.
-
-* In some cases Bash returns true if the given string "contains" the pattern, whereas this library returns true if the string is an exact match for the pattern. You can relax this by setting `options.contains` to true.
-* This library is more accurate than Bash and thus does not fail some of the tests that Bash 4.3 still lists as failing in their unit tests
-
-## About
-
-
-Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-
-
-
-Running Tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-
-
-Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-
-
-### Related projects
-
-You might also be interested in these projects:
-
-* [braces](https://www.npmjs.com/package/braces): Bash-like brace expansion, implemented in JavaScript. Safer than other brace expansion libs, with complete support… [more](https://github.com/micromatch/braces) | [homepage](https://github.com/micromatch/braces "Bash-like brace expansion, implemented in JavaScript. Safer than other brace expansion libs, with complete support for the Bash 4.3 braces specification, without sacrificing speed.")
-* [expand-brackets](https://www.npmjs.com/package/expand-brackets): Expand POSIX bracket expressions (character classes) in glob patterns. | [homepage](https://github.com/jonschlinkert/expand-brackets "Expand POSIX bracket expressions (character classes) in glob patterns.")
-* [expand-range](https://www.npmjs.com/package/expand-range): Fast, bash-like range expansion. Expand a range of numbers or letters, uppercase or lowercase. Used… [more](https://github.com/jonschlinkert/expand-range) | [homepage](https://github.com/jonschlinkert/expand-range "Fast, bash-like range expansion. Expand a range of numbers or letters, uppercase or lowercase. Used by [micromatch].")
-* [fill-range](https://www.npmjs.com/package/fill-range): Fill in a range of numbers or letters, optionally passing an increment or `step` to… [more](https://github.com/jonschlinkert/fill-range) | [homepage](https://github.com/jonschlinkert/fill-range "Fill in a range of numbers or letters, optionally passing an increment or `step` to use, or create a regex-compatible range with `options.toRegex`")
-* [micromatch](https://www.npmjs.com/package/micromatch): Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch. | [homepage](https://github.com/micromatch/micromatch "Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch.")
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 49 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 2 | [isiahmeadows](https://github.com/isiahmeadows) |
-| 1 | [doowb](https://github.com/doowb) |
-| 1 | [devongovett](https://github.com/devongovett) |
-| 1 | [mjbvz](https://github.com/mjbvz) |
-| 1 | [shinnn](https://github.com/shinnn) |
-
-### Author
-
-**Jon Schlinkert**
-
-* [linkedin/in/jonschlinkert](https://linkedin.com/in/jonschlinkert)
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on December 21, 2017._
-
-
-
\ No newline at end of file
diff --git a/node_modules/extglob/changelog.md b/node_modules/extglob/changelog.md
deleted file mode 100644
index c9fc4fc..0000000
--- a/node_modules/extglob/changelog.md
+++ /dev/null
@@ -1,25 +0,0 @@
-## Changelog
-
-### v2.0.0
-
-**Added features**
-
-- Adds [.capture](readme.md#capture) method for capturing matches, thanks to [devongovett](https://github.com/devongovett)
-
-
-### v1.0.0
-
-**Breaking changes**
-
-- The main export now returns the compiled string, instead of the object returned from the compiler
-
-**Added features**
-
-- Adds a `.create` method to do what the main function did before v1.0.0
-
-**Other changes**
-
-- adds `expand-brackets` parsers/compilers to handle nested brackets and extglobs
-- uses `to-regex` to build regex for `makeRe` method
-- improves coverage
-- optimizations
\ No newline at end of file
diff --git a/node_modules/extglob/index.js b/node_modules/extglob/index.js
deleted file mode 100644
index 116e6d5..0000000
--- a/node_modules/extglob/index.js
+++ /dev/null
@@ -1,331 +0,0 @@
-'use strict';
-
-/**
- * Module dependencies
- */
-
-var extend = require('extend-shallow');
-var unique = require('array-unique');
-var toRegex = require('to-regex');
-
-/**
- * Local dependencies
- */
-
-var compilers = require('./lib/compilers');
-var parsers = require('./lib/parsers');
-var Extglob = require('./lib/extglob');
-var utils = require('./lib/utils');
-var MAX_LENGTH = 1024 * 64;
-
-/**
- * Convert the given `extglob` pattern into a regex-compatible string. Returns
- * an object with the compiled result and the parsed AST.
- *
- * ```js
- * var extglob = require('extglob');
- * console.log(extglob('*.!(*a)'));
- * //=> '(?!\\.)[^/]*?\\.(?!(?!\\.)[^/]*?a\\b).*?'
- * ```
- * @param {String} `pattern`
- * @param {Object} `options`
- * @return {String}
- * @api public
- */
-
-function extglob(pattern, options) {
- return extglob.create(pattern, options).output;
-}
-
-/**
- * Takes an array of strings and an extglob pattern and returns a new
- * array that contains only the strings that match the pattern.
- *
- * ```js
- * var extglob = require('extglob');
- * console.log(extglob.match(['a.a', 'a.b', 'a.c'], '*.!(*a)'));
- * //=> ['a.b', 'a.c']
- * ```
- * @param {Array} `list` Array of strings to match
- * @param {String} `pattern` Extglob pattern
- * @param {Object} `options`
- * @return {Array} Returns an array of matches
- * @api public
- */
-
-extglob.match = function(list, pattern, options) {
- if (typeof pattern !== 'string') {
- throw new TypeError('expected pattern to be a string');
- }
-
- list = utils.arrayify(list);
- var isMatch = extglob.matcher(pattern, options);
- var len = list.length;
- var idx = -1;
- var matches = [];
-
- while (++idx < len) {
- var ele = list[idx];
-
- if (isMatch(ele)) {
- matches.push(ele);
- }
- }
-
- // if no options were passed, uniquify results and return
- if (typeof options === 'undefined') {
- return unique(matches);
- }
-
- if (matches.length === 0) {
- if (options.failglob === true) {
- throw new Error('no matches found for "' + pattern + '"');
- }
- if (options.nonull === true || options.nullglob === true) {
- return [pattern.split('\\').join('')];
- }
- }
-
- return options.nodupes !== false ? unique(matches) : matches;
-};
-
-/**
- * Returns true if the specified `string` matches the given
- * extglob `pattern`.
- *
- * ```js
- * var extglob = require('extglob');
- *
- * console.log(extglob.isMatch('a.a', '*.!(*a)'));
- * //=> false
- * console.log(extglob.isMatch('a.b', '*.!(*a)'));
- * //=> true
- * ```
- * @param {String} `string` String to match
- * @param {String} `pattern` Extglob pattern
- * @param {String} `options`
- * @return {Boolean}
- * @api public
- */
-
-extglob.isMatch = function(str, pattern, options) {
- if (typeof pattern !== 'string') {
- throw new TypeError('expected pattern to be a string');
- }
-
- if (typeof str !== 'string') {
- throw new TypeError('expected a string');
- }
-
- if (pattern === str) {
- return true;
- }
-
- if (pattern === '' || pattern === ' ' || pattern === '.') {
- return pattern === str;
- }
-
- var isMatch = utils.memoize('isMatch', pattern, options, extglob.matcher);
- return isMatch(str);
-};
-
-/**
- * Returns true if the given `string` contains the given pattern. Similar to `.isMatch` but
- * the pattern can match any part of the string.
- *
- * ```js
- * var extglob = require('extglob');
- * console.log(extglob.contains('aa/bb/cc', '*b'));
- * //=> true
- * console.log(extglob.contains('aa/bb/cc', '*d'));
- * //=> false
- * ```
- * @param {String} `str` The string to match.
- * @param {String} `pattern` Glob pattern to use for matching.
- * @param {Object} `options`
- * @return {Boolean} Returns true if the patter matches any part of `str`.
- * @api public
- */
-
-extglob.contains = function(str, pattern, options) {
- if (typeof str !== 'string') {
- throw new TypeError('expected a string');
- }
-
- if (pattern === '' || pattern === ' ' || pattern === '.') {
- return pattern === str;
- }
-
- var opts = extend({}, options, {contains: true});
- opts.strictClose = false;
- opts.strictOpen = false;
- return extglob.isMatch(str, pattern, opts);
-};
-
-/**
- * Takes an extglob pattern and returns a matcher function. The returned
- * function takes the string to match as its only argument.
- *
- * ```js
- * var extglob = require('extglob');
- * var isMatch = extglob.matcher('*.!(*a)');
- *
- * console.log(isMatch('a.a'));
- * //=> false
- * console.log(isMatch('a.b'));
- * //=> true
- * ```
- * @param {String} `pattern` Extglob pattern
- * @param {String} `options`
- * @return {Boolean}
- * @api public
- */
-
-extglob.matcher = function(pattern, options) {
- if (typeof pattern !== 'string') {
- throw new TypeError('expected pattern to be a string');
- }
-
- function matcher() {
- var re = extglob.makeRe(pattern, options);
- return function(str) {
- return re.test(str);
- };
- }
-
- return utils.memoize('matcher', pattern, options, matcher);
-};
-
-/**
- * Convert the given `extglob` pattern into a regex-compatible string. Returns
- * an object with the compiled result and the parsed AST.
- *
- * ```js
- * var extglob = require('extglob');
- * console.log(extglob.create('*.!(*a)').output);
- * //=> '(?!\\.)[^/]*?\\.(?!(?!\\.)[^/]*?a\\b).*?'
- * ```
- * @param {String} `str`
- * @param {Object} `options`
- * @return {String}
- * @api public
- */
-
-extglob.create = function(pattern, options) {
- if (typeof pattern !== 'string') {
- throw new TypeError('expected pattern to be a string');
- }
-
- function create() {
- var ext = new Extglob(options);
- var ast = ext.parse(pattern, options);
- return ext.compile(ast, options);
- }
-
- return utils.memoize('create', pattern, options, create);
-};
-
-/**
- * Returns an array of matches captured by `pattern` in `string`, or `null`
- * if the pattern did not match.
- *
- * ```js
- * var extglob = require('extglob');
- * extglob.capture(pattern, string[, options]);
- *
- * console.log(extglob.capture('test/*.js', 'test/foo.js'));
- * //=> ['foo']
- * console.log(extglob.capture('test/*.js', 'foo/bar.css'));
- * //=> null
- * ```
- * @param {String} `pattern` Glob pattern to use for matching.
- * @param {String} `string` String to match
- * @param {Object} `options` See available [options](#options) for changing how matches are performed
- * @return {Boolean} Returns an array of captures if the string matches the glob pattern, otherwise `null`.
- * @api public
- */
-
-extglob.capture = function(pattern, str, options) {
- var re = extglob.makeRe(pattern, extend({capture: true}, options));
-
- function match() {
- return function(string) {
- var match = re.exec(string);
- if (!match) {
- return null;
- }
-
- return match.slice(1);
- };
- }
-
- var capture = utils.memoize('capture', pattern, options, match);
- return capture(str);
-};
-
-/**
- * Create a regular expression from the given `pattern` and `options`.
- *
- * ```js
- * var extglob = require('extglob');
- * var re = extglob.makeRe('*.!(*a)');
- * console.log(re);
- * //=> /^[^\/]*?\.(?![^\/]*?a)[^\/]*?$/
- * ```
- * @param {String} `pattern` The pattern to convert to regex.
- * @param {Object} `options`
- * @return {RegExp}
- * @api public
- */
-
-extglob.makeRe = function(pattern, options) {
- if (pattern instanceof RegExp) {
- return pattern;
- }
-
- if (typeof pattern !== 'string') {
- throw new TypeError('expected pattern to be a string');
- }
-
- if (pattern.length > MAX_LENGTH) {
- throw new Error('expected pattern to be less than ' + MAX_LENGTH + ' characters');
- }
-
- function makeRe() {
- var opts = extend({strictErrors: false}, options);
- if (opts.strictErrors === true) opts.strict = true;
- var res = extglob.create(pattern, opts);
- return toRegex(res.output, opts);
- }
-
- var regex = utils.memoize('makeRe', pattern, options, makeRe);
- if (regex.source.length > MAX_LENGTH) {
- throw new SyntaxError('potentially malicious regex detected');
- }
-
- return regex;
-};
-
-/**
- * Cache
- */
-
-extglob.cache = utils.cache;
-extglob.clearCache = function() {
- extglob.cache.__data__ = {};
-};
-
-/**
- * Expose `Extglob` constructor, parsers and compilers
- */
-
-extglob.Extglob = Extglob;
-extglob.compilers = compilers;
-extglob.parsers = parsers;
-
-/**
- * Expose `extglob`
- * @type {Function}
- */
-
-module.exports = extglob;
diff --git a/node_modules/extglob/lib/.DS_Store b/node_modules/extglob/lib/.DS_Store
deleted file mode 100644
index 5008ddf..0000000
Binary files a/node_modules/extglob/lib/.DS_Store and /dev/null differ
diff --git a/node_modules/extglob/lib/compilers.js b/node_modules/extglob/lib/compilers.js
deleted file mode 100644
index d7bed25..0000000
--- a/node_modules/extglob/lib/compilers.js
+++ /dev/null
@@ -1,169 +0,0 @@
-'use strict';
-
-var brackets = require('expand-brackets');
-
-/**
- * Extglob compilers
- */
-
-module.exports = function(extglob) {
- function star() {
- if (typeof extglob.options.star === 'function') {
- return extglob.options.star.apply(this, arguments);
- }
- if (typeof extglob.options.star === 'string') {
- return extglob.options.star;
- }
- return '.*?';
- }
-
- /**
- * Use `expand-brackets` compilers
- */
-
- extglob.use(brackets.compilers);
- extglob.compiler
-
- /**
- * Escaped: "\\*"
- */
-
- .set('escape', function(node) {
- return this.emit(node.val, node);
- })
-
- /**
- * Dot: "."
- */
-
- .set('dot', function(node) {
- return this.emit('\\' + node.val, node);
- })
-
- /**
- * Question mark: "?"
- */
-
- .set('qmark', function(node) {
- var val = '[^\\\\/.]';
- var prev = this.prev();
-
- if (node.parsed.slice(-1) === '(') {
- var ch = node.rest.charAt(0);
- if (ch !== '!' && ch !== '=' && ch !== ':') {
- return this.emit(val, node);
- }
- return this.emit(node.val, node);
- }
-
- if (prev.type === 'text' && prev.val) {
- return this.emit(val, node);
- }
-
- if (node.val.length > 1) {
- val += '{' + node.val.length + '}';
- }
- return this.emit(val, node);
- })
-
- /**
- * Plus: "+"
- */
-
- .set('plus', function(node) {
- var prev = node.parsed.slice(-1);
- if (prev === ']' || prev === ')') {
- return this.emit(node.val, node);
- }
- var ch = this.output.slice(-1);
- if (!this.output || (/[?*+]/.test(ch) && node.parent.type !== 'bracket')) {
- return this.emit('\\+', node);
- }
- if (/\w/.test(ch) && !node.inside) {
- return this.emit('+\\+?', node);
- }
- return this.emit('+', node);
- })
-
- /**
- * Star: "*"
- */
-
- .set('star', function(node) {
- var prev = this.prev();
- var prefix = prev.type !== 'text' && prev.type !== 'escape'
- ? '(?!\\.)'
- : '';
-
- return this.emit(prefix + star.call(this, node), node);
- })
-
- /**
- * Parens
- */
-
- .set('paren', function(node) {
- return this.mapVisit(node.nodes);
- })
- .set('paren.open', function(node) {
- var capture = this.options.capture ? '(' : '';
-
- switch (node.parent.prefix) {
- case '!':
- case '^':
- return this.emit(capture + '(?:(?!(?:', node);
- case '*':
- case '+':
- case '?':
- case '@':
- return this.emit(capture + '(?:', node);
- default: {
- var val = node.val;
- if (this.options.bash === true) {
- val = '\\' + val;
- } else if (!this.options.capture && val === '(' && node.parent.rest[0] !== '?') {
- val += '?:';
- }
-
- return this.emit(val, node);
- }
- }
- })
- .set('paren.close', function(node) {
- var capture = this.options.capture ? ')' : '';
-
- switch (node.prefix) {
- case '!':
- case '^':
- var prefix = /^(\)|$)/.test(node.rest) ? '$' : '';
- var str = star.call(this, node);
-
- // if the extglob has a slash explicitly defined, we know the user wants
- // to match slashes, so we need to ensure the "star" regex allows for it
- if (node.parent.hasSlash && !this.options.star && this.options.slash !== false) {
- str = '.*?';
- }
-
- return this.emit(prefix + ('))' + str + ')') + capture, node);
- case '*':
- case '+':
- case '?':
- return this.emit(')' + node.prefix + capture, node);
- case '@':
- return this.emit(')' + capture, node);
- default: {
- var val = (this.options.bash === true ? '\\' : '') + ')';
- return this.emit(val, node);
- }
- }
- })
-
- /**
- * Text
- */
-
- .set('text', function(node) {
- var val = node.val.replace(/[\[\]]/g, '\\$&');
- return this.emit(val, node);
- });
-};
diff --git a/node_modules/extglob/lib/extglob.js b/node_modules/extglob/lib/extglob.js
deleted file mode 100644
index 015f928..0000000
--- a/node_modules/extglob/lib/extglob.js
+++ /dev/null
@@ -1,78 +0,0 @@
-'use strict';
-
-/**
- * Module dependencies
- */
-
-var Snapdragon = require('snapdragon');
-var define = require('define-property');
-var extend = require('extend-shallow');
-
-/**
- * Local dependencies
- */
-
-var compilers = require('./compilers');
-var parsers = require('./parsers');
-
-/**
- * Customize Snapdragon parser and renderer
- */
-
-function Extglob(options) {
- this.options = extend({source: 'extglob'}, options);
- this.snapdragon = this.options.snapdragon || new Snapdragon(this.options);
- this.snapdragon.patterns = this.snapdragon.patterns || {};
- this.compiler = this.snapdragon.compiler;
- this.parser = this.snapdragon.parser;
-
- compilers(this.snapdragon);
- parsers(this.snapdragon);
-
- /**
- * Override Snapdragon `.parse` method
- */
-
- define(this.snapdragon, 'parse', function(str, options) {
- var parsed = Snapdragon.prototype.parse.apply(this, arguments);
- parsed.input = str;
-
- // escape unmatched brace/bracket/parens
- var last = this.parser.stack.pop();
- if (last && this.options.strict !== true) {
- var node = last.nodes[0];
- node.val = '\\' + node.val;
- var sibling = node.parent.nodes[1];
- if (sibling.type === 'star') {
- sibling.loose = true;
- }
- }
-
- // add non-enumerable parser reference
- define(parsed, 'parser', this.parser);
- return parsed;
- });
-
- /**
- * Decorate `.parse` method
- */
-
- define(this, 'parse', function(ast, options) {
- return this.snapdragon.parse.apply(this.snapdragon, arguments);
- });
-
- /**
- * Decorate `.compile` method
- */
-
- define(this, 'compile', function(ast, options) {
- return this.snapdragon.compile.apply(this.snapdragon, arguments);
- });
-
-}
-
-/**
- * Expose `Extglob`
- */
-
-module.exports = Extglob;
diff --git a/node_modules/extglob/lib/parsers.js b/node_modules/extglob/lib/parsers.js
deleted file mode 100644
index 2ba7352..0000000
--- a/node_modules/extglob/lib/parsers.js
+++ /dev/null
@@ -1,156 +0,0 @@
-'use strict';
-
-var brackets = require('expand-brackets');
-var define = require('define-property');
-var utils = require('./utils');
-
-/**
- * Characters to use in text regex (we want to "not" match
- * characters that are matched by other parsers)
- */
-
-var TEXT_REGEX = '([!@*?+]?\\(|\\)|[*?.+\\\\]|\\[:?(?=.*\\])|:?\\])+';
-var not = utils.createRegex(TEXT_REGEX);
-
-/**
- * Extglob parsers
- */
-
-function parsers(extglob) {
- extglob.state = extglob.state || {};
-
- /**
- * Use `expand-brackets` parsers
- */
-
- extglob.use(brackets.parsers);
- extglob.parser.sets.paren = extglob.parser.sets.paren || [];
- extglob.parser
-
- /**
- * Extglob open: "*("
- */
-
- .capture('paren.open', function() {
- var parsed = this.parsed;
- var pos = this.position();
- var m = this.match(/^([!@*?+])?\(/);
- if (!m) return;
-
- var prev = this.prev();
- var prefix = m[1];
- var val = m[0];
-
- var open = pos({
- type: 'paren.open',
- parsed: parsed,
- val: val
- });
-
- var node = pos({
- type: 'paren',
- prefix: prefix,
- nodes: [open]
- });
-
- // if nested negation extglobs, just cancel them out to simplify
- if (prefix === '!' && prev.type === 'paren' && prev.prefix === '!') {
- prev.prefix = '@';
- node.prefix = '@';
- }
-
- define(node, 'rest', this.input);
- define(node, 'parsed', parsed);
- define(node, 'parent', prev);
- define(open, 'parent', node);
-
- this.push('paren', node);
- prev.nodes.push(node);
- })
-
- /**
- * Extglob close: ")"
- */
-
- .capture('paren.close', function() {
- var parsed = this.parsed;
- var pos = this.position();
- var m = this.match(/^\)/);
- if (!m) return;
-
- var parent = this.pop('paren');
- var node = pos({
- type: 'paren.close',
- rest: this.input,
- parsed: parsed,
- val: m[0]
- });
-
- if (!this.isType(parent, 'paren')) {
- if (this.options.strict) {
- throw new Error('missing opening paren: "("');
- }
- node.escaped = true;
- return node;
- }
-
- node.prefix = parent.prefix;
- parent.nodes.push(node);
- define(node, 'parent', parent);
- })
-
- /**
- * Escape: "\\."
- */
-
- .capture('escape', function() {
- var pos = this.position();
- var m = this.match(/^\\(.)/);
- if (!m) return;
-
- return pos({
- type: 'escape',
- val: m[0],
- ch: m[1]
- });
- })
-
- /**
- * Question marks: "?"
- */
-
- .capture('qmark', function() {
- var parsed = this.parsed;
- var pos = this.position();
- var m = this.match(/^\?+(?!\()/);
- if (!m) return;
- extglob.state.metachar = true;
- return pos({
- type: 'qmark',
- rest: this.input,
- parsed: parsed,
- val: m[0]
- });
- })
-
- /**
- * Character parsers
- */
-
- .capture('star', /^\*(?!\()/)
- .capture('plus', /^\+(?!\()/)
- .capture('dot', /^\./)
- .capture('text', not);
-};
-
-/**
- * Expose text regex string
- */
-
-module.exports.TEXT_REGEX = TEXT_REGEX;
-
-/**
- * Extglob parsers
- */
-
-module.exports = parsers;
diff --git a/node_modules/extglob/lib/utils.js b/node_modules/extglob/lib/utils.js
deleted file mode 100644
index 37a59fb..0000000
--- a/node_modules/extglob/lib/utils.js
+++ /dev/null
@@ -1,69 +0,0 @@
-'use strict';
-
-var regex = require('regex-not');
-var Cache = require('fragment-cache');
-
-/**
- * Utils
- */
-
-var utils = module.exports;
-var cache = utils.cache = new Cache();
-
-/**
- * Cast `val` to an array
- * @return {Array}
- */
-
-utils.arrayify = function(val) {
- if (!Array.isArray(val)) {
- return [val];
- }
- return val;
-};
-
-/**
- * Memoize a generated regex or function
- */
-
-utils.memoize = function(type, pattern, options, fn) {
- var key = utils.createKey(type + pattern, options);
-
- if (cache.has(type, key)) {
- return cache.get(type, key);
- }
-
- var val = fn(pattern, options);
- if (options && options.cache === false) {
- return val;
- }
-
- cache.set(type, key, val);
- return val;
-};
-
-/**
- * Create the key to use for memoization. The key is generated
- * by iterating over the options and concatenating key-value pairs
- * to the pattern string.
- */
-
-utils.createKey = function(pattern, options) {
- var key = pattern;
- if (typeof options === 'undefined') {
- return key;
- }
- for (var prop in options) {
- key += ';' + prop + '=' + String(options[prop]);
- }
- return key;
-};
-
-/**
- * Create the regex to use for matching text
- */
-
-utils.createRegex = function(str) {
- var opts = {contains: true, strictClose: false};
- return regex(str, opts);
-};
diff --git a/node_modules/extglob/node_modules/define-property/LICENSE b/node_modules/extglob/node_modules/define-property/LICENSE
deleted file mode 100644
index ec85897..0000000
--- a/node_modules/extglob/node_modules/define-property/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015, 2017, 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/extglob/node_modules/define-property/README.md b/node_modules/extglob/node_modules/define-property/README.md
deleted file mode 100644
index 2f1af05..0000000
--- a/node_modules/extglob/node_modules/define-property/README.md
+++ /dev/null
@@ -1,95 +0,0 @@
-# define-property [![NPM version](https://img.shields.io/npm/v/define-property.svg?style=flat)](https://www.npmjs.com/package/define-property) [![NPM monthly downloads](https://img.shields.io/npm/dm/define-property.svg?style=flat)](https://npmjs.org/package/define-property) [![NPM total downloads](https://img.shields.io/npm/dt/define-property.svg?style=flat)](https://npmjs.org/package/define-property) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/define-property.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/define-property)
-
-> Define a non-enumerable property on an object.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save define-property
-```
-
-Install with [yarn](https://yarnpkg.com):
-
-```sh
-$ yarn add define-property
-```
-
-## Usage
-
-**Params**
-
-* `obj`: The object on which to define the property.
-* `prop`: The name of the property to be defined or modified.
-* `descriptor`: The descriptor for the property being defined or modified.
-
-```js
-var define = require('define-property');
-var obj = {};
-define(obj, 'foo', function(val) {
- return val.toUpperCase();
-});
-
-console.log(obj);
-//=> {}
-
-console.log(obj.foo('bar'));
-//=> 'BAR'
-```
-
-**get/set**
-
-```js
-define(obj, 'foo', {
- get: function() {},
- set: function() {}
-});
-```
-
-## About
-
-### Related projects
-
-* [assign-deep](https://www.npmjs.com/package/assign-deep): Deeply assign the enumerable properties and/or es6 Symbol properies of source objects to the target… [more](https://github.com/jonschlinkert/assign-deep) | [homepage](https://github.com/jonschlinkert/assign-deep "Deeply assign the enumerable properties and/or es6 Symbol properies of source objects to the target (first) object.")
-* [extend-shallow](https://www.npmjs.com/package/extend-shallow): Extend an object with the properties of additional objects. node.js/javascript util. | [homepage](https://github.com/jonschlinkert/extend-shallow "Extend an object with the properties of additional objects. node.js/javascript util.")
-* [merge-deep](https://www.npmjs.com/package/merge-deep): Recursively merge values in a javascript object. | [homepage](https://github.com/jonschlinkert/merge-deep "Recursively merge values in a javascript object.")
-* [mixin-deep](https://www.npmjs.com/package/mixin-deep): Deeply mix the properties of objects into the first object. Like merge-deep, but doesn't clone. | [homepage](https://github.com/jonschlinkert/mixin-deep "Deeply mix the properties of objects into the first object. Like merge-deep, but doesn't clone.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.5.0, on April 20, 2017._
\ No newline at end of file
diff --git a/node_modules/extglob/node_modules/define-property/index.js b/node_modules/extglob/node_modules/define-property/index.js
deleted file mode 100644
index 27c19eb..0000000
--- a/node_modules/extglob/node_modules/define-property/index.js
+++ /dev/null
@@ -1,31 +0,0 @@
-/*!
- * define-property
- *
- * Copyright (c) 2015, 2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-var isDescriptor = require('is-descriptor');
-
-module.exports = function defineProperty(obj, prop, val) {
- if (typeof obj !== 'object' && typeof obj !== 'function') {
- throw new TypeError('expected an object or function.');
- }
-
- if (typeof prop !== 'string') {
- throw new TypeError('expected `prop` to be a string.');
- }
-
- if (isDescriptor(val) && ('set' in val || 'get' in val)) {
- return Object.defineProperty(obj, prop, val);
- }
-
- return Object.defineProperty(obj, prop, {
- configurable: true,
- enumerable: false,
- writable: true,
- value: val
- });
-};
diff --git a/node_modules/extglob/node_modules/define-property/package.json b/node_modules/extglob/node_modules/define-property/package.json
deleted file mode 100644
index e0ab1ca..0000000
--- a/node_modules/extglob/node_modules/define-property/package.json
+++ /dev/null
@@ -1,62 +0,0 @@
-{
- "name": "define-property",
- "description": "Define a non-enumerable property on an object.",
- "version": "1.0.0",
- "homepage": "https://github.com/jonschlinkert/define-property",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/define-property",
- "bugs": {
- "url": "https://github.com/jonschlinkert/define-property/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "is-descriptor": "^1.0.0"
- },
- "devDependencies": {
- "gulp-format-md": "^0.1.12",
- "mocha": "^3.2.0"
- },
- "keywords": [
- "define",
- "define-property",
- "enumerable",
- "key",
- "non",
- "non-enumerable",
- "object",
- "prop",
- "property",
- "value"
- ],
- "verb": {
- "related": {
- "list": [
- "extend-shallow",
- "merge-deep",
- "assign-deep",
- "mixin-deep"
- ]
- },
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/extglob/package.json b/node_modules/extglob/package.json
deleted file mode 100644
index afe5157..0000000
--- a/node_modules/extglob/package.json
+++ /dev/null
@@ -1,108 +0,0 @@
-{
- "name": "extglob",
- "description": "Extended glob support for JavaScript. Adds (almost) the expressive power of regular expressions to glob patterns.",
- "version": "2.0.4",
- "homepage": "https://github.com/micromatch/extglob",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Brian Woodward (https://twitter.com/doowb)",
- "Devon Govett (http://badassjs.com)",
- "Isiah Meadows (https://www.isiahmeadows.com)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Matt Bierner (http://mattbierner.com)",
- "Shinnosuke Watanabe (https://shinnn.github.io)"
- ],
- "repository": "micromatch/extglob",
- "bugs": {
- "url": "https://github.com/micromatch/extglob/issues"
- },
- "license": "MIT",
- "files": [
- "index.js",
- "lib"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "array-unique": "^0.3.2",
- "define-property": "^1.0.0",
- "expand-brackets": "^2.1.4",
- "extend-shallow": "^2.0.1",
- "fragment-cache": "^0.2.1",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "devDependencies": {
- "bash-match": "^1.0.2",
- "for-own": "^1.0.0",
- "gulp": "^3.9.1",
- "gulp-eslint": "^4.0.0",
- "gulp-format-md": "^1.0.0",
- "gulp-istanbul": "^1.1.2",
- "gulp-mocha": "^3.0.1",
- "gulp-unused": "^0.2.1",
- "helper-changelog": "^0.3.0",
- "is-windows": "^1.0.1",
- "micromatch": "^3.0.4",
- "minimatch": "^3.0.4",
- "minimist": "^1.2.0",
- "mocha": "^3.5.0",
- "multimatch": "^2.1.0"
- },
- "keywords": [
- "bash",
- "extended",
- "extglob",
- "glob",
- "globbing",
- "ksh",
- "match",
- "pattern",
- "patterns",
- "regex",
- "test",
- "wildcard"
- ],
- "lintDeps": {
- "devDependencies": {
- "files": {
- "options": {
- "ignore": [
- "benchmark/**/*.js"
- ]
- }
- }
- }
- },
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "related": {
- "list": [
- "braces",
- "expand-brackets",
- "expand-range",
- "fill-range",
- "micromatch"
- ]
- },
- "helpers": [
- "helper-changelog"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/fancy-log/LICENSE b/node_modules/fancy-log/LICENSE
deleted file mode 100644
index 3a58630..0000000
--- a/node_modules/fancy-log/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014, 2015, 2018 Blaine Bublitz and Eric Schoffstall
-
-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/fancy-log/README.md b/node_modules/fancy-log/README.md
deleted file mode 100644
index 33ef5c1..0000000
--- a/node_modules/fancy-log/README.md
+++ /dev/null
@@ -1,71 +0,0 @@
-
-
-
-
-
-
-# fancy-log
-
-[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Travis Build Status][travis-image]][travis-url] [![AppVeyor Build Status][appveyor-image]][appveyor-url] [![Coveralls Status][coveralls-image]][coveralls-url] [![Gitter chat][gitter-image]][gitter-url]
-
-Log things, prefixed with a timestamp.
-
-## Usage
-
-```js
-var log = require('fancy-log');
-
-log('a message');
-// [16:27:02] a message
-
-log.error('oh no!');
-// [16:27:02] oh no!
-```
-
-## API
-
-### `log(msg...)`
-
-Logs the message as if you called `console.log` but prefixes the output with the
-current time in HH:MM:ss format.
-
-### `log.error(msg...)`
-
-Logs the message as if you called `console.error` but prefixes the output with the
-current time in HH:MM:ss format.
-
-### `log.warn(msg...)`
-
-Logs the message as if you called `console.warn` but prefixes the output with the
-current time in HH:MM:ss format.
-
-
-### `log.info(msg...)`
-
-Logs the message as if you called `console.info` but prefixes the output with the
-current time in HH:MM:ss format.
-
-### `log.dir(msg...)`
-
-Logs the message as if you called `console.dir` but prefixes the output with the
-current time in HH:MM:ss format.
-
-## License
-
-MIT
-
-[downloads-image]: http://img.shields.io/npm/dm/fancy-log.svg
-[npm-url]: https://www.npmjs.com/package/fancy-log
-[npm-image]: http://img.shields.io/npm/v/fancy-log.svg
-
-[travis-url]: https://travis-ci.org/gulpjs/fancy-log
-[travis-image]: http://img.shields.io/travis/gulpjs/fancy-log.svg?label=travis-ci
-
-[appveyor-url]: https://ci.appveyor.com/project/gulpjs/fancy-log
-[appveyor-image]: https://img.shields.io/appveyor/ci/gulpjs/fancy-log.svg?label=appveyor
-
-[coveralls-url]: https://coveralls.io/r/gulpjs/fancy-log
-[coveralls-image]: http://img.shields.io/coveralls/gulpjs/fancy-log/master.svg
-
-[gitter-url]: https://gitter.im/gulpjs/gulp
-[gitter-image]: https://badges.gitter.im/gulpjs/gulp.svg
diff --git a/node_modules/fancy-log/index.js b/node_modules/fancy-log/index.js
deleted file mode 100644
index 9dc9888..0000000
--- a/node_modules/fancy-log/index.js
+++ /dev/null
@@ -1,92 +0,0 @@
-'use strict';
-
-var Console = require('console').Console;
-var gray = require('ansi-gray');
-var timestamp = require('time-stamp');
-var supportsColor = require('color-support');
-var nodeVersion = require('parse-node-version')(process.version);
-
-var colorDetectionOptions = {
- // If on Windows, ignore the isTTY check
- // This is due to AppVeyor (and thus probably common Windows platforms?) failing the check
- // TODO: If this is too broad, we can reduce it to an APPVEYOR env check
- ignoreTTY: (process.platform === 'win32'),
-};
-
-// Needed to add this because node 10 decided to start coloring log output randomly
-var console;
-if (nodeVersion.major >= 10) {
- // Node 10 also changed the way this is constructed
- console = new Console({
- stdout: process.stdout,
- stderr: process.stderr,
- colorMode: false,
- });
-} else {
- console = new Console(process.stdout, process.stderr);
-}
-
-function hasFlag(flag) {
- return (process.argv.indexOf('--' + flag) !== -1);
-}
-
-function addColor(str) {
- if (hasFlag('no-color')) {
- return str;
- }
-
- if (hasFlag('color')) {
- return gray(str);
- }
-
- if (supportsColor(colorDetectionOptions)) {
- return gray(str);
- }
-
- return str;
-}
-
-function getTimestamp() {
- return '[' + addColor(timestamp('HH:mm:ss')) + ']';
-}
-
-function log() {
- var time = getTimestamp();
- process.stdout.write(time + ' ');
- console.log.apply(console, arguments);
- return this;
-}
-
-function info() {
- var time = getTimestamp();
- process.stdout.write(time + ' ');
- console.info.apply(console, arguments);
- return this;
-}
-
-function dir() {
- var time = getTimestamp();
- process.stdout.write(time + ' ');
- console.dir.apply(console, arguments);
- return this;
-}
-
-function warn() {
- var time = getTimestamp();
- process.stderr.write(time + ' ');
- console.warn.apply(console, arguments);
- return this;
-}
-
-function error() {
- var time = getTimestamp();
- process.stderr.write(time + ' ');
- console.error.apply(console, arguments);
- return this;
-}
-
-module.exports = log;
-module.exports.info = info;
-module.exports.dir = dir;
-module.exports.warn = warn;
-module.exports.error = error;
diff --git a/node_modules/fancy-log/package.json b/node_modules/fancy-log/package.json
deleted file mode 100644
index e9a70bb..0000000
--- a/node_modules/fancy-log/package.json
+++ /dev/null
@@ -1,49 +0,0 @@
-{
- "name": "fancy-log",
- "version": "1.3.3",
- "description": "Log things, prefixed with a timestamp.",
- "author": "Gulp Team (http://gulpjs.com/)",
- "contributors": [
- "Blaine Bublitz ",
- "Aman Mittal (http://amandeepmittal.github.io/)"
- ],
- "repository": "gulpjs/fancy-log",
- "license": "MIT",
- "engines": {
- "node": ">= 0.10"
- },
- "main": "index.js",
- "files": [
- "LICENSE",
- "index.js"
- ],
- "scripts": {
- "lint": "eslint .",
- "pretest": "npm run lint",
- "test": "mocha --async-only",
- "cover": "istanbul cover _mocha --report lcovonly",
- "coveralls": "npm run cover && istanbul-coveralls"
- },
- "dependencies": {
- "ansi-gray": "^0.1.1",
- "color-support": "^1.1.3",
- "parse-node-version": "^1.0.0",
- "time-stamp": "^1.0.0"
- },
- "devDependencies": {
- "eslint": "^2.13.0",
- "eslint-config-gulp": "^3.0.1",
- "expect": "^1.20.2",
- "istanbul": "^0.4.3",
- "istanbul-coveralls": "^1.0.3",
- "mocha": "^3.5.3"
- },
- "keywords": [
- "console.log",
- "log",
- "logger",
- "logging",
- "pretty",
- "timestamp"
- ]
-}
diff --git a/node_modules/fast-levenshtein/LICENSE.md b/node_modules/fast-levenshtein/LICENSE.md
deleted file mode 100644
index 6212406..0000000
--- a/node_modules/fast-levenshtein/LICENSE.md
+++ /dev/null
@@ -1,25 +0,0 @@
-(MIT License)
-
-Copyright (c) 2013 [Ramesh Nair](http://www.hiddentao.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/fast-levenshtein/README.md b/node_modules/fast-levenshtein/README.md
deleted file mode 100644
index 2a917a7..0000000
--- a/node_modules/fast-levenshtein/README.md
+++ /dev/null
@@ -1,120 +0,0 @@
-# fast-levenshtein - Levenshtein algorithm in Javascript
-
-[![Build Status](https://secure.travis-ci.org/hiddentao/fast-levenshtein.png)](http://travis-ci.org/hiddentao/fast-levenshtein)
-
-An efficient Javascript implementation of the [Levenshtein algorithm](http://en.wikipedia.org/wiki/Levenshtein_distance) with asynchronous callback support.
-
-## Features
-
-* Works in node.js and in the browser.
-* Better performance than other implementations by not needing to store the whole matrix ([more info](http://www.codeproject.com/Articles/13525/Fast-memory-efficient-Levenshtein-algorithm)).
-* Provides synchronous and asynchronous versions of the algorithm.
-* Asynchronous version is almost as fast as the synchronous version for small strings and can also provide progress updates.
-* Comprehensive test suite and performance benchmark.
-* Small: <1 KB minified and gzipped
-
-## Installation
-
-### node.js
-
-Install using [npm](http://npmjs.org/):
-
-```bash
-$ npm install fast-levenshtein
-```
-
-### Browser
-
-Using bower:
-
-```bash
-$ bower install fast-levenshtein
-```
-
-If you are not using any module loader system then the API will then be accessible via the `window.Levenshtein` object.
-
-## Examples
-
-**Synchronous**
-
-```javascript
-var levenshtein = require('fast-levenshtein');
-
-var distance = levenshtein.get('back', 'book'); // 2
-var distance = levenshtein.get('我愛你', '我叫你'); // 1
-```
-
-**Asynchronous**
-
-```javascript
-var levenshtein = require('fast-levenshtein');
-
-levenshtein.getAsync('back', 'book', function (err, distance) {
- // err is null unless an error was thrown
- // distance equals 2
-});
-```
-
-**Asynchronous with progress updates**
-
-```javascript
-var levenshtein = require('fast-levenshtein');
-
-var hugeText1 = fs.readFileSync(...);
-var hugeText2 = fs.readFileSync(...);
-
-levenshtein.getAsync(hugeText1, hugeText2, function (err, distance) {
- // process the results as normal
-}, {
- progress: function(percentComplete) {
- console.log(percentComplete + ' % completed so far...');
- }
-);
-```
-
-## Building and Testing
-
-To build the code and run the tests:
-
-```bash
-$ npm install -g grunt-cli
-$ npm install
-$ npm run build
-```
-
-## Performance
-
-_Thanks to [Titus Wormer](https://github.com/wooorm) for [encouraging me](https://github.com/hiddentao/fast-levenshtein/issues/1) to do this._
-
-Benchmarked against other node.js levenshtein distance modules (on Macbook Air 2012, Core i7, 8GB RAM):
-
-```bash
-Running suite Implementation comparison [benchmark/speed.js]...
->> levenshtein-edit-distance x 234 ops/sec ±3.02% (73 runs sampled)
->> levenshtein-component x 422 ops/sec ±4.38% (83 runs sampled)
->> levenshtein-deltas x 283 ops/sec ±3.83% (78 runs sampled)
->> natural x 255 ops/sec ±0.76% (88 runs sampled)
->> levenshtein x 180 ops/sec ±3.55% (86 runs sampled)
->> fast-levenshtein x 1,792 ops/sec ±2.72% (95 runs sampled)
-Benchmark done.
-Fastest test is fast-levenshtein at 4.2x faster than levenshtein-component
-```
-
-You can run this benchmark yourself by doing:
-
-```bash
-$ npm install -g grunt-cli
-$ npm install
-$ npm run build
-$ npm run benchmark
-```
-
-## Contributing
-
-If you wish to submit a pull request please update and/or create new tests for any changes you make and ensure the grunt build passes.
-
-See [CONTRIBUTING.md](https://github.com/hiddentao/fast-levenshtein/blob/master/CONTRIBUTING.md) for details.
-
-## License
-
-MIT - see [LICENSE.md](https://github.com/hiddentao/fast-levenshtein/blob/master/LICENSE.md)
diff --git a/node_modules/fast-levenshtein/levenshtein.js b/node_modules/fast-levenshtein/levenshtein.js
deleted file mode 100644
index 3051ec5..0000000
--- a/node_modules/fast-levenshtein/levenshtein.js
+++ /dev/null
@@ -1,211 +0,0 @@
-(function() {
- 'use strict';
-
- /**
- * Extend an Object with another Object's properties.
- *
- * The source objects are specified as additional arguments.
- *
- * @param dst Object the object to extend.
- *
- * @return Object the final object.
- */
- var _extend = function(dst) {
- var sources = Array.prototype.slice.call(arguments, 1);
- for (var i=0; i tmp) {
- nextCol = tmp;
- }
- // deletion
- tmp = prevRow[j + 1] + 1;
- if (nextCol > tmp) {
- nextCol = tmp;
- }
-
- // copy current col value into previous (in preparation for next iteration)
- prevRow[j] = curCol;
- }
-
- // copy last col value into previous (in preparation for next iteration)
- prevRow[j] = nextCol;
- }
-
- return nextCol;
- },
-
- /**
- * Asynchronously calculate levenshtein distance of the two strings.
- *
- * @param str1 String the first string.
- * @param str2 String the second string.
- * @param cb Function callback function with signature: function(Error err, int distance)
- * @param [options] Object additional options.
- * @param [options.progress] Function progress callback with signature: function(percentComplete)
- */
- getAsync: function(str1, str2, cb, options) {
- options = _extend({}, {
- progress: null
- }, options);
-
- // base cases
- if (str1 === str2) return cb(null, 0);
- if (str1.length === 0) return cb(null, str2.length);
- if (str2.length === 0) return cb(null, str1.length);
-
- // two rows
- var prevRow = new Array(str2.length + 1),
- curCol, nextCol,
- i, j, tmp,
- startTime, currentTime;
-
- // initialise previous row
- for (i=0; i tmp) {
- nextCol = tmp;
- }
- // deletion
- tmp = prevRow[j + 1] + 1;
- if (nextCol > tmp) {
- nextCol = tmp;
- }
-
- // copy current into previous (in preparation for next iteration)
- prevRow[j] = curCol;
-
- // get current time
- currentTime = new Date().valueOf();
- }
-
- // send a progress update?
- if (null !== options.progress) {
- try {
- options.progress.call(null, (i * 100.0/ str1.length));
- } catch (err) {
- return cb('Progress callback: ' + err.toString());
- }
- }
-
- // next iteration
- _defer(__calculate);
- };
-
- __calculate();
- }
-
- };
-
- // amd
- if (typeof define !== "undefined" && define !== null && define.amd) {
- define(function() {
- return Levenshtein;
- });
- }
- // commonjs
- else if (typeof module !== "undefined" && module !== null && typeof exports !== "undefined" && module.exports === exports) {
- module.exports = Levenshtein;
- }
- // web worker
- else if (typeof self !== "undefined" && typeof self.postMessage === 'function' && typeof self.importScripts === 'function') {
- self.Levenshtein = Levenshtein;
- }
- // browser main thread
- else if (typeof window !== "undefined" && window !== null) {
- window.Levenshtein = Levenshtein;
- }
-}());
-
diff --git a/node_modules/fast-levenshtein/package.json b/node_modules/fast-levenshtein/package.json
deleted file mode 100644
index 20fef7b..0000000
--- a/node_modules/fast-levenshtein/package.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "name": "fast-levenshtein",
- "version": "1.1.4",
- "description": "Efficient implementation of Levenshtein algorithm with asynchronous callback support",
- "main": "levenshtein.js",
- "files": [
- "levenshtein.js"
- ],
- "scripts": {
- "build": "grunt build",
- "benchmark": "grunt benchmark",
- "test": "mocha"
- },
- "devDependencies": {
- "chai": "~1.5.0",
- "grunt": "~0.4.1",
- "grunt-benchmark": "~0.2.0",
- "grunt-contrib-jshint": "~0.4.3",
- "grunt-contrib-uglify": "~0.2.0",
- "grunt-mocha-test": "~0.2.2",
- "grunt-npm-install": "~0.1.0",
- "load-grunt-tasks": "~0.6.0",
- "lodash": "^4.0.1",
- "mocha": "~1.9.0"
- },
- "repository": {
- "type": "git",
- "url": "https://github.com/hiddentao/fast-levenshtein.git"
- },
- "keywords": [
- "levenshtein",
- "distance",
- "string"
- ],
- "author": "Ramesh Nair (http://www.hiddentao.com/)",
- "license": "MIT"
-}
diff --git a/node_modules/fill-range/LICENSE b/node_modules/fill-range/LICENSE
deleted file mode 100644
index d734237..0000000
--- a/node_modules/fill-range/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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/fill-range/README.md b/node_modules/fill-range/README.md
deleted file mode 100644
index bc1f8a0..0000000
--- a/node_modules/fill-range/README.md
+++ /dev/null
@@ -1,250 +0,0 @@
-# fill-range [![NPM version](https://img.shields.io/npm/v/fill-range.svg?style=flat)](https://www.npmjs.com/package/fill-range) [![NPM monthly downloads](https://img.shields.io/npm/dm/fill-range.svg?style=flat)](https://npmjs.org/package/fill-range) [![NPM total downloads](https://img.shields.io/npm/dt/fill-range.svg?style=flat)](https://npmjs.org/package/fill-range) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/fill-range.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/fill-range)
-
-> Fill in a range of numbers or letters, optionally passing an increment or `step` to use, or create a regex-compatible range with `options.toRegex`
-
-## Table of Contents
-
-- [Install](#install)
-- [Usage](#usage)
-- [Examples](#examples)
-- [Options](#options)
- * [options.step](#optionsstep)
- * [options.strictRanges](#optionsstrictranges)
- * [options.stringify](#optionsstringify)
- * [options.toRegex](#optionstoregex)
- * [options.transform](#optionstransform)
-- [About](#about)
-
-_(TOC generated by [verb](https://github.com/verbose/verb) using [markdown-toc](https://github.com/jonschlinkert/markdown-toc))_
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save fill-range
-```
-
-Install with [yarn](https://yarnpkg.com):
-
-```sh
-$ yarn add fill-range
-```
-
-## Usage
-
-Expands numbers and letters, optionally using a `step` as the last argument. _(Numbers may be defined as JavaScript numbers or strings)_.
-
-```js
-var fill = require('fill-range');
-fill(from, to[, step, options]);
-
-// examples
-console.log(fill('1', '10')); //=> '[ '1', '2', '3', '4', '5', '6', '7', '8', '9', '10' ]'
-console.log(fill('1', '10', {toRegex: true})); //=> [1-9]|10
-```
-
-**Params**
-
-* `from`: **{String|Number}** the number or letter to start with
-* `to`: **{String|Number}** the number or letter to end with
-* `step`: **{String|Number|Object|Function}** Optionally pass a [step](#optionsstep) to use.
-* `options`: **{Object|Function}**: See all available [options](#options)
-
-## Examples
-
-By default, an array of values is returned.
-
-**Alphabetical ranges**
-
-```js
-console.log(fill('a', 'e')); //=> ['a', 'b', 'c', 'd', 'e']
-console.log(fill('A', 'E')); //=> [ 'A', 'B', 'C', 'D', 'E' ]
-```
-
-**Numerical ranges**
-
-Numbers can be defined as actual numbers or strings.
-
-```js
-console.log(fill(1, 5)); //=> [ 1, 2, 3, 4, 5 ]
-console.log(fill('1', '5')); //=> [ 1, 2, 3, 4, 5 ]
-```
-
-**Negative ranges**
-
-Numbers can be defined as actual numbers or strings.
-
-```js
-console.log(fill('-5', '-1')); //=> [ '-5', '-4', '-3', '-2', '-1' ]
-console.log(fill('-5', '5')); //=> [ '-5', '-4', '-3', '-2', '-1', '0', '1', '2', '3', '4', '5' ]
-```
-
-**Steps (increments)**
-
-```js
-// numerical ranges with increments
-console.log(fill('0', '25', 4)); //=> [ '0', '4', '8', '12', '16', '20', '24' ]
-console.log(fill('0', '25', 5)); //=> [ '0', '5', '10', '15', '20', '25' ]
-console.log(fill('0', '25', 6)); //=> [ '0', '6', '12', '18', '24' ]
-
-// alphabetical ranges with increments
-console.log(fill('a', 'z', 4)); //=> [ 'a', 'e', 'i', 'm', 'q', 'u', 'y' ]
-console.log(fill('a', 'z', 5)); //=> [ 'a', 'f', 'k', 'p', 'u', 'z' ]
-console.log(fill('a', 'z', 6)); //=> [ 'a', 'g', 'm', 's', 'y' ]
-```
-
-## Options
-
-### options.step
-
-**Type**: `number` (formatted as a string or number)
-
-**Default**: `undefined`
-
-**Description**: The increment to use for the range. Can be used with letters or numbers.
-
-**Example(s)**
-
-```js
-// numbers
-console.log(fill('1', '10', 2)); //=> [ '1', '3', '5', '7', '9' ]
-console.log(fill('1', '10', 3)); //=> [ '1', '4', '7', '10' ]
-console.log(fill('1', '10', 4)); //=> [ '1', '5', '9' ]
-
-// letters
-console.log(fill('a', 'z', 5)); //=> [ 'a', 'f', 'k', 'p', 'u', 'z' ]
-console.log(fill('a', 'z', 7)); //=> [ 'a', 'h', 'o', 'v' ]
-console.log(fill('a', 'z', 9)); //=> [ 'a', 'j', 's' ]
-```
-
-### options.strictRanges
-
-**Type**: `boolean`
-
-**Default**: `false`
-
-**Description**: By default, `null` is returned when an invalid range is passed. Enable this option to throw a `RangeError` on invalid ranges.
-
-**Example(s)**
-
-The following are all invalid:
-
-```js
-fill('1.1', '2'); // decimals not supported in ranges
-fill('a', '2'); // incompatible range values
-fill(1, 10, 'foo'); // invalid "step" argument
-```
-
-### options.stringify
-
-**Type**: `boolean`
-
-**Default**: `undefined`
-
-**Description**: Cast all returned values to strings. By default, integers are returned as numbers.
-
-**Example(s)**
-
-```js
-console.log(fill(1, 5)); //=> [ 1, 2, 3, 4, 5 ]
-console.log(fill(1, 5, {stringify: true})); //=> [ '1', '2', '3', '4', '5' ]
-```
-
-### options.toRegex
-
-**Type**: `boolean`
-
-**Default**: `undefined`
-
-**Description**: Create a regex-compatible source string, instead of expanding values to an array.
-
-**Example(s)**
-
-```js
-// alphabetical range
-console.log(fill('a', 'e', {toRegex: true})); //=> '[a-e]'
-// alphabetical with step
-console.log(fill('a', 'z', 3, {toRegex: true})); //=> 'a|d|g|j|m|p|s|v|y'
-// numerical range
-console.log(fill('1', '100', {toRegex: true})); //=> '[1-9]|[1-9][0-9]|100'
-// numerical range with zero padding
-console.log(fill('000001', '100000', {toRegex: true}));
-//=> '0{5}[1-9]|0{4}[1-9][0-9]|0{3}[1-9][0-9]{2}|0{2}[1-9][0-9]{3}|0[1-9][0-9]{4}|100000'
-```
-
-### options.transform
-
-**Type**: `function`
-
-**Default**: `undefined`
-
-**Description**: Customize each value in the returned array (or [string](#optionstoRegex)). _(you can also pass this function as the last argument to `fill()`)_.
-
-**Example(s)**
-
-```js
-// increase padding by two
-var arr = fill('01', '05', function(val, a, b, step, idx, arr, options) {
- return repeat('0', (options.maxLength + 2) - val.length) + val;
-});
-
-console.log(arr);
-//=> ['0001', '0002', '0003', '0004', '0005']
-```
-
-## About
-
-### Related projects
-
-* [braces](https://www.npmjs.com/package/braces): Fast, comprehensive, bash-like brace expansion implemented in JavaScript. Complete support for the Bash 4.3 braces… [more](https://github.com/jonschlinkert/braces) | [homepage](https://github.com/jonschlinkert/braces "Fast, comprehensive, bash-like brace expansion implemented in JavaScript. Complete support for the Bash 4.3 braces specification, without sacrificing speed.")
-* [expand-range](https://www.npmjs.com/package/expand-range): Fast, bash-like range expansion. Expand a range of numbers or letters, uppercase or lowercase. See… [more](https://github.com/jonschlinkert/expand-range) | [homepage](https://github.com/jonschlinkert/expand-range "Fast, bash-like range expansion. Expand a range of numbers or letters, uppercase or lowercase. See the benchmarks. Used by micromatch.")
-* [micromatch](https://www.npmjs.com/package/micromatch): Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch. | [homepage](https://github.com/jonschlinkert/micromatch "Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch.")
-* [to-regex-range](https://www.npmjs.com/package/to-regex-range): Pass two numbers, get a regex-compatible source string for matching ranges. Validated against more than… [more](https://github.com/jonschlinkert/to-regex-range) | [homepage](https://github.com/jonschlinkert/to-regex-range "Pass two numbers, get a regex-compatible source string for matching ranges. Validated against more than 2.87 million test assertions.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 103 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 2 | [paulmillr](https://github.com/paulmillr) |
-| 1 | [edorivai](https://github.com/edorivai) |
-| 1 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) |
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.5.0, on April 23, 2017._
\ No newline at end of file
diff --git a/node_modules/fill-range/index.js b/node_modules/fill-range/index.js
deleted file mode 100644
index 294a2ed..0000000
--- a/node_modules/fill-range/index.js
+++ /dev/null
@@ -1,208 +0,0 @@
-/*!
- * fill-range
- *
- * Copyright (c) 2014-2015, 2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-var util = require('util');
-var isNumber = require('is-number');
-var extend = require('extend-shallow');
-var repeat = require('repeat-string');
-var toRegex = require('to-regex-range');
-
-/**
- * Return a range of numbers or letters.
- *
- * @param {String} `start` Start of the range
- * @param {String} `stop` End of the range
- * @param {String} `step` Increment or decrement to use.
- * @param {Function} `fn` Custom function to modify each element in the range.
- * @return {Array}
- */
-
-function fillRange(start, stop, step, options) {
- if (typeof start === 'undefined') {
- return [];
- }
-
- if (typeof stop === 'undefined' || start === stop) {
- // special case, for handling negative zero
- var isString = typeof start === 'string';
- if (isNumber(start) && !toNumber(start)) {
- return [isString ? '0' : 0];
- }
- return [start];
- }
-
- if (typeof step !== 'number' && typeof step !== 'string') {
- options = step;
- step = undefined;
- }
-
- if (typeof options === 'function') {
- options = { transform: options };
- }
-
- var opts = extend({step: step}, options);
- if (opts.step && !isValidNumber(opts.step)) {
- if (opts.strictRanges === true) {
- throw new TypeError('expected options.step to be a number');
- }
- return [];
- }
-
- opts.isNumber = isValidNumber(start) && isValidNumber(stop);
- if (!opts.isNumber && !isValid(start, stop)) {
- if (opts.strictRanges === true) {
- throw new RangeError('invalid range arguments: ' + util.inspect([start, stop]));
- }
- return [];
- }
-
- opts.isPadded = isPadded(start) || isPadded(stop);
- opts.toString = opts.stringify
- || typeof opts.step === 'string'
- || typeof start === 'string'
- || typeof stop === 'string'
- || !opts.isNumber;
-
- if (opts.isPadded) {
- opts.maxLength = Math.max(String(start).length, String(stop).length);
- }
-
- // support legacy minimatch/fill-range options
- if (typeof opts.optimize === 'boolean') opts.toRegex = opts.optimize;
- if (typeof opts.makeRe === 'boolean') opts.toRegex = opts.makeRe;
- return expand(start, stop, opts);
-}
-
-function expand(start, stop, options) {
- var a = options.isNumber ? toNumber(start) : start.charCodeAt(0);
- var b = options.isNumber ? toNumber(stop) : stop.charCodeAt(0);
-
- var step = Math.abs(toNumber(options.step)) || 1;
- if (options.toRegex && step === 1) {
- return toRange(a, b, start, stop, options);
- }
-
- var zero = {greater: [], lesser: []};
- var asc = a < b;
- var arr = new Array(Math.round((asc ? b - a : a - b) / step));
- var idx = 0;
-
- while (asc ? a <= b : a >= b) {
- var val = options.isNumber ? a : String.fromCharCode(a);
- if (options.toRegex && (val >= 0 || !options.isNumber)) {
- zero.greater.push(val);
- } else {
- zero.lesser.push(Math.abs(val));
- }
-
- if (options.isPadded) {
- val = zeros(val, options);
- }
-
- if (options.toString) {
- val = String(val);
- }
-
- if (typeof options.transform === 'function') {
- arr[idx++] = options.transform(val, a, b, step, idx, arr, options);
- } else {
- arr[idx++] = val;
- }
-
- if (asc) {
- a += step;
- } else {
- a -= step;
- }
- }
-
- if (options.toRegex === true) {
- return toSequence(arr, zero, options);
- }
- return arr;
-}
-
-function toRange(a, b, start, stop, options) {
- if (options.isPadded) {
- return toRegex(start, stop, options);
- }
-
- if (options.isNumber) {
- return toRegex(Math.min(a, b), Math.max(a, b), options);
- }
-
- var start = String.fromCharCode(Math.min(a, b));
- var stop = String.fromCharCode(Math.max(a, b));
- return '[' + start + '-' + stop + ']';
-}
-
-function toSequence(arr, zeros, options) {
- var greater = '', lesser = '';
- if (zeros.greater.length) {
- greater = zeros.greater.join('|');
- }
- if (zeros.lesser.length) {
- lesser = '-(' + zeros.lesser.join('|') + ')';
- }
- var res = greater && lesser
- ? greater + '|' + lesser
- : greater || lesser;
-
- if (options.capture) {
- return '(' + res + ')';
- }
- return res;
-}
-
-function zeros(val, options) {
- if (options.isPadded) {
- var str = String(val);
- var len = str.length;
- var dash = '';
- if (str.charAt(0) === '-') {
- dash = '-';
- str = str.slice(1);
- }
- var diff = options.maxLength - len;
- var pad = repeat('0', diff);
- val = (dash + pad + str);
- }
- if (options.stringify) {
- return String(val);
- }
- return val;
-}
-
-function toNumber(val) {
- return Number(val) || 0;
-}
-
-function isPadded(str) {
- return /^-?0\d/.test(str);
-}
-
-function isValid(min, max) {
- return (isValidNumber(min) || isValidLetter(min))
- && (isValidNumber(max) || isValidLetter(max));
-}
-
-function isValidLetter(ch) {
- return typeof ch === 'string' && ch.length === 1 && /^\w+$/.test(ch);
-}
-
-function isValidNumber(n) {
- return isNumber(n) && !/\./.test(n);
-}
-
-/**
- * Expose `fillRange`
- * @type {Function}
- */
-
-module.exports = fillRange;
diff --git a/node_modules/fill-range/package.json b/node_modules/fill-range/package.json
deleted file mode 100644
index fa17dd2..0000000
--- a/node_modules/fill-range/package.json
+++ /dev/null
@@ -1,82 +0,0 @@
-{
- "name": "fill-range",
- "description": "Fill in a range of numbers or letters, optionally passing an increment or `step` to use, or create a regex-compatible range with `options.toRegex`",
- "version": "4.0.0",
- "homepage": "https://github.com/jonschlinkert/fill-range",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- " (https://github.com/wtgtybhertgeghgtwtg)",
- "Edo Rivai (edo.rivai.nl)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Paul Miller (paulmillr.com)"
- ],
- "repository": "jonschlinkert/fill-range",
- "bugs": {
- "url": "https://github.com/jonschlinkert/fill-range/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "extend-shallow": "^2.0.1",
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1",
- "to-regex-range": "^2.1.0"
- },
- "devDependencies": {
- "ansi-cyan": "^0.1.1",
- "benchmarked": "^1.0.0",
- "gulp-format-md": "^0.1.12",
- "minimist": "^1.2.0",
- "mocha": "^3.2.0"
- },
- "keywords": [
- "alpha",
- "alphabetical",
- "array",
- "bash",
- "brace",
- "expand",
- "expansion",
- "fill",
- "glob",
- "match",
- "matches",
- "matching",
- "number",
- "numerical",
- "range",
- "ranges",
- "regex",
- "sh"
- ],
- "verb": {
- "related": {
- "list": [
- "braces",
- "expand-range",
- "micromatch",
- "to-regex-range"
- ]
- },
- "toc": true,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/find-up/index.js b/node_modules/find-up/index.js
deleted file mode 100644
index 7ff0e2b..0000000
--- a/node_modules/find-up/index.js
+++ /dev/null
@@ -1,53 +0,0 @@
-'use strict';
-var path = require('path');
-var pathExists = require('path-exists');
-var Promise = require('pinkie-promise');
-
-function splitPath(x) {
- return path.resolve(x || '').split(path.sep);
-}
-
-function join(parts, filename) {
- return path.resolve(parts.join(path.sep) + path.sep, filename);
-}
-
-module.exports = function (filename, opts) {
- opts = opts || {};
-
- var parts = splitPath(opts.cwd);
-
- return new Promise(function (resolve) {
- (function find() {
- var fp = join(parts, filename);
-
- pathExists(fp).then(function (exists) {
- if (exists) {
- resolve(fp);
- } else if (parts.pop()) {
- find();
- } else {
- resolve(null);
- }
- });
- })();
- });
-};
-
-module.exports.sync = function (filename, opts) {
- opts = opts || {};
-
- var parts = splitPath(opts.cwd);
- var len = parts.length;
-
- while (len--) {
- var fp = join(parts, filename);
-
- if (pathExists.sync(fp)) {
- return fp;
- }
-
- parts.pop();
- }
-
- return null;
-};
diff --git a/node_modules/find-up/license b/node_modules/find-up/license
deleted file mode 100644
index 654d0bf..0000000
--- a/node_modules/find-up/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus (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/find-up/package.json b/node_modules/find-up/package.json
deleted file mode 100644
index 478866c..0000000
--- a/node_modules/find-up/package.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
- "name": "find-up",
- "version": "1.1.2",
- "description": "Find a file by walking up parent directories",
- "license": "MIT",
- "repository": "sindresorhus/find-up",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "files": [
- "index.js"
- ],
- "keywords": [
- "find",
- "up",
- "find-up",
- "findup",
- "look-up",
- "look",
- "file",
- "search",
- "match",
- "package",
- "resolve",
- "parent",
- "parents",
- "folder",
- "directory",
- "dir",
- "walk",
- "walking",
- "path"
- ],
- "dependencies": {
- "path-exists": "^2.0.0",
- "pinkie-promise": "^2.0.0"
- },
- "devDependencies": {
- "ava": "*",
- "tempfile": "^1.1.1",
- "xo": "*"
- }
-}
diff --git a/node_modules/find-up/readme.md b/node_modules/find-up/readme.md
deleted file mode 100644
index 9ea0611..0000000
--- a/node_modules/find-up/readme.md
+++ /dev/null
@@ -1,72 +0,0 @@
-# find-up [![Build Status](https://travis-ci.org/sindresorhus/find-up.svg?branch=master)](https://travis-ci.org/sindresorhus/find-up)
-
-> Find a file by walking up parent directories
-
-
-## Install
-
-```
-$ npm install --save find-up
-```
-
-
-## Usage
-
-```
-/
-└── Users
- └── sindresorhus
- ├── unicorn.png
- └── foo
- └── bar
- ├── baz
- └── example.js
-```
-
-```js
-// example.js
-const findUp = require('find-up');
-
-findUp('unicorn.png').then(filepath => {
- console.log(filepath);
- //=> '/Users/sindresorhus/unicorn.png'
-});
-```
-
-
-## API
-
-### findUp(filename, [options])
-
-Returns a promise for the filepath or `null`.
-
-### findUp.sync(filename, [options])
-
-Returns a filepath or `null`.
-
-#### filename
-
-Type: `string`
-
-Filename of the file to find.
-
-#### options
-
-##### cwd
-
-Type: `string`
-Default: `process.cwd()`
-
-Directory to start from.
-
-
-## Related
-
-- [find-up-cli](https://github.com/sindresorhus/find-up-cli) - CLI for this module
-- [pkg-up](https://github.com/sindresorhus/pkg-up) - Find the closest package.json file
-- [pkg-dir](https://github.com/sindresorhus/pkg-dir) - Find the root directory of an npm package
-
-
-## License
-
-MIT © [Sindre Sorhus](http://sindresorhus.com)
diff --git a/node_modules/findup-sync/LICENSE b/node_modules/findup-sync/LICENSE
deleted file mode 100644
index 6e210d0..0000000
--- a/node_modules/findup-sync/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2013-2018 Ben Alman , Blaine Bublitz , and Eric Schoffstall
-
-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/findup-sync/README.md b/node_modules/findup-sync/README.md
deleted file mode 100644
index 3d1b17b..0000000
--- a/node_modules/findup-sync/README.md
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
-
-
-
-
-
-# findup-sync
-
-[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Travis Build Status][travis-image]][travis-url] [![AppVeyor Build Status][appveyor-image]][appveyor-url] [![Coveralls Status][coveralls-image]][coveralls-url] [![Gitter chat][gitter-image]][gitter-url]
-
-Find the first file matching a given pattern in the current directory or the nearest ancestor directory.
-
-Matching is done with [micromatch][micromatch], please report any matching related issues on that repository.
-
-## Usage
-
-```js
-var findup = require('findup-sync');
-findup(patternOrPatterns [, micromatchOptions]);
-
-// Start looking in the CWD.
-var filepath1 = findup('{a,b}*.txt');
-
-// Start looking somewhere else, and ignore case (probably a good idea).
-var filepath2 = findup('{a,b}*.txt', {cwd: '/some/path', nocase: true});
-```
-
-## API
-
-### `findup(patterns, [options])`
-
-* `patterns` **{String|Array}**: Glob pattern(s) or file path(s) to match against.
-* `options` **{Object}**: Options to pass to [micromatch]. Note that if you want to start in a different directory than the current working directory, specify a `cwd` property here.
-* `returns` **{String}**: Returns the first matching file.
-
-## License
-
-MIT
-
-[micromatch]: http://github.com/jonschlinkert/micromatch
-
-[downloads-image]: http://img.shields.io/npm/dm/findup-sync.svg
-[npm-url]: https://www.npmjs.com/package/findup-sync
-[npm-image]: http://img.shields.io/npm/v/findup-sync.svg
-
-[travis-url]: https://travis-ci.org/gulpjs/findup-sync
-[travis-image]: http://img.shields.io/travis/gulpjs/findup-sync.svg?label=travis-ci
-
-[appveyor-url]: https://ci.appveyor.com/project/gulpjs/findup-sync
-[appveyor-image]: https://img.shields.io/appveyor/ci/gulpjs/findup-sync.svg?label=appveyor
-
-[coveralls-url]: https://coveralls.io/r/gulpjs/findup-sync
-[coveralls-image]: http://img.shields.io/coveralls/gulpjs/findup-sync/master.svg
-
-[gitter-url]: https://gitter.im/gulpjs/gulp
-[gitter-image]: https://badges.gitter.im/gulpjs/gulp.svg
diff --git a/node_modules/findup-sync/index.js b/node_modules/findup-sync/index.js
deleted file mode 100644
index 2a9e117..0000000
--- a/node_modules/findup-sync/index.js
+++ /dev/null
@@ -1,87 +0,0 @@
-'use strict';
-
-/**
- * Module dependencies
- */
-
-var fs = require('fs');
-var path = require('path');
-var isGlob = require('is-glob');
-var resolveDir = require('resolve-dir');
-var detect = require('detect-file');
-var mm = require('micromatch');
-
-/**
- * @param {String|Array} `pattern` Glob pattern or file path(s) to match against.
- * @param {Object} `options` Options to pass to [micromatch]. Note that if you want to start in a different directory than the current working directory, specify the `options.cwd` property here.
- * @return {String} Returns the first matching file.
- * @api public
- */
-
-module.exports = function(patterns, options) {
- options = options || {};
- var cwd = path.resolve(resolveDir(options.cwd || ''));
-
- if (typeof patterns === 'string') {
- return lookup(cwd, [patterns], options);
- }
-
- if (!Array.isArray(patterns)) {
- throw new TypeError('findup-sync expects a string or array as the first argument.');
- }
-
- return lookup(cwd, patterns, options);
-};
-
-function lookup(cwd, patterns, options) {
- var len = patterns.length;
- var idx = -1;
- var res;
-
- while (++idx < len) {
- if (isGlob(patterns[idx])) {
- res = matchFile(cwd, patterns[idx], options);
- } else {
- res = findFile(cwd, patterns[idx], options);
- }
- if (res) {
- return res;
- }
- }
-
- var dir = path.dirname(cwd);
- if (dir === cwd) {
- return null;
- }
- return lookup(dir, patterns, options);
-}
-
-function matchFile(cwd, pattern, opts) {
- var isMatch = mm.matcher(pattern, opts);
- var files = tryReaddirSync(cwd);
- var len = files.length;
- var idx = -1;
-
- while (++idx < len) {
- var name = files[idx];
- var fp = path.join(cwd, name);
- if (isMatch(name) || isMatch(fp)) {
- return fp;
- }
- }
- return null;
-}
-
-function findFile(cwd, filename, options) {
- var fp = cwd ? path.resolve(cwd, filename) : filename;
- return detect(fp, options);
-}
-
-function tryReaddirSync(fp) {
- try {
- return fs.readdirSync(fp);
- } catch (err) {
- // Ignore error
- }
- return [];
-}
diff --git a/node_modules/findup-sync/package.json b/node_modules/findup-sync/package.json
deleted file mode 100644
index 357f57a..0000000
--- a/node_modules/findup-sync/package.json
+++ /dev/null
@@ -1,57 +0,0 @@
-{
- "name": "findup-sync",
- "version": "3.0.0",
- "description": "Find the first file matching a given pattern in the current directory or the nearest ancestor directory.",
- "author": "Gulp Team (http://gulpjs.com/)",
- "contributors": [
- "Ben Alman ",
- "Tyler Kellen ",
- "Jon Schlinkert ",
- "Blaine Bublitz "
- ],
- "repository": "gulpjs/findup-sync",
- "license": "MIT",
- "engines": {
- "node": ">= 0.10"
- },
- "main": "index.js",
- "files": [
- "index.js",
- "LICENSE"
- ],
- "scripts": {
- "lint": "eslint .",
- "pretest": "npm run lint",
- "test": "mocha --async-only",
- "cover": "istanbul cover _mocha --report lcovonly",
- "coveralls": "npm run cover && istanbul-coveralls"
- },
- "dependencies": {
- "detect-file": "^1.0.0",
- "is-glob": "^4.0.0",
- "micromatch": "^3.0.4",
- "resolve-dir": "^1.0.1"
- },
- "devDependencies": {
- "eslint": "^2.13.0",
- "eslint-config-gulp": "^3.0.1",
- "expect": "^1.20.2",
- "homedir-polyfill": "^1.0.1",
- "istanbul": "^0.4.3",
- "istanbul-coveralls": "^1.0.3",
- "mocha": "^3.5.3",
- "normalize-path": "^3.0.0",
- "resolve": "^1.4.0"
- },
- "keywords": [
- "file",
- "find",
- "find-up",
- "findup",
- "glob",
- "match",
- "pattern",
- "resolve",
- "search"
- ]
-}
diff --git a/node_modules/fined/LICENSE b/node_modules/fined/LICENSE
deleted file mode 100644
index 538c116..0000000
--- a/node_modules/fined/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2016, 2017, 2018 Blaine Bublitz and Eric Schoffstall
-
-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/fined/README.md b/node_modules/fined/README.md
deleted file mode 100644
index d0ec267..0000000
--- a/node_modules/fined/README.md
+++ /dev/null
@@ -1,81 +0,0 @@
-
-
-
-
-
-
-# fined
-
-[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Travis Build Status][travis-image]][travis-url] [![AppVeyor Build Status][appveyor-image]][appveyor-url] [![Coveralls Status][coveralls-image]][coveralls-url] [![Gitter chat][gitter-image]][gitter-url]
-
-Find a file given a declaration of locations.
-
-## Usage
-
-```js
-var fined = require('fined');
-
-fined({ path: 'path/to/file', extensions: ['.js', '.json'] });
-// => { path: '/absolute/path/to/file.js', extension: '.js' } (if file exists)
-// => null (if file does not exist)
-
-var opts = {
- name: '.app',
- cwd: '.',
- extensions: {
- 'rc': 'default-rc-loader',
- '.yml': 'default-yml-loader',
- },
-};
-
-fined({ path: '.' }, opts);
-// => { path: '/absolute/of/cwd/.app.yml', extension: { '.yml': 'default-yml-loader' } }
-
-fined({ path: '~', extensions: { 'rc': 'some-special-rc-loader' } }, opts);
-// => { path: '/User/home/.apprc', extension: { 'rc': 'some-special-rc-loader' } }
-```
-
-## API
-
-### fined(pathObj, opts) => object | null
-
-#### Arguments:
-
-* **pathObj** [string | object] : a path setting for finding a file.
-* **opts** [object] : a plain object supplements `pathObj`.
-
- `pathObj` and `opts` can have same properties:
-
- * **path** [string] : a path string.
- * **name** [string] : a basename.
- * **extensions**: [string | array | object] : extensions.
- * **cwd**: a base directory of `path` and for finding up.
- * **findUp**: [boolean] : a flag to find up.
-
-#### Return:
-
-This function returns a plain object which consists of following properties if a file exists otherwise null.
-
- * **path** : an absolute path
- * **extension** : a string or a plain object of extension.
-
-
-## License
-
-MIT
-
-[downloads-image]: http://img.shields.io/npm/dm/fined.svg
-[npm-url]: https://www.npmjs.com/package/fined
-[npm-image]: http://img.shields.io/npm/v/fined.svg
-
-[travis-url]: https://travis-ci.org/gulpjs/fined
-[travis-image]: http://img.shields.io/travis/gulpjs/fined.svg?label=travis-ci
-
-[appveyor-url]: https://ci.appveyor.com/project/gulpjs/fined
-[appveyor-image]: https://img.shields.io/appveyor/ci/gulpjs/fined.svg?label=appveyor
-
-[coveralls-url]: https://coveralls.io/r/gulpjs/fined
-[coveralls-image]: http://img.shields.io/coveralls/gulpjs/fined/master.svg
-
-[gitter-url]: https://gitter.im/gulpjs/gulp
-[gitter-image]: https://badges.gitter.im/gulpjs/gulp.svg
diff --git a/node_modules/fined/index.js b/node_modules/fined/index.js
deleted file mode 100644
index 1a66ab2..0000000
--- a/node_modules/fined/index.js
+++ /dev/null
@@ -1,174 +0,0 @@
-'use strict';
-
-var fs = require('fs');
-var path = require('path');
-
-var isPlainObject = require('is-plain-object');
-var pick = require('object.pick');
-var defaults = require('object.defaults/immutable');
-var expandTilde = require('expand-tilde');
-var parsePath = require('parse-filepath');
-
-
-function fined(pathObj, defaultObj) {
- var expandedPath = expandPath(pathObj, defaultObj);
- return expandedPath ? findWithExpandedPath(expandedPath) : null;
-}
-
-function expandPath(pathObj, defaultObj) {
- if (!isPlainObject(defaultObj)) {
- defaultObj = {};
- }
-
- if (isString(pathObj)) {
- pathObj = { path: pathObj };
- }
-
- if (!isPlainObject(pathObj)) {
- pathObj = {};
- }
-
- pathObj = defaults(pathObj, defaultObj);
-
- var filePath;
- if (!isString(pathObj.path)) {
- return null;
- }
- // Execution of toString is for a String object.
- if (isString(pathObj.name) && pathObj.name) {
- if (pathObj.path) {
- filePath = expandTilde(pathObj.path.toString());
- filePath = path.join(filePath, pathObj.name.toString());
- } else {
- filePath = pathObj.name.toString();
- }
- } else {
- filePath = expandTilde(pathObj.path.toString());
- }
-
- var extArr = createExtensionArray(pathObj.extensions);
- var extMap = createExtensionMap(pathObj.extensions);
-
- var basedir = isString(pathObj.cwd) ? pathObj.cwd.toString() : '.';
- basedir = path.resolve(expandTilde(basedir));
-
- var findUp = !!pathObj.findUp;
-
- var parsed = parsePath(filePath);
- if (parsed.isAbsolute) {
- filePath = filePath.slice(parsed.root.length);
- findUp = false;
- basedir = parsed.root;
- /* istanbul ignore if */
- } else if (parsed.root) { // Expanded path has a drive letter on Windows.
- filePath = filePath.slice(parsed.root.length);
- basedir = path.resolve(parsed.root);
- }
-
- if (parsed.ext) {
- filePath = filePath.slice(0, -parsed.ext.length);
- // This ensures that only the original extension is matched.
- extArr = [parsed.ext];
- }
-
- return {
- path: filePath,
- basedir: basedir,
- findUp: findUp,
- extArr: extArr,
- extMap: extMap,
- };
-}
-
-function findWithExpandedPath(expanded) {
- var found = expanded.findUp ?
- findUpFile(expanded.basedir, expanded.path, expanded.extArr) :
- findFile(expanded.basedir, expanded.path, expanded.extArr);
-
- if (!found) {
- return null;
- }
-
- if (expanded.extMap) {
- found.extension = pick(expanded.extMap, found.extension);
- }
- return found;
-}
-
-function findFile(basedir, relpath, extArr) {
- var noExtPath = path.resolve(basedir, relpath);
- for (var i = 0, n = extArr.length; i < n; i++) {
- var filepath = noExtPath + extArr[i];
- try {
- fs.statSync(filepath);
- return { path: filepath, extension: extArr[i] };
- } catch (e) {
- // Ignore error
- }
- }
-
- return null;
-}
-
-function findUpFile(basedir, filepath, extArr) {
- var lastdir;
- do {
- var found = findFile(basedir, filepath, extArr);
- if (found) {
- return found;
- }
-
- lastdir = basedir;
- basedir = path.dirname(basedir);
- } while (lastdir !== basedir);
-
- return null;
-}
-
-function createExtensionArray(exts) {
- if (isString(exts)) {
- return [exts];
- }
-
- if (Array.isArray(exts)) {
- exts = exts.filter(isString);
- return (exts.length > 0) ? exts : [''];
- }
-
- if (isPlainObject(exts)) {
- exts = Object.keys(exts);
- return (exts.length > 0) ? exts : [''];
- }
-
- return [''];
-}
-
-function createExtensionMap(exts) {
- if (!isPlainObject(exts)) {
- return null;
- }
-
- if (isEmpty(exts)) {
- return { '': null };
- }
-
- return exts;
-}
-
-function isEmpty(object) {
- return !Object.keys(object).length;
-}
-
-function isString(value) {
- if (typeof value === 'string') {
- return true;
- }
-
- if (Object.prototype.toString.call(value) === '[object String]') {
- return true;
- }
-
- return false;
-}
-
-module.exports = fined;
diff --git a/node_modules/fined/node_modules/is-plain-object/LICENSE b/node_modules/fined/node_modules/is-plain-object/LICENSE
deleted file mode 100644
index 3f2eca1..0000000
--- a/node_modules/fined/node_modules/is-plain-object/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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/fined/node_modules/is-plain-object/README.md b/node_modules/fined/node_modules/is-plain-object/README.md
deleted file mode 100644
index 1f9d0c8..0000000
--- a/node_modules/fined/node_modules/is-plain-object/README.md
+++ /dev/null
@@ -1,104 +0,0 @@
-# is-plain-object [![NPM version](https://img.shields.io/npm/v/is-plain-object.svg?style=flat)](https://www.npmjs.com/package/is-plain-object) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-plain-object.svg?style=flat)](https://npmjs.org/package/is-plain-object) [![NPM total downloads](https://img.shields.io/npm/dt/is-plain-object.svg?style=flat)](https://npmjs.org/package/is-plain-object) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-plain-object.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-plain-object)
-
-> Returns true if an object was created by the `Object` constructor.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save is-plain-object
-```
-
-Use [isobject](https://github.com/jonschlinkert/isobject) if you only want to check if the value is an object and not an array or null.
-
-## Usage
-
-```js
-var isPlainObject = require('is-plain-object');
-```
-
-**true** when created by the `Object` constructor.
-
-```js
-isPlainObject(Object.create({}));
-//=> true
-isPlainObject(Object.create(Object.prototype));
-//=> true
-isPlainObject({foo: 'bar'});
-//=> true
-isPlainObject({});
-//=> true
-```
-
-**false** when not created by the `Object` constructor.
-
-```js
-isPlainObject(1);
-//=> false
-isPlainObject(['foo', 'bar']);
-//=> false
-isPlainObject([]);
-//=> false
-isPlainObject(new Foo);
-//=> false
-isPlainObject(null);
-//=> false
-isPlainObject(Object.create(null));
-//=> false
-```
-
-## About
-
-### Related projects
-
-* [is-number](https://www.npmjs.com/package/is-number): Returns true if the value is a number. comprehensive tests. | [homepage](https://github.com/jonschlinkert/is-number "Returns true if the value is a number. comprehensive tests.")
-* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.")
-* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 17 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 6 | [stevenvachon](https://github.com/stevenvachon) |
-| 3 | [onokumus](https://github.com/onokumus) |
-| 1 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) |
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on July 11, 2017._
\ No newline at end of file
diff --git a/node_modules/fined/node_modules/is-plain-object/index.d.ts b/node_modules/fined/node_modules/is-plain-object/index.d.ts
deleted file mode 100644
index 74a44e9..0000000
--- a/node_modules/fined/node_modules/is-plain-object/index.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export = isPlainObject;
-
-declare function isPlainObject(o: any): boolean;
-
-declare namespace isPlainObject {}
diff --git a/node_modules/fined/node_modules/is-plain-object/index.js b/node_modules/fined/node_modules/is-plain-object/index.js
deleted file mode 100644
index c328484..0000000
--- a/node_modules/fined/node_modules/is-plain-object/index.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/*!
- * is-plain-object
- *
- * Copyright (c) 2014-2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-var isObject = require('isobject');
-
-function isObjectObject(o) {
- return isObject(o) === true
- && Object.prototype.toString.call(o) === '[object Object]';
-}
-
-module.exports = function isPlainObject(o) {
- var ctor,prot;
-
- if (isObjectObject(o) === false) return false;
-
- // If has modified constructor
- ctor = o.constructor;
- if (typeof ctor !== 'function') return false;
-
- // If has modified prototype
- prot = ctor.prototype;
- if (isObjectObject(prot) === false) return false;
-
- // If constructor does not have an Object-specific method
- if (prot.hasOwnProperty('isPrototypeOf') === false) {
- return false;
- }
-
- // Most likely a plain Object
- return true;
-};
diff --git a/node_modules/fined/node_modules/is-plain-object/package.json b/node_modules/fined/node_modules/is-plain-object/package.json
deleted file mode 100644
index dd60498..0000000
--- a/node_modules/fined/node_modules/is-plain-object/package.json
+++ /dev/null
@@ -1,79 +0,0 @@
-{
- "name": "is-plain-object",
- "description": "Returns true if an object was created by the `Object` constructor.",
- "version": "2.0.4",
- "homepage": "https://github.com/jonschlinkert/is-plain-object",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Osman Nuri Okumuş (http://onokumus.com)",
- "Steven Vachon (https://svachon.com)",
- "(https://github.com/wtgtybhertgeghgtwtg)"
- ],
- "repository": "jonschlinkert/is-plain-object",
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-plain-object/issues"
- },
- "license": "MIT",
- "files": [
- "index.d.ts",
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "browserify": "browserify index.js --standalone isPlainObject | uglifyjs --compress --mangle -o browser/is-plain-object.js",
- "test_browser": "mocha-phantomjs test/browser.html",
- "test_node": "mocha",
- "test": "npm run test_node && npm run browserify && npm run test_browser"
- },
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "devDependencies": {
- "browserify": "^14.4.0",
- "chai": "^4.0.2",
- "gulp-format-md": "^1.0.0",
- "mocha": "^3.4.2",
- "mocha-phantomjs": "^4.1.0",
- "phantomjs": "^2.1.7",
- "uglify-js": "^3.0.24"
- },
- "keywords": [
- "check",
- "is",
- "is-object",
- "isobject",
- "javascript",
- "kind",
- "kind-of",
- "object",
- "plain",
- "type",
- "typeof",
- "value"
- ],
- "types": "index.d.ts",
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "is-number",
- "isobject",
- "kind-of"
- ]
- },
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/fined/package.json b/node_modules/fined/package.json
deleted file mode 100644
index e64ed64..0000000
--- a/node_modules/fined/package.json
+++ /dev/null
@@ -1,47 +0,0 @@
-{
- "name": "fined",
- "version": "1.2.0",
- "description": "Find a file given a declaration of locations.",
- "author": "Gulp Team (http://gulpjs.com/)",
- "contributors": [
- "Takayuki Sato ",
- "Blaine Bublitz "
- ],
- "repository": "gulpjs/fined",
- "license": "MIT",
- "engines": {
- "node": ">= 0.10"
- },
- "main": "index.js",
- "files": [
- "index.js",
- "LICENSE"
- ],
- "scripts": {
- "lint": "eslint .",
- "pretest": "npm run lint",
- "test": "mocha --async-only",
- "cover": "istanbul cover _mocha --report lcovonly",
- "coveralls": "npm run cover && istanbul-coveralls"
- },
- "dependencies": {
- "expand-tilde": "^2.0.2",
- "is-plain-object": "^2.0.3",
- "object.defaults": "^1.1.0",
- "object.pick": "^1.2.0",
- "parse-filepath": "^1.0.1"
- },
- "devDependencies": {
- "eslint": "^2.13.0",
- "eslint-config-gulp": "^3.0.1",
- "expect": "^1.20.2",
- "istanbul": "^0.4.3",
- "istanbul-coveralls": "^1.0.3",
- "mocha": "^3.5.3"
- },
- "keywords": [
- "find",
- "lookup",
- "config"
- ]
-}
diff --git a/node_modules/flagged-respawn/LICENSE b/node_modules/flagged-respawn/LICENSE
deleted file mode 100644
index ca63f90..0000000
--- a/node_modules/flagged-respawn/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2018 Tyler Kellen , Blaine Bublitz , and Eric Schoffstall
-
-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/flagged-respawn/README.md b/node_modules/flagged-respawn/README.md
deleted file mode 100644
index 44899fc..0000000
--- a/node_modules/flagged-respawn/README.md
+++ /dev/null
@@ -1,111 +0,0 @@
-
-
-
-
-
-
-# flagged-respawn
-
-[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Travis Build Status][travis-image]][travis-url] [![AppVeyor Build Status][appveyor-image]][appveyor-url] [![Coveralls Status][coveralls-image]][coveralls-url] [![Gitter chat][gitter-image]][gitter-url]
-
-A tool for respawning node binaries when special flags are present.
-
-## What is it?
-
-Say you wrote a command line tool that runs arbitrary javascript (e.g. task runner, test framework, etc). For the sake of discussion, let's pretend it's a testing harness you've named `testify`.
-
-Everything is going splendidly until one day you decide to test some code that relies on a feature behind a v8 flag in node (`--harmony`, for example). Without much thought, you run `testify --harmony spec tests.js`.
-
-It doesn't work. After digging around for a bit, you realize this produces a [`process.argv`](http://nodejs.org/docs/latest/api/process.html#process_process_argv) of:
-
-`['node', '/usr/local/bin/test', '--harmony', 'spec', 'tests.js']`
-
-Crap. The `--harmony` flag is in the wrong place! It should be applied to the **node** command, not our binary. What we actually wanted was this:
-
-`['node', '--harmony', '/usr/local/bin/test', 'spec', 'tests.js']`
-
-Flagged-respawn fixes this problem and handles all the edge cases respawning creates, such as:
-- Providing a method to determine if a respawn is needed.
-- Piping stderr/stdout from the child into the parent.
-- Making the parent process exit with the same code as the child.
-- If the child is killed, making the parent exit with the same signal.
-
-To see it in action, clone this repository and run `npm install` / `npm run respawn` / `npm run nospawn`.
-
-## Sample Usage
-
-```js
-#!/usr/bin/env node
-
-const flaggedRespawn = require('flagged-respawn');
-
-// get a list of all possible v8 flags for the running version of node
-const v8flags = require('v8flags').fetch();
-
-flaggedRespawn(v8flags, process.argv, function (ready, child) {
- if (ready) {
- console.log('Running!');
- // your cli code here
- } else {
- console.log('Special flags found, respawning.');
- }
- if (process.pid !== child.pid) {
- console.log('Respawned to PID:', child.pid);
- }
-});
-
-```
-
-
-## API
-
-### flaggedRespawn(flags, argv, [ forcedFlags, ] callback) : Void
-
-Respawns the script itself when *argv* has special flag contained in *flags* and/or *forcedFlags* is not empty. Because members of *flags* and *forcedFlags* are passed to `node` command, each of them needs to be a node flag or a V8 flag.
-
-#### Forbid respawning
-
-If `--no-respawning` flag is given in *argv*, this function does not respawned even if *argv* contains members of flags or *forcedFlags* is not empty. (This flag is also used internally to prevent from respawning more than once).
-
-#### Parameter:
-
-| Parameter | Type | Description |
-|:--------------|:------:|:----------------------------------------------------|
-| *flags* | Array | An array of node flags and V8 flags which are available when present in *argv*. |
-| *argv* | Array | Command line arguments to respawn. |
-| *forcedFlags* | Array or String | An array of node flags or a string of a single flag and V8 flags for respawning forcely. |
-| *callback* | function | A called function when not respawning or after respawned. |
-
-* **callback (ready, proc, argv) : Void **
-
- *callback* function is called both when respawned or not, and it can be distinguished by callback's argument: *ready*. (*ready* indicates whether a process spawned its child process (false) or not (true), but it does not indicate whether a process is a spawned child process or not. *ready* for a spawned child process is true.)
-
- *argv* is an array of command line arguments which is respawned (when *ready* is false) or is passed current process except flags within *flags* and `--no-respawning` (when *ready* is true).
-
- **Parameter:**
-
- | Parameter | Type | Description |
- |:----------|:-------:|:--------------------------|
- | *ready* | boolean | True, if not respawning and is ready to execute main function. |
- | *proc* | object | Child process object if respawned, otherwise current process object. |
- | *argv* | Array | An array of command line arguments. |
-
-## License
-
-MIT
-
-[downloads-image]: http://img.shields.io/npm/dm/flagged-respawn.svg
-[npm-url]: https://www.npmjs.com/package/flagged-respawn
-[npm-image]: http://img.shields.io/npm/v/flagged-respawn.svg
-
-[travis-url]: https://travis-ci.org/gulpjs/flagged-respawn
-[travis-image]: http://img.shields.io/travis/gulpjs/flagged-respawn.svg?label=travis-ci
-
-[appveyor-url]: https://ci.appveyor.com/project/gulpjs/flagged-respawn
-[appveyor-image]: https://img.shields.io/appveyor/ci/gulpjs/flagged-respawn.svg?label=appveyor
-
-[coveralls-url]: https://coveralls.io/r/gulpjs/flagged-respawn
-[coveralls-image]: http://img.shields.io/coveralls/gulpjs/flagged-respawn/master.svg
-
-[gitter-url]: https://gitter.im/gulpjs/gulp
-[gitter-image]: https://badges.gitter.im/gulpjs/gulp.svg
diff --git a/node_modules/flagged-respawn/index.js b/node_modules/flagged-respawn/index.js
deleted file mode 100644
index 15c1c1f..0000000
--- a/node_modules/flagged-respawn/index.js
+++ /dev/null
@@ -1,52 +0,0 @@
-var reorder = require('./lib/reorder');
-var respawn = require('./lib/respawn');
-var remover = require('./lib/remover');
-
-var FORBID_RESPAWNING_FLAG = '--no-respawning';
-
-module.exports = function(flags, argv, forcedFlags, execute) {
- if (!flags) {
- throw new Error('You must specify flags to respawn with.');
- }
- if (!argv) {
- throw new Error('You must specify an argv array.');
- }
-
- if (typeof forcedFlags === 'function') {
- execute = forcedFlags;
- forcedFlags = [];
- }
-
- if (typeof forcedFlags === 'string') {
- forcedFlags = [forcedFlags];
- }
-
- if (!Array.isArray(forcedFlags)) {
- forcedFlags = [];
- }
-
- var index = argv.indexOf(FORBID_RESPAWNING_FLAG);
- if (index >= 0) {
- argv = argv.slice(0, index).concat(argv.slice(index + 1));
- argv = remover(flags, argv);
- execute(true, process, argv);
- return;
- }
-
- var proc = process;
- var reordered = reorder(flags, argv);
- var ready = JSON.stringify(argv) === JSON.stringify(reordered);
-
- if (forcedFlags.length) {
- reordered = reordered.slice(0, 1)
- .concat(forcedFlags)
- .concat(reordered.slice(1));
- ready = false;
- }
-
- if (!ready) {
- reordered.push(FORBID_RESPAWNING_FLAG);
- proc = respawn(reordered);
- }
- execute(ready, proc, reordered);
-};
diff --git a/node_modules/flagged-respawn/lib/is-v8flags.js b/node_modules/flagged-respawn/lib/is-v8flags.js
deleted file mode 100644
index 34df9d2..0000000
--- a/node_modules/flagged-respawn/lib/is-v8flags.js
+++ /dev/null
@@ -1,13 +0,0 @@
-function isV8flags(flag, v8flags) {
- return v8flags.indexOf(replaceSeparatorsFromDashesToUnderscores(flag)) >= 0;
-}
-
-function replaceSeparatorsFromDashesToUnderscores(flag) {
- var arr = /^(-+)(.*)$/.exec(flag);
- if (!arr) {
- return flag;
- }
- return arr[1] + arr[2].replace(/\-/g, '_');
-}
-
-module.exports = isV8flags;
diff --git a/node_modules/flagged-respawn/lib/remover.js b/node_modules/flagged-respawn/lib/remover.js
deleted file mode 100644
index 3d194fa..0000000
--- a/node_modules/flagged-respawn/lib/remover.js
+++ /dev/null
@@ -1,13 +0,0 @@
-var isV8flags = require('./is-v8flags');
-
-module.exports = function(flags, argv) {
- var args = argv.slice(0, 1);
- for (var i = 1, n = argv.length; i < n; i++) {
- var arg = argv[i];
- var flag = arg.split('=')[0];
- if (!isV8flags(flag, flags)) {
- args.push(arg);
- }
- }
- return args;
-};
diff --git a/node_modules/flagged-respawn/lib/reorder.js b/node_modules/flagged-respawn/lib/reorder.js
deleted file mode 100644
index 125fc6c..0000000
--- a/node_modules/flagged-respawn/lib/reorder.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var isV8flags = require('./is-v8flags');
-
-module.exports = function(flags, argv) {
- if (!argv) {
- argv = process.argv;
- }
- var args = [argv[1]];
- argv.slice(2).forEach(function(arg) {
- var flag = arg.split('=')[0];
- if (isV8flags(flag, flags)) {
- args.unshift(arg);
- } else {
- args.push(arg);
- }
- });
- args.unshift(argv[0]);
- return args;
-};
diff --git a/node_modules/flagged-respawn/lib/respawn.js b/node_modules/flagged-respawn/lib/respawn.js
deleted file mode 100644
index c7e40fe..0000000
--- a/node_modules/flagged-respawn/lib/respawn.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var spawn = require('child_process').spawn;
-
-module.exports = function(argv) {
- var child = spawn(argv[0], argv.slice(1), { stdio: 'inherit' });
- child.on('exit', function(code, signal) {
- process.on('exit', function() {
- /* istanbul ignore if */
- if (signal) {
- process.kill(process.pid, signal);
- } else {
- process.exit(code);
- }
- });
- });
- return child;
-};
diff --git a/node_modules/flagged-respawn/package.json b/node_modules/flagged-respawn/package.json
deleted file mode 100644
index 1d38d81..0000000
--- a/node_modules/flagged-respawn/package.json
+++ /dev/null
@@ -1,47 +0,0 @@
-{
- "name": "flagged-respawn",
- "version": "1.0.1",
- "description": "A tool for respawning node binaries when special flags are present.",
- "author": "Gulp Team (http://gulpjs.com/)",
- "contributors": [
- "Takayuki Sato ",
- "Bertrand Marron ",
- "Tyler Kellen ",
- "Blaine Bublitz "
- ],
- "repository": "gulpjs/flagged-respawn",
- "license": "MIT",
- "engines": {
- "node": ">= 0.10"
- },
- "main": "index.js",
- "files": [
- "index.js",
- "lib/",
- "LICENSE"
- ],
- "scripts": {
- "lint": "eslint .",
- "pretest": "npm run lint",
- "test": "mocha --async-only",
- "cover": "nyc --reporter=lcov --reporter=text-summary npm test",
- "coveralls": "npm run cover && istanbul-coveralls",
- "respawn": "node test/bin/respawner --harmony test",
- "nospawn": "node test/bin/respawner test"
- },
- "dependencies": {},
- "devDependencies": {
- "eslint": "^2.13.0",
- "eslint-config-gulp": "^3.0.1",
- "expect": "^1.20.2",
- "istanbul": "^0.4.3",
- "istanbul-coveralls": "^1.0.3",
- "mocha": "^3.5.3",
- "nyc": "^11.3.0",
- "v8flags": "^3.0.1"
- },
- "keywords": [
- "respawn",
- "flags"
- ]
-}
diff --git a/node_modules/flush-write-stream/.travis.yml b/node_modules/flush-write-stream/.travis.yml
deleted file mode 100644
index 4689cb7..0000000
--- a/node_modules/flush-write-stream/.travis.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-language: node_js
-node_js:
- - '4'
- - '6'
- - '8'
- - '10'
diff --git a/node_modules/flush-write-stream/LICENSE b/node_modules/flush-write-stream/LICENSE
deleted file mode 100644
index 66a4d2a..0000000
--- a/node_modules/flush-write-stream/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015 Mathias Buus
-
-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/flush-write-stream/README.md b/node_modules/flush-write-stream/README.md
deleted file mode 100644
index 7ea7b69..0000000
--- a/node_modules/flush-write-stream/README.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# flush-write-stream
-
-A write stream constructor that supports a flush function that is called before `finish` is emitted
-
-```
-npm install flush-write-stream
-```
-
-[![build status](http://img.shields.io/travis/mafintosh/flush-write-stream.svg?style=flat)](http://travis-ci.org/mafintosh/flush-write-stream)
-
-## Usage
-
-``` js
-var writer = require('flush-write-stream')
-
-var ws = writer(write, flush)
-
-ws.on('finish', function () {
- console.log('finished')
-})
-
-ws.write('hello')
-ws.write('world')
-ws.end()
-
-function write (data, enc, cb) {
- // i am your normal ._write method
- console.log('writing', data.toString())
- cb()
-}
-
-function flush (cb) {
- // i am called before finish is emitted
- setTimeout(cb, 1000) // wait 1 sec
-}
-```
-
-If you run the above it will produce the following output
-
-```
-writing hello
-writing world
-(nothing happens for 1 sec)
-finished
-```
-
-## API
-
-#### `var ws = writer([options], write, [flush])`
-
-Create a new writable stream. Options are forwarded to the stream constructor.
-
-#### `var ws = writer.obj([options], write, [flush])`
-
-Same as the above except `objectMode` is set to `true` per default.
-
-## License
-
-MIT
diff --git a/node_modules/flush-write-stream/example.js b/node_modules/flush-write-stream/example.js
deleted file mode 100644
index fa6b5da..0000000
--- a/node_modules/flush-write-stream/example.js
+++ /dev/null
@@ -1,22 +0,0 @@
-var writer = require('./')
-
-var ws = writer(write, flush)
-
-ws.on('finish', function () {
- console.log('finished')
-})
-
-ws.write('hello')
-ws.write('world')
-ws.end()
-
-function write (data, enc, cb) {
- // i am your normal ._write method
- console.log('writing', data.toString())
- cb()
-}
-
-function flush (cb) {
- // i am called before finish is emitted
- setTimeout(cb, 1000) // wait 1 sec
-}
diff --git a/node_modules/flush-write-stream/index.js b/node_modules/flush-write-stream/index.js
deleted file mode 100644
index d7c6209..0000000
--- a/node_modules/flush-write-stream/index.js
+++ /dev/null
@@ -1,54 +0,0 @@
-var stream = require('readable-stream')
-var inherits = require('inherits')
-
-var SIGNAL_FLUSH =(Buffer.from && Buffer.from !== Uint8Array.from)
- ? Buffer.from([0])
- : new Buffer([0])
-
-module.exports = WriteStream
-
-function WriteStream (opts, write, flush) {
- if (!(this instanceof WriteStream)) return new WriteStream(opts, write, flush)
-
- if (typeof opts === 'function') {
- flush = write
- write = opts
- opts = {}
- }
-
- stream.Writable.call(this, opts)
-
- this.destroyed = false
- this._worker = write || null
- this._flush = flush || null
-}
-
-inherits(WriteStream, stream.Writable)
-
-WriteStream.obj = function (opts, worker, flush) {
- if (typeof opts === 'function') return WriteStream.obj(null, opts, worker)
- if (!opts) opts = {}
- opts.objectMode = true
- return new WriteStream(opts, worker, flush)
-}
-
-WriteStream.prototype._write = function (data, enc, cb) {
- if (SIGNAL_FLUSH === data) this._flush(cb)
- else this._worker(data, enc, cb)
-}
-
-WriteStream.prototype.end = function (data, enc, cb) {
- if (!this._flush) return stream.Writable.prototype.end.apply(this, arguments)
- if (typeof data === 'function') return this.end(null, null, data)
- if (typeof enc === 'function') return this.end(data, null, enc)
- if (data) this.write(data)
- if (!this._writableState.ending) this.write(SIGNAL_FLUSH)
- return stream.Writable.prototype.end.call(this, cb)
-}
-
-WriteStream.prototype.destroy = function (err) {
- if (this.destroyed) return
- this.destroyed = true
- if (err) this.emit('error', err)
- this.emit('close')
-}
diff --git a/node_modules/flush-write-stream/package.json b/node_modules/flush-write-stream/package.json
deleted file mode 100644
index 9d6326c..0000000
--- a/node_modules/flush-write-stream/package.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "name": "flush-write-stream",
- "version": "1.1.1",
- "description": "A write stream constructor that supports a flush function that is called before finish is emitted",
- "main": "index.js",
- "dependencies": {
- "inherits": "^2.0.3",
- "readable-stream": "^2.3.6"
- },
- "devDependencies": {
- "tape": "^4.2.2"
- },
- "scripts": {
- "test": "tape test.js"
- },
- "repository": {
- "type": "git",
- "url": "https://github.com/mafintosh/flush-write-stream.git"
- },
- "author": "Mathias Buus (@mafintosh)",
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/mafintosh/flush-write-stream/issues"
- },
- "homepage": "https://github.com/mafintosh/flush-write-stream"
-}
diff --git a/node_modules/flush-write-stream/test.js b/node_modules/flush-write-stream/test.js
deleted file mode 100644
index 6cd0c20..0000000
--- a/node_modules/flush-write-stream/test.js
+++ /dev/null
@@ -1,85 +0,0 @@
-var tape = require('tape')
-var writer = require('./')
-
-tape('is a write stream', function (t) {
- var expected = ['hello', 'world', 'verden']
- var ws = writer.obj(write)
-
- ws.write('hello')
- ws.write('world')
- ws.write('verden')
- ws.end(function () {
- t.same(expected.length, 0)
- t.end()
- })
-
- function write (data, enc, cb) {
- t.same(data, expected.shift())
- cb()
- }
-})
-
-tape('is flushable', function (t) {
- var expected = ['hello', 'world', 'verden']
- var flushed = false
-
- var ws = writer.obj(write, flush)
-
- ws.write('hello')
- ws.write('world')
- ws.write('verden')
- ws.end(function () {
- t.same(expected.length, 0)
- t.ok(flushed, 'was flushed')
- t.end()
- })
-
- function write (data, enc, cb) {
- t.same(data, expected.shift())
- cb()
- }
-
- function flush (cb) {
- flushed = true
- process.nextTick(cb)
- }
-})
-
-tape('can pass options', function (t) {
- var expected = ['hello', 'world', 'verden']
- var flushed = false
-
- var ws = writer({objectMode: true}, write, flush)
-
- ws.write('hello')
- ws.write('world')
- ws.write('verden')
- ws.end(function () {
- t.same(expected.length, 0)
- t.ok(flushed, 'was flushed')
- t.end()
- })
-
- function write (data, enc, cb) {
- t.same(data, expected.shift())
- cb()
- }
-
- function flush (cb) {
- flushed = true
- process.nextTick(cb)
- }
-})
-
-tape('emits error on destroy', function (t) {
- var expected = new Error()
-
- var ws = writer({objectMode: true}, function () {})
-
- ws.on('error', function (err) {
- t.equal(err, expected)
- })
- ws.on('close', t.end)
-
- ws.destroy(expected)
-})
diff --git a/node_modules/for-in/LICENSE b/node_modules/for-in/LICENSE
deleted file mode 100644
index d734237..0000000
--- a/node_modules/for-in/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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/for-in/README.md b/node_modules/for-in/README.md
deleted file mode 100644
index 874e189..0000000
--- a/node_modules/for-in/README.md
+++ /dev/null
@@ -1,85 +0,0 @@
-# for-in [![NPM version](https://img.shields.io/npm/v/for-in.svg?style=flat)](https://www.npmjs.com/package/for-in) [![NPM monthly downloads](https://img.shields.io/npm/dm/for-in.svg?style=flat)](https://npmjs.org/package/for-in) [![NPM total downloads](https://img.shields.io/npm/dt/for-in.svg?style=flat)](https://npmjs.org/package/for-in) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/for-in.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/for-in)
-
-> Iterate over the own and inherited enumerable properties of an object, and return an object with properties that evaluate to true from the callback. Exit early by returning `false`. JavaScript/Node.js
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save for-in
-```
-
-## Usage
-
-```js
-var forIn = require('for-in');
-
-var obj = {a: 'foo', b: 'bar', c: 'baz'};
-var values = [];
-var keys = [];
-
-forIn(obj, function (value, key, o) {
- keys.push(key);
- values.push(value);
-});
-
-console.log(keys);
-//=> ['a', 'b', 'c'];
-
-console.log(values);
-//=> ['foo', 'bar', 'baz'];
-```
-
-## About
-
-### Related projects
-
-* [arr-flatten](https://www.npmjs.com/package/arr-flatten): Recursively flatten an array or arrays. This is the fastest implementation of array flatten. | [homepage](https://github.com/jonschlinkert/arr-flatten "Recursively flatten an array or arrays. This is the fastest implementation of array flatten.")
-* [collection-map](https://www.npmjs.com/package/collection-map): Returns an array of mapped values from an array or object. | [homepage](https://github.com/jonschlinkert/collection-map "Returns an array of mapped values from an array or object.")
-* [for-own](https://www.npmjs.com/package/for-own): Iterate over the own enumerable properties of an object, and return an object with properties… [more](https://github.com/jonschlinkert/for-own) | [homepage](https://github.com/jonschlinkert/for-own "Iterate over the own enumerable properties of an object, and return an object with properties that evaluate to true from the callback. Exit early by returning `false`. JavaScript/Node.js.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 16 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 2 | [paulirish](https://github.com/paulirish) |
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.4.2, on February 28, 2017._
\ No newline at end of file
diff --git a/node_modules/for-in/index.js b/node_modules/for-in/index.js
deleted file mode 100644
index 0b5f95f..0000000
--- a/node_modules/for-in/index.js
+++ /dev/null
@@ -1,16 +0,0 @@
-/*!
- * for-in
- *
- * Copyright (c) 2014-2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-module.exports = function forIn(obj, fn, thisArg) {
- for (var key in obj) {
- if (fn.call(thisArg, obj[key], key, obj) === false) {
- break;
- }
- }
-};
diff --git a/node_modules/for-in/package.json b/node_modules/for-in/package.json
deleted file mode 100644
index 48810a1..0000000
--- a/node_modules/for-in/package.json
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- "name": "for-in",
- "description": "Iterate over the own and inherited enumerable properties of an object, and return an object with properties that evaluate to true from the callback. Exit early by returning `false`. JavaScript/Node.js",
- "version": "1.0.2",
- "homepage": "https://github.com/jonschlinkert/for-in",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Paul Irish (http://paulirish.com)"
- ],
- "repository": "jonschlinkert/for-in",
- "bugs": {
- "url": "https://github.com/jonschlinkert/for-in/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "devDependencies": {
- "gulp-format-md": "^0.1.11",
- "mocha": "^3.2.0"
- },
- "keywords": [
- "for",
- "for-in",
- "for-own",
- "has",
- "has-own",
- "hasOwn",
- "in",
- "key",
- "keys",
- "object",
- "own",
- "value"
- ],
- "verb": {
- "run": true,
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "arr-flatten",
- "collection-map",
- "for-own"
- ]
- },
- "reflinks": [
- "verb"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/for-own/LICENSE b/node_modules/for-own/LICENSE
deleted file mode 100644
index d290fe0..0000000
--- a/node_modules/for-own/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2015, 2017, 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/for-own/README.md b/node_modules/for-own/README.md
deleted file mode 100644
index fd56877..0000000
--- a/node_modules/for-own/README.md
+++ /dev/null
@@ -1,85 +0,0 @@
-# for-own [![NPM version](https://img.shields.io/npm/v/for-own.svg?style=flat)](https://www.npmjs.com/package/for-own) [![NPM monthly downloads](https://img.shields.io/npm/dm/for-own.svg?style=flat)](https://npmjs.org/package/for-own) [![NPM total downloads](https://img.shields.io/npm/dt/for-own.svg?style=flat)](https://npmjs.org/package/for-own) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/for-own.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/for-own)
-
-> Iterate over the own enumerable properties of an object, and return an object with properties that evaluate to true from the callback. Exit early by returning `false`. JavaScript/Node.js.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save for-own
-```
-
-## Usage
-
-```js
-var forOwn = require('for-own');
-
-var obj = {a: 'foo', b: 'bar', c: 'baz'};
-var values = [];
-var keys = [];
-
-forOwn(obj, function (value, key, o) {
- keys.push(key);
- values.push(value);
-});
-
-console.log(keys);
-//=> ['a', 'b', 'c'];
-
-console.log(values);
-//=> ['foo', 'bar', 'baz'];
-```
-
-## About
-
-### Related projects
-
-* [arr-flatten](https://www.npmjs.com/package/arr-flatten): Recursively flatten an array or arrays. This is the fastest implementation of array flatten. | [homepage](https://github.com/jonschlinkert/arr-flatten "Recursively flatten an array or arrays. This is the fastest implementation of array flatten.")
-* [collection-map](https://www.npmjs.com/package/collection-map): Returns an array of mapped values from an array or object. | [homepage](https://github.com/jonschlinkert/collection-map "Returns an array of mapped values from an array or object.")
-* [for-in](https://www.npmjs.com/package/for-in): Iterate over the own and inherited enumerable properties of an object, and return an object… [more](https://github.com/jonschlinkert/for-in) | [homepage](https://github.com/jonschlinkert/for-in "Iterate over the own and inherited enumerable properties of an object, and return an object with properties that evaluate to true from the callback. Exit early by returning `false`. JavaScript/Node.js")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 10 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 1 | [javiercejudo](https://github.com/javiercejudo) |
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.4.2, on February 26, 2017._
\ No newline at end of file
diff --git a/node_modules/for-own/index.js b/node_modules/for-own/index.js
deleted file mode 100644
index 74e2d75..0000000
--- a/node_modules/for-own/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/*!
- * for-own
- *
- * Copyright (c) 2014-2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-var forIn = require('for-in');
-var hasOwn = Object.prototype.hasOwnProperty;
-
-module.exports = function forOwn(obj, fn, thisArg) {
- forIn(obj, function(val, key) {
- if (hasOwn.call(obj, key)) {
- return fn.call(thisArg, obj[key], key, obj);
- }
- });
-};
diff --git a/node_modules/for-own/package.json b/node_modules/for-own/package.json
deleted file mode 100644
index 5eb73af..0000000
--- a/node_modules/for-own/package.json
+++ /dev/null
@@ -1,70 +0,0 @@
-{
- "name": "for-own",
- "description": "Iterate over the own enumerable properties of an object, and return an object with properties that evaluate to true from the callback. Exit early by returning `false`. JavaScript/Node.js.",
- "version": "1.0.0",
- "homepage": "https://github.com/jonschlinkert/for-own",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Javier Cejudo (https://www.javiercejudo.com)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)"
- ],
- "repository": "jonschlinkert/for-own",
- "bugs": {
- "url": "https://github.com/jonschlinkert/for-own/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "for-in": "^1.0.1"
- },
- "devDependencies": {
- "gulp-format-md": "^0.1.11",
- "mocha": "^3.2.0"
- },
- "keywords": [
- "for",
- "for-in",
- "for-own",
- "has",
- "has-own",
- "hasOwn",
- "key",
- "keys",
- "object",
- "own",
- "value"
- ],
- "verb": {
- "run": true,
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "arr-flatten",
- "collection-map",
- "for-in"
- ]
- },
- "reflinks": [
- "verb"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/fragment-cache/LICENSE b/node_modules/fragment-cache/LICENSE
deleted file mode 100644
index b11cb79..0000000
--- a/node_modules/fragment-cache/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2016-2017, 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/fragment-cache/README.md b/node_modules/fragment-cache/README.md
deleted file mode 100644
index 541ef0f..0000000
--- a/node_modules/fragment-cache/README.md
+++ /dev/null
@@ -1,156 +0,0 @@
-# fragment-cache [![NPM version](https://img.shields.io/npm/v/fragment-cache.svg?style=flat)](https://www.npmjs.com/package/fragment-cache) [![NPM downloads](https://img.shields.io/npm/dm/fragment-cache.svg?style=flat)](https://npmjs.org/package/fragment-cache) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/fragment-cache.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/fragment-cache)
-
-> A cache for managing namespaced sub-caches
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save fragment-cache
-```
-
-## Usage
-
-```js
-var Fragment = require('fragment-cache');
-var fragment = new Fragment();
-```
-
-## API
-
-### [FragmentCache](index.js#L24)
-
-Create a new `FragmentCache` with an optional object to use for `caches`.
-
-**Example**
-
-```js
-var fragment = new FragmentCache();
-```
-
-**Params**
-
-* `cacheName` **{String}**
-* `returns` **{Object}**: Returns the [map-cache](https://github.com/jonschlinkert/map-cache) instance.
-
-### [.cache](index.js#L49)
-
-Get cache `name` from the `fragment.caches` object. Creates a new `MapCache` if it doesn't already exist.
-
-**Example**
-
-```js
-var cache = fragment.cache('files');
-console.log(fragment.caches.hasOwnProperty('files'));
-//=> true
-```
-
-**Params**
-
-* `cacheName` **{String}**
-* `returns` **{Object}**: Returns the [map-cache](https://github.com/jonschlinkert/map-cache) instance.
-
-### [.set](index.js#L67)
-
-Set a value for property `key` on cache `name`
-
-**Example**
-
-```js
-fragment.set('files', 'somefile.js', new File({path: 'somefile.js'}));
-```
-
-**Params**
-
-* `name` **{String}**
-* `key` **{String}**: Property name to set
-* `val` **{any}**: The value of `key`
-* `returns` **{Object}**: The cache instance for chaining
-
-### [.has](index.js#L93)
-
-Returns true if a non-undefined value is set for `key` on fragment cache `name`.
-
-**Example**
-
-```js
-var cache = fragment.cache('files');
-cache.set('somefile.js');
-
-console.log(cache.has('somefile.js'));
-//=> true
-
-console.log(cache.has('some-other-file.js'));
-//=> false
-```
-
-**Params**
-
-* `name` **{String}**: Cache name
-* `key` **{String}**: Optionally specify a property to check for on cache `name`
-* `returns` **{Boolean}**
-
-### [.get](index.js#L115)
-
-Get `name`, or if specified, the value of `key`. Invokes the [cache](#cache) method, so that cache `name` will be created it doesn't already exist. If `key` is not passed, the entire cache (`name`) is returned.
-
-**Example**
-
-```js
-var Vinyl = require('vinyl');
-var cache = fragment.cache('files');
-cache.set('somefile.js', new Vinyl({path: 'somefile.js'}));
-console.log(cache.get('somefile.js'));
-//=>
-```
-
-**Params**
-
-* `name` **{String}**
-* `returns` **{Object}**: Returns cache `name`, or the value of `key` if specified
-
-## About
-
-### Related projects
-
-* [base](https://www.npmjs.com/package/base): base is the foundation for creating modular, unit testable and highly pluggable node.js applications, starting… [more](https://github.com/node-base/base) | [homepage](https://github.com/node-base/base "base is the foundation for creating modular, unit testable and highly pluggable node.js applications, starting with a handful of common methods, like `set`, `get`, `del` and `use`.")
-* [map-cache](https://www.npmjs.com/package/map-cache): Basic cache object for storing key-value pairs. | [homepage](https://github.com/jonschlinkert/map-cache "Basic cache object for storing key-value pairs.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Building docs
-
-_(This document was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme) (a [verb](https://github.com/verbose/verb) generator), please don't edit the readme directly. Any changes to the readme must be made in [.verb.md](.verb.md).)_
-
-To generate the readme and API documentation with [verb](https://github.com/verbose/verb):
-
-```sh
-$ npm install -g verb verb-generate-readme && verb
-```
-
-### Running tests
-
-Install dev dependencies:
-
-```sh
-$ npm install -d && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT license](https://github.com/jonschlinkert/fragment-cache/blob/master/LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.2.0, on October 17, 2016._
\ No newline at end of file
diff --git a/node_modules/fragment-cache/index.js b/node_modules/fragment-cache/index.js
deleted file mode 100644
index 8ce6216..0000000
--- a/node_modules/fragment-cache/index.js
+++ /dev/null
@@ -1,128 +0,0 @@
-/*!
- * fragment-cache
- *
- * Copyright (c) 2016-2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-var MapCache = require('map-cache');
-
-/**
- * Create a new `FragmentCache` with an optional object to use for `caches`.
- *
- * ```js
- * var fragment = new FragmentCache();
- * ```
- * @name FragmentCache
- * @param {String} `cacheName`
- * @return {Object} Returns the [map-cache][] instance.
- * @api public
- */
-
-function FragmentCache(caches) {
- this.caches = caches || {};
-}
-
-/**
- * Prototype
- */
-
-FragmentCache.prototype = {
-
- /**
- * Get cache `name` from the `fragment.caches` object. Creates a new
- * `MapCache` if it doesn't already exist.
- *
- * ```js
- * var cache = fragment.cache('files');
- * console.log(fragment.caches.hasOwnProperty('files'));
- * //=> true
- * ```
- * @name .cache
- * @param {String} `cacheName`
- * @return {Object} Returns the [map-cache][] instance.
- * @api public
- */
-
- cache: function(cacheName) {
- return this.caches[cacheName] || (this.caches[cacheName] = new MapCache());
- },
-
- /**
- * Set a value for property `key` on cache `name`
- *
- * ```js
- * fragment.set('files', 'somefile.js', new File({path: 'somefile.js'}));
- * ```
- * @name .set
- * @param {String} `name`
- * @param {String} `key` Property name to set
- * @param {any} `val` The value of `key`
- * @return {Object} The cache instance for chaining
- * @api public
- */
-
- set: function(cacheName, key, val) {
- var cache = this.cache(cacheName);
- cache.set(key, val);
- return cache;
- },
-
- /**
- * Returns true if a non-undefined value is set for `key` on fragment cache `name`.
- *
- * ```js
- * var cache = fragment.cache('files');
- * cache.set('somefile.js');
- *
- * console.log(cache.has('somefile.js'));
- * //=> true
- *
- * console.log(cache.has('some-other-file.js'));
- * //=> false
- * ```
- * @name .has
- * @param {String} `name` Cache name
- * @param {String} `key` Optionally specify a property to check for on cache `name`
- * @return {Boolean}
- * @api public
- */
-
- has: function(cacheName, key) {
- return typeof this.get(cacheName, key) !== 'undefined';
- },
-
- /**
- * Get `name`, or if specified, the value of `key`. Invokes the [cache]() method,
- * so that cache `name` will be created it doesn't already exist. If `key` is not passed,
- * the entire cache (`name`) is returned.
- *
- * ```js
- * var Vinyl = require('vinyl');
- * var cache = fragment.cache('files');
- * cache.set('somefile.js', new Vinyl({path: 'somefile.js'}));
- * console.log(cache.get('somefile.js'));
- * //=>
- * ```
- * @name .get
- * @param {String} `name`
- * @return {Object} Returns cache `name`, or the value of `key` if specified
- * @api public
- */
-
- get: function(name, key) {
- var cache = this.cache(name);
- if (typeof key === 'string') {
- return cache.get(key);
- }
- return cache;
- }
-};
-
-/**
- * Expose `FragmentCache`
- */
-
-exports = module.exports = FragmentCache;
diff --git a/node_modules/fragment-cache/package.json b/node_modules/fragment-cache/package.json
deleted file mode 100644
index f87c5da..0000000
--- a/node_modules/fragment-cache/package.json
+++ /dev/null
@@ -1,60 +0,0 @@
-{
- "name": "fragment-cache",
- "description": "A cache for managing namespaced sub-caches",
- "version": "0.2.1",
- "homepage": "https://github.com/jonschlinkert/fragment-cache",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/fragment-cache",
- "bugs": {
- "url": "https://github.com/jonschlinkert/fragment-cache/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "map-cache": "^0.2.2"
- },
- "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"
- },
- "keywords": [
- "cache",
- "fragment"
- ],
- "verb": {
- "plugins": [
- "gulp-format-md"
- ],
- "reflinks": [
- "map-cache",
- "verb"
- ],
- "related": {
- "list": [
- "base",
- "map-cache"
- ]
- },
- "layout": "default",
- "toc": false,
- "tasks": [
- "readme"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/fs-mkdirp-stream/LICENSE b/node_modules/fs-mkdirp-stream/LICENSE
deleted file mode 100644
index 73593ac..0000000
--- a/node_modules/fs-mkdirp-stream/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2017 Blaine Bublitz , Eric Schoffstall and other contributors (Originally based on code from node-mkdirp - MIT/X11 license - Copyright 2010 James Halliday)
-
-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/fs-mkdirp-stream/README.md b/node_modules/fs-mkdirp-stream/README.md
deleted file mode 100644
index 819f8a3..0000000
--- a/node_modules/fs-mkdirp-stream/README.md
+++ /dev/null
@@ -1,65 +0,0 @@
-
-
-
-
-
-
-# fs-mkdirp-stream
-
-[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Build Status][travis-image]][travis-url] [![AppVeyor Build Status][appveyor-image]][appveyor-url] [![Coveralls Status][coveralls-image]][coveralls-url] [![Gitter chat][gitter-image]][gitter-url]
-
-Ensure directories exist before writing to them.
-
-## Usage
-
-```js
-var to = require('to2');
-var from = require('from2');
-var mkdirpStream = require('fs-mkdirp-stream');
-
-from.obj([{ dirname: '/path/to/my/', path: '/path/to/my/file.js' }])
- .pipe(mkdirpStream.obj(function(obj, callback) {
- // callback can take 3 arguments (err, dirname, mode)
- callback(null, obj.dirname);
- }))
- .pipe(to.obj(function(obj) {
- // This will be called once the directory exists
- // obj === { dirname: '/path/to/my/', path: '/path/to/my/file.js' }
- }));
-```
-
-## API
-
-### `mkdirpStream(resolver)`
-
-Takes a `resolver` function or string and returns a `through2` stream.
-
-If the `resolver` is a function, it will be called once per chunk with the signature `(chunk, callback)`. The `callback(error, dirpath, mode)` must be called with the `dirpath` to be created as the 2nd parameter or an `error` as the 1st parameter; optionally with a `mode` as the 3rd parameter.
-
-If the `resolver` is a string, it will be created/ensured for each chunk (e.g. if it were deleted between chunks, it would be recreated). When using a string, a custom `mode` can't be used.
-
-### `mkdirpStream.obj(resolver)`
-
-The same as the top-level API but for object streams. See the example to see the benefit of object streams with this module.
-
-## License
-
-MIT
-
-Contains a custom implementation of `mkdirp` originally based on https://github.com/substack/node-mkdirp (Licensed MIT/X11 - Copyright 2010 James Halliday) with heavy modification to better support custom modes.
-
-[downloads-image]: http://img.shields.io/npm/dm/fs-mkdirp-stream.svg
-[npm-url]: https://npmjs.com/package/fs-mkdirp-stream
-[npm-image]: http://img.shields.io/npm/v/fs-mkdirp-stream.svg
-
-[travis-url]: https://travis-ci.org/gulpjs/fs-mkdirp-stream
-[travis-image]: http://img.shields.io/travis/gulpjs/fs-mkdirp-stream.svg?label=travis-ci
-
-[appveyor-url]: https://ci.appveyor.com/project/gulpjs/fs-mkdirp-stream
-[appveyor-image]: https://img.shields.io/appveyor/ci/gulpjs/fs-mkdirp-stream.svg?label=appveyor
-
-[coveralls-url]: https://coveralls.io/r/gulpjs/fs-mkdirp-stream
-[coveralls-image]: http://img.shields.io/coveralls/gulpjs/fs-mkdirp-stream/master.svg
-
-[gitter-url]: https://gitter.im/gulpjs/gulp
-[gitter-image]: https://badges.gitter.im/gulpjs/gulp.png
diff --git a/node_modules/fs-mkdirp-stream/index.js b/node_modules/fs-mkdirp-stream/index.js
deleted file mode 100644
index cde5e19..0000000
--- a/node_modules/fs-mkdirp-stream/index.js
+++ /dev/null
@@ -1,50 +0,0 @@
-'use strict';
-
-var through = require('through2');
-
-var mkdirp = require('./mkdirp');
-
-function toFunction(dirpath) {
- function stringResolver(chunk, callback) {
- callback(null, dirpath);
- }
-
- return stringResolver;
-}
-
-function define(options) {
-
- function mkdirpStream(resolver) {
- // Handle resolver that's just a dirpath
- if (typeof resolver === 'string') {
- resolver = toFunction(resolver);
- }
-
- function makeFileDirs(chunk, enc, callback) {
- resolver(chunk, onDirpath);
-
- function onDirpath(dirpathErr, dirpath, mode) {
- if (dirpathErr) {
- return callback(dirpathErr);
- }
-
- mkdirp(dirpath, mode, onMkdirp);
- }
-
- function onMkdirp(mkdirpErr) {
- if (mkdirpErr) {
- return callback(mkdirpErr);
- }
-
- callback(null, chunk);
- }
- }
-
- return through(options, makeFileDirs);
- }
-
- return mkdirpStream;
-}
-
-module.exports = define();
-module.exports.obj = define({ objectMode: true, highWaterMark: 16 });
diff --git a/node_modules/fs-mkdirp-stream/mkdirp.js b/node_modules/fs-mkdirp-stream/mkdirp.js
deleted file mode 100644
index e70031b..0000000
--- a/node_modules/fs-mkdirp-stream/mkdirp.js
+++ /dev/null
@@ -1,71 +0,0 @@
-'use strict';
-
-var path = require('path');
-
-var fs = require('graceful-fs');
-
-var MASK_MODE = parseInt('7777', 8);
-var DEFAULT_DIR_MODE = parseInt('0777', 8);
-
-function mkdirp(dirpath, customMode, callback) {
- if (typeof customMode === 'function') {
- callback = customMode;
- customMode = undefined;
- }
-
- var mode = customMode || (DEFAULT_DIR_MODE & ~process.umask());
- dirpath = path.resolve(dirpath);
-
- fs.mkdir(dirpath, mode, onMkdir);
-
- function onMkdir(mkdirErr) {
- if (!mkdirErr) {
- return fs.stat(dirpath, onStat);
- }
-
- switch (mkdirErr.code) {
- case 'ENOENT': {
- return mkdirp(path.dirname(dirpath), onRecurse);
- }
-
- case 'EEXIST': {
- return fs.stat(dirpath, onStat);
- }
-
- default: {
- return callback(mkdirErr);
- }
- }
-
- function onStat(statErr, stats) {
- if (statErr) {
- return callback(statErr);
- }
-
- if (!stats.isDirectory()) {
- return callback(mkdirErr);
- }
-
- // TODO: Is it proper to mask like this?
- if ((stats.mode & MASK_MODE) === mode) {
- return callback();
- }
-
- if (!customMode) {
- return callback();
- }
-
- fs.chmod(dirpath, mode, callback);
- }
- }
-
- function onRecurse(recurseErr) {
- if (recurseErr) {
- return callback(recurseErr);
- }
-
- mkdirp(dirpath, mode, callback);
- }
-}
-
-module.exports = mkdirp;
diff --git a/node_modules/fs-mkdirp-stream/package.json b/node_modules/fs-mkdirp-stream/package.json
deleted file mode 100644
index 8bfaacd..0000000
--- a/node_modules/fs-mkdirp-stream/package.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
- "name": "fs-mkdirp-stream",
- "version": "1.0.0",
- "description": "Ensure directories exist before writing to them.",
- "author": "Gulp Team (http://gulpjs.com/)",
- "contributors": [
- "Blaine Bublitz "
- ],
- "repository": "gulpjs/fs-mkdirp-stream",
- "license": "MIT",
- "engines": {
- "node": ">= 0.10"
- },
- "main": "index.js",
- "files": [
- "LICENSE",
- "index.js",
- "mkdirp.js"
- ],
- "scripts": {
- "lint": "eslint index.js mkdirp.js test/ && jscs index.js mkdirp.js test/",
- "pretest": "npm run lint",
- "test": "mocha --async-only",
- "cover": "istanbul cover _mocha --report lcovonly",
- "coveralls": "npm run cover && istanbul-coveralls"
- },
- "dependencies": {
- "graceful-fs": "^4.1.11",
- "through2": "^2.0.3"
- },
- "devDependencies": {
- "eslint": "^1.10.3",
- "eslint-config-gulp": "^2.0.0",
- "expect": "^1.20.2",
- "istanbul": "^0.4.3",
- "istanbul-coveralls": "^1.0.3",
- "jscs": "^2.4.0",
- "jscs-preset-gulp": "^1.0.0",
- "mississippi": "^1.3.0",
- "mocha": "^3.2.0",
- "rimraf": "^2.6.1"
- },
- "keywords": [
- "fs",
- "mkdirp",
- "stream",
- "mkdir",
- "directory",
- "directories",
- "ensure"
- ]
-}
diff --git a/node_modules/fs.realpath/LICENSE b/node_modules/fs.realpath/LICENSE
deleted file mode 100644
index 5bd884c..0000000
--- a/node_modules/fs.realpath/LICENSE
+++ /dev/null
@@ -1,43 +0,0 @@
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-----
-
-This library bundles a version of the `fs.realpath` and `fs.realpathSync`
-methods from Node.js v0.10 under the terms of the Node.js MIT license.
-
-Node's license follows, also included at the header of `old.js` which contains
-the licensed code:
-
- Copyright Joyent, Inc. and other Node contributors.
-
- 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/fs.realpath/README.md b/node_modules/fs.realpath/README.md
deleted file mode 100644
index a42ceac..0000000
--- a/node_modules/fs.realpath/README.md
+++ /dev/null
@@ -1,33 +0,0 @@
-# fs.realpath
-
-A backwards-compatible fs.realpath for Node v6 and above
-
-In Node v6, the JavaScript implementation of fs.realpath was replaced
-with a faster (but less resilient) native implementation. That raises
-new and platform-specific errors and cannot handle long or excessively
-symlink-looping paths.
-
-This module handles those cases by detecting the new errors and
-falling back to the JavaScript implementation. On versions of Node
-prior to v6, it has no effect.
-
-## USAGE
-
-```js
-var rp = require('fs.realpath')
-
-// async version
-rp.realpath(someLongAndLoopingPath, function (er, real) {
- // the ELOOP was handled, but it was a bit slower
-})
-
-// sync version
-var real = rp.realpathSync(someLongAndLoopingPath)
-
-// monkeypatch at your own risk!
-// This replaces the fs.realpath/fs.realpathSync builtins
-rp.monkeypatch()
-
-// un-do the monkeypatching
-rp.unmonkeypatch()
-```
diff --git a/node_modules/fs.realpath/index.js b/node_modules/fs.realpath/index.js
deleted file mode 100644
index b09c7c7..0000000
--- a/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/fs.realpath/old.js b/node_modules/fs.realpath/old.js
deleted file mode 100644
index b40305e..0000000
--- a/node_modules/fs.realpath/old.js
+++ /dev/null
@@ -1,303 +0,0 @@
-// Copyright Joyent, Inc. and other Node contributors.
-//
-// 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.
-
-var pathModule = require('path');
-var isWindows = process.platform === 'win32';
-var fs = require('fs');
-
-// JavaScript implementation of realpath, ported from node pre-v6
-
-var DEBUG = process.env.NODE_DEBUG && /fs/.test(process.env.NODE_DEBUG);
-
-function rethrow() {
- // Only enable in debug mode. A backtrace uses ~1000 bytes of heap space and
- // is fairly slow to generate.
- var callback;
- if (DEBUG) {
- var backtrace = new Error;
- callback = debugCallback;
- } else
- callback = missingCallback;
-
- return callback;
-
- function debugCallback(err) {
- if (err) {
- backtrace.message = err.message;
- err = backtrace;
- missingCallback(err);
- }
- }
-
- function missingCallback(err) {
- if (err) {
- if (process.throwDeprecation)
- throw err; // Forgot a callback but don't know where? Use NODE_DEBUG=fs
- else if (!process.noDeprecation) {
- var msg = 'fs: missing callback ' + (err.stack || err.message);
- if (process.traceDeprecation)
- console.trace(msg);
- else
- console.error(msg);
- }
- }
- }
-}
-
-function maybeCallback(cb) {
- return typeof cb === 'function' ? cb : rethrow();
-}
-
-var normalize = pathModule.normalize;
-
-// Regexp that finds the next partion of a (partial) path
-// result is [base_with_slash, base], e.g. ['somedir/', 'somedir']
-if (isWindows) {
- var nextPartRe = /(.*?)(?:[\/\\]+|$)/g;
-} else {
- var nextPartRe = /(.*?)(?:[\/]+|$)/g;
-}
-
-// Regex to find the device root, including trailing slash. E.g. 'c:\\'.
-if (isWindows) {
- var splitRootRe = /^(?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?[\\\/]*/;
-} else {
- var splitRootRe = /^[\/]*/;
-}
-
-exports.realpathSync = function realpathSync(p, cache) {
- // make p is absolute
- p = pathModule.resolve(p);
-
- if (cache && Object.prototype.hasOwnProperty.call(cache, p)) {
- return cache[p];
- }
-
- var original = p,
- seenLinks = {},
- knownHard = {};
-
- // current character position in p
- var pos;
- // the partial path so far, including a trailing slash if any
- var current;
- // the partial path without a trailing slash (except when pointing at a root)
- var base;
- // the partial path scanned in the previous round, with slash
- var previous;
-
- start();
-
- function start() {
- // Skip over roots
- var m = splitRootRe.exec(p);
- pos = m[0].length;
- current = m[0];
- base = m[0];
- previous = '';
-
- // On windows, check that the root exists. On unix there is no need.
- if (isWindows && !knownHard[base]) {
- fs.lstatSync(base);
- knownHard[base] = true;
- }
- }
-
- // walk down the path, swapping out linked pathparts for their real
- // values
- // NB: p.length changes.
- while (pos < p.length) {
- // find the next part
- nextPartRe.lastIndex = pos;
- var result = nextPartRe.exec(p);
- previous = current;
- current += result[0];
- base = previous + result[1];
- pos = nextPartRe.lastIndex;
-
- // continue if not a symlink
- if (knownHard[base] || (cache && cache[base] === base)) {
- continue;
- }
-
- var resolvedLink;
- if (cache && Object.prototype.hasOwnProperty.call(cache, base)) {
- // some known symbolic link. no need to stat again.
- resolvedLink = cache[base];
- } else {
- var stat = fs.lstatSync(base);
- if (!stat.isSymbolicLink()) {
- knownHard[base] = true;
- if (cache) cache[base] = base;
- continue;
- }
-
- // read the link if it wasn't read before
- // dev/ino always return 0 on windows, so skip the check.
- var linkTarget = null;
- if (!isWindows) {
- var id = stat.dev.toString(32) + ':' + stat.ino.toString(32);
- if (seenLinks.hasOwnProperty(id)) {
- linkTarget = seenLinks[id];
- }
- }
- if (linkTarget === null) {
- fs.statSync(base);
- linkTarget = fs.readlinkSync(base);
- }
- resolvedLink = pathModule.resolve(previous, linkTarget);
- // track this, if given a cache.
- if (cache) cache[base] = resolvedLink;
- if (!isWindows) seenLinks[id] = linkTarget;
- }
-
- // resolve the link, then start over
- p = pathModule.resolve(resolvedLink, p.slice(pos));
- start();
- }
-
- if (cache) cache[original] = p;
-
- return p;
-};
-
-
-exports.realpath = function realpath(p, cache, cb) {
- if (typeof cb !== 'function') {
- cb = maybeCallback(cache);
- cache = null;
- }
-
- // make p is absolute
- p = pathModule.resolve(p);
-
- if (cache && Object.prototype.hasOwnProperty.call(cache, p)) {
- return process.nextTick(cb.bind(null, null, cache[p]));
- }
-
- var original = p,
- seenLinks = {},
- knownHard = {};
-
- // current character position in p
- var pos;
- // the partial path so far, including a trailing slash if any
- var current;
- // the partial path without a trailing slash (except when pointing at a root)
- var base;
- // the partial path scanned in the previous round, with slash
- var previous;
-
- start();
-
- function start() {
- // Skip over roots
- var m = splitRootRe.exec(p);
- pos = m[0].length;
- current = m[0];
- base = m[0];
- previous = '';
-
- // On windows, check that the root exists. On unix there is no need.
- if (isWindows && !knownHard[base]) {
- fs.lstat(base, function(err) {
- if (err) return cb(err);
- knownHard[base] = true;
- LOOP();
- });
- } else {
- process.nextTick(LOOP);
- }
- }
-
- // walk down the path, swapping out linked pathparts for their real
- // values
- function LOOP() {
- // stop if scanned past end of path
- if (pos >= p.length) {
- if (cache) cache[original] = p;
- return cb(null, p);
- }
-
- // find the next part
- nextPartRe.lastIndex = pos;
- var result = nextPartRe.exec(p);
- previous = current;
- current += result[0];
- base = previous + result[1];
- pos = nextPartRe.lastIndex;
-
- // continue if not a symlink
- if (knownHard[base] || (cache && cache[base] === base)) {
- return process.nextTick(LOOP);
- }
-
- if (cache && Object.prototype.hasOwnProperty.call(cache, base)) {
- // known symbolic link. no need to stat again.
- return gotResolvedLink(cache[base]);
- }
-
- return fs.lstat(base, gotStat);
- }
-
- function gotStat(err, stat) {
- if (err) return cb(err);
-
- // if not a symlink, skip to the next path part
- if (!stat.isSymbolicLink()) {
- knownHard[base] = true;
- if (cache) cache[base] = base;
- return process.nextTick(LOOP);
- }
-
- // stat & read the link if not read before
- // call gotTarget as soon as the link target is known
- // dev/ino always return 0 on windows, so skip the check.
- if (!isWindows) {
- var id = stat.dev.toString(32) + ':' + stat.ino.toString(32);
- if (seenLinks.hasOwnProperty(id)) {
- return gotTarget(null, seenLinks[id], base);
- }
- }
- fs.stat(base, function(err) {
- if (err) return cb(err);
-
- fs.readlink(base, function(err, target) {
- if (!isWindows) seenLinks[id] = target;
- gotTarget(err, target);
- });
- });
- }
-
- function gotTarget(err, target, base) {
- if (err) return cb(err);
-
- var resolvedLink = pathModule.resolve(previous, target);
- if (cache) cache[base] = resolvedLink;
- gotResolvedLink(resolvedLink);
- }
-
- function gotResolvedLink(resolvedLink) {
- // resolve the link, then start over
- p = pathModule.resolve(resolvedLink, p.slice(pos));
- start();
- }
-};
diff --git a/node_modules/fs.realpath/package.json b/node_modules/fs.realpath/package.json
deleted file mode 100644
index 3edc57d..0000000
--- a/node_modules/fs.realpath/package.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "name": "fs.realpath",
- "version": "1.0.0",
- "description": "Use node's fs.realpath, but fall back to the JS implementation if the native one fails",
- "main": "index.js",
- "dependencies": {},
- "devDependencies": {},
- "scripts": {
- "test": "tap test/*.js --cov"
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/isaacs/fs.realpath.git"
- },
- "keywords": [
- "realpath",
- "fs",
- "polyfill"
- ],
- "author": "Isaac Z. Schlueter (http://blog.izs.me/)",
- "license": "ISC",
- "files": [
- "old.js",
- "index.js"
- ]
-}
diff --git a/node_modules/function-bind/.editorconfig b/node_modules/function-bind/.editorconfig
deleted file mode 100644
index ac29ade..0000000
--- a/node_modules/function-bind/.editorconfig
+++ /dev/null
@@ -1,20 +0,0 @@
-root = true
-
-[*]
-indent_style = tab
-indent_size = 4
-end_of_line = lf
-charset = utf-8
-trim_trailing_whitespace = true
-insert_final_newline = true
-max_line_length = 120
-
-[CHANGELOG.md]
-indent_style = space
-indent_size = 2
-
-[*.json]
-max_line_length = off
-
-[Makefile]
-max_line_length = off
diff --git a/node_modules/function-bind/.eslintrc b/node_modules/function-bind/.eslintrc
deleted file mode 100644
index 9b33d8e..0000000
--- a/node_modules/function-bind/.eslintrc
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "root": true,
-
- "extends": "@ljharb",
-
- "rules": {
- "func-name-matching": 0,
- "indent": [2, 4],
- "max-nested-callbacks": [2, 3],
- "max-params": [2, 3],
- "max-statements": [2, 20],
- "no-new-func": [1],
- "strict": [0]
- }
-}
diff --git a/node_modules/function-bind/.jscs.json b/node_modules/function-bind/.jscs.json
deleted file mode 100644
index 8c44794..0000000
--- a/node_modules/function-bind/.jscs.json
+++ /dev/null
@@ -1,176 +0,0 @@
-{
- "es3": true,
-
- "additionalRules": [],
-
- "requireSemicolons": true,
-
- "disallowMultipleSpaces": true,
-
- "disallowIdentifierNames": [],
-
- "requireCurlyBraces": {
- "allExcept": [],
- "keywords": ["if", "else", "for", "while", "do", "try", "catch"]
- },
-
- "requireSpaceAfterKeywords": ["if", "else", "for", "while", "do", "switch", "return", "try", "catch", "function"],
-
- "disallowSpaceAfterKeywords": [],
-
- "disallowSpaceBeforeComma": true,
- "disallowSpaceAfterComma": false,
- "disallowSpaceBeforeSemicolon": true,
-
- "disallowNodeTypes": [
- "DebuggerStatement",
- "ForInStatement",
- "LabeledStatement",
- "SwitchCase",
- "SwitchStatement",
- "WithStatement"
- ],
-
- "requireObjectKeysOnNewLine": { "allExcept": ["sameLine"] },
-
- "requireSpacesInAnonymousFunctionExpression": { "beforeOpeningRoundBrace": true, "beforeOpeningCurlyBrace": true },
- "requireSpacesInNamedFunctionExpression": { "beforeOpeningCurlyBrace": true },
- "disallowSpacesInNamedFunctionExpression": { "beforeOpeningRoundBrace": true },
- "requireSpacesInFunctionDeclaration": { "beforeOpeningCurlyBrace": true },
- "disallowSpacesInFunctionDeclaration": { "beforeOpeningRoundBrace": true },
-
- "requireSpaceBetweenArguments": true,
-
- "disallowSpacesInsideParentheses": true,
-
- "disallowSpacesInsideArrayBrackets": true,
-
- "disallowQuotedKeysInObjects": { "allExcept": ["reserved"] },
-
- "disallowSpaceAfterObjectKeys": true,
-
- "requireCommaBeforeLineBreak": true,
-
- "disallowSpaceAfterPrefixUnaryOperators": ["++", "--", "+", "-", "~", "!"],
- "requireSpaceAfterPrefixUnaryOperators": [],
-
- "disallowSpaceBeforePostfixUnaryOperators": ["++", "--"],
- "requireSpaceBeforePostfixUnaryOperators": [],
-
- "disallowSpaceBeforeBinaryOperators": [],
- "requireSpaceBeforeBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!=="],
-
- "requireSpaceAfterBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!=="],
- "disallowSpaceAfterBinaryOperators": [],
-
- "disallowImplicitTypeConversion": ["binary", "string"],
-
- "disallowKeywords": ["with", "eval"],
-
- "requireKeywordsOnNewLine": [],
- "disallowKeywordsOnNewLine": ["else"],
-
- "requireLineFeedAtFileEnd": true,
-
- "disallowTrailingWhitespace": true,
-
- "disallowTrailingComma": true,
-
- "excludeFiles": ["node_modules/**", "vendor/**"],
-
- "disallowMultipleLineStrings": true,
-
- "requireDotNotation": { "allExcept": ["keywords"] },
-
- "requireParenthesesAroundIIFE": true,
-
- "validateLineBreaks": "LF",
-
- "validateQuoteMarks": {
- "escape": true,
- "mark": "'"
- },
-
- "disallowOperatorBeforeLineBreak": [],
-
- "requireSpaceBeforeKeywords": [
- "do",
- "for",
- "if",
- "else",
- "switch",
- "case",
- "try",
- "catch",
- "finally",
- "while",
- "with",
- "return"
- ],
-
- "validateAlignedFunctionParameters": {
- "lineBreakAfterOpeningBraces": true,
- "lineBreakBeforeClosingBraces": true
- },
-
- "requirePaddingNewLinesBeforeExport": true,
-
- "validateNewlineAfterArrayElements": {
- "maximum": 8
- },
-
- "requirePaddingNewLinesAfterUseStrict": true,
-
- "disallowArrowFunctions": true,
-
- "disallowMultiLineTernary": true,
-
- "validateOrderInObjectKeys": "asc-insensitive",
-
- "disallowIdenticalDestructuringNames": true,
-
- "disallowNestedTernaries": { "maxLevel": 1 },
-
- "requireSpaceAfterComma": { "allExcept": ["trailing"] },
- "requireAlignedMultilineParams": false,
-
- "requireSpacesInGenerator": {
- "afterStar": true
- },
-
- "disallowSpacesInGenerator": {
- "beforeStar": true
- },
-
- "disallowVar": false,
-
- "requireArrayDestructuring": false,
-
- "requireEnhancedObjectLiterals": false,
-
- "requireObjectDestructuring": false,
-
- "requireEarlyReturn": false,
-
- "requireCapitalizedConstructorsNew": {
- "allExcept": ["Function", "String", "Object", "Symbol", "Number", "Date", "RegExp", "Error", "Boolean", "Array"]
- },
-
- "requireImportAlphabetized": false,
-
- "requireSpaceBeforeObjectValues": true,
- "requireSpaceBeforeDestructuredValues": true,
-
- "disallowSpacesInsideTemplateStringPlaceholders": true,
-
- "disallowArrayDestructuringReturn": false,
-
- "requireNewlineBeforeSingleStatementsInIf": false,
-
- "disallowUnusedVariables": true,
-
- "requireSpacesInsideImportedObjectBraces": true,
-
- "requireUseStrict": true
-}
-
diff --git a/node_modules/function-bind/.npmignore b/node_modules/function-bind/.npmignore
deleted file mode 100644
index dbb555f..0000000
--- a/node_modules/function-bind/.npmignore
+++ /dev/null
@@ -1,22 +0,0 @@
-# gitignore
-.DS_Store
-.monitor
-.*.swp
-.nodemonignore
-releases
-*.log
-*.err
-fleet.json
-public/browserify
-bin/*.json
-.bin
-build
-compile
-.lock-wscript
-coverage
-node_modules
-
-# Only apps should have lockfiles
-npm-shrinkwrap.json
-package-lock.json
-yarn.lock
diff --git a/node_modules/function-bind/.travis.yml b/node_modules/function-bind/.travis.yml
deleted file mode 100644
index 85f70d2..0000000
--- a/node_modules/function-bind/.travis.yml
+++ /dev/null
@@ -1,168 +0,0 @@
-language: node_js
-os:
- - linux
-node_js:
- - "8.4"
- - "7.10"
- - "6.11"
- - "5.12"
- - "4.8"
- - "iojs-v3.3"
- - "iojs-v2.5"
- - "iojs-v1.8"
- - "0.12"
- - "0.10"
- - "0.8"
-before_install:
- - 'if [ "${TRAVIS_NODE_VERSION}" = "0.6" ]; then npm install -g npm@1.3 ; elif [ "${TRAVIS_NODE_VERSION}" != "0.9" ]; then case "$(npm --version)" in 1.*) npm install -g npm@1.4.28 ;; 2.*) npm install -g npm@2 ;; esac ; fi'
- - 'if [ "${TRAVIS_NODE_VERSION}" != "0.6" ] && [ "${TRAVIS_NODE_VERSION}" != "0.9" ]; then if [ "${TRAVIS_NODE_VERSION%${TRAVIS_NODE_VERSION#[0-9]}}" = "0" ] || [ "${TRAVIS_NODE_VERSION:0:4}" = "iojs" ]; then npm install -g npm@4.5 ; else npm install -g npm; fi; fi'
-install:
- - 'if [ "${TRAVIS_NODE_VERSION}" = "0.6" ]; then nvm install 0.8 && npm install -g npm@1.3 && npm install -g npm@1.4.28 && npm install -g npm@2 && npm install && nvm use "${TRAVIS_NODE_VERSION}"; else npm install; fi;'
-script:
- - 'if [ -n "${PRETEST-}" ]; then npm run pretest ; fi'
- - 'if [ -n "${POSTTEST-}" ]; then npm run posttest ; fi'
- - 'if [ -n "${COVERAGE-}" ]; then npm run coverage ; fi'
- - 'if [ -n "${TEST-}" ]; then npm run tests-only ; fi'
-sudo: false
-env:
- - TEST=true
-matrix:
- fast_finish: true
- include:
- - node_js: "node"
- env: PRETEST=true
- - node_js: "4"
- env: COVERAGE=true
- - node_js: "8.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.9"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.8"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.7"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.10"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.9"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.8"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.7"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.11"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.10"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.9"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.8"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.7"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.7"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v3.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v3.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v3.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v2.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v2.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v2.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v2.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v2.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.7"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "0.11"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "0.9"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "0.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "0.4"
- env: TEST=true ALLOW_FAILURE=true
- allow_failures:
- - os: osx
- - env: TEST=true ALLOW_FAILURE=true
diff --git a/node_modules/function-bind/LICENSE b/node_modules/function-bind/LICENSE
deleted file mode 100644
index 62d6d23..0000000
--- a/node_modules/function-bind/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-Copyright (c) 2013 Raynos.
-
-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/function-bind/README.md b/node_modules/function-bind/README.md
deleted file mode 100644
index 81862a0..0000000
--- a/node_modules/function-bind/README.md
+++ /dev/null
@@ -1,48 +0,0 @@
-# function-bind
-
-
-
-
-
-Implementation of function.prototype.bind
-
-## Example
-
-I mainly do this for unit tests I run on phantomjs.
-PhantomJS does not have Function.prototype.bind :(
-
-```js
-Function.prototype.bind = require("function-bind")
-```
-
-## Installation
-
-`npm install function-bind`
-
-## Contributors
-
- - Raynos
-
-## MIT Licenced
-
- [travis-svg]: https://travis-ci.org/Raynos/function-bind.svg
- [travis-url]: https://travis-ci.org/Raynos/function-bind
- [npm-badge-svg]: https://badge.fury.io/js/function-bind.svg
- [npm-url]: https://npmjs.org/package/function-bind
- [5]: https://coveralls.io/repos/Raynos/function-bind/badge.png
- [6]: https://coveralls.io/r/Raynos/function-bind
- [7]: https://gemnasium.com/Raynos/function-bind.png
- [8]: https://gemnasium.com/Raynos/function-bind
- [deps-svg]: https://david-dm.org/Raynos/function-bind.svg
- [deps-url]: https://david-dm.org/Raynos/function-bind
- [dev-deps-svg]: https://david-dm.org/Raynos/function-bind/dev-status.svg
- [dev-deps-url]: https://david-dm.org/Raynos/function-bind#info=devDependencies
- [11]: https://ci.testling.com/Raynos/function-bind.png
- [12]: https://ci.testling.com/Raynos/function-bind
diff --git a/node_modules/function-bind/implementation.js b/node_modules/function-bind/implementation.js
deleted file mode 100644
index cc4daec..0000000
--- a/node_modules/function-bind/implementation.js
+++ /dev/null
@@ -1,52 +0,0 @@
-'use strict';
-
-/* eslint no-invalid-this: 1 */
-
-var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';
-var slice = Array.prototype.slice;
-var toStr = Object.prototype.toString;
-var funcType = '[object Function]';
-
-module.exports = function bind(that) {
- var target = this;
- if (typeof target !== 'function' || toStr.call(target) !== funcType) {
- throw new TypeError(ERROR_MESSAGE + target);
- }
- var args = slice.call(arguments, 1);
-
- var bound;
- var binder = function () {
- if (this instanceof bound) {
- var result = target.apply(
- this,
- args.concat(slice.call(arguments))
- );
- if (Object(result) === result) {
- return result;
- }
- return this;
- } else {
- return target.apply(
- that,
- args.concat(slice.call(arguments))
- );
- }
- };
-
- var boundLength = Math.max(0, target.length - args.length);
- var boundArgs = [];
- for (var i = 0; i < boundLength; i++) {
- boundArgs.push('$' + i);
- }
-
- bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);
-
- if (target.prototype) {
- var Empty = function Empty() {};
- Empty.prototype = target.prototype;
- bound.prototype = new Empty();
- Empty.prototype = null;
- }
-
- return bound;
-};
diff --git a/node_modules/function-bind/index.js b/node_modules/function-bind/index.js
deleted file mode 100644
index 3bb6b96..0000000
--- a/node_modules/function-bind/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-'use strict';
-
-var implementation = require('./implementation');
-
-module.exports = Function.prototype.bind || implementation;
diff --git a/node_modules/function-bind/package.json b/node_modules/function-bind/package.json
deleted file mode 100644
index 20a1727..0000000
--- a/node_modules/function-bind/package.json
+++ /dev/null
@@ -1,63 +0,0 @@
-{
- "name": "function-bind",
- "version": "1.1.1",
- "description": "Implementation of Function.prototype.bind",
- "keywords": [
- "function",
- "bind",
- "shim",
- "es5"
- ],
- "author": "Raynos ",
- "repository": "git://github.com/Raynos/function-bind.git",
- "main": "index",
- "homepage": "https://github.com/Raynos/function-bind",
- "contributors": [
- {
- "name": "Raynos"
- },
- {
- "name": "Jordan Harband",
- "url": "https://github.com/ljharb"
- }
- ],
- "bugs": {
- "url": "https://github.com/Raynos/function-bind/issues",
- "email": "raynos2@gmail.com"
- },
- "dependencies": {},
- "devDependencies": {
- "@ljharb/eslint-config": "^12.2.1",
- "covert": "^1.1.0",
- "eslint": "^4.5.0",
- "jscs": "^3.0.7",
- "tape": "^4.8.0"
- },
- "license": "MIT",
- "scripts": {
- "pretest": "npm run lint",
- "test": "npm run tests-only",
- "posttest": "npm run coverage -- --quiet",
- "tests-only": "node test",
- "coverage": "covert test/*.js",
- "lint": "npm run jscs && npm run eslint",
- "jscs": "jscs *.js */*.js",
- "eslint": "eslint *.js */*.js"
- },
- "testling": {
- "files": "test/index.js",
- "browsers": [
- "ie/8..latest",
- "firefox/16..latest",
- "firefox/nightly",
- "chrome/22..latest",
- "chrome/canary",
- "opera/12..latest",
- "opera/next",
- "safari/5.1..latest",
- "ipad/6.0..latest",
- "iphone/6.0..latest",
- "android-browser/4.2..latest"
- ]
- }
-}
diff --git a/node_modules/function-bind/test/.eslintrc b/node_modules/function-bind/test/.eslintrc
deleted file mode 100644
index 8a56d5b..0000000
--- a/node_modules/function-bind/test/.eslintrc
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "rules": {
- "array-bracket-newline": 0,
- "array-element-newline": 0,
- "max-statements-per-line": [2, { "max": 2 }],
- "no-invalid-this": 0,
- "no-magic-numbers": 0,
- }
-}
diff --git a/node_modules/function-bind/test/index.js b/node_modules/function-bind/test/index.js
deleted file mode 100644
index 2edecce..0000000
--- a/node_modules/function-bind/test/index.js
+++ /dev/null
@@ -1,252 +0,0 @@
-// jscs:disable requireUseStrict
-
-var test = require('tape');
-
-var functionBind = require('../implementation');
-var getCurrentContext = function () { return this; };
-
-test('functionBind is a function', function (t) {
- t.equal(typeof functionBind, 'function');
- t.end();
-});
-
-test('non-functions', function (t) {
- var nonFunctions = [true, false, [], {}, 42, 'foo', NaN, /a/g];
- t.plan(nonFunctions.length);
- for (var i = 0; i < nonFunctions.length; ++i) {
- try { functionBind.call(nonFunctions[i]); } catch (ex) {
- t.ok(ex instanceof TypeError, 'throws when given ' + String(nonFunctions[i]));
- }
- }
- t.end();
-});
-
-test('without a context', function (t) {
- t.test('binds properly', function (st) {
- var args, context;
- var namespace = {
- func: functionBind.call(function () {
- args = Array.prototype.slice.call(arguments);
- context = this;
- })
- };
- namespace.func(1, 2, 3);
- st.deepEqual(args, [1, 2, 3]);
- st.equal(context, getCurrentContext.call());
- st.end();
- });
-
- t.test('binds properly, and still supplies bound arguments', function (st) {
- var args, context;
- var namespace = {
- func: functionBind.call(function () {
- args = Array.prototype.slice.call(arguments);
- context = this;
- }, undefined, 1, 2, 3)
- };
- namespace.func(4, 5, 6);
- st.deepEqual(args, [1, 2, 3, 4, 5, 6]);
- st.equal(context, getCurrentContext.call());
- st.end();
- });
-
- t.test('returns properly', function (st) {
- var args;
- var namespace = {
- func: functionBind.call(function () {
- args = Array.prototype.slice.call(arguments);
- return this;
- }, null)
- };
- var context = namespace.func(1, 2, 3);
- st.equal(context, getCurrentContext.call(), 'returned context is namespaced context');
- st.deepEqual(args, [1, 2, 3], 'passed arguments are correct');
- st.end();
- });
-
- t.test('returns properly with bound arguments', function (st) {
- var args;
- var namespace = {
- func: functionBind.call(function () {
- args = Array.prototype.slice.call(arguments);
- return this;
- }, null, 1, 2, 3)
- };
- var context = namespace.func(4, 5, 6);
- st.equal(context, getCurrentContext.call(), 'returned context is namespaced context');
- st.deepEqual(args, [1, 2, 3, 4, 5, 6], 'passed arguments are correct');
- st.end();
- });
-
- t.test('called as a constructor', function (st) {
- var thunkify = function (value) {
- return function () { return value; };
- };
- st.test('returns object value', function (sst) {
- var expectedReturnValue = [1, 2, 3];
- var Constructor = functionBind.call(thunkify(expectedReturnValue), null);
- var result = new Constructor();
- sst.equal(result, expectedReturnValue);
- sst.end();
- });
-
- st.test('does not return primitive value', function (sst) {
- var Constructor = functionBind.call(thunkify(42), null);
- var result = new Constructor();
- sst.notEqual(result, 42);
- sst.end();
- });
-
- st.test('object from bound constructor is instance of original and bound constructor', function (sst) {
- var A = function (x) {
- this.name = x || 'A';
- };
- var B = functionBind.call(A, null, 'B');
-
- var result = new B();
- sst.ok(result instanceof B, 'result is instance of bound constructor');
- sst.ok(result instanceof A, 'result is instance of original constructor');
- sst.end();
- });
-
- st.end();
- });
-
- t.end();
-});
-
-test('with a context', function (t) {
- t.test('with no bound arguments', function (st) {
- var args, context;
- var boundContext = {};
- var namespace = {
- func: functionBind.call(function () {
- args = Array.prototype.slice.call(arguments);
- context = this;
- }, boundContext)
- };
- namespace.func(1, 2, 3);
- st.equal(context, boundContext, 'binds a context properly');
- st.deepEqual(args, [1, 2, 3], 'supplies passed arguments');
- st.end();
- });
-
- t.test('with bound arguments', function (st) {
- var args, context;
- var boundContext = {};
- var namespace = {
- func: functionBind.call(function () {
- args = Array.prototype.slice.call(arguments);
- context = this;
- }, boundContext, 1, 2, 3)
- };
- namespace.func(4, 5, 6);
- st.equal(context, boundContext, 'binds a context properly');
- st.deepEqual(args, [1, 2, 3, 4, 5, 6], 'supplies bound and passed arguments');
- st.end();
- });
-
- t.test('returns properly', function (st) {
- var boundContext = {};
- var args;
- var namespace = {
- func: functionBind.call(function () {
- args = Array.prototype.slice.call(arguments);
- return this;
- }, boundContext)
- };
- var context = namespace.func(1, 2, 3);
- st.equal(context, boundContext, 'returned context is bound context');
- st.notEqual(context, getCurrentContext.call(), 'returned context is not lexical context');
- st.deepEqual(args, [1, 2, 3], 'passed arguments are correct');
- st.end();
- });
-
- t.test('returns properly with bound arguments', function (st) {
- var boundContext = {};
- var args;
- var namespace = {
- func: functionBind.call(function () {
- args = Array.prototype.slice.call(arguments);
- return this;
- }, boundContext, 1, 2, 3)
- };
- var context = namespace.func(4, 5, 6);
- st.equal(context, boundContext, 'returned context is bound context');
- st.notEqual(context, getCurrentContext.call(), 'returned context is not lexical context');
- st.deepEqual(args, [1, 2, 3, 4, 5, 6], 'passed arguments are correct');
- st.end();
- });
-
- t.test('passes the correct arguments when called as a constructor', function (st) {
- var expected = { name: 'Correct' };
- var namespace = {
- Func: functionBind.call(function (arg) {
- return arg;
- }, { name: 'Incorrect' })
- };
- var returned = new namespace.Func(expected);
- st.equal(returned, expected, 'returns the right arg when called as a constructor');
- st.end();
- });
-
- t.test('has the new instance\'s context when called as a constructor', function (st) {
- var actualContext;
- var expectedContext = { foo: 'bar' };
- var namespace = {
- Func: functionBind.call(function () {
- actualContext = this;
- }, expectedContext)
- };
- var result = new namespace.Func();
- st.equal(result instanceof namespace.Func, true);
- st.notEqual(actualContext, expectedContext);
- st.end();
- });
-
- t.end();
-});
-
-test('bound function length', function (t) {
- t.test('sets a correct length without thisArg', function (st) {
- var subject = functionBind.call(function (a, b, c) { return a + b + c; });
- st.equal(subject.length, 3);
- st.equal(subject(1, 2, 3), 6);
- st.end();
- });
-
- t.test('sets a correct length with thisArg', function (st) {
- var subject = functionBind.call(function (a, b, c) { return a + b + c; }, {});
- st.equal(subject.length, 3);
- st.equal(subject(1, 2, 3), 6);
- st.end();
- });
-
- t.test('sets a correct length without thisArg and first argument', function (st) {
- var subject = functionBind.call(function (a, b, c) { return a + b + c; }, undefined, 1);
- st.equal(subject.length, 2);
- st.equal(subject(2, 3), 6);
- st.end();
- });
-
- t.test('sets a correct length with thisArg and first argument', function (st) {
- var subject = functionBind.call(function (a, b, c) { return a + b + c; }, {}, 1);
- st.equal(subject.length, 2);
- st.equal(subject(2, 3), 6);
- st.end();
- });
-
- t.test('sets a correct length without thisArg and too many arguments', function (st) {
- var subject = functionBind.call(function (a, b, c) { return a + b + c; }, undefined, 1, 2, 3, 4);
- st.equal(subject.length, 0);
- st.equal(subject(), 6);
- st.end();
- });
-
- t.test('sets a correct length with thisArg and too many arguments', function (st) {
- var subject = functionBind.call(function (a, b, c) { return a + b + c; }, {}, 1, 2, 3, 4);
- st.equal(subject.length, 0);
- st.equal(subject(), 6);
- st.end();
- });
-});
diff --git a/node_modules/get-caller-file/LICENSE.md b/node_modules/get-caller-file/LICENSE.md
deleted file mode 100644
index bf3e1c0..0000000
--- a/node_modules/get-caller-file/LICENSE.md
+++ /dev/null
@@ -1,6 +0,0 @@
-ISC License (ISC)
-Copyright 2018 Stefan Penner
-
-Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/node_modules/get-caller-file/README.md b/node_modules/get-caller-file/README.md
deleted file mode 100644
index 1944927..0000000
--- a/node_modules/get-caller-file/README.md
+++ /dev/null
@@ -1,4 +0,0 @@
-# get-caller-file
-
-[![Build Status](https://travis-ci.org/stefanpenner/get-caller-file.svg?branch=master)](https://travis-ci.org/stefanpenner/get-caller-file)
-[![Build status](https://ci.appveyor.com/api/projects/status/ol2q94g1932cy14a/branch/master?svg=true)](https://ci.appveyor.com/project/embercli/get-caller-file/branch/master)
diff --git a/node_modules/get-caller-file/index.js b/node_modules/get-caller-file/index.js
deleted file mode 100644
index 03e7dfc..0000000
--- a/node_modules/get-caller-file/index.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-// Call this function in a another function to find out the file from
-// which that function was called from. (Inspects the v8 stack trace)
-//
-// Inspired by http://stackoverflow.com/questions/13227489
-
-module.exports = function getCallerFile(_position) {
- var oldPrepareStackTrace = Error.prepareStackTrace;
- Error.prepareStackTrace = function(err, stack) { return stack; };
- var stack = new Error().stack;
- Error.prepareStackTrace = oldPrepareStackTrace;
-
- var position = _position ? _position : 2;
-
- // stack[0] holds this file
- // stack[1] holds where this function was called
- // stack[2] holds the file we're interested in
- return stack[position] ? stack[position].getFileName() : undefined;
-};
diff --git a/node_modules/get-caller-file/package.json b/node_modules/get-caller-file/package.json
deleted file mode 100644
index eb121a6..0000000
--- a/node_modules/get-caller-file/package.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "name": "get-caller-file",
- "version": "1.0.3",
- "description": "",
- "main": "index.js",
- "directories": {
- "test": "tests"
- },
- "files": [
- "index.js"
- ],
- "scripts": {
- "test": "mocha test",
- "test:debug": "mocha test"
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/stefanpenner/get-caller-file.git"
- },
- "author": "Stefan Penner",
- "license": "ISC",
- "bugs": {
- "url": "https://github.com/stefanpenner/get-caller-file/issues"
- },
- "homepage": "https://github.com/stefanpenner/get-caller-file#readme",
- "devDependencies": {
- "chai": "^4.1.2",
- "ensure-posix-path": "^1.0.1",
- "mocha": "^5.2.0"
- }
-}
diff --git a/node_modules/get-intrinsic/.eslintignore b/node_modules/get-intrinsic/.eslintignore
deleted file mode 100644
index 404abb2..0000000
--- a/node_modules/get-intrinsic/.eslintignore
+++ /dev/null
@@ -1 +0,0 @@
-coverage/
diff --git a/node_modules/get-intrinsic/.eslintrc b/node_modules/get-intrinsic/.eslintrc
deleted file mode 100644
index d04e483..0000000
--- a/node_modules/get-intrinsic/.eslintrc
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "root": true,
-
- "extends": "@ljharb",
-
- "env": {
- "es6": true,
- "es2017": true,
- "es2020": true,
- "es2021": true,
- },
-
- "globals": {
- "AggregateError": false,
- },
-
- "rules": {
- "array-bracket-newline": 0,
- "array-element-newline": 0,
- "complexity": 0,
- "eqeqeq": [2, "allow-null"],
- "func-name-matching": 0,
- "id-length": 0,
- "max-lines-per-function": [2, 80],
- "max-params": [2, 4],
- "max-statements": 0,
- "max-statements-per-line": [2, { "max": 2 }],
- "multiline-comment-style": 0,
- "no-magic-numbers": 0,
- "operator-linebreak": [2, "before"],
- "sort-keys": 0,
- },
-
- "overrides": [
- {
- "files": "test/**",
- "rules": {
- "max-lines-per-function": 0,
- "new-cap": 0,
- },
- },
- ],
-}
diff --git a/node_modules/get-intrinsic/.github/FUNDING.yml b/node_modules/get-intrinsic/.github/FUNDING.yml
deleted file mode 100644
index 8e8da0d..0000000
--- a/node_modules/get-intrinsic/.github/FUNDING.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-# These are supported funding model platforms
-
-github: [ljharb]
-patreon: # Replace with a single Patreon username
-open_collective: # Replace with a single Open Collective username
-ko_fi: # Replace with a single Ko-fi username
-tidelift: npm/get-intrinsic
-community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
-liberapay: # Replace with a single Liberapay username
-issuehunt: # Replace with a single IssueHunt username
-otechie: # Replace with a single Otechie username
-custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
diff --git a/node_modules/get-intrinsic/.nycrc b/node_modules/get-intrinsic/.nycrc
deleted file mode 100644
index 1826526..0000000
--- a/node_modules/get-intrinsic/.nycrc
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "all": true,
- "check-coverage": false,
- "reporter": ["text-summary", "text", "html", "json"],
- "lines": 86,
- "statements": 85.93,
- "functions": 82.43,
- "branches": 76.06,
- "exclude": [
- "coverage",
- "test"
- ]
-}
diff --git a/node_modules/get-intrinsic/CHANGELOG.md b/node_modules/get-intrinsic/CHANGELOG.md
deleted file mode 100644
index 32502ec..0000000
--- a/node_modules/get-intrinsic/CHANGELOG.md
+++ /dev/null
@@ -1,64 +0,0 @@
-# Changelog
-
-All notable changes to this project will be documented in this file.
-
-The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
-and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-
-## [v1.1.1](https://github.com/ljharb/get-intrinsic/compare/v1.1.0...v1.1.1) - 2021-02-03
-
-### Fixed
-
-- [meta] export `./package.json` [`#9`](https://github.com/ljharb/get-intrinsic/issues/9)
-
-### Commits
-
-- [readme] flesh out the readme; use `evalmd` [`d12f12c`](https://github.com/ljharb/get-intrinsic/commit/d12f12c15345a0a0772cc65a7c64369529abd614)
-- [eslint] set up proper globals config [`5a8c098`](https://github.com/ljharb/get-intrinsic/commit/5a8c0984e3319d1ac0e64b102f8ec18b64e79f36)
-- [Dev Deps] update `eslint` [`7b9a5c0`](https://github.com/ljharb/get-intrinsic/commit/7b9a5c0d31a90ca1a1234181c74988fb046701cd)
-
-## [v1.1.0](https://github.com/ljharb/get-intrinsic/compare/v1.0.2...v1.1.0) - 2021-01-25
-
-### Fixed
-
-- [Refactor] delay `Function` eval until syntax-derived values are requested [`#3`](https://github.com/ljharb/get-intrinsic/issues/3)
-
-### Commits
-
-- [Tests] migrate tests to Github Actions [`2ab762b`](https://github.com/ljharb/get-intrinsic/commit/2ab762b48164aea8af37a40ba105bbc8246ab8c4)
-- [meta] do not publish github action workflow files [`5e7108e`](https://github.com/ljharb/get-intrinsic/commit/5e7108e4768b244d48d9567ba4f8a6cab9c65b8e)
-- [Tests] add some coverage [`01ac7a8`](https://github.com/ljharb/get-intrinsic/commit/01ac7a87ac29738567e8524cd8c9e026b1fa8cb3)
-- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `call-bind`, `es-abstract`, `tape`; add `call-bind` [`911b672`](https://github.com/ljharb/get-intrinsic/commit/911b672fbffae433a96924c6ce013585e425f4b7)
-- [Refactor] rearrange evalled constructors a bit [`7e7e4bf`](https://github.com/ljharb/get-intrinsic/commit/7e7e4bf583f3799c8ac1c6c5e10d2cb553957347)
-- [meta] add Automatic Rebase and Require Allow Edits workflows [`0199968`](https://github.com/ljharb/get-intrinsic/commit/01999687a263ffce0a3cb011dfbcb761754aedbc)
-
-## [v1.0.2](https://github.com/ljharb/get-intrinsic/compare/v1.0.1...v1.0.2) - 2020-12-17
-
-### Commits
-
-- [Fix] Throw for non‑existent intrinsics [`68f873b`](https://github.com/ljharb/get-intrinsic/commit/68f873b013c732a05ad6f5fc54f697e55515461b)
-- [Fix] Throw for non‑existent segments in the intrinsic path [`8325dee`](https://github.com/ljharb/get-intrinsic/commit/8325deee43128f3654d3399aa9591741ebe17b21)
-- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `has-bigints`, `object-inspect` [`0c227a7`](https://github.com/ljharb/get-intrinsic/commit/0c227a7d8b629166f25715fd242553892e458525)
-- [meta] do not lint coverage output [`70d2419`](https://github.com/ljharb/get-intrinsic/commit/70d24199b620043cd9110fc5f426d214ebe21dc9)
-
-## [v1.0.1](https://github.com/ljharb/get-intrinsic/compare/v1.0.0...v1.0.1) - 2020-10-30
-
-### Commits
-
-- [Tests] gather coverage data on every job [`d1d280d`](https://github.com/ljharb/get-intrinsic/commit/d1d280dec714e3f0519cc877dbcb193057d9cac6)
-- [Fix] add missing dependencies [`5031771`](https://github.com/ljharb/get-intrinsic/commit/5031771bb1095b38be88ce7c41d5de88718e432e)
-- [Tests] use `es-value-fixtures` [`af48765`](https://github.com/ljharb/get-intrinsic/commit/af48765a23c5323fb0b6b38dbf00eb5099c7bebc)
-
-## v1.0.0 - 2020-10-29
-
-### Commits
-
-- Implementation [`bbce57c`](https://github.com/ljharb/get-intrinsic/commit/bbce57c6f33d05b2d8d3efa273ceeb3ee01127bb)
-- Tests [`17b4f0d`](https://github.com/ljharb/get-intrinsic/commit/17b4f0d56dea6b4059b56fc30ef3ee4d9500ebc2)
-- Initial commit [`3153294`](https://github.com/ljharb/get-intrinsic/commit/31532948de363b0a27dd9fd4649e7b7028ec4b44)
-- npm init [`fb326c4`](https://github.com/ljharb/get-intrinsic/commit/fb326c4d2817c8419ec31de1295f06bb268a7902)
-- [meta] add Automatic Rebase and Require Allow Edits workflows [`48862fb`](https://github.com/ljharb/get-intrinsic/commit/48862fb2508c8f6a57968e6d08b7c883afc9d550)
-- [meta] add `auto-changelog` [`5f28ad0`](https://github.com/ljharb/get-intrinsic/commit/5f28ad019e060a353d8028f9f2591a9cc93074a1)
-- [meta] add "funding"; create `FUNDING.yml` [`c2bbdde`](https://github.com/ljharb/get-intrinsic/commit/c2bbddeba73a875be61484ee4680b129a6d4e0a1)
-- [Tests] add `npm run lint` [`0a84b98`](https://github.com/ljharb/get-intrinsic/commit/0a84b98b22b7cf7a748666f705b0003a493c35fd)
-- Only apps should have lockfiles [`9586c75`](https://github.com/ljharb/get-intrinsic/commit/9586c75866c1ee678e4d5d4dbbdef6997e511b05)
diff --git a/node_modules/get-intrinsic/LICENSE b/node_modules/get-intrinsic/LICENSE
deleted file mode 100644
index 48f05d0..0000000
--- a/node_modules/get-intrinsic/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2020 Jordan Harband
-
-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/get-intrinsic/README.md b/node_modules/get-intrinsic/README.md
deleted file mode 100644
index 335a3b4..0000000
--- a/node_modules/get-intrinsic/README.md
+++ /dev/null
@@ -1,65 +0,0 @@
-# get-intrinsic [![Version Badge][npm-version-svg]][package-url]
-
-[![dependency status][deps-svg]][deps-url]
-[![dev dependency status][dev-deps-svg]][dev-deps-url]
-[![License][license-image]][license-url]
-[![Downloads][downloads-image]][downloads-url]
-
-[![npm badge][npm-badge-png]][package-url]
-
-Get and robustly cache all JS language-level intrinsics at first require time.
-
-See the syntax described [in the JS spec](https://tc39.es/ecma262/#sec-well-known-intrinsic-objects) for reference.
-
-## Example
-
-```js
-var GetIntrinsic = require('get-intrinsic');
-var assert = require('assert');
-
-// static methods
-assert.equal(GetIntrinsic('%Math.pow%'), Math.pow);
-assert.equal(Math.pow(2, 3), 8);
-assert.equal(GetIntrinsic('%Math.pow%')(2, 3), 8);
-delete Math.pow;
-assert.equal(GetIntrinsic('%Math.pow%')(2, 3), 8);
-
-// instance methods
-var arr = [1];
-assert.equal(GetIntrinsic('%Array.prototype.push%'), Array.prototype.push);
-assert.deepEqual(arr, [1]);
-
-arr.push(2);
-assert.deepEqual(arr, [1, 2]);
-
-GetIntrinsic('%Array.prototype.push%').call(arr, 3);
-assert.deepEqual(arr, [1, 2, 3]);
-
-delete Array.prototype.push;
-GetIntrinsic('%Array.prototype.push%').call(arr, 4);
-assert.deepEqual(arr, [1, 2, 3, 4]);
-
-// missing features
-delete JSON.parse; // to simulate a real intrinsic that is missing in the environment
-assert.throws(() => GetIntrinsic('%JSON.parse%'));
-assert.equal(undefined, GetIntrinsic('%JSON.parse%', true));
-```
-
-## Tests
-Simply clone the repo, `npm install`, and run `npm test`
-
-## Security
-
-Please email [@ljharb](https://github.com/ljharb) or see https://tidelift.com/security if you have a potential security vulnerability to report.
-
-[package-url]: https://npmjs.org/package/get-intrinsic
-[npm-version-svg]: http://versionbadg.es/ljharb/get-intrinsic.svg
-[deps-svg]: https://david-dm.org/ljharb/get-intrinsic.svg
-[deps-url]: https://david-dm.org/ljharb/get-intrinsic
-[dev-deps-svg]: https://david-dm.org/ljharb/get-intrinsic/dev-status.svg
-[dev-deps-url]: https://david-dm.org/ljharb/get-intrinsic#info=devDependencies
-[npm-badge-png]: https://nodei.co/npm/get-intrinsic.png?downloads=true&stars=true
-[license-image]: https://img.shields.io/npm/l/get-intrinsic.svg
-[license-url]: LICENSE
-[downloads-image]: https://img.shields.io/npm/dm/get-intrinsic.svg
-[downloads-url]: https://npm-stat.com/charts.html?package=get-intrinsic
diff --git a/node_modules/get-intrinsic/index.js b/node_modules/get-intrinsic/index.js
deleted file mode 100644
index d6c06c2..0000000
--- a/node_modules/get-intrinsic/index.js
+++ /dev/null
@@ -1,330 +0,0 @@
-'use strict';
-
-var undefined;
-
-var $SyntaxError = SyntaxError;
-var $Function = Function;
-var $TypeError = TypeError;
-
-// eslint-disable-next-line consistent-return
-var getEvalledConstructor = function (expressionSyntax) {
- try {
- return $Function('"use strict"; return (' + expressionSyntax + ').constructor;')();
- } catch (e) {}
-};
-
-var $gOPD = Object.getOwnPropertyDescriptor;
-if ($gOPD) {
- try {
- $gOPD({}, '');
- } catch (e) {
- $gOPD = null; // this is IE 8, which has a broken gOPD
- }
-}
-
-var throwTypeError = function () {
- throw new $TypeError();
-};
-var ThrowTypeError = $gOPD
- ? (function () {
- try {
- // eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties
- arguments.callee; // IE 8 does not throw here
- return throwTypeError;
- } catch (calleeThrows) {
- try {
- // IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')
- return $gOPD(arguments, 'callee').get;
- } catch (gOPDthrows) {
- return throwTypeError;
- }
- }
- }())
- : throwTypeError;
-
-var hasSymbols = require('has-symbols')();
-
-var getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto
-
-var needsEval = {};
-
-var TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);
-
-var INTRINSICS = {
- '%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,
- '%Array%': Array,
- '%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,
- '%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,
- '%AsyncFromSyncIteratorPrototype%': undefined,
- '%AsyncFunction%': needsEval,
- '%AsyncGenerator%': needsEval,
- '%AsyncGeneratorFunction%': needsEval,
- '%AsyncIteratorPrototype%': needsEval,
- '%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,
- '%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,
- '%Boolean%': Boolean,
- '%DataView%': typeof DataView === 'undefined' ? undefined : DataView,
- '%Date%': Date,
- '%decodeURI%': decodeURI,
- '%decodeURIComponent%': decodeURIComponent,
- '%encodeURI%': encodeURI,
- '%encodeURIComponent%': encodeURIComponent,
- '%Error%': Error,
- '%eval%': eval, // eslint-disable-line no-eval
- '%EvalError%': EvalError,
- '%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,
- '%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,
- '%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,
- '%Function%': $Function,
- '%GeneratorFunction%': needsEval,
- '%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,
- '%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,
- '%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,
- '%isFinite%': isFinite,
- '%isNaN%': isNaN,
- '%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,
- '%JSON%': typeof JSON === 'object' ? JSON : undefined,
- '%Map%': typeof Map === 'undefined' ? undefined : Map,
- '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),
- '%Math%': Math,
- '%Number%': Number,
- '%Object%': Object,
- '%parseFloat%': parseFloat,
- '%parseInt%': parseInt,
- '%Promise%': typeof Promise === 'undefined' ? undefined : Promise,
- '%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,
- '%RangeError%': RangeError,
- '%ReferenceError%': ReferenceError,
- '%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,
- '%RegExp%': RegExp,
- '%Set%': typeof Set === 'undefined' ? undefined : Set,
- '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),
- '%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,
- '%String%': String,
- '%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,
- '%Symbol%': hasSymbols ? Symbol : undefined,
- '%SyntaxError%': $SyntaxError,
- '%ThrowTypeError%': ThrowTypeError,
- '%TypedArray%': TypedArray,
- '%TypeError%': $TypeError,
- '%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,
- '%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,
- '%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,
- '%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,
- '%URIError%': URIError,
- '%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,
- '%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,
- '%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet
-};
-
-var doEval = function doEval(name) {
- var value;
- if (name === '%AsyncFunction%') {
- value = getEvalledConstructor('async function () {}');
- } else if (name === '%GeneratorFunction%') {
- value = getEvalledConstructor('function* () {}');
- } else if (name === '%AsyncGeneratorFunction%') {
- value = getEvalledConstructor('async function* () {}');
- } else if (name === '%AsyncGenerator%') {
- var fn = doEval('%AsyncGeneratorFunction%');
- if (fn) {
- value = fn.prototype;
- }
- } else if (name === '%AsyncIteratorPrototype%') {
- var gen = doEval('%AsyncGenerator%');
- if (gen) {
- value = getProto(gen.prototype);
- }
- }
-
- INTRINSICS[name] = value;
-
- return value;
-};
-
-var LEGACY_ALIASES = {
- '%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],
- '%ArrayPrototype%': ['Array', 'prototype'],
- '%ArrayProto_entries%': ['Array', 'prototype', 'entries'],
- '%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],
- '%ArrayProto_keys%': ['Array', 'prototype', 'keys'],
- '%ArrayProto_values%': ['Array', 'prototype', 'values'],
- '%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],
- '%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],
- '%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],
- '%BooleanPrototype%': ['Boolean', 'prototype'],
- '%DataViewPrototype%': ['DataView', 'prototype'],
- '%DatePrototype%': ['Date', 'prototype'],
- '%ErrorPrototype%': ['Error', 'prototype'],
- '%EvalErrorPrototype%': ['EvalError', 'prototype'],
- '%Float32ArrayPrototype%': ['Float32Array', 'prototype'],
- '%Float64ArrayPrototype%': ['Float64Array', 'prototype'],
- '%FunctionPrototype%': ['Function', 'prototype'],
- '%Generator%': ['GeneratorFunction', 'prototype'],
- '%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],
- '%Int8ArrayPrototype%': ['Int8Array', 'prototype'],
- '%Int16ArrayPrototype%': ['Int16Array', 'prototype'],
- '%Int32ArrayPrototype%': ['Int32Array', 'prototype'],
- '%JSONParse%': ['JSON', 'parse'],
- '%JSONStringify%': ['JSON', 'stringify'],
- '%MapPrototype%': ['Map', 'prototype'],
- '%NumberPrototype%': ['Number', 'prototype'],
- '%ObjectPrototype%': ['Object', 'prototype'],
- '%ObjProto_toString%': ['Object', 'prototype', 'toString'],
- '%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],
- '%PromisePrototype%': ['Promise', 'prototype'],
- '%PromiseProto_then%': ['Promise', 'prototype', 'then'],
- '%Promise_all%': ['Promise', 'all'],
- '%Promise_reject%': ['Promise', 'reject'],
- '%Promise_resolve%': ['Promise', 'resolve'],
- '%RangeErrorPrototype%': ['RangeError', 'prototype'],
- '%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],
- '%RegExpPrototype%': ['RegExp', 'prototype'],
- '%SetPrototype%': ['Set', 'prototype'],
- '%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],
- '%StringPrototype%': ['String', 'prototype'],
- '%SymbolPrototype%': ['Symbol', 'prototype'],
- '%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],
- '%TypedArrayPrototype%': ['TypedArray', 'prototype'],
- '%TypeErrorPrototype%': ['TypeError', 'prototype'],
- '%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],
- '%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],
- '%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],
- '%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],
- '%URIErrorPrototype%': ['URIError', 'prototype'],
- '%WeakMapPrototype%': ['WeakMap', 'prototype'],
- '%WeakSetPrototype%': ['WeakSet', 'prototype']
-};
-
-var bind = require('function-bind');
-var hasOwn = require('has');
-var $concat = bind.call(Function.call, Array.prototype.concat);
-var $spliceApply = bind.call(Function.apply, Array.prototype.splice);
-var $replace = bind.call(Function.call, String.prototype.replace);
-var $strSlice = bind.call(Function.call, String.prototype.slice);
-
-/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */
-var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g;
-var reEscapeChar = /\\(\\)?/g; /** Used to match backslashes in property paths. */
-var stringToPath = function stringToPath(string) {
- var first = $strSlice(string, 0, 1);
- var last = $strSlice(string, -1);
- if (first === '%' && last !== '%') {
- throw new $SyntaxError('invalid intrinsic syntax, expected closing `%`');
- } else if (last === '%' && first !== '%') {
- throw new $SyntaxError('invalid intrinsic syntax, expected opening `%`');
- }
- var result = [];
- $replace(string, rePropName, function (match, number, quote, subString) {
- result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;
- });
- return result;
-};
-/* end adaptation */
-
-var getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {
- var intrinsicName = name;
- var alias;
- if (hasOwn(LEGACY_ALIASES, intrinsicName)) {
- alias = LEGACY_ALIASES[intrinsicName];
- intrinsicName = '%' + alias[0] + '%';
- }
-
- if (hasOwn(INTRINSICS, intrinsicName)) {
- var value = INTRINSICS[intrinsicName];
- if (value === needsEval) {
- value = doEval(intrinsicName);
- }
- if (typeof value === 'undefined' && !allowMissing) {
- throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');
- }
-
- return {
- alias: alias,
- name: intrinsicName,
- value: value
- };
- }
-
- throw new $SyntaxError('intrinsic ' + name + ' does not exist!');
-};
-
-module.exports = function GetIntrinsic(name, allowMissing) {
- if (typeof name !== 'string' || name.length === 0) {
- throw new $TypeError('intrinsic name must be a non-empty string');
- }
- if (arguments.length > 1 && typeof allowMissing !== 'boolean') {
- throw new $TypeError('"allowMissing" argument must be a boolean');
- }
-
- var parts = stringToPath(name);
- var intrinsicBaseName = parts.length > 0 ? parts[0] : '';
-
- var intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);
- var intrinsicRealName = intrinsic.name;
- var value = intrinsic.value;
- var skipFurtherCaching = false;
-
- var alias = intrinsic.alias;
- if (alias) {
- intrinsicBaseName = alias[0];
- $spliceApply(parts, $concat([0, 1], alias));
- }
-
- for (var i = 1, isOwn = true; i < parts.length; i += 1) {
- var part = parts[i];
- var first = $strSlice(part, 0, 1);
- var last = $strSlice(part, -1);
- if (
- (
- (first === '"' || first === "'" || first === '`')
- || (last === '"' || last === "'" || last === '`')
- )
- && first !== last
- ) {
- throw new $SyntaxError('property names with quotes must have matching quotes');
- }
- if (part === 'constructor' || !isOwn) {
- skipFurtherCaching = true;
- }
-
- intrinsicBaseName += '.' + part;
- intrinsicRealName = '%' + intrinsicBaseName + '%';
-
- if (hasOwn(INTRINSICS, intrinsicRealName)) {
- value = INTRINSICS[intrinsicRealName];
- } else if (value != null) {
- if (!(part in value)) {
- if (!allowMissing) {
- throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');
- }
- return void undefined;
- }
- if ($gOPD && (i + 1) >= parts.length) {
- var desc = $gOPD(value, part);
- isOwn = !!desc;
-
- // By convention, when a data property is converted to an accessor
- // property to emulate a data property that does not suffer from
- // the override mistake, that accessor's getter is marked with
- // an `originalValue` property. Here, when we detect this, we
- // uphold the illusion by pretending to see that original data
- // property, i.e., returning the value rather than the getter
- // itself.
- if (isOwn && 'get' in desc && !('originalValue' in desc.get)) {
- value = desc.get;
- } else {
- value = value[part];
- }
- } else {
- isOwn = hasOwn(value, part);
- value = value[part];
- }
-
- if (isOwn && !skipFurtherCaching) {
- INTRINSICS[intrinsicRealName] = value;
- }
- }
- }
- return value;
-};
diff --git a/node_modules/get-intrinsic/package.json b/node_modules/get-intrinsic/package.json
deleted file mode 100644
index d34894a..0000000
--- a/node_modules/get-intrinsic/package.json
+++ /dev/null
@@ -1,78 +0,0 @@
-{
- "name": "get-intrinsic",
- "version": "1.1.1",
- "description": "Get and robustly cache all JS language-level intrinsics at first require time",
- "main": "index.js",
- "exports": {
- ".": [
- {
- "default": "./index.js"
- },
- "./index.js"
- ],
- "./package.json": "./package.json"
- },
- "scripts": {
- "prelint": "evalmd README.md",
- "lint": "eslint --ext=.js,.mjs .",
- "pretest": "npm run lint",
- "tests-only": "nyc tape 'test/**/*.js'",
- "test": "npm run tests-only",
- "posttest": "aud --production",
- "version": "auto-changelog && git add CHANGELOG.md",
- "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\""
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/ljharb/get-intrinsic.git"
- },
- "keywords": [
- "javascript",
- "ecmascript",
- "es",
- "js",
- "intrinsic",
- "getintrinsic",
- "es-abstract"
- ],
- "author": "Jordan Harband ",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- },
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/ljharb/get-intrinsic/issues"
- },
- "homepage": "https://github.com/ljharb/get-intrinsic#readme",
- "devDependencies": {
- "@ljharb/eslint-config": "^17.5.0",
- "aud": "^1.1.3",
- "auto-changelog": "^2.2.1",
- "call-bind": "^1.0.2",
- "es-abstract": "^1.18.0-next.2",
- "es-value-fixtures": "^1.0.0",
- "eslint": "^7.19.0",
- "evalmd": "^0.0.19",
- "foreach": "^2.0.5",
- "has-bigints": "^1.0.1",
- "make-async-function": "^1.0.0",
- "make-async-generator-function": "^1.0.0",
- "make-generator-function": "^2.0.0",
- "nyc": "^10.3.2",
- "object-inspect": "^1.9.0",
- "tape": "^5.1.1"
- },
- "auto-changelog": {
- "output": "CHANGELOG.md",
- "template": "keepachangelog",
- "unreleased": false,
- "commitLimit": false,
- "backfillLimit": false,
- "hideCredit": true
- },
- "dependencies": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1"
- }
-}
diff --git a/node_modules/get-intrinsic/test/GetIntrinsic.js b/node_modules/get-intrinsic/test/GetIntrinsic.js
deleted file mode 100644
index 695e3ad..0000000
--- a/node_modules/get-intrinsic/test/GetIntrinsic.js
+++ /dev/null
@@ -1,260 +0,0 @@
-'use strict';
-
-var GetIntrinsic = require('../');
-
-var test = require('tape');
-var forEach = require('foreach');
-var debug = require('object-inspect');
-var generatorFns = require('make-generator-function')();
-var asyncFns = require('make-async-function').list();
-var asyncGenFns = require('make-async-generator-function')();
-
-var callBound = require('call-bind/callBound');
-var v = require('es-value-fixtures');
-var $gOPD = require('es-abstract/helpers/getOwnPropertyDescriptor');
-var defineProperty = require('es-abstract/test/helpers/defineProperty');
-
-var $isProto = callBound('%Object.prototype.isPrototypeOf%');
-
-test('export', function (t) {
- t.equal(typeof GetIntrinsic, 'function', 'it is a function');
- t.equal(GetIntrinsic.length, 2, 'function has length of 2');
-
- t.end();
-});
-
-test('throws', function (t) {
- t['throws'](
- function () { GetIntrinsic('not an intrinsic'); },
- SyntaxError,
- 'nonexistent intrinsic throws a syntax error'
- );
-
- t['throws'](
- function () { GetIntrinsic(''); },
- TypeError,
- 'empty string intrinsic throws a type error'
- );
-
- t['throws'](
- function () { GetIntrinsic('.'); },
- SyntaxError,
- '"just a dot" intrinsic throws a syntax error'
- );
-
- t['throws'](
- function () { GetIntrinsic('%String'); },
- SyntaxError,
- 'Leading % without trailing % throws a syntax error'
- );
-
- t['throws'](
- function () { GetIntrinsic('String%'); },
- SyntaxError,
- 'Trailing % without leading % throws a syntax error'
- );
-
- t['throws'](
- function () { GetIntrinsic("String['prototype]"); },
- SyntaxError,
- 'Dynamic property access is disallowed for intrinsics (unterminated string)'
- );
-
- t['throws'](
- function () { GetIntrinsic('%Proxy.prototype.undefined%'); },
- TypeError,
- "Throws when middle part doesn't exist (%Proxy.prototype.undefined%)"
- );
-
- forEach(v.nonStrings, function (nonString) {
- t['throws'](
- function () { GetIntrinsic(nonString); },
- TypeError,
- debug(nonString) + ' is not a String'
- );
- });
-
- forEach(v.nonBooleans, function (nonBoolean) {
- t['throws'](
- function () { GetIntrinsic('%', nonBoolean); },
- TypeError,
- debug(nonBoolean) + ' is not a Boolean'
- );
- });
-
- forEach([
- 'toString',
- 'propertyIsEnumerable',
- 'hasOwnProperty'
- ], function (objectProtoMember) {
- t['throws'](
- function () { GetIntrinsic(objectProtoMember); },
- SyntaxError,
- debug(objectProtoMember) + ' is not an intrinsic'
- );
- });
-
- t.end();
-});
-
-test('base intrinsics', function (t) {
- t.equal(GetIntrinsic('%Object%'), Object, '%Object% yields Object');
- t.equal(GetIntrinsic('Object'), Object, 'Object yields Object');
- t.equal(GetIntrinsic('%Array%'), Array, '%Array% yields Array');
- t.equal(GetIntrinsic('Array'), Array, 'Array yields Array');
-
- t.end();
-});
-
-test('dotted paths', function (t) {
- t.equal(GetIntrinsic('%Object.prototype.toString%'), Object.prototype.toString, '%Object.prototype.toString% yields Object.prototype.toString');
- t.equal(GetIntrinsic('Object.prototype.toString'), Object.prototype.toString, 'Object.prototype.toString yields Object.prototype.toString');
- t.equal(GetIntrinsic('%Array.prototype.push%'), Array.prototype.push, '%Array.prototype.push% yields Array.prototype.push');
- t.equal(GetIntrinsic('Array.prototype.push'), Array.prototype.push, 'Array.prototype.push yields Array.prototype.push');
-
- test('underscore paths are aliases for dotted paths', { skip: !Object.isFrozen || Object.isFrozen(Object.prototype) }, function (st) {
- var original = GetIntrinsic('%ObjProto_toString%');
-
- forEach([
- '%Object.prototype.toString%',
- 'Object.prototype.toString',
- '%ObjectPrototype.toString%',
- 'ObjectPrototype.toString',
- '%ObjProto_toString%',
- 'ObjProto_toString'
- ], function (name) {
- defineProperty(Object.prototype, 'toString', {
- value: function toString() {
- return original.apply(this, arguments);
- }
- });
- st.equal(GetIntrinsic(name), original, name + ' yields original Object.prototype.toString');
- });
-
- defineProperty(Object.prototype, 'toString', { value: original });
- st.end();
- });
-
- test('dotted paths cache', { skip: !Object.isFrozen || Object.isFrozen(Object.prototype) }, function (st) {
- var original = GetIntrinsic('%Object.prototype.propertyIsEnumerable%');
-
- forEach([
- '%Object.prototype.propertyIsEnumerable%',
- 'Object.prototype.propertyIsEnumerable',
- '%ObjectPrototype.propertyIsEnumerable%',
- 'ObjectPrototype.propertyIsEnumerable'
- ], function (name) {
- // eslint-disable-next-line no-extend-native
- Object.prototype.propertyIsEnumerable = function propertyIsEnumerable() {
- return original.apply(this, arguments);
- };
- st.equal(GetIntrinsic(name), original, name + ' yields cached Object.prototype.propertyIsEnumerable');
- });
-
- // eslint-disable-next-line no-extend-native
- Object.prototype.propertyIsEnumerable = original;
- st.end();
- });
-
- test('dotted path reports correct error', function (st) {
- st['throws'](function () {
- GetIntrinsic('%NonExistentIntrinsic.prototype.property%');
- }, /%NonExistentIntrinsic%/, 'The base intrinsic of %NonExistentIntrinsic.prototype.property% is %NonExistentIntrinsic%');
-
- st['throws'](function () {
- GetIntrinsic('%NonExistentIntrinsicPrototype.property%');
- }, /%NonExistentIntrinsicPrototype%/, 'The base intrinsic of %NonExistentIntrinsicPrototype.property% is %NonExistentIntrinsicPrototype%');
-
- st.end();
- });
-
- t.end();
-});
-
-test('accessors', { skip: !$gOPD || typeof Map !== 'function' }, function (t) {
- var actual = $gOPD(Map.prototype, 'size');
- t.ok(actual, 'Map.prototype.size has a descriptor');
- t.equal(typeof actual.get, 'function', 'Map.prototype.size has a getter function');
- t.equal(GetIntrinsic('%Map.prototype.size%'), actual.get, '%Map.prototype.size% yields the getter for it');
- t.equal(GetIntrinsic('Map.prototype.size'), actual.get, 'Map.prototype.size yields the getter for it');
-
- t.end();
-});
-
-test('generator functions', { skip: !generatorFns.length }, function (t) {
- var $GeneratorFunction = GetIntrinsic('%GeneratorFunction%');
- var $GeneratorFunctionPrototype = GetIntrinsic('%Generator%');
- var $GeneratorPrototype = GetIntrinsic('%GeneratorPrototype%');
-
- forEach(generatorFns, function (genFn) {
- var fnName = genFn.name;
- fnName = fnName ? "'" + fnName + "'" : 'genFn';
-
- t.ok(genFn instanceof $GeneratorFunction, fnName + ' instanceof %GeneratorFunction%');
- t.ok($isProto($GeneratorFunctionPrototype, genFn), '%Generator% is prototype of ' + fnName);
- t.ok($isProto($GeneratorPrototype, genFn.prototype), '%GeneratorPrototype% is prototype of ' + fnName + '.prototype');
- });
-
- t.end();
-});
-
-test('async functions', { skip: !asyncFns.length }, function (t) {
- var $AsyncFunction = GetIntrinsic('%AsyncFunction%');
- var $AsyncFunctionPrototype = GetIntrinsic('%AsyncFunctionPrototype%');
-
- forEach(asyncFns, function (asyncFn) {
- var fnName = asyncFn.name;
- fnName = fnName ? "'" + fnName + "'" : 'asyncFn';
-
- t.ok(asyncFn instanceof $AsyncFunction, fnName + ' instanceof %AsyncFunction%');
- t.ok($isProto($AsyncFunctionPrototype, asyncFn), '%AsyncFunctionPrototype% is prototype of ' + fnName);
- });
-
- t.end();
-});
-
-test('async generator functions', { skip: asyncGenFns.length === 0 }, function (t) {
- var $AsyncGeneratorFunction = GetIntrinsic('%AsyncGeneratorFunction%');
- var $AsyncGeneratorFunctionPrototype = GetIntrinsic('%AsyncGenerator%');
- var $AsyncGeneratorPrototype = GetIntrinsic('%AsyncGeneratorPrototype%');
-
- forEach(asyncGenFns, function (asyncGenFn) {
- var fnName = asyncGenFn.name;
- fnName = fnName ? "'" + fnName + "'" : 'asyncGenFn';
-
- t.ok(asyncGenFn instanceof $AsyncGeneratorFunction, fnName + ' instanceof %AsyncGeneratorFunction%');
- t.ok($isProto($AsyncGeneratorFunctionPrototype, asyncGenFn), '%AsyncGenerator% is prototype of ' + fnName);
- t.ok($isProto($AsyncGeneratorPrototype, asyncGenFn.prototype), '%AsyncGeneratorPrototype% is prototype of ' + fnName + '.prototype');
- });
-
- t.end();
-});
-
-test('%ThrowTypeError%', function (t) {
- var $ThrowTypeError = GetIntrinsic('%ThrowTypeError%');
-
- t.equal(typeof $ThrowTypeError, 'function', 'is a function');
- t['throws'](
- $ThrowTypeError,
- TypeError,
- '%ThrowTypeError% throws a TypeError'
- );
-
- t.end();
-});
-
-test('allowMissing', { skip: asyncGenFns.length > 0 }, function (t) {
- t['throws'](
- function () { GetIntrinsic('%AsyncGeneratorPrototype%'); },
- TypeError,
- 'throws when missing'
- );
-
- t.equal(
- GetIntrinsic('%AsyncGeneratorPrototype%', true),
- undefined,
- 'does not throw when allowMissing'
- );
-
- t.end();
-});
diff --git a/node_modules/get-value/LICENSE b/node_modules/get-value/LICENSE
deleted file mode 100644
index 39245ac..0000000
--- a/node_modules/get-value/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2016, 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/get-value/index.js b/node_modules/get-value/index.js
deleted file mode 100644
index 5879a88..0000000
--- a/node_modules/get-value/index.js
+++ /dev/null
@@ -1,50 +0,0 @@
-/*!
- * get-value
- *
- * Copyright (c) 2014-2015, Jon Schlinkert.
- * Licensed under the MIT License.
- */
-
-module.exports = function(obj, prop, a, b, c) {
- if (!isObject(obj) || !prop) {
- return obj;
- }
-
- prop = toString(prop);
-
- // allowing for multiple properties to be passed as
- // a string or array, but much faster (3-4x) than doing
- // `[].slice.call(arguments)`
- if (a) prop += '.' + toString(a);
- if (b) prop += '.' + toString(b);
- if (c) prop += '.' + toString(c);
-
- if (prop in obj) {
- return obj[prop];
- }
-
- var segs = prop.split('.');
- var len = segs.length;
- var i = -1;
-
- while (obj && (++i < len)) {
- var key = segs[i];
- while (key[key.length - 1] === '\\') {
- key = key.slice(0, -1) + '.' + segs[++i];
- }
- obj = obj[key];
- }
- return obj;
-};
-
-function isObject(val) {
- return val !== null && (typeof val === 'object' || typeof val === 'function');
-}
-
-function toString(val) {
- if (!val) return '';
- if (Array.isArray(val)) {
- return val.join('.');
- }
- return val;
-}
diff --git a/node_modules/get-value/package.json b/node_modules/get-value/package.json
deleted file mode 100644
index df168cd..0000000
--- a/node_modules/get-value/package.json
+++ /dev/null
@@ -1,79 +0,0 @@
-{
- "name": "get-value",
- "description": "Use property paths (`a.b.c`) to get a nested value from an object.",
- "version": "2.0.6",
- "homepage": "https://github.com/jonschlinkert/get-value",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/get-value",
- "bugs": {
- "url": "https://github.com/jonschlinkert/get-value/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "devDependencies": {
- "ansi-bold": "^0.1.1",
- "arr-reduce": "^1.0.1",
- "benchmarked": "^0.1.4",
- "dot-prop": "^2.2.0",
- "getobject": "^0.1.0",
- "gulp": "^3.9.0",
- "gulp-eslint": "^1.1.1",
- "gulp-format-md": "^0.1.5",
- "gulp-istanbul": "^0.10.2",
- "gulp-mocha": "^2.1.3",
- "isobject": "^2.0.0",
- "matched": "^0.3.2",
- "minimist": "^1.2.0"
- },
- "keywords": [
- "get",
- "key",
- "nested",
- "object",
- "path",
- "paths",
- "prop",
- "properties",
- "property",
- "props",
- "segment",
- "value",
- "values"
- ],
- "verb": {
- "run": true,
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "has-any",
- "has-any-deep",
- "has-value",
- "set-value",
- "unset-value"
- ]
- },
- "reflinks": [
- "verb",
- "verb-readme-generator"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/glob-parent/LICENSE b/node_modules/glob-parent/LICENSE
deleted file mode 100644
index 734076d..0000000
--- a/node_modules/glob-parent/LICENSE
+++ /dev/null
@@ -1,15 +0,0 @@
-The ISC License
-
-Copyright (c) 2015 Elan Shanker
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/node_modules/glob-parent/README.md b/node_modules/glob-parent/README.md
deleted file mode 100644
index 3bec5c7..0000000
--- a/node_modules/glob-parent/README.md
+++ /dev/null
@@ -1,109 +0,0 @@
-glob-parent [![Build Status](https://travis-ci.org/es128/glob-parent.svg)](https://travis-ci.org/es128/glob-parent) [![Coverage Status](https://img.shields.io/coveralls/es128/glob-parent.svg)](https://coveralls.io/r/es128/glob-parent?branch=master)
-======
-Javascript module to extract the non-magic parent path from a glob string.
-
-[![NPM](https://nodei.co/npm/glob-parent.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/glob-parent/)
-[![NPM](https://nodei.co/npm-dl/glob-parent.png?height=3&months=9)](https://nodei.co/npm-dl/glob-parent/)
-
-Usage
------
-```sh
-npm install glob-parent --save
-```
-
-**Examples**
-
-```js
-var globParent = require('glob-parent');
-
-globParent('path/to/*.js'); // 'path/to'
-globParent('/root/path/to/*.js'); // '/root/path/to'
-globParent('/*.js'); // '/'
-globParent('*.js'); // '.'
-globParent('**/*.js'); // '.'
-globParent('path/{to,from}'); // 'path'
-globParent('path/!(to|from)'); // 'path'
-globParent('path/?(to|from)'); // 'path'
-globParent('path/+(to|from)'); // 'path'
-globParent('path/*(to|from)'); // 'path'
-globParent('path/@(to|from)'); // 'path'
-globParent('path/**/*'); // 'path'
-
-// if provided a non-glob path, returns the nearest dir
-globParent('path/foo/bar.js'); // 'path/foo'
-globParent('path/foo/'); // 'path/foo'
-globParent('path/foo'); // 'path' (see issue #3 for details)
-```
-
-## Escaping
-
-The following characters have special significance in glob patterns and must be escaped if you want them to be treated as regular path characters:
-
-- `?` (question mark)
-- `*` (star)
-- `|` (pipe)
-- `(` (opening parenthesis)
-- `)` (closing parenthesis)
-- `{` (opening curly brace)
-- `}` (closing curly brace)
-- `[` (opening bracket)
-- `]` (closing bracket)
-
-**Example**
-
-```js
-globParent('foo/[bar]/') // 'foo'
-globParent('foo/\\[bar]/') // 'foo/[bar]'
-```
-
-## Limitations
-
-#### Braces & Brackets
-This library attempts a quick and imperfect method of determining which path
-parts have glob magic without fully parsing/lexing the pattern. There are some
-advanced use cases that can trip it up, such as nested braces where the outer
-pair is escaped and the inner one contains a path separator. If you find
-yourself in the unlikely circumstance of being affected by this or need to
-ensure higher-fidelity glob handling in your library, it is recommended that you
-pre-process your input with [expand-braces] and/or [expand-brackets].
-
-#### Windows
-Backslashes are not valid path separators for globs. If a path with backslashes
-is provided anyway, for simple cases, glob-parent will replace the path
-separator for you and return the non-glob parent path (now with
-forward-slashes, which are still valid as Windows path separators).
-
-This cannot be used in conjunction with escape characters.
-
-```js
-// BAD
-globParent('C:\\Program Files \\(x86\\)\\*.ext') // 'C:/Program Files /(x86/)'
-
-// GOOD
-globParent('C:/Program Files\\(x86\\)/*.ext') // 'C:/Program Files (x86)'
-```
-
-If you are using escape characters for a pattern without path parts (i.e.
-relative to `cwd`), prefix with `./` to avoid confusing glob-parent.
-
-```js
-// BAD
-globParent('foo \\[bar]') // 'foo '
-globParent('foo \\[bar]*') // 'foo '
-
-// GOOD
-globParent('./foo \\[bar]') // 'foo [bar]'
-globParent('./foo \\[bar]*') // '.'
-```
-
-
-Change Log
-----------
-[See release notes page on GitHub](https://github.com/es128/glob-parent/releases)
-
-License
--------
-[ISC](https://raw.github.com/es128/glob-parent/master/LICENSE)
-
-[expand-braces]: https://github.com/jonschlinkert/expand-braces
-[expand-brackets]: https://github.com/jonschlinkert/expand-brackets
diff --git a/node_modules/glob-parent/index.js b/node_modules/glob-parent/index.js
deleted file mode 100644
index 3a14a53..0000000
--- a/node_modules/glob-parent/index.js
+++ /dev/null
@@ -1,24 +0,0 @@
-'use strict';
-
-var path = require('path');
-var isglob = require('is-glob');
-var pathDirname = require('path-dirname');
-var isWin32 = require('os').platform() === 'win32';
-
-module.exports = function globParent(str) {
- // flip windows path separators
- if (isWin32 && str.indexOf('/') < 0) str = str.split('\\').join('/');
-
- // special case for strings ending in enclosure containing path separator
- if (/[\{\[].*[\/]*.*[\}\]]$/.test(str)) str += '/';
-
- // preserves full path in case of trailing path separator
- str += 'a';
-
- // remove path parts that are globby
- do {str = pathDirname.posix(str)}
- while (isglob(str) || /(^|[^\\])([\{\[]|\([^\)]+$)/.test(str));
-
- // remove escape chars and return result
- return str.replace(/\\([\*\?\|\[\]\(\)\{\}])/g, '$1');
-};
diff --git a/node_modules/glob-parent/node_modules/is-glob/LICENSE b/node_modules/glob-parent/node_modules/is-glob/LICENSE
deleted file mode 100644
index 39245ac..0000000
--- a/node_modules/glob-parent/node_modules/is-glob/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2016, 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/glob-parent/node_modules/is-glob/README.md b/node_modules/glob-parent/node_modules/is-glob/README.md
deleted file mode 100644
index 6f4404f..0000000
--- a/node_modules/glob-parent/node_modules/is-glob/README.md
+++ /dev/null
@@ -1,142 +0,0 @@
-# is-glob [![NPM version](https://img.shields.io/npm/v/is-glob.svg?style=flat)](https://www.npmjs.com/package/is-glob) [![NPM downloads](https://img.shields.io/npm/dm/is-glob.svg?style=flat)](https://npmjs.org/package/is-glob) [![Build Status](https://img.shields.io/travis/jonschlinkert/is-glob.svg?style=flat)](https://travis-ci.org/jonschlinkert/is-glob)
-
-> Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a better user experience.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save is-glob
-```
-
-You might also be interested in [is-valid-glob](https://github.com/jonschlinkert/is-valid-glob) and [has-glob](https://github.com/jonschlinkert/has-glob).
-
-## Usage
-
-```js
-var isGlob = require('is-glob');
-```
-
-**True**
-
-Patterns that have glob characters or regex patterns will return `true`:
-
-```js
-isGlob('!foo.js');
-isGlob('*.js');
-isGlob('**/abc.js');
-isGlob('abc/*.js');
-isGlob('abc/(aaa|bbb).js');
-isGlob('abc/[a-z].js');
-isGlob('abc/{a,b}.js');
-isGlob('abc/?.js');
-//=> true
-```
-
-Extglobs
-
-```js
-isGlob('abc/@(a).js');
-isGlob('abc/!(a).js');
-isGlob('abc/+(a).js');
-isGlob('abc/*(a).js');
-isGlob('abc/?(a).js');
-//=> true
-```
-
-**False**
-
-Escaped globs or extglobs return `false`:
-
-```js
-isGlob('abc/\\@(a).js');
-isGlob('abc/\\!(a).js');
-isGlob('abc/\\+(a).js');
-isGlob('abc/\\*(a).js');
-isGlob('abc/\\?(a).js');
-isGlob('\\!foo.js');
-isGlob('\\*.js');
-isGlob('\\*\\*/abc.js');
-isGlob('abc/\\*.js');
-isGlob('abc/\\(aaa|bbb).js');
-isGlob('abc/\\[a-z].js');
-isGlob('abc/\\{a,b}.js');
-isGlob('abc/\\?.js');
-//=> false
-```
-
-Patterns that do not have glob patterns return `false`:
-
-```js
-isGlob('abc.js');
-isGlob('abc/def/ghi.js');
-isGlob('foo.js');
-isGlob('abc/@.js');
-isGlob('abc/+.js');
-isGlob();
-isGlob(null);
-//=> false
-```
-
-Arrays are also `false` (If you want to check if an array has a glob pattern, use [has-glob](https://github.com/jonschlinkert/has-glob)):
-
-```js
-isGlob(['**/*.js']);
-isGlob(['foo.js']);
-//=> false
-```
-
-## About
-
-### Related projects
-
-* [assemble](https://www.npmjs.com/package/assemble): Get the rocks out of your socks! Assemble makes you fast at creating web projects… [more](https://github.com/assemble/assemble) | [homepage](https://github.com/assemble/assemble "Get the rocks out of your socks! Assemble makes you fast at creating web projects. Assemble is used by thousands of projects for rapid prototyping, creating themes, scaffolds, boilerplates, e-books, UI components, API documentation, blogs, building websit")
-* [base](https://www.npmjs.com/package/base): base is the foundation for creating modular, unit testable and highly pluggable node.js applications, starting… [more](https://github.com/node-base/base) | [homepage](https://github.com/node-base/base "base is the foundation for creating modular, unit testable and highly pluggable node.js applications, starting with a handful of common methods, like `set`, `get`, `del` and `use`.")
-* [update](https://www.npmjs.com/package/update): Be scalable! Update is a new, open source developer framework and CLI for automating updates… [more](https://github.com/update/update) | [homepage](https://github.com/update/update "Be scalable! Update is a new, open source developer framework and CLI for automating updates of any kind in code projects.")
-* [verb](https://www.npmjs.com/package/verb): Documentation generator for GitHub projects. Verb is extremely powerful, easy to use, and is used… [more](https://github.com/verbose/verb) | [homepage](https://github.com/verbose/verb "Documentation generator for GitHub projects. Verb is extremely powerful, easy to use, and is used on hundreds of projects of all sizes to generate everything from API docs to readmes.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 40 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 1 | [tuvistavie](https://github.com/tuvistavie) |
-
-### Building docs
-
-_(This document was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme) (a [verb](https://github.com/verbose/verb) generator), please don't edit the readme directly. Any changes to the readme must be made in [.verb.md](.verb.md).)_
-
-To generate the readme and API documentation with [verb](https://github.com/verbose/verb):
-
-```sh
-$ npm install -g verb verb-generate-readme && verb
-```
-
-### Running tests
-
-Install dev dependencies:
-
-```sh
-$ npm install -d && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT license](https://github.com/jonschlinkert/is-glob/blob/master/LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.1.31, on October 12, 2016._
\ No newline at end of file
diff --git a/node_modules/glob-parent/node_modules/is-glob/index.js b/node_modules/glob-parent/node_modules/is-glob/index.js
deleted file mode 100644
index 2ecbe2a..0000000
--- a/node_modules/glob-parent/node_modules/is-glob/index.js
+++ /dev/null
@@ -1,25 +0,0 @@
-/*!
- * is-glob
- *
- * Copyright (c) 2014-2016, Jon Schlinkert.
- * Licensed under the MIT License.
- */
-
-var isExtglob = require('is-extglob');
-
-module.exports = function isGlob(str) {
- if (typeof str !== 'string' || str === '') {
- return false;
- }
-
- if (isExtglob(str)) return true;
-
- var regex = /(\\).|([*?]|\[.*\]|\{.*\}|\(.*\|.*\)|^!)/;
- var match;
-
- while ((match = regex.exec(str))) {
- if (match[2]) return true;
- str = str.slice(match.index + match[0].length);
- }
- return false;
-};
diff --git a/node_modules/glob-parent/node_modules/is-glob/package.json b/node_modules/glob-parent/node_modules/is-glob/package.json
deleted file mode 100644
index 53a137d..0000000
--- a/node_modules/glob-parent/node_modules/is-glob/package.json
+++ /dev/null
@@ -1,80 +0,0 @@
-{
- "name": "is-glob",
- "description": "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a better user experience.",
- "version": "3.1.0",
- "homepage": "https://github.com/jonschlinkert/is-glob",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Daniel Perez (http://tuvistavie.com)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)"
- ],
- "repository": "jonschlinkert/is-glob",
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-glob/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "is-extglob": "^2.1.0"
- },
- "devDependencies": {
- "gulp-format-md": "^0.1.10",
- "mocha": "^3.0.2"
- },
- "keywords": [
- "bash",
- "braces",
- "check",
- "exec",
- "expression",
- "extglob",
- "glob",
- "globbing",
- "globstar",
- "is",
- "match",
- "matches",
- "pattern",
- "regex",
- "regular",
- "string",
- "test"
- ],
- "verb": {
- "layout": "default",
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "assemble",
- "base",
- "update",
- "verb"
- ]
- },
- "reflinks": [
- "assemble",
- "bach",
- "base",
- "composer",
- "gulp",
- "has-glob",
- "is-valid-glob",
- "micromatch",
- "npm",
- "scaffold",
- "verb",
- "vinyl"
- ]
- }
-}
diff --git a/node_modules/glob-parent/package.json b/node_modules/glob-parent/package.json
deleted file mode 100644
index e002385..0000000
--- a/node_modules/glob-parent/package.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "name": "glob-parent",
- "version": "3.1.0",
- "description": "Strips glob magic from a string to provide the parent directory path",
- "main": "index.js",
- "scripts": {
- "test": "istanbul test node_modules/mocha/bin/_mocha",
- "ci-test": "istanbul cover _mocha && cat ./coverage/lcov.info | coveralls"
- },
- "repository": {
- "type": "git",
- "url": "https://github.com/es128/glob-parent"
- },
- "keywords": [
- "glob",
- "parent",
- "strip",
- "path",
- "dirname",
- "directory",
- "base",
- "wildcard"
- ],
- "files": [
- "index.js"
- ],
- "author": "Elan Shanker (https://github.com/es128)",
- "license": "ISC",
- "bugs": {
- "url": "https://github.com/es128/glob-parent/issues"
- },
- "homepage": "https://github.com/es128/glob-parent",
- "dependencies": {
- "is-glob": "^3.1.0",
- "path-dirname": "^1.0.0"
- },
- "devDependencies": {
- "coveralls": "^2.11.2",
- "istanbul": "^0.3.5",
- "mocha": "^2.1.0"
- }
-}
diff --git a/node_modules/glob-stream/LICENSE b/node_modules/glob-stream/LICENSE
deleted file mode 100755
index 67fa13b..0000000
--- a/node_modules/glob-stream/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015-2017 Blaine Bublitz , Eric Schoffstall and other contributors
-
-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/glob-stream/README.md b/node_modules/glob-stream/README.md
deleted file mode 100644
index 12c103e..0000000
--- a/node_modules/glob-stream/README.md
+++ /dev/null
@@ -1,146 +0,0 @@
-
-
-
-
-
-
-# glob-stream
-
-[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Build Status][travis-image]][travis-url] [![AppVeyor Build Status][appveyor-image]][appveyor-url] [![Coveralls Status][coveralls-image]][coveralls-url] [![Gitter chat][gitter-image]][gitter-url]
-
-A [Readable Stream][readable-stream-url] interface over [node-glob][node-glob-url].
-
-## Usage
-
-```javascript
-var gs = require('glob-stream');
-
-var readable = gs('./files/**/*.coffee', { /* options */ });
-
-var writable = /* your WriteableStream */
-
-readable.pipe(writable);
-```
-
-You can pass any combination of glob strings. One caveat is that you cannot __only__ pass a negative glob, you must give it at least one positive glob so it knows where to start. If given a non-glob path (also referred to as a singular glob), only one file will be emitted. If given a singular glob and no files match, an error is emitted (see also [`options.allowEmpty`][allow-empty-url]).
-
-## API
-
-### `globStream(globs, options)`
-
-Takes a glob string or an array of glob strings as the first argument and an options object as the second. Returns a stream of objects that contain `cwd`, `base` and `path` properties.
-
-#### Options
-
-##### `options.allowEmpty`
-
-Whether or not to error upon an empty singular glob.
-
-Type: `Boolean`
-
-Default: `false` (error upon no match)
-
-##### `options.dot`
-
-Whether or not to treat dotfiles as regular files. This is passed through to [node-glob][node-glob-url].
-
-Type: `Boolean`
-
-Default: `false`
-
-##### `options.silent`
-
-Whether or not to suppress warnings on stderr from [node-glob][node-glob-url]. This is passed through to [node-glob][node-glob-url].
-
-Type: `Boolean`
-
-Default: `true`
-
-##### `options.cwd`
-
-The current working directory that the glob is resolved against.
-
-Type: `String`
-
-Default: `process.cwd()`
-
-##### `options.root`
-
-The root path that the glob is resolved against.
-
-__Note: This is never passed to [node-glob][node-glob-url] because it is pre-resolved against your paths.__
-
-Type: `String`
-
-Default: `undefined` (use the filesystem root)
-
-##### `options.base`
-
-The absolute segment of the glob path that isn't a glob. This value is attached to each glob object and is useful for relative pathing.
-
-Type: `String`
-
-Default: The absolute path segement before a glob starts (see [glob-parent][glob-parent-url])
-
-##### `options.cwdbase`
-
-Whether or not the `cwd` and `base` should be the same.
-
-Type: `Boolean`
-
-Default: `false`
-
-##### `options.uniqueBy`
-
-Filters stream to remove duplicates based on the string property name or the result of function. When using a function, the function receives the streamed data (objects containing `cwd`, `base`, `path` properties) to compare against.
-
-Type: `String` or `Function`
-
-Default: `'path'`
-
-##### other
-
-Any glob-related options are documented in [node-glob][node-glob-url]. Those options are forwarded verbatim, with the exception of `root` and `ignore`. `root` is pre-resolved and `ignore` is joined with all negative globs.
-
-#### Globbing & Negation
-
-```js
-var stream = gs(['./**/*.js', '!./node_modules/**/*']);
-```
-
-Globs are executed in order, so negations should follow positive globs. For example:
-
-The following would __not__ exclude any files:
-```js
-gs(['!b*.js', '*.js'])
-```
-
-However, this would exclude all files that started with `b`:
-```js
-gs(['*.js', '!b*.js'])
-```
-
-## License
-
-MIT
-
-[node-glob-url]: https://github.com/isaacs/node-glob
-[glob-parent-url]: https://github.com/es128/glob-parent
-[allow-empty-url]: #optionsallowempty
-[readable-stream-url]: https://nodejs.org/api/stream.html#stream_readable_streams
-
-[downloads-image]: http://img.shields.io/npm/dm/glob-stream.svg
-[npm-url]: https://www.npmjs.com/package/glob-stream
-[npm-image]: http://img.shields.io/npm/v/glob-stream.svg
-
-[travis-url]: https://travis-ci.org/gulpjs/glob-stream
-[travis-image]: http://img.shields.io/travis/gulpjs/glob-stream.svg?label=travis-ci
-
-[appveyor-url]: https://ci.appveyor.com/project/gulpjs/glob-stream
-[appveyor-image]: https://img.shields.io/appveyor/ci/gulpjs/glob-stream.svg?label=appveyor
-
-[coveralls-url]: https://coveralls.io/r/gulpjs/glob-stream
-[coveralls-image]: http://img.shields.io/coveralls/gulpjs/glob-stream.svg
-
-[gitter-url]: https://gitter.im/gulpjs/gulp
-[gitter-image]: https://badges.gitter.im/gulpjs/gulp.svg
diff --git a/node_modules/glob-stream/index.js b/node_modules/glob-stream/index.js
deleted file mode 100644
index dd012f6..0000000
--- a/node_modules/glob-stream/index.js
+++ /dev/null
@@ -1,94 +0,0 @@
-'use strict';
-
-var Combine = require('ordered-read-streams');
-var unique = require('unique-stream');
-var pumpify = require('pumpify');
-var isNegatedGlob = require('is-negated-glob');
-var extend = require('extend');
-
-var GlobStream = require('./readable');
-
-function globStream(globs, opt) {
- if (!opt) {
- opt = {};
- }
-
- var ourOpt = extend({}, opt);
- var ignore = ourOpt.ignore;
-
- ourOpt.cwd = typeof ourOpt.cwd === 'string' ? ourOpt.cwd : process.cwd();
- ourOpt.dot = typeof ourOpt.dot === 'boolean' ? ourOpt.dot : false;
- ourOpt.silent = typeof ourOpt.silent === 'boolean' ? ourOpt.silent : true;
- ourOpt.cwdbase = typeof ourOpt.cwdbase === 'boolean' ? ourOpt.cwdbase : false;
- ourOpt.uniqueBy = typeof ourOpt.uniqueBy === 'string' ||
- typeof ourOpt.uniqueBy === 'function' ? ourOpt.uniqueBy : 'path';
-
- if (ourOpt.cwdbase) {
- ourOpt.base = ourOpt.cwd;
- }
- // Normalize string `ignore` to array
- if (typeof ignore === 'string') {
- ignore = [ignore];
- }
- // Ensure `ignore` is an array
- if (!Array.isArray(ignore)) {
- ignore = [];
- }
-
- // Only one glob no need to aggregate
- if (!Array.isArray(globs)) {
- globs = [globs];
- }
-
- var positives = [];
- var negatives = [];
-
- globs.forEach(sortGlobs);
-
- function sortGlobs(globString, index) {
- if (typeof globString !== 'string') {
- throw new Error('Invalid glob at index ' + index);
- }
-
- var glob = isNegatedGlob(globString);
- var globArray = glob.negated ? negatives : positives;
-
- globArray.push({
- index: index,
- glob: glob.pattern,
- });
- }
-
- if (positives.length === 0) {
- throw new Error('Missing positive glob');
- }
-
- // Create all individual streams
- var streams = positives.map(streamFromPositive);
-
- // Then just pipe them to a single unique stream and return it
- var aggregate = new Combine(streams);
- var uniqueStream = unique(ourOpt.uniqueBy);
-
- return pumpify.obj(aggregate, uniqueStream);
-
- function streamFromPositive(positive) {
- var negativeGlobs = negatives
- .filter(indexGreaterThan(positive.index))
- .map(toGlob)
- .concat(ignore);
- return new GlobStream(positive.glob, negativeGlobs, ourOpt);
- }
-}
-
-function indexGreaterThan(index) {
- return function(obj) {
- return obj.index > index;
- };
-}
-
-function toGlob(obj) {
- return obj.glob;
-}
-
-module.exports = globStream;
diff --git a/node_modules/glob-stream/package.json b/node_modules/glob-stream/package.json
deleted file mode 100644
index 7cd919a..0000000
--- a/node_modules/glob-stream/package.json
+++ /dev/null
@@ -1,59 +0,0 @@
-{
- "name": "glob-stream",
- "version": "6.1.0",
- "description": "A Readable Stream interface over node-glob.",
- "author": "Gulp Team (http://gulpjs.com/)",
- "contributors": [
- "Eric Schoffstall ",
- "Blaine Bublitz "
- ],
- "repository": "gulpjs/glob-stream",
- "license": "MIT",
- "engines": {
- "node": ">= 0.10"
- },
- "main": "index.js",
- "files": [
- "index.js",
- "readable.js",
- "LICENSE"
- ],
- "scripts": {
- "lint": "eslint . && jscs index.js readable.js test/",
- "pretest": "npm run lint",
- "test": "mocha --async-only",
- "cover": "istanbul cover _mocha --report lcovonly",
- "coveralls": "npm run cover && istanbul-coveralls"
- },
- "dependencies": {
- "extend": "^3.0.0",
- "glob": "^7.1.1",
- "glob-parent": "^3.1.0",
- "is-negated-glob": "^1.0.0",
- "ordered-read-streams": "^1.0.0",
- "pumpify": "^1.3.5",
- "readable-stream": "^2.1.5",
- "remove-trailing-separator": "^1.0.1",
- "to-absolute-glob": "^2.0.0",
- "unique-stream": "^2.0.2"
- },
- "devDependencies": {
- "eslint": "^1.10.3",
- "eslint-config-gulp": "^2.0.0",
- "expect": "^1.19.0",
- "istanbul": "^0.4.3",
- "istanbul-coveralls": "^1.0.3",
- "jscs": "^2.4.0",
- "jscs-preset-gulp": "^1.0.0",
- "mississippi": "^1.2.0",
- "mocha": "^2.4.5"
- },
- "keywords": [
- "glob",
- "stream",
- "gulp",
- "readable",
- "fs",
- "files"
- ]
-}
diff --git a/node_modules/glob-stream/readable.js b/node_modules/glob-stream/readable.js
deleted file mode 100644
index 36cf7b6..0000000
--- a/node_modules/glob-stream/readable.js
+++ /dev/null
@@ -1,117 +0,0 @@
-'use strict';
-
-var inherits = require('util').inherits;
-
-var glob = require('glob');
-var extend = require('extend');
-var Readable = require('readable-stream').Readable;
-var globParent = require('glob-parent');
-var toAbsoluteGlob = require('to-absolute-glob');
-var removeTrailingSeparator = require('remove-trailing-separator');
-
-var globErrMessage1 = 'File not found with singular glob: ';
-var globErrMessage2 = ' (if this was purposeful, use `allowEmpty` option)';
-
-function getBasePath(ourGlob, opt) {
- return globParent(toAbsoluteGlob(ourGlob, opt));
-}
-
-function globIsSingular(glob) {
- var globSet = glob.minimatch.set;
- if (globSet.length !== 1) {
- return false;
- }
-
- return globSet[0].every(function isString(value) {
- return typeof value === 'string';
- });
-}
-
-function GlobStream(ourGlob, negatives, opt) {
- if (!(this instanceof GlobStream)) {
- return new GlobStream(ourGlob, negatives, opt);
- }
-
- var ourOpt = extend({}, opt);
-
- Readable.call(this, {
- objectMode: true,
- highWaterMark: ourOpt.highWaterMark || 16,
- });
-
- // Delete `highWaterMark` after inheriting from Readable
- delete ourOpt.highWaterMark;
-
- var self = this;
-
- function resolveNegatives(negative) {
- return toAbsoluteGlob(negative, ourOpt);
- }
-
- var ourNegatives = negatives.map(resolveNegatives);
- ourOpt.ignore = ourNegatives;
-
- var cwd = ourOpt.cwd;
- var allowEmpty = ourOpt.allowEmpty || false;
-
- // Extract base path from glob
- var basePath = ourOpt.base || getBasePath(ourGlob, ourOpt);
-
- // Remove path relativity to make globs make sense
- ourGlob = toAbsoluteGlob(ourGlob, ourOpt);
- // Delete `root` after all resolving done
- delete ourOpt.root;
-
- var globber = new glob.Glob(ourGlob, ourOpt);
- this._globber = globber;
-
- var found = false;
-
- globber.on('match', function(filepath) {
- found = true;
- var obj = {
- cwd: cwd,
- base: basePath,
- path: removeTrailingSeparator(filepath),
- };
- if (!self.push(obj)) {
- globber.pause();
- }
- });
-
- globber.once('end', function() {
- if (allowEmpty !== true && !found && globIsSingular(globber)) {
- var err = new Error(globErrMessage1 + ourGlob + globErrMessage2);
-
- return self.destroy(err);
- }
-
- self.push(null);
- });
-
- function onError(err) {
- self.destroy(err);
- }
-
- globber.once('error', onError);
-}
-inherits(GlobStream, Readable);
-
-GlobStream.prototype._read = function() {
- this._globber.resume();
-};
-
-GlobStream.prototype.destroy = function(err) {
- var self = this;
-
- this._globber.abort();
-
- process.nextTick(function() {
- if (err) {
- self.emit('error', err);
- }
- self.emit('close');
- });
-};
-
-module.exports = GlobStream;
diff --git a/node_modules/glob-watcher/LICENSE b/node_modules/glob-watcher/LICENSE
deleted file mode 100755
index b8fc743..0000000
--- a/node_modules/glob-watcher/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2017 Blaine Bublitz , Eric Schoffstall and other contributors
-
-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/glob-watcher/README.md b/node_modules/glob-watcher/README.md
deleted file mode 100644
index dba40cf..0000000
--- a/node_modules/glob-watcher/README.md
+++ /dev/null
@@ -1,137 +0,0 @@
-
-
-
-
-
-
-# glob-watcher
-
-[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Build Status][travis-image]][travis-url] [![AppVeyor Build Status][appveyor-image]][appveyor-url] [![Coveralls Status][coveralls-image]][coveralls-url] [![Gitter chat][gitter-image]][gitter-url]
-
-Watch globs and execute a function upon change, with intelligent defaults for debouncing and queueing.
-
-## Usage
-
-```js
-var watch = require('glob-watcher');
-
-watch(['./*.js', '!./something.js'], function(done){
- // This function will be called each time a globbed file is changed
- // but is debounced with a 200ms delay (default) and queues subsequent calls
-
- // Make sure to signal async completion with the callback
- // or by returning a stream, promise, observable or child process
- done();
-
- // if you need access to the `path` or `stat` object, listen
- // for the `change` event (see below)
-
- // if you need to listen to specific events, use the returned
- // watcher instance (see below)
-});
-
-// Raw chokidar instance
-var watcher = watch(['./*.js', '!./something.js']);
-
-// Listen for the 'change' event to get `path`/`stat`
-// No async completion available because this is the raw chokidar instance
-watcher.on('change', function(path, stat) {
- // `path` is the path of the changed file
- // `stat` is an `fs.Stat` object (not always available)
-});
-
-// Listen for other events
-// No async completion available because this is the raw chokidar instance
-watcher.on('add', function(path, stat) {
- // `path` is the path of the changed file
- // `stat` is an `fs.Stat` object (not always available)
-});
-```
-
-## API
-
-### `watch(globs[, options][, fn])`
-
-Takes a path string, an array of path strings, a [glob][micromatch] string or an array of [glob][micromatch] strings as `globs` to watch on the filesystem. Also optionally takes `options` to configure the watcher and a `fn` to execute when a file changes.
-
-__Note: As of 5.0.0, globs must use `/` as the separator character because `\\` is reserved for escape sequences (as per the Bash 4.3 & Micromatch specs). This means you can't use `path.join()` or `__dirname` in Windows environments. If you need to use `path.join()`, you can use [normalize-path][normalize-path] against your paths afterwards. If you need to use `__dirname`, you can set it as the `cwd` option that gets passed directly to [chokidar][chokidar]. The [micromatch docs][micromatch-backslashes] contain more information about backslashes.__
-
-Returns an instance of [chokidar][chokidar].
-
-#### `fn([callback])`
-
-If the `fn` is passed, it will be called when the watcher emits a `change`, `add` or `unlink` event. It is automatically debounced with a default delay of 200 milliseconds and subsequent calls will be queued and called upon completion. These defaults can be changed using the `options`.
-
-The `fn` is passed a single argument, `callback`, which is a function that must be called when work in the `fn` is complete. Instead of calling the `callback` function, [async completion][async-completion] can be signalled by:
- * Returning a `Stream` or `EventEmitter`
- * Returning a `Child Process`
- * Returning a `Promise`
- * Returning an `Observable`
-
-Once async completion is signalled, if another run is queued, it will be executed.
-
-#### `options`
-
-##### `options.ignoreInitial`
-
-If set to `false` the `fn` is called during [chokidar][chokidar] instantiation as it discovers the file paths. Useful if it is desirable to trigger the `fn` during startup.
-
-__Passed through to [chokidar][chokidar], but defaulted to `true` instead of `false`.__
-
-Type: `Boolean`
-
-Default: `true`
-
-##### `options.delay`
-
-The delay to wait before triggering the `fn`. Useful for waiting on many changes before doing the work on changed files, e.g. find-and-replace on many files.
-
-Type: `Number`
-
-Default: `200` (milliseconds)
-
-##### `options.queue`
-
-Whether or not a file change should queue the `fn` execution if the `fn` is already running. Useful for a long running `fn`.
-
-Type: `Boolean`
-
-Default: `true`
-
-##### `options.events`
-
-An event name or array of event names to listen for. Useful if you only need to watch specific events.
-
-Type: `String | Array`
-
-Default: `[ 'add', 'change', 'unlink' ]`
-
-##### other
-
-Options are passed directly to [chokidar][chokidar].
-
-## License
-
-MIT
-
-[micromatch]: https://github.com/micromatch/micromatch
-[normalize-path]: https://www.npmjs.com/package/normalize-path
-[micromatch-backslashes]: https://github.com/micromatch/micromatch#backslashes
-[async-completion]: https://github.com/gulpjs/async-done#completion-and-error-resolution
-[chokidar]: https://github.com/paulmillr/chokidar
-
-[downloads-image]: http://img.shields.io/npm/dm/glob-watcher.svg
-[npm-url]: https://npmjs.com/package/glob-watcher
-[npm-image]: http://img.shields.io/npm/v/glob-watcher.svg
-
-[travis-url]: https://travis-ci.org/gulpjs/glob-watcher
-[travis-image]: http://img.shields.io/travis/gulpjs/glob-watcher.svg?label=travis-ci
-
-[appveyor-url]: https://ci.appveyor.com/project/gulpjs/glob-watcher
-[appveyor-image]: https://img.shields.io/appveyor/ci/gulpjs/glob-watcher.svg?label=appveyor
-
-[coveralls-url]: https://coveralls.io/r/gulpjs/glob-watcher
-[coveralls-image]: http://img.shields.io/coveralls/gulpjs/glob-watcher/master.svg
-
-[gitter-url]: https://gitter.im/gulpjs/gulp
-[gitter-image]: https://badges.gitter.im/gulpjs/gulp.png
diff --git a/node_modules/glob-watcher/index.js b/node_modules/glob-watcher/index.js
deleted file mode 100644
index 2c51da6..0000000
--- a/node_modules/glob-watcher/index.js
+++ /dev/null
@@ -1,149 +0,0 @@
-'use strict';
-
-var chokidar = require('chokidar');
-var debounce = require('just-debounce');
-var asyncDone = require('async-done');
-var defaults = require('object.defaults/immutable');
-var isNegatedGlob = require('is-negated-glob');
-var anymatch = require('anymatch');
-var normalize = require('normalize-path');
-
-var defaultOpts = {
- delay: 200,
- events: ['add', 'change', 'unlink'],
- ignored: [],
- ignoreInitial: true,
- queue: true,
-};
-
-function listenerCount(ee, evtName) {
- if (typeof ee.listenerCount === 'function') {
- return ee.listenerCount(evtName);
- }
-
- return ee.listeners(evtName).length;
-}
-
-function hasErrorListener(ee) {
- return listenerCount(ee, 'error') !== 0;
-}
-
-function exists(val) {
- return val != null;
-}
-
-function watch(glob, options, cb) {
- if (typeof options === 'function') {
- cb = options;
- options = {};
- }
-
- var opt = defaults(options, defaultOpts);
-
- if (!Array.isArray(opt.events)) {
- opt.events = [opt.events];
- }
-
- if (Array.isArray(glob)) {
- // We slice so we don't mutate the passed globs array
- glob = glob.slice();
- } else {
- glob = [glob];
- }
-
- var queued = false;
- var running = false;
-
- // These use sparse arrays to keep track of the index in the
- // original globs array
- var positives = new Array(glob.length);
- var negatives = new Array(glob.length);
-
- // Reverse the glob here so we don't end up with a positive
- // and negative glob in position 0 after a reverse
- glob.reverse().forEach(sortGlobs);
-
- function sortGlobs(globString, index) {
- var result = isNegatedGlob(globString);
- if (result.negated) {
- negatives[index] = result.pattern;
- } else {
- positives[index] = result.pattern;
- }
- }
-
- var toWatch = positives.filter(exists);
-
- function joinCwd(glob) {
- if (glob && opt.cwd) {
- return normalize(opt.cwd + '/' + glob);
- }
-
- return glob;
- }
-
- // We only do add our custom `ignored` if there are some negative globs
- // TODO: I'm not sure how to test this
- if (negatives.some(exists)) {
- var normalizedPositives = positives.map(joinCwd);
- var normalizedNegatives = negatives.map(joinCwd);
- var shouldBeIgnored = function(path) {
- var positiveMatch = anymatch(normalizedPositives, path, true);
- var negativeMatch = anymatch(normalizedNegatives, path, true);
- // If negativeMatch is -1, that means it was never negated
- if (negativeMatch === -1) {
- return false;
- }
-
- // If the negative is "less than" the positive, that means
- // it came later in the glob array before we reversed them
- return negativeMatch < positiveMatch;
- };
-
- opt.ignored = [].concat(opt.ignored, shouldBeIgnored);
- }
- var watcher = chokidar.watch(toWatch, opt);
-
- function runComplete(err) {
- running = false;
-
- if (err && hasErrorListener(watcher)) {
- watcher.emit('error', err);
- }
-
- // If we have a run queued, start onChange again
- if (queued) {
- queued = false;
- onChange();
- }
- }
-
- function onChange() {
- if (running) {
- if (opt.queue) {
- queued = true;
- }
- return;
- }
-
- running = true;
- asyncDone(cb, runComplete);
- }
-
- var fn;
- if (typeof cb === 'function') {
- fn = debounce(onChange, opt.delay);
- }
-
- function watchEvent(eventName) {
- watcher.on(eventName, fn);
- }
-
- if (fn) {
- opt.events.forEach(watchEvent);
- }
-
- return watcher;
-}
-
-module.exports = watch;
diff --git a/node_modules/glob-watcher/package.json b/node_modules/glob-watcher/package.json
deleted file mode 100644
index d934112..0000000
--- a/node_modules/glob-watcher/package.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
- "name": "glob-watcher",
- "version": "5.0.5",
- "description": "Watch globs and execute a function upon change, with intelligent defaults for debouncing and queueing.",
- "author": "Gulp Team (http://gulpjs.com/)",
- "contributors": [],
- "repository": "gulpjs/glob-watcher",
- "license": "MIT",
- "engines": {
- "node": ">= 0.10"
- },
- "main": "index.js",
- "files": [
- "index.js"
- ],
- "scripts": {
- "lint": "eslint .",
- "pretest": "npm run lint",
- "test": "mocha --async-only",
- "cover": "istanbul cover _mocha --report lcovonly",
- "coveralls": "npm run cover && istanbul-coveralls"
- },
- "dependencies": {
- "anymatch": "^2.0.0",
- "async-done": "^1.2.0",
- "chokidar": "^2.0.0",
- "is-negated-glob": "^1.0.0",
- "just-debounce": "^1.0.0",
- "normalize-path": "^3.0.0",
- "object.defaults": "^1.1.0"
- },
- "devDependencies": {
- "coveralls": "^2.11.2",
- "eslint": "^2.13.1",
- "eslint-config-gulp": "^3.0.1",
- "expect": "^1.16.0",
- "istanbul": "^0.4.0",
- "istanbul-coveralls": "^1.0.1",
- "mocha": "^2.0.0",
- "mocha-lcov-reporter": "^1.2.0",
- "rimraf": "^2.6.1",
- "through2": "^2.0.1"
- },
- "keywords": [
- "watch",
- "glob",
- "async",
- "queue",
- "debounce",
- "callback"
- ]
-}
diff --git a/node_modules/glob/LICENSE b/node_modules/glob/LICENSE
deleted file mode 100644
index 42ca266..0000000
--- a/node_modules/glob/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-## Glob Logo
-
-Glob's logo created by Tanya Brassie , licensed
-under a Creative Commons Attribution-ShareAlike 4.0 International License
-https://creativecommons.org/licenses/by-sa/4.0/
diff --git a/node_modules/glob/README.md b/node_modules/glob/README.md
deleted file mode 100644
index 2dde30a..0000000
--- a/node_modules/glob/README.md
+++ /dev/null
@@ -1,375 +0,0 @@
-# Glob
-
-Match files using the patterns the shell uses, like stars and stuff.
-
-[![Build Status](https://travis-ci.org/isaacs/node-glob.svg?branch=master)](https://travis-ci.org/isaacs/node-glob/) [![Build Status](https://ci.appveyor.com/api/projects/status/kd7f3yftf7unxlsx?svg=true)](https://ci.appveyor.com/project/isaacs/node-glob) [![Coverage Status](https://coveralls.io/repos/isaacs/node-glob/badge.svg?branch=master&service=github)](https://coveralls.io/github/isaacs/node-glob?branch=master)
-
-This is a glob implementation in JavaScript. It uses the `minimatch`
-library to do its matching.
-
-![a fun cartoon logo made of glob characters](logo/glob.png)
-
-## Usage
-
-Install with npm
-
-```
-npm i glob
-```
-
-```javascript
-var glob = require("glob")
-
-// options is optional
-glob("**/*.js", options, function (er, files) {
- // files is an array of filenames.
- // If the `nonull` option is set, and nothing
- // was found, then files is ["**/*.js"]
- // er is an error object or null.
-})
-```
-
-## Glob Primer
-
-"Globs" are the patterns you type when you do stuff like `ls *.js` on
-the command line, or put `build/*` in a `.gitignore` file.
-
-Before parsing the path part patterns, braced sections are expanded
-into a set. Braced sections start with `{` and end with `}`, with any
-number of comma-delimited sections within. Braced sections may contain
-slash characters, so `a{/b/c,bcd}` would expand into `a/b/c` and `abcd`.
-
-The following characters have special magic meaning when used in a
-path portion:
-
-* `*` Matches 0 or more characters in a single path portion
-* `?` Matches 1 character
-* `[...]` Matches a range of characters, similar to a RegExp range.
- If the first character of the range is `!` or `^` then it matches
- any character not in the range.
-* `!(pattern|pattern|pattern)` Matches anything that does not match
- any of the patterns provided.
-* `?(pattern|pattern|pattern)` Matches zero or one occurrence of the
- patterns provided.
-* `+(pattern|pattern|pattern)` Matches one or more occurrences of the
- patterns provided.
-* `*(a|b|c)` Matches zero or more occurrences of the patterns provided
-* `@(pattern|pat*|pat?erN)` Matches exactly one of the patterns
- provided
-* `**` If a "globstar" is alone in a path portion, then it matches
- zero or more directories and subdirectories searching for matches.
- It does not crawl symlinked directories.
-
-### Dots
-
-If a file or directory path portion has a `.` as the first character,
-then it will not match any glob pattern unless that pattern's
-corresponding path part also has a `.` as its first character.
-
-For example, the pattern `a/.*/c` would match the file at `a/.b/c`.
-However the pattern `a/*/c` would not, because `*` does not start with
-a dot character.
-
-You can make glob treat dots as normal characters by setting
-`dot:true` in the options.
-
-### Basename Matching
-
-If you set `matchBase:true` in the options, and the pattern has no
-slashes in it, then it will seek for any file anywhere in the tree
-with a matching basename. For example, `*.js` would match
-`test/simple/basic.js`.
-
-### Empty Sets
-
-If no matching files are found, then an empty array is returned. This
-differs from the shell, where the pattern itself is returned. For
-example:
-
- $ echo a*s*d*f
- a*s*d*f
-
-To get the bash-style behavior, set the `nonull:true` in the options.
-
-### See Also:
-
-* `man sh`
-* `man bash` (Search for "Pattern Matching")
-* `man 3 fnmatch`
-* `man 5 gitignore`
-* [minimatch documentation](https://github.com/isaacs/minimatch)
-
-## glob.hasMagic(pattern, [options])
-
-Returns `true` if there are any special characters in the pattern, and
-`false` otherwise.
-
-Note that the options affect the results. If `noext:true` is set in
-the options object, then `+(a|b)` will not be considered a magic
-pattern. If the pattern has a brace expansion, like `a/{b/c,x/y}`
-then that is considered magical, unless `nobrace:true` is set in the
-options.
-
-## glob(pattern, [options], cb)
-
-* `pattern` `{String}` Pattern to be matched
-* `options` `{Object}`
-* `cb` `{Function}`
- * `err` `{Error | null}`
- * `matches` `{Array}` filenames found matching the pattern
-
-Perform an asynchronous glob search.
-
-## glob.sync(pattern, [options])
-
-* `pattern` `{String}` Pattern to be matched
-* `options` `{Object}`
-* return: `{Array}` filenames found matching the pattern
-
-Perform a synchronous glob search.
-
-## Class: glob.Glob
-
-Create a Glob object by instantiating the `glob.Glob` class.
-
-```javascript
-var Glob = require("glob").Glob
-var mg = new Glob(pattern, options, cb)
-```
-
-It's an EventEmitter, and starts walking the filesystem to find matches
-immediately.
-
-### new glob.Glob(pattern, [options], [cb])
-
-* `pattern` `{String}` pattern to search for
-* `options` `{Object}`
-* `cb` `{Function}` Called when an error occurs, or matches are found
- * `err` `{Error | null}`
- * `matches` `{Array}` filenames found matching the pattern
-
-Note that if the `sync` flag is set in the options, then matches will
-be immediately available on the `g.found` member.
-
-### Properties
-
-* `minimatch` The minimatch object that the glob uses.
-* `options` The options object passed in.
-* `aborted` Boolean which is set to true when calling `abort()`. There
- is no way at this time to continue a glob search after aborting, but
- you can re-use the statCache to avoid having to duplicate syscalls.
-* `cache` Convenience object. Each field has the following possible
- values:
- * `false` - Path does not exist
- * `true` - Path exists
- * `'FILE'` - Path exists, and is not a directory
- * `'DIR'` - Path exists, and is a directory
- * `[file, entries, ...]` - Path exists, is a directory, and the
- array value is the results of `fs.readdir`
-* `statCache` Cache of `fs.stat` results, to prevent statting the same
- path multiple times.
-* `symlinks` A record of which paths are symbolic links, which is
- relevant in resolving `**` patterns.
-* `realpathCache` An optional object which is passed to `fs.realpath`
- to minimize unnecessary syscalls. It is stored on the instantiated
- Glob object, and may be re-used.
-
-### Events
-
-* `end` When the matching is finished, this is emitted with all the
- matches found. If the `nonull` option is set, and no match was found,
- then the `matches` list contains the original pattern. The matches
- are sorted, unless the `nosort` flag is set.
-* `match` Every time a match is found, this is emitted with the specific
- thing that matched. It is not deduplicated or resolved to a realpath.
-* `error` Emitted when an unexpected error is encountered, or whenever
- any fs error occurs if `options.strict` is set.
-* `abort` When `abort()` is called, this event is raised.
-
-### Methods
-
-* `pause` Temporarily stop the search
-* `resume` Resume the search
-* `abort` Stop the search forever
-
-### Options
-
-All the options that can be passed to Minimatch can also be passed to
-Glob to change pattern matching behavior. Also, some have been added,
-or have glob-specific ramifications.
-
-All options are false by default, unless otherwise noted.
-
-All options are added to the Glob object, as well.
-
-If you are running many `glob` operations, you can pass a Glob object
-as the `options` argument to a subsequent operation to shortcut some
-`stat` and `readdir` calls. At the very least, you may pass in shared
-`symlinks`, `statCache`, `realpathCache`, and `cache` options, so that
-parallel glob operations will be sped up by sharing information about
-the filesystem.
-
-* `cwd` The current working directory in which to search. Defaults
- to `process.cwd()`.
-* `root` The place where patterns starting with `/` will be mounted
- onto. Defaults to `path.resolve(options.cwd, "/")` (`/` on Unix
- systems, and `C:\` or some such on Windows.)
-* `dot` Include `.dot` files in normal matches and `globstar` matches.
- Note that an explicit dot in a portion of the pattern will always
- match dot files.
-* `nomount` By default, a pattern starting with a forward-slash will be
- "mounted" onto the root setting, so that a valid filesystem path is
- returned. Set this flag to disable that behavior.
-* `mark` Add a `/` character to directory matches. Note that this
- requires additional stat calls.
-* `nosort` Don't sort the results.
-* `stat` Set to true to stat *all* results. This reduces performance
- somewhat, and is completely unnecessary, unless `readdir` is presumed
- to be an untrustworthy indicator of file existence.
-* `silent` When an unusual error is encountered when attempting to
- read a directory, a warning will be printed to stderr. Set the
- `silent` option to true to suppress these warnings.
-* `strict` When an unusual error is encountered when attempting to
- read a directory, the process will just continue on in search of
- other matches. Set the `strict` option to raise an error in these
- cases.
-* `cache` See `cache` property above. Pass in a previously generated
- cache object to save some fs calls.
-* `statCache` A cache of results of filesystem information, to prevent
- unnecessary stat calls. While it should not normally be necessary
- to set this, you may pass the statCache from one glob() call to the
- options object of another, if you know that the filesystem will not
- change between calls. (See "Race Conditions" below.)
-* `symlinks` A cache of known symbolic links. You may pass in a
- previously generated `symlinks` object to save `lstat` calls when
- resolving `**` matches.
-* `sync` DEPRECATED: use `glob.sync(pattern, opts)` instead.
-* `nounique` In some cases, brace-expanded patterns can result in the
- same file showing up multiple times in the result set. By default,
- this implementation prevents duplicates in the result set. Set this
- flag to disable that behavior.
-* `nonull` Set to never return an empty set, instead returning a set
- containing the pattern itself. This is the default in glob(3).
-* `debug` Set to enable debug logging in minimatch and glob.
-* `nobrace` Do not expand `{a,b}` and `{1..3}` brace sets.
-* `noglobstar` Do not match `**` against multiple filenames. (Ie,
- treat it as a normal `*` instead.)
-* `noext` Do not match `+(a|b)` "extglob" patterns.
-* `nocase` Perform a case-insensitive match. Note: on
- case-insensitive filesystems, non-magic patterns will match by
- default, since `stat` and `readdir` will not raise errors.
-* `matchBase` Perform a basename-only match if the pattern does not
- contain any slash characters. That is, `*.js` would be treated as
- equivalent to `**/*.js`, matching all js files in all directories.
-* `nodir` Do not match directories, only files. (Note: to match
- *only* directories, simply put a `/` at the end of the pattern.)
-* `ignore` Add a pattern or an array of glob patterns to exclude matches.
- Note: `ignore` patterns are *always* in `dot:true` mode, regardless
- of any other settings.
-* `follow` Follow symlinked directories when expanding `**` patterns.
- Note that this can result in a lot of duplicate references in the
- presence of cyclic links.
-* `realpath` Set to true to call `fs.realpath` on all of the results.
- In the case of a symlink that cannot be resolved, the full absolute
- path to the matched entry is returned (though it will usually be a
- broken symlink)
-* `absolute` Set to true to always receive absolute paths for matched
- files. Unlike `realpath`, this also affects the values returned in
- the `match` event.
-
-## Comparisons to other fnmatch/glob implementations
-
-While strict compliance with the existing standards is a worthwhile
-goal, some discrepancies exist between node-glob and other
-implementations, and are intentional.
-
-The double-star character `**` is supported by default, unless the
-`noglobstar` flag is set. This is supported in the manner of bsdglob
-and bash 4.3, where `**` only has special significance if it is the only
-thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but
-`a/**b` will not.
-
-Note that symlinked directories are not crawled as part of a `**`,
-though their contents may match against subsequent portions of the
-pattern. This prevents infinite loops and duplicates and the like.
-
-If an escaped pattern has no matches, and the `nonull` flag is set,
-then glob returns the pattern as-provided, rather than
-interpreting the character escapes. For example,
-`glob.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than
-`"*a?"`. This is akin to setting the `nullglob` option in bash, except
-that it does not resolve escaped pattern characters.
-
-If brace expansion is not disabled, then it is performed before any
-other interpretation of the glob pattern. Thus, a pattern like
-`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded
-**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are
-checked for validity. Since those two are valid, matching proceeds.
-
-### Comments and Negation
-
-Previously, this module let you mark a pattern as a "comment" if it
-started with a `#` character, or a "negated" pattern if it started
-with a `!` character.
-
-These options were deprecated in version 5, and removed in version 6.
-
-To specify things that should not match, use the `ignore` option.
-
-## Windows
-
-**Please only use forward-slashes in glob expressions.**
-
-Though windows uses either `/` or `\` as its path separator, only `/`
-characters are used by this glob implementation. You must use
-forward-slashes **only** in glob expressions. Back-slashes will always
-be interpreted as escape characters, not path separators.
-
-Results from absolute patterns such as `/foo/*` are mounted onto the
-root setting using `path.join`. On windows, this will by default result
-in `/foo/*` matching `C:\foo\bar.txt`.
-
-## Race Conditions
-
-Glob searching, by its very nature, is susceptible to race conditions,
-since it relies on directory walking and such.
-
-As a result, it is possible that a file that exists when glob looks for
-it may have been deleted or modified by the time it returns the result.
-
-As part of its internal implementation, this program caches all stat
-and readdir calls that it makes, in order to cut down on system
-overhead. However, this also makes it even more susceptible to races,
-especially if the cache or statCache objects are reused between glob
-calls.
-
-Users are thus advised not to use a glob result as a guarantee of
-filesystem state in the face of rapid changes. For the vast majority
-of operations, this is never a problem.
-
-## Glob Logo
-Glob's logo was created by [Tanya Brassie](http://tanyabrassie.com/). Logo files can be found [here](https://github.com/isaacs/node-glob/tree/master/logo).
-
-The logo is licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License](https://creativecommons.org/licenses/by-sa/4.0/).
-
-## Contributing
-
-Any change to behavior (including bugfixes) must come with a test.
-
-Patches that fail tests or reduce performance will be rejected.
-
-```
-# to run tests
-npm test
-
-# to re-generate test fixtures
-npm run test-regen
-
-# to benchmark against bash/zsh
-npm run bench
-
-# to profile javascript
-npm run prof
-```
-
-![](oh-my-glob.gif)
diff --git a/node_modules/glob/changelog.md b/node_modules/glob/changelog.md
deleted file mode 100644
index 4163677..0000000
--- a/node_modules/glob/changelog.md
+++ /dev/null
@@ -1,67 +0,0 @@
-## 7.0
-
-- Raise error if `options.cwd` is specified, and not a directory
-
-## 6.0
-
-- Remove comment and negation pattern support
-- Ignore patterns are always in `dot:true` mode
-
-## 5.0
-
-- Deprecate comment and negation patterns
-- Fix regression in `mark` and `nodir` options from making all cache
- keys absolute path.
-- Abort if `fs.readdir` returns an error that's unexpected
-- Don't emit `match` events for ignored items
-- Treat ENOTSUP like ENOTDIR in readdir
-
-## 4.5
-
-- Add `options.follow` to always follow directory symlinks in globstar
-- Add `options.realpath` to call `fs.realpath` on all results
-- Always cache based on absolute path
-
-## 4.4
-
-- Add `options.ignore`
-- Fix handling of broken symlinks
-
-## 4.3
-
-- Bump minimatch to 2.x
-- Pass all tests on Windows
-
-## 4.2
-
-- Add `glob.hasMagic` function
-- Add `options.nodir` flag
-
-## 4.1
-
-- Refactor sync and async implementations for performance
-- Throw if callback provided to sync glob function
-- Treat symbolic links in globstar results the same as Bash 4.3
-
-## 4.0
-
-- Use `^` for dependency versions (bumped major because this breaks
- older npm versions)
-- Ensure callbacks are only ever called once
-- switch to ISC license
-
-## 3.x
-
-- Rewrite in JavaScript
-- Add support for setting root, cwd, and windows support
-- Cache many fs calls
-- Add globstar support
-- emit match events
-
-## 2.x
-
-- Use `glob.h` and `fnmatch.h` from NetBSD
-
-## 1.x
-
-- `glob.h` static binding.
diff --git a/node_modules/glob/common.js b/node_modules/glob/common.js
deleted file mode 100644
index d14157a..0000000
--- a/node_modules/glob/common.js
+++ /dev/null
@@ -1,234 +0,0 @@
-exports.setopts = setopts
-exports.ownProp = ownProp
-exports.makeAbs = makeAbs
-exports.finish = finish
-exports.mark = mark
-exports.isIgnored = isIgnored
-exports.childrenIgnored = childrenIgnored
-
-function ownProp (obj, field) {
- return Object.prototype.hasOwnProperty.call(obj, field)
-}
-
-var path = require("path")
-var minimatch = require("minimatch")
-var isAbsolute = require("path-is-absolute")
-var Minimatch = minimatch.Minimatch
-
-function alphasort (a, b) {
- return a.localeCompare(b, 'en')
-}
-
-function setupIgnores (self, options) {
- self.ignore = options.ignore || []
-
- if (!Array.isArray(self.ignore))
- self.ignore = [self.ignore]
-
- if (self.ignore.length) {
- self.ignore = self.ignore.map(ignoreMap)
- }
-}
-
-// ignore patterns are always in dot:true mode.
-function ignoreMap (pattern) {
- var gmatcher = null
- if (pattern.slice(-3) === '/**') {
- var gpattern = pattern.replace(/(\/\*\*)+$/, '')
- gmatcher = new Minimatch(gpattern, { dot: true })
- }
-
- return {
- matcher: new Minimatch(pattern, { dot: true }),
- gmatcher: gmatcher
- }
-}
-
-function setopts (self, pattern, options) {
- if (!options)
- options = {}
-
- // base-matching: just use globstar for that.
- if (options.matchBase && -1 === pattern.indexOf("/")) {
- if (options.noglobstar) {
- throw new Error("base matching requires globstar")
- }
- pattern = "**/" + pattern
- }
-
- self.silent = !!options.silent
- self.pattern = pattern
- self.strict = options.strict !== false
- self.realpath = !!options.realpath
- self.realpathCache = options.realpathCache || Object.create(null)
- self.follow = !!options.follow
- self.dot = !!options.dot
- self.mark = !!options.mark
- self.nodir = !!options.nodir
- if (self.nodir)
- self.mark = true
- self.sync = !!options.sync
- self.nounique = !!options.nounique
- self.nonull = !!options.nonull
- self.nosort = !!options.nosort
- self.nocase = !!options.nocase
- self.stat = !!options.stat
- self.noprocess = !!options.noprocess
- self.absolute = !!options.absolute
-
- self.maxLength = options.maxLength || Infinity
- self.cache = options.cache || Object.create(null)
- self.statCache = options.statCache || Object.create(null)
- self.symlinks = options.symlinks || Object.create(null)
-
- setupIgnores(self, options)
-
- self.changedCwd = false
- var cwd = process.cwd()
- if (!ownProp(options, "cwd"))
- self.cwd = cwd
- else {
- self.cwd = path.resolve(options.cwd)
- self.changedCwd = self.cwd !== cwd
- }
-
- self.root = options.root || path.resolve(self.cwd, "/")
- self.root = path.resolve(self.root)
- if (process.platform === "win32")
- self.root = self.root.replace(/\\/g, "/")
-
- // TODO: is an absolute `cwd` supposed to be resolved against `root`?
- // e.g. { cwd: '/test', root: __dirname } === path.join(__dirname, '/test')
- self.cwdAbs = isAbsolute(self.cwd) ? self.cwd : makeAbs(self, self.cwd)
- if (process.platform === "win32")
- self.cwdAbs = self.cwdAbs.replace(/\\/g, "/")
- self.nomount = !!options.nomount
-
- // disable comments and negation in Minimatch.
- // Note that they are not supported in Glob itself anyway.
- options.nonegate = true
- options.nocomment = true
-
- self.minimatch = new Minimatch(pattern, options)
- self.options = self.minimatch.options
-}
-
-function finish (self) {
- var nou = self.nounique
- var all = nou ? [] : Object.create(null)
-
- for (var i = 0, l = self.matches.length; i < l; i ++) {
- var matches = self.matches[i]
- if (!matches || Object.keys(matches).length === 0) {
- if (self.nonull) {
- // do like the shell, and spit out the literal glob
- var literal = self.minimatch.globSet[i]
- if (nou)
- all.push(literal)
- else
- all[literal] = true
- }
- } else {
- // had matches
- var m = Object.keys(matches)
- if (nou)
- all.push.apply(all, m)
- else
- m.forEach(function (m) {
- all[m] = true
- })
- }
- }
-
- if (!nou)
- all = Object.keys(all)
-
- if (!self.nosort)
- all = all.sort(alphasort)
-
- // at *some* point we statted all of these
- if (self.mark) {
- for (var i = 0; i < all.length; i++) {
- all[i] = self._mark(all[i])
- }
- if (self.nodir) {
- all = all.filter(function (e) {
- var notDir = !(/\/$/.test(e))
- var c = self.cache[e] || self.cache[makeAbs(self, e)]
- if (notDir && c)
- notDir = c !== 'DIR' && !Array.isArray(c)
- return notDir
- })
- }
- }
-
- if (self.ignore.length)
- all = all.filter(function(m) {
- return !isIgnored(self, m)
- })
-
- self.found = all
-}
-
-function mark (self, p) {
- var abs = makeAbs(self, p)
- var c = self.cache[abs]
- var m = p
- if (c) {
- var isDir = c === 'DIR' || Array.isArray(c)
- var slash = p.slice(-1) === '/'
-
- if (isDir && !slash)
- m += '/'
- else if (!isDir && slash)
- m = m.slice(0, -1)
-
- if (m !== p) {
- var mabs = makeAbs(self, m)
- self.statCache[mabs] = self.statCache[abs]
- self.cache[mabs] = self.cache[abs]
- }
- }
-
- return m
-}
-
-// lotta situps...
-function makeAbs (self, f) {
- var abs = f
- if (f.charAt(0) === '/') {
- abs = path.join(self.root, f)
- } else if (isAbsolute(f) || f === '') {
- abs = f
- } else if (self.changedCwd) {
- abs = path.resolve(self.cwd, f)
- } else {
- abs = path.resolve(f)
- }
-
- if (process.platform === 'win32')
- abs = abs.replace(/\\/g, '/')
-
- return abs
-}
-
-
-// Return true, if pattern ends with globstar '**', for the accompanying parent directory.
-// Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents
-function isIgnored (self, path) {
- if (!self.ignore.length)
- return false
-
- return self.ignore.some(function(item) {
- return item.matcher.match(path) || !!(item.gmatcher && item.gmatcher.match(path))
- })
-}
-
-function childrenIgnored (self, path) {
- if (!self.ignore.length)
- return false
-
- return self.ignore.some(function(item) {
- return !!(item.gmatcher && item.gmatcher.match(path))
- })
-}
diff --git a/node_modules/glob/glob.js b/node_modules/glob/glob.js
deleted file mode 100644
index dc27aef..0000000
--- a/node_modules/glob/glob.js
+++ /dev/null
@@ -1,788 +0,0 @@
-// Approach:
-//
-// 1. Get the minimatch set
-// 2. For each pattern in the set, PROCESS(pattern, false)
-// 3. Store matches per-set, then uniq them
-//
-// PROCESS(pattern, inGlobStar)
-// Get the first [n] items from pattern that are all strings
-// Join these together. This is PREFIX.
-// If there is no more remaining, then stat(PREFIX) and
-// add to matches if it succeeds. END.
-//
-// If inGlobStar and PREFIX is symlink and points to dir
-// set ENTRIES = []
-// else readdir(PREFIX) as ENTRIES
-// If fail, END
-//
-// with ENTRIES
-// If pattern[n] is GLOBSTAR
-// // handle the case where the globstar match is empty
-// // by pruning it out, and testing the resulting pattern
-// PROCESS(pattern[0..n] + pattern[n+1 .. $], false)
-// // handle other cases.
-// for ENTRY in ENTRIES (not dotfiles)
-// // attach globstar + tail onto the entry
-// // Mark that this entry is a globstar match
-// PROCESS(pattern[0..n] + ENTRY + pattern[n .. $], true)
-//
-// else // not globstar
-// for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot)
-// Test ENTRY against pattern[n]
-// If fails, continue
-// If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $])
-//
-// Caveat:
-// Cache all stats and readdirs results to minimize syscall. Since all
-// we ever care about is existence and directory-ness, we can just keep
-// `true` for files, and [children,...] for directories, or `false` for
-// things that don't exist.
-
-module.exports = glob
-
-var fs = require('fs')
-var rp = require('fs.realpath')
-var minimatch = require('minimatch')
-var Minimatch = minimatch.Minimatch
-var inherits = require('inherits')
-var EE = require('events').EventEmitter
-var path = require('path')
-var assert = require('assert')
-var isAbsolute = require('path-is-absolute')
-var globSync = require('./sync.js')
-var common = require('./common.js')
-var setopts = common.setopts
-var ownProp = common.ownProp
-var inflight = require('inflight')
-var util = require('util')
-var childrenIgnored = common.childrenIgnored
-var isIgnored = common.isIgnored
-
-var once = require('once')
-
-function glob (pattern, options, cb) {
- if (typeof options === 'function') cb = options, options = {}
- if (!options) options = {}
-
- if (options.sync) {
- if (cb)
- throw new TypeError('callback provided to sync glob')
- return globSync(pattern, options)
- }
-
- return new Glob(pattern, options, cb)
-}
-
-glob.sync = globSync
-var GlobSync = glob.GlobSync = globSync.GlobSync
-
-// old api surface
-glob.glob = glob
-
-function extend (origin, add) {
- if (add === null || typeof add !== 'object') {
- return origin
- }
-
- var keys = Object.keys(add)
- var i = keys.length
- while (i--) {
- origin[keys[i]] = add[keys[i]]
- }
- return origin
-}
-
-glob.hasMagic = function (pattern, options_) {
- var options = extend({}, options_)
- options.noprocess = true
-
- var g = new Glob(pattern, options)
- var set = g.minimatch.set
-
- if (!pattern)
- return false
-
- if (set.length > 1)
- return true
-
- for (var j = 0; j < set[0].length; j++) {
- if (typeof set[0][j] !== 'string')
- return true
- }
-
- return false
-}
-
-glob.Glob = Glob
-inherits(Glob, EE)
-function Glob (pattern, options, cb) {
- if (typeof options === 'function') {
- cb = options
- options = null
- }
-
- if (options && options.sync) {
- if (cb)
- throw new TypeError('callback provided to sync glob')
- return new GlobSync(pattern, options)
- }
-
- if (!(this instanceof Glob))
- return new Glob(pattern, options, cb)
-
- setopts(this, pattern, options)
- this._didRealPath = false
-
- // process each pattern in the minimatch set
- var n = this.minimatch.set.length
-
- // The matches are stored as {: true,...} so that
- // duplicates are automagically pruned.
- // Later, we do an Object.keys() on these.
- // Keep them as a list so we can fill in when nonull is set.
- this.matches = new Array(n)
-
- if (typeof cb === 'function') {
- cb = once(cb)
- this.on('error', cb)
- this.on('end', function (matches) {
- cb(null, matches)
- })
- }
-
- var self = this
- this._processing = 0
-
- this._emitQueue = []
- this._processQueue = []
- this.paused = false
-
- if (this.noprocess)
- return this
-
- if (n === 0)
- return done()
-
- var sync = true
- for (var i = 0; i < n; i ++) {
- this._process(this.minimatch.set[i], i, false, done)
- }
- sync = false
-
- function done () {
- --self._processing
- if (self._processing <= 0) {
- if (sync) {
- process.nextTick(function () {
- self._finish()
- })
- } else {
- self._finish()
- }
- }
- }
-}
-
-Glob.prototype._finish = function () {
- assert(this instanceof Glob)
- if (this.aborted)
- return
-
- if (this.realpath && !this._didRealpath)
- return this._realpath()
-
- common.finish(this)
- this.emit('end', this.found)
-}
-
-Glob.prototype._realpath = function () {
- if (this._didRealpath)
- return
-
- this._didRealpath = true
-
- var n = this.matches.length
- if (n === 0)
- return this._finish()
-
- var self = this
- for (var i = 0; i < this.matches.length; i++)
- this._realpathSet(i, next)
-
- function next () {
- if (--n === 0)
- self._finish()
- }
-}
-
-Glob.prototype._realpathSet = function (index, cb) {
- var matchset = this.matches[index]
- if (!matchset)
- return cb()
-
- var found = Object.keys(matchset)
- var self = this
- var n = found.length
-
- if (n === 0)
- return cb()
-
- var set = this.matches[index] = Object.create(null)
- found.forEach(function (p, i) {
- // If there's a problem with the stat, then it means that
- // one or more of the links in the realpath couldn't be
- // resolved. just return the abs value in that case.
- p = self._makeAbs(p)
- rp.realpath(p, self.realpathCache, function (er, real) {
- if (!er)
- set[real] = true
- else if (er.syscall === 'stat')
- set[p] = true
- else
- self.emit('error', er) // srsly wtf right here
-
- if (--n === 0) {
- self.matches[index] = set
- cb()
- }
- })
- })
-}
-
-Glob.prototype._mark = function (p) {
- return common.mark(this, p)
-}
-
-Glob.prototype._makeAbs = function (f) {
- return common.makeAbs(this, f)
-}
-
-Glob.prototype.abort = function () {
- this.aborted = true
- this.emit('abort')
-}
-
-Glob.prototype.pause = function () {
- if (!this.paused) {
- this.paused = true
- this.emit('pause')
- }
-}
-
-Glob.prototype.resume = function () {
- if (this.paused) {
- this.emit('resume')
- this.paused = false
- if (this._emitQueue.length) {
- var eq = this._emitQueue.slice(0)
- this._emitQueue.length = 0
- for (var i = 0; i < eq.length; i ++) {
- var e = eq[i]
- this._emitMatch(e[0], e[1])
- }
- }
- if (this._processQueue.length) {
- var pq = this._processQueue.slice(0)
- this._processQueue.length = 0
- for (var i = 0; i < pq.length; i ++) {
- var p = pq[i]
- this._processing--
- this._process(p[0], p[1], p[2], p[3])
- }
- }
- }
-}
-
-Glob.prototype._process = function (pattern, index, inGlobStar, cb) {
- assert(this instanceof Glob)
- assert(typeof cb === 'function')
-
- if (this.aborted)
- return
-
- this._processing++
- if (this.paused) {
- this._processQueue.push([pattern, index, inGlobStar, cb])
- return
- }
-
- //console.error('PROCESS %d', this._processing, pattern)
-
- // Get the first [n] parts of pattern that are all strings.
- var n = 0
- while (typeof pattern[n] === 'string') {
- n ++
- }
- // now n is the index of the first one that is *not* a string.
-
- // see if there's anything else
- var prefix
- switch (n) {
- // if not, then this is rather simple
- case pattern.length:
- this._processSimple(pattern.join('/'), index, cb)
- return
-
- case 0:
- // pattern *starts* with some non-trivial item.
- // going to readdir(cwd), but not include the prefix in matches.
- prefix = null
- break
-
- default:
- // pattern has some string bits in the front.
- // whatever it starts with, whether that's 'absolute' like /foo/bar,
- // or 'relative' like '../baz'
- prefix = pattern.slice(0, n).join('/')
- break
- }
-
- var remain = pattern.slice(n)
-
- // get the list of entries.
- var read
- if (prefix === null)
- read = '.'
- else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) {
- if (!prefix || !isAbsolute(prefix))
- prefix = '/' + prefix
- read = prefix
- } else
- read = prefix
-
- var abs = this._makeAbs(read)
-
- //if ignored, skip _processing
- if (childrenIgnored(this, read))
- return cb()
-
- var isGlobStar = remain[0] === minimatch.GLOBSTAR
- if (isGlobStar)
- this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb)
- else
- this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb)
-}
-
-Glob.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar, cb) {
- var self = this
- this._readdir(abs, inGlobStar, function (er, entries) {
- return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb)
- })
-}
-
-Glob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {
-
- // if the abs isn't a dir, then nothing can match!
- if (!entries)
- return cb()
-
- // It will only match dot entries if it starts with a dot, or if
- // dot is set. Stuff like @(.foo|.bar) isn't allowed.
- var pn = remain[0]
- var negate = !!this.minimatch.negate
- var rawGlob = pn._glob
- var dotOk = this.dot || rawGlob.charAt(0) === '.'
-
- var matchedEntries = []
- for (var i = 0; i < entries.length; i++) {
- var e = entries[i]
- if (e.charAt(0) !== '.' || dotOk) {
- var m
- if (negate && !prefix) {
- m = !e.match(pn)
- } else {
- m = e.match(pn)
- }
- if (m)
- matchedEntries.push(e)
- }
- }
-
- //console.error('prd2', prefix, entries, remain[0]._glob, matchedEntries)
-
- var len = matchedEntries.length
- // If there are no matched entries, then nothing matches.
- if (len === 0)
- return cb()
-
- // if this is the last remaining pattern bit, then no need for
- // an additional stat *unless* the user has specified mark or
- // stat explicitly. We know they exist, since readdir returned
- // them.
-
- if (remain.length === 1 && !this.mark && !this.stat) {
- if (!this.matches[index])
- this.matches[index] = Object.create(null)
-
- for (var i = 0; i < len; i ++) {
- var e = matchedEntries[i]
- if (prefix) {
- if (prefix !== '/')
- e = prefix + '/' + e
- else
- e = prefix + e
- }
-
- if (e.charAt(0) === '/' && !this.nomount) {
- e = path.join(this.root, e)
- }
- this._emitMatch(index, e)
- }
- // This was the last one, and no stats were needed
- return cb()
- }
-
- // now test all matched entries as stand-ins for that part
- // of the pattern.
- remain.shift()
- for (var i = 0; i < len; i ++) {
- var e = matchedEntries[i]
- var newPattern
- if (prefix) {
- if (prefix !== '/')
- e = prefix + '/' + e
- else
- e = prefix + e
- }
- this._process([e].concat(remain), index, inGlobStar, cb)
- }
- cb()
-}
-
-Glob.prototype._emitMatch = function (index, e) {
- if (this.aborted)
- return
-
- if (isIgnored(this, e))
- return
-
- if (this.paused) {
- this._emitQueue.push([index, e])
- return
- }
-
- var abs = isAbsolute(e) ? e : this._makeAbs(e)
-
- if (this.mark)
- e = this._mark(e)
-
- if (this.absolute)
- e = abs
-
- if (this.matches[index][e])
- return
-
- if (this.nodir) {
- var c = this.cache[abs]
- if (c === 'DIR' || Array.isArray(c))
- return
- }
-
- this.matches[index][e] = true
-
- var st = this.statCache[abs]
- if (st)
- this.emit('stat', e, st)
-
- this.emit('match', e)
-}
-
-Glob.prototype._readdirInGlobStar = function (abs, cb) {
- if (this.aborted)
- return
-
- // follow all symlinked directories forever
- // just proceed as if this is a non-globstar situation
- if (this.follow)
- return this._readdir(abs, false, cb)
-
- var lstatkey = 'lstat\0' + abs
- var self = this
- var lstatcb = inflight(lstatkey, lstatcb_)
-
- if (lstatcb)
- fs.lstat(abs, lstatcb)
-
- function lstatcb_ (er, lstat) {
- if (er && er.code === 'ENOENT')
- return cb()
-
- var isSym = lstat && lstat.isSymbolicLink()
- self.symlinks[abs] = isSym
-
- // If it's not a symlink or a dir, then it's definitely a regular file.
- // don't bother doing a readdir in that case.
- if (!isSym && lstat && !lstat.isDirectory()) {
- self.cache[abs] = 'FILE'
- cb()
- } else
- self._readdir(abs, false, cb)
- }
-}
-
-Glob.prototype._readdir = function (abs, inGlobStar, cb) {
- if (this.aborted)
- return
-
- cb = inflight('readdir\0'+abs+'\0'+inGlobStar, cb)
- if (!cb)
- return
-
- //console.error('RD %j %j', +inGlobStar, abs)
- if (inGlobStar && !ownProp(this.symlinks, abs))
- return this._readdirInGlobStar(abs, cb)
-
- if (ownProp(this.cache, abs)) {
- var c = this.cache[abs]
- if (!c || c === 'FILE')
- return cb()
-
- if (Array.isArray(c))
- return cb(null, c)
- }
-
- var self = this
- fs.readdir(abs, readdirCb(this, abs, cb))
-}
-
-function readdirCb (self, abs, cb) {
- return function (er, entries) {
- if (er)
- self._readdirError(abs, er, cb)
- else
- self._readdirEntries(abs, entries, cb)
- }
-}
-
-Glob.prototype._readdirEntries = function (abs, entries, cb) {
- if (this.aborted)
- return
-
- // if we haven't asked to stat everything, then just
- // assume that everything in there exists, so we can avoid
- // having to stat it a second time.
- if (!this.mark && !this.stat) {
- for (var i = 0; i < entries.length; i ++) {
- var e = entries[i]
- if (abs === '/')
- e = abs + e
- else
- e = abs + '/' + e
- this.cache[e] = true
- }
- }
-
- this.cache[abs] = entries
- return cb(null, entries)
-}
-
-Glob.prototype._readdirError = function (f, er, cb) {
- if (this.aborted)
- return
-
- // handle errors, and cache the information
- switch (er.code) {
- case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205
- case 'ENOTDIR': // totally normal. means it *does* exist.
- var abs = this._makeAbs(f)
- this.cache[abs] = 'FILE'
- if (abs === this.cwdAbs) {
- var error = new Error(er.code + ' invalid cwd ' + this.cwd)
- error.path = this.cwd
- error.code = er.code
- this.emit('error', error)
- this.abort()
- }
- break
-
- case 'ENOENT': // not terribly unusual
- case 'ELOOP':
- case 'ENAMETOOLONG':
- case 'UNKNOWN':
- this.cache[this._makeAbs(f)] = false
- break
-
- default: // some unusual error. Treat as failure.
- this.cache[this._makeAbs(f)] = false
- if (this.strict) {
- this.emit('error', er)
- // If the error is handled, then we abort
- // if not, we threw out of here
- this.abort()
- }
- if (!this.silent)
- console.error('glob error', er)
- break
- }
-
- return cb()
-}
-
-Glob.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar, cb) {
- var self = this
- this._readdir(abs, inGlobStar, function (er, entries) {
- self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb)
- })
-}
-
-
-Glob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {
- //console.error('pgs2', prefix, remain[0], entries)
-
- // no entries means not a dir, so it can never have matches
- // foo.txt/** doesn't match foo.txt
- if (!entries)
- return cb()
-
- // test without the globstar, and with every child both below
- // and replacing the globstar.
- var remainWithoutGlobStar = remain.slice(1)
- var gspref = prefix ? [ prefix ] : []
- var noGlobStar = gspref.concat(remainWithoutGlobStar)
-
- // the noGlobStar pattern exits the inGlobStar state
- this._process(noGlobStar, index, false, cb)
-
- var isSym = this.symlinks[abs]
- var len = entries.length
-
- // If it's a symlink, and we're in a globstar, then stop
- if (isSym && inGlobStar)
- return cb()
-
- for (var i = 0; i < len; i++) {
- var e = entries[i]
- if (e.charAt(0) === '.' && !this.dot)
- continue
-
- // these two cases enter the inGlobStar state
- var instead = gspref.concat(entries[i], remainWithoutGlobStar)
- this._process(instead, index, true, cb)
-
- var below = gspref.concat(entries[i], remain)
- this._process(below, index, true, cb)
- }
-
- cb()
-}
-
-Glob.prototype._processSimple = function (prefix, index, cb) {
- // XXX review this. Shouldn't it be doing the mounting etc
- // before doing stat? kinda weird?
- var self = this
- this._stat(prefix, function (er, exists) {
- self._processSimple2(prefix, index, er, exists, cb)
- })
-}
-Glob.prototype._processSimple2 = function (prefix, index, er, exists, cb) {
-
- //console.error('ps2', prefix, exists)
-
- if (!this.matches[index])
- this.matches[index] = Object.create(null)
-
- // If it doesn't exist, then just mark the lack of results
- if (!exists)
- return cb()
-
- if (prefix && isAbsolute(prefix) && !this.nomount) {
- var trail = /[\/\\]$/.test(prefix)
- if (prefix.charAt(0) === '/') {
- prefix = path.join(this.root, prefix)
- } else {
- prefix = path.resolve(this.root, prefix)
- if (trail)
- prefix += '/'
- }
- }
-
- if (process.platform === 'win32')
- prefix = prefix.replace(/\\/g, '/')
-
- // Mark this as a match
- this._emitMatch(index, prefix)
- cb()
-}
-
-// Returns either 'DIR', 'FILE', or false
-Glob.prototype._stat = function (f, cb) {
- var abs = this._makeAbs(f)
- var needDir = f.slice(-1) === '/'
-
- if (f.length > this.maxLength)
- return cb()
-
- if (!this.stat && ownProp(this.cache, abs)) {
- var c = this.cache[abs]
-
- if (Array.isArray(c))
- c = 'DIR'
-
- // It exists, but maybe not how we need it
- if (!needDir || c === 'DIR')
- return cb(null, c)
-
- if (needDir && c === 'FILE')
- return cb()
-
- // otherwise we have to stat, because maybe c=true
- // if we know it exists, but not what it is.
- }
-
- var exists
- var stat = this.statCache[abs]
- if (stat !== undefined) {
- if (stat === false)
- return cb(null, stat)
- else {
- var type = stat.isDirectory() ? 'DIR' : 'FILE'
- if (needDir && type === 'FILE')
- return cb()
- else
- return cb(null, type, stat)
- }
- }
-
- var self = this
- var statcb = inflight('stat\0' + abs, lstatcb_)
- if (statcb)
- fs.lstat(abs, statcb)
-
- function lstatcb_ (er, lstat) {
- if (lstat && lstat.isSymbolicLink()) {
- // If it's a symlink, then treat it as the target, unless
- // the target does not exist, then treat it as a file.
- return fs.stat(abs, function (er, stat) {
- if (er)
- self._stat2(f, abs, null, lstat, cb)
- else
- self._stat2(f, abs, er, stat, cb)
- })
- } else {
- self._stat2(f, abs, er, lstat, cb)
- }
- }
-}
-
-Glob.prototype._stat2 = function (f, abs, er, stat, cb) {
- if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) {
- this.statCache[abs] = false
- return cb()
- }
-
- var needDir = f.slice(-1) === '/'
- this.statCache[abs] = stat
-
- if (abs.slice(-1) === '/' && stat && !stat.isDirectory())
- return cb(null, false, stat)
-
- var c = true
- if (stat)
- c = stat.isDirectory() ? 'DIR' : 'FILE'
- this.cache[abs] = this.cache[abs] || c
-
- if (needDir && c === 'FILE')
- return cb()
-
- return cb(null, c, stat)
-}
diff --git a/node_modules/glob/package.json b/node_modules/glob/package.json
deleted file mode 100644
index b345ae1..0000000
--- a/node_modules/glob/package.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
- "author": "Isaac Z. Schlueter (http://blog.izs.me/)",
- "name": "glob",
- "description": "a little globber",
- "version": "7.1.7",
- "repository": {
- "type": "git",
- "url": "git://github.com/isaacs/node-glob.git"
- },
- "main": "glob.js",
- "files": [
- "glob.js",
- "sync.js",
- "common.js"
- ],
- "engines": {
- "node": "*"
- },
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "devDependencies": {
- "mkdirp": "0",
- "rimraf": "^2.2.8",
- "tap": "^15.0.6",
- "tick": "0.0.6"
- },
- "tap": {
- "before": "test/00-setup.js",
- "after": "test/zz-cleanup.js",
- "jobs": 1
- },
- "scripts": {
- "prepublish": "npm run benchclean",
- "profclean": "rm -f v8.log profile.txt",
- "test": "tap",
- "test-regen": "npm run profclean && TEST_REGEN=1 node test/00-setup.js",
- "bench": "bash benchmark.sh",
- "prof": "bash prof.sh && cat profile.txt",
- "benchclean": "node benchclean.js"
- },
- "license": "ISC",
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
-}
diff --git a/node_modules/glob/sync.js b/node_modules/glob/sync.js
deleted file mode 100644
index 10b0ed2..0000000
--- a/node_modules/glob/sync.js
+++ /dev/null
@@ -1,484 +0,0 @@
-module.exports = globSync
-globSync.GlobSync = GlobSync
-
-var fs = require('fs')
-var rp = require('fs.realpath')
-var minimatch = require('minimatch')
-var Minimatch = minimatch.Minimatch
-var Glob = require('./glob.js').Glob
-var util = require('util')
-var path = require('path')
-var assert = require('assert')
-var isAbsolute = require('path-is-absolute')
-var common = require('./common.js')
-var setopts = common.setopts
-var ownProp = common.ownProp
-var childrenIgnored = common.childrenIgnored
-var isIgnored = common.isIgnored
-
-function globSync (pattern, options) {
- if (typeof options === 'function' || arguments.length === 3)
- throw new TypeError('callback provided to sync glob\n'+
- 'See: https://github.com/isaacs/node-glob/issues/167')
-
- return new GlobSync(pattern, options).found
-}
-
-function GlobSync (pattern, options) {
- if (!pattern)
- throw new Error('must provide pattern')
-
- if (typeof options === 'function' || arguments.length === 3)
- throw new TypeError('callback provided to sync glob\n'+
- 'See: https://github.com/isaacs/node-glob/issues/167')
-
- if (!(this instanceof GlobSync))
- return new GlobSync(pattern, options)
-
- setopts(this, pattern, options)
-
- if (this.noprocess)
- return this
-
- var n = this.minimatch.set.length
- this.matches = new Array(n)
- for (var i = 0; i < n; i ++) {
- this._process(this.minimatch.set[i], i, false)
- }
- this._finish()
-}
-
-GlobSync.prototype._finish = function () {
- assert(this instanceof GlobSync)
- if (this.realpath) {
- var self = this
- this.matches.forEach(function (matchset, index) {
- var set = self.matches[index] = Object.create(null)
- for (var p in matchset) {
- try {
- p = self._makeAbs(p)
- var real = rp.realpathSync(p, self.realpathCache)
- set[real] = true
- } catch (er) {
- if (er.syscall === 'stat')
- set[self._makeAbs(p)] = true
- else
- throw er
- }
- }
- })
- }
- common.finish(this)
-}
-
-
-GlobSync.prototype._process = function (pattern, index, inGlobStar) {
- assert(this instanceof GlobSync)
-
- // Get the first [n] parts of pattern that are all strings.
- var n = 0
- while (typeof pattern[n] === 'string') {
- n ++
- }
- // now n is the index of the first one that is *not* a string.
-
- // See if there's anything else
- var prefix
- switch (n) {
- // if not, then this is rather simple
- case pattern.length:
- this._processSimple(pattern.join('/'), index)
- return
-
- case 0:
- // pattern *starts* with some non-trivial item.
- // going to readdir(cwd), but not include the prefix in matches.
- prefix = null
- break
-
- default:
- // pattern has some string bits in the front.
- // whatever it starts with, whether that's 'absolute' like /foo/bar,
- // or 'relative' like '../baz'
- prefix = pattern.slice(0, n).join('/')
- break
- }
-
- var remain = pattern.slice(n)
-
- // get the list of entries.
- var read
- if (prefix === null)
- read = '.'
- else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) {
- if (!prefix || !isAbsolute(prefix))
- prefix = '/' + prefix
- read = prefix
- } else
- read = prefix
-
- var abs = this._makeAbs(read)
-
- //if ignored, skip processing
- if (childrenIgnored(this, read))
- return
-
- var isGlobStar = remain[0] === minimatch.GLOBSTAR
- if (isGlobStar)
- this._processGlobStar(prefix, read, abs, remain, index, inGlobStar)
- else
- this._processReaddir(prefix, read, abs, remain, index, inGlobStar)
-}
-
-
-GlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) {
- var entries = this._readdir(abs, inGlobStar)
-
- // if the abs isn't a dir, then nothing can match!
- if (!entries)
- return
-
- // It will only match dot entries if it starts with a dot, or if
- // dot is set. Stuff like @(.foo|.bar) isn't allowed.
- var pn = remain[0]
- var negate = !!this.minimatch.negate
- var rawGlob = pn._glob
- var dotOk = this.dot || rawGlob.charAt(0) === '.'
-
- var matchedEntries = []
- for (var i = 0; i < entries.length; i++) {
- var e = entries[i]
- if (e.charAt(0) !== '.' || dotOk) {
- var m
- if (negate && !prefix) {
- m = !e.match(pn)
- } else {
- m = e.match(pn)
- }
- if (m)
- matchedEntries.push(e)
- }
- }
-
- var len = matchedEntries.length
- // If there are no matched entries, then nothing matches.
- if (len === 0)
- return
-
- // if this is the last remaining pattern bit, then no need for
- // an additional stat *unless* the user has specified mark or
- // stat explicitly. We know they exist, since readdir returned
- // them.
-
- if (remain.length === 1 && !this.mark && !this.stat) {
- if (!this.matches[index])
- this.matches[index] = Object.create(null)
-
- for (var i = 0; i < len; i ++) {
- var e = matchedEntries[i]
- if (prefix) {
- if (prefix.slice(-1) !== '/')
- e = prefix + '/' + e
- else
- e = prefix + e
- }
-
- if (e.charAt(0) === '/' && !this.nomount) {
- e = path.join(this.root, e)
- }
- this._emitMatch(index, e)
- }
- // This was the last one, and no stats were needed
- return
- }
-
- // now test all matched entries as stand-ins for that part
- // of the pattern.
- remain.shift()
- for (var i = 0; i < len; i ++) {
- var e = matchedEntries[i]
- var newPattern
- if (prefix)
- newPattern = [prefix, e]
- else
- newPattern = [e]
- this._process(newPattern.concat(remain), index, inGlobStar)
- }
-}
-
-
-GlobSync.prototype._emitMatch = function (index, e) {
- if (isIgnored(this, e))
- return
-
- var abs = this._makeAbs(e)
-
- if (this.mark)
- e = this._mark(e)
-
- if (this.absolute) {
- e = abs
- }
-
- if (this.matches[index][e])
- return
-
- if (this.nodir) {
- var c = this.cache[abs]
- if (c === 'DIR' || Array.isArray(c))
- return
- }
-
- this.matches[index][e] = true
-
- if (this.stat)
- this._stat(e)
-}
-
-
-GlobSync.prototype._readdirInGlobStar = function (abs) {
- // follow all symlinked directories forever
- // just proceed as if this is a non-globstar situation
- if (this.follow)
- return this._readdir(abs, false)
-
- var entries
- var lstat
- var stat
- try {
- lstat = fs.lstatSync(abs)
- } catch (er) {
- if (er.code === 'ENOENT') {
- // lstat failed, doesn't exist
- return null
- }
- }
-
- var isSym = lstat && lstat.isSymbolicLink()
- this.symlinks[abs] = isSym
-
- // If it's not a symlink or a dir, then it's definitely a regular file.
- // don't bother doing a readdir in that case.
- if (!isSym && lstat && !lstat.isDirectory())
- this.cache[abs] = 'FILE'
- else
- entries = this._readdir(abs, false)
-
- return entries
-}
-
-GlobSync.prototype._readdir = function (abs, inGlobStar) {
- var entries
-
- if (inGlobStar && !ownProp(this.symlinks, abs))
- return this._readdirInGlobStar(abs)
-
- if (ownProp(this.cache, abs)) {
- var c = this.cache[abs]
- if (!c || c === 'FILE')
- return null
-
- if (Array.isArray(c))
- return c
- }
-
- try {
- return this._readdirEntries(abs, fs.readdirSync(abs))
- } catch (er) {
- this._readdirError(abs, er)
- return null
- }
-}
-
-GlobSync.prototype._readdirEntries = function (abs, entries) {
- // if we haven't asked to stat everything, then just
- // assume that everything in there exists, so we can avoid
- // having to stat it a second time.
- if (!this.mark && !this.stat) {
- for (var i = 0; i < entries.length; i ++) {
- var e = entries[i]
- if (abs === '/')
- e = abs + e
- else
- e = abs + '/' + e
- this.cache[e] = true
- }
- }
-
- this.cache[abs] = entries
-
- // mark and cache dir-ness
- return entries
-}
-
-GlobSync.prototype._readdirError = function (f, er) {
- // handle errors, and cache the information
- switch (er.code) {
- case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205
- case 'ENOTDIR': // totally normal. means it *does* exist.
- var abs = this._makeAbs(f)
- this.cache[abs] = 'FILE'
- if (abs === this.cwdAbs) {
- var error = new Error(er.code + ' invalid cwd ' + this.cwd)
- error.path = this.cwd
- error.code = er.code
- throw error
- }
- break
-
- case 'ENOENT': // not terribly unusual
- case 'ELOOP':
- case 'ENAMETOOLONG':
- case 'UNKNOWN':
- this.cache[this._makeAbs(f)] = false
- break
-
- default: // some unusual error. Treat as failure.
- this.cache[this._makeAbs(f)] = false
- if (this.strict)
- throw er
- if (!this.silent)
- console.error('glob error', er)
- break
- }
-}
-
-GlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) {
-
- var entries = this._readdir(abs, inGlobStar)
-
- // no entries means not a dir, so it can never have matches
- // foo.txt/** doesn't match foo.txt
- if (!entries)
- return
-
- // test without the globstar, and with every child both below
- // and replacing the globstar.
- var remainWithoutGlobStar = remain.slice(1)
- var gspref = prefix ? [ prefix ] : []
- var noGlobStar = gspref.concat(remainWithoutGlobStar)
-
- // the noGlobStar pattern exits the inGlobStar state
- this._process(noGlobStar, index, false)
-
- var len = entries.length
- var isSym = this.symlinks[abs]
-
- // If it's a symlink, and we're in a globstar, then stop
- if (isSym && inGlobStar)
- return
-
- for (var i = 0; i < len; i++) {
- var e = entries[i]
- if (e.charAt(0) === '.' && !this.dot)
- continue
-
- // these two cases enter the inGlobStar state
- var instead = gspref.concat(entries[i], remainWithoutGlobStar)
- this._process(instead, index, true)
-
- var below = gspref.concat(entries[i], remain)
- this._process(below, index, true)
- }
-}
-
-GlobSync.prototype._processSimple = function (prefix, index) {
- // XXX review this. Shouldn't it be doing the mounting etc
- // before doing stat? kinda weird?
- var exists = this._stat(prefix)
-
- if (!this.matches[index])
- this.matches[index] = Object.create(null)
-
- // If it doesn't exist, then just mark the lack of results
- if (!exists)
- return
-
- if (prefix && isAbsolute(prefix) && !this.nomount) {
- var trail = /[\/\\]$/.test(prefix)
- if (prefix.charAt(0) === '/') {
- prefix = path.join(this.root, prefix)
- } else {
- prefix = path.resolve(this.root, prefix)
- if (trail)
- prefix += '/'
- }
- }
-
- if (process.platform === 'win32')
- prefix = prefix.replace(/\\/g, '/')
-
- // Mark this as a match
- this._emitMatch(index, prefix)
-}
-
-// Returns either 'DIR', 'FILE', or false
-GlobSync.prototype._stat = function (f) {
- var abs = this._makeAbs(f)
- var needDir = f.slice(-1) === '/'
-
- if (f.length > this.maxLength)
- return false
-
- if (!this.stat && ownProp(this.cache, abs)) {
- var c = this.cache[abs]
-
- if (Array.isArray(c))
- c = 'DIR'
-
- // It exists, but maybe not how we need it
- if (!needDir || c === 'DIR')
- return c
-
- if (needDir && c === 'FILE')
- return false
-
- // otherwise we have to stat, because maybe c=true
- // if we know it exists, but not what it is.
- }
-
- var exists
- var stat = this.statCache[abs]
- if (!stat) {
- var lstat
- try {
- lstat = fs.lstatSync(abs)
- } catch (er) {
- if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) {
- this.statCache[abs] = false
- return false
- }
- }
-
- if (lstat && lstat.isSymbolicLink()) {
- try {
- stat = fs.statSync(abs)
- } catch (er) {
- stat = lstat
- }
- } else {
- stat = lstat
- }
- }
-
- this.statCache[abs] = stat
-
- var c = true
- if (stat)
- c = stat.isDirectory() ? 'DIR' : 'FILE'
-
- this.cache[abs] = this.cache[abs] || c
-
- if (needDir && c === 'FILE')
- return false
-
- return c
-}
-
-GlobSync.prototype._mark = function (p) {
- return common.mark(this, p)
-}
-
-GlobSync.prototype._makeAbs = function (f) {
- return common.makeAbs(this, f)
-}
diff --git a/node_modules/global-modules/LICENSE b/node_modules/global-modules/LICENSE
deleted file mode 100644
index c0d7f13..0000000
--- a/node_modules/global-modules/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015-2017, 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.
\ No newline at end of file
diff --git a/node_modules/global-modules/README.md b/node_modules/global-modules/README.md
deleted file mode 100644
index a076f65..0000000
--- a/node_modules/global-modules/README.md
+++ /dev/null
@@ -1,75 +0,0 @@
-# global-modules [![NPM version](https://img.shields.io/npm/v/global-modules.svg?style=flat)](https://www.npmjs.com/package/global-modules) [![NPM monthly downloads](https://img.shields.io/npm/dm/global-modules.svg?style=flat)](https://npmjs.org/package/global-modules) [![NPM total downloads](https://img.shields.io/npm/dt/global-modules.svg?style=flat)](https://npmjs.org/package/global-modules) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/global-modules.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/global-modules)
-
-> The directory used by npm for globally installed npm modules.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save global-modules
-```
-
-## Usage
-
-```js
-var globalModules = require('global-modules');
-console.log(globalModules);
-//=> '/usr/local/lib/node_modules'
-```
-_(Note that this path might be different based on OS or user defined configuration settings)_
-
-## About
-
-### Related projects
-
-* [git-config-path](https://www.npmjs.com/package/git-config-path): Resolve the path to the user's local or global .gitconfig. | [homepage](https://github.com/jonschlinkert/git-config-path "Resolve the path to the user's local or global .gitconfig.")
-* [global-prefix](https://www.npmjs.com/package/global-prefix): Get the npm global path prefix. | [homepage](https://github.com/jonschlinkert/global-prefix "Get the npm global path prefix.")
-* [homedir-polyfill](https://www.npmjs.com/package/homedir-polyfill): Node.js os.homedir polyfill for older versions of node.js. | [homepage](https://github.com/doowb/homedir-polyfill "Node.js os.homedir polyfill for older versions of node.js.")
-* [npm-paths](https://www.npmjs.com/package/npm-paths): Returns an array of unique "npm" directories based on the user's platform and environment. | [homepage](https://github.com/jonschlinkert/npm-paths "Returns an array of unique "npm" directories based on the user's platform and environment.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 14 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 1 | [jason-chang](https://github.com/jason-chang) |
-| 1 | [Kikobeats](https://github.com/Kikobeats) |
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on June 28, 2017._
\ No newline at end of file
diff --git a/node_modules/global-modules/index.js b/node_modules/global-modules/index.js
deleted file mode 100644
index e4c2b8b..0000000
--- a/node_modules/global-modules/index.js
+++ /dev/null
@@ -1,31 +0,0 @@
-/*!
- * global-modules
- *
- * Copyright (c) 2015-2017 Jon Schlinkert.
- * Licensed under the MIT license.
- */
-
-'use strict';
-
-var path = require('path');
-var prefix = require('global-prefix');
-var isWindows = require('is-windows');
-var gm;
-
-function getPath() {
- if (isWindows()) {
- return path.resolve(prefix, 'node_modules');
- }
- return path.resolve(prefix, 'lib/node_modules');
-}
-
-/**
- * Expose `global-modules` path
- */
-
-Object.defineProperty(module, 'exports', {
- enumerable: true,
- get: function() {
- return gm || (gm = getPath());
- }
-});
diff --git a/node_modules/global-modules/package.json b/node_modules/global-modules/package.json
deleted file mode 100644
index 35430bb..0000000
--- a/node_modules/global-modules/package.json
+++ /dev/null
@@ -1,72 +0,0 @@
-{
- "name": "global-modules",
- "description": "The directory used by npm for globally installed npm modules.",
- "version": "1.0.0",
- "homepage": "https://github.com/jonschlinkert/global-modules",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "JasonChang (https://packagist.org/packages/jason-chang)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Kiko Beats (https://kikobeats.com)"
- ],
- "repository": "jonschlinkert/global-modules",
- "bugs": {
- "url": "https://github.com/jonschlinkert/global-modules/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "global-prefix": "^1.0.1",
- "is-windows": "^1.0.1",
- "resolve-dir": "^1.0.0"
- },
- "devDependencies": {
- "gulp-format-md": "^0.1.12",
- "mocha": "^3.4.2"
- },
- "keywords": [
- "directory",
- "dirname",
- "global",
- "module",
- "modules",
- "package",
- "path",
- "prefix",
- "resolve"
- ],
- "verb": {
- "run": true,
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "homedir-polyfill",
- "git-config-path",
- "global-prefix",
- "npm-paths"
- ]
- },
- "reflinks": [
- "verb"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/global-prefix/LICENSE b/node_modules/global-prefix/LICENSE
deleted file mode 100644
index c0d7f13..0000000
--- a/node_modules/global-prefix/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015-2017, 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.
\ No newline at end of file
diff --git a/node_modules/global-prefix/README.md b/node_modules/global-prefix/README.md
deleted file mode 100644
index 31d78ff..0000000
--- a/node_modules/global-prefix/README.md
+++ /dev/null
@@ -1,78 +0,0 @@
-# global-prefix [![NPM version](https://img.shields.io/npm/v/global-prefix.svg?style=flat)](https://www.npmjs.com/package/global-prefix) [![NPM monthly downloads](https://img.shields.io/npm/dm/global-prefix.svg?style=flat)](https://npmjs.org/package/global-prefix) [![NPM total downloads](https://img.shields.io/npm/dt/global-prefix.svg?style=flat)](https://npmjs.org/package/global-prefix) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/global-prefix.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/global-prefix) [![Windows Build Status](https://img.shields.io/appveyor/ci/jonschlinkert/global-prefix.svg?style=flat&label=AppVeyor)](https://ci.appveyor.com/project/jonschlinkert/global-prefix)
-
-> Get the npm global path prefix.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save global-prefix
-```
-
-This is partially based on the code used by npm internally to resolve the global prefix.
-
-## Usage
-
-```js
-var prefix = require('global-prefix');
-//=> '/usr/local' (this path will differ by system and user-defined config)
-```
-
-## About
-
-### Related projects
-
-* [global-modules](https://www.npmjs.com/package/global-modules): The directory used by npm for globally installed npm modules. | [homepage](https://github.com/jonschlinkert/global-modules "The directory used by npm for globally installed npm modules.")
-* [global-paths](https://www.npmjs.com/package/global-paths): Returns an array of unique "global" directories based on the user's platform and environment. The… [more](https://github.com/jonschlinkert/global-paths) | [homepage](https://github.com/jonschlinkert/global-paths "Returns an array of unique "global" directories based on the user's platform and environment. The resulting paths can be used for doing lookups for generators or other globally installed npm packages. Node.js / JavaScript.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 16 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 15 | [doowb](https://github.com/doowb) |
-| 1 | [rmbaad](https://github.com/rmbaad) |
-| 1 | [avengerpenguin](https://github.com/avengerpenguin) |
-| 1 | [jason-chang](https://github.com/jason-chang) |
-| 1 | [jorrit](https://github.com/jorrit) |
-| 1 | [mathiasvr](https://github.com/mathiasvr) |
-| 1 | [tunnckoCore](https://github.com/tunnckoCore) |
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on June 28, 2017._
\ No newline at end of file
diff --git a/node_modules/global-prefix/index.js b/node_modules/global-prefix/index.js
deleted file mode 100644
index cc66d95..0000000
--- a/node_modules/global-prefix/index.js
+++ /dev/null
@@ -1,96 +0,0 @@
-/*!
- * global-prefix
- *
- * Copyright (c) 2015-2017 Jon Schlinkert.
- * Licensed under the MIT license.
- */
-
-'use strict';
-
-var fs = require('fs');
-var path = require('path');
-var expand = require('expand-tilde');
-var homedir = require('homedir-polyfill');
-var ini = require('ini');
-var prefix;
-
-function getPrefix() {
- if (process.env.PREFIX) {
- prefix = process.env.PREFIX;
- } else {
- // Start by checking if the global prefix is set by the user
- var home = homedir();
- if (home) {
- // homedir() returns undefined if $HOME not set; path.resolve requires strings
- var userConfig = path.resolve(home, '.npmrc');
- prefix = tryConfigPath(userConfig);
- }
-
- if (!prefix) {
- // Otherwise find the path of npm
- var npm = tryNpmPath();
- if (npm) {
- // Check the built-in npm config file
- var builtinConfig = path.resolve(npm, '..', '..', 'npmrc');
- prefix = tryConfigPath(builtinConfig);
-
- if (prefix) {
- // Now the global npm config can also be checked.
- var globalConfig = path.resolve(prefix, 'etc', 'npmrc');
- prefix = tryConfigPath(globalConfig) || prefix;
- }
- }
-
- if (!prefix) fallback();
- }
- }
-
- if (prefix) {
- return expand(prefix);
- }
-}
-
-function fallback() {
- var isWindows = require('is-windows');
- if (isWindows()) {
- // c:\node\node.exe --> prefix=c:\node\
- prefix = process.env.APPDATA
- ? path.join(process.env.APPDATA, 'npm')
- : path.dirname(process.execPath);
- } else {
- // /usr/local/bin/node --> prefix=/usr/local
- prefix = path.dirname(path.dirname(process.execPath));
-
- // destdir only is respected on Unix
- if (process.env.DESTDIR) {
- prefix = path.join(process.env.DESTDIR, prefix);
- }
- }
-}
-
-function tryNpmPath() {
- try {
- return fs.realpathSync(require('which').sync('npm'));
- } catch (err) {}
- return null;
-}
-
-function tryConfigPath(configPath) {
- try {
- var data = fs.readFileSync(configPath, 'utf-8');
- var config = ini.parse(data);
- if (config.prefix) return config.prefix;
- } catch (err) {}
- return null;
-}
-
-/**
- * Expose `prefix`
- */
-
-Object.defineProperty(module, 'exports', {
- enumerable: true,
- get: function() {
- return prefix || (prefix = getPrefix());
- }
-});
diff --git a/node_modules/global-prefix/package.json b/node_modules/global-prefix/package.json
deleted file mode 100644
index 7d366a6..0000000
--- a/node_modules/global-prefix/package.json
+++ /dev/null
@@ -1,75 +0,0 @@
-{
- "name": "global-prefix",
- "description": "Get the npm global path prefix.",
- "version": "1.0.2",
- "homepage": "https://github.com/jonschlinkert/global-prefix",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Alexandr Bogachev (https://github.com/rmbaad)",
- "Brian Woodward (https://twitter.com/doowb)",
- "Charlike Mike Reagent (https://i.am.charlike.online)",
- "JasonChang (https://packagist.org/packages/jason-chang)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Jorrit Schippers (https://www.ncode.nl)",
- "Mathias Rasmussen (chrome://dino)",
- "Ross Fenning (http://rossfenning.co.uk)"
- ],
- "repository": "jonschlinkert/global-prefix",
- "bugs": {
- "url": "https://github.com/jonschlinkert/global-prefix/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "expand-tilde": "^2.0.2",
- "homedir-polyfill": "^1.0.1",
- "ini": "^1.3.4",
- "is-windows": "^1.0.1",
- "which": "^1.2.14"
- },
- "devDependencies": {
- "gulp-format-md": "^0.1.12",
- "mocha": "^3.4.2"
- },
- "keywords": [
- "global",
- "module",
- "modules",
- "npm",
- "path",
- "prefix",
- "resolve"
- ],
- "verb": {
- "run": true,
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "global-modules",
- "global-paths"
- ]
- },
- "reflinks": [
- "verb"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/glogg/LICENSE b/node_modules/glogg/LICENSE
deleted file mode 100644
index 3a58630..0000000
--- a/node_modules/glogg/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014, 2015, 2018 Blaine Bublitz and Eric Schoffstall
-
-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/glogg/README.md b/node_modules/glogg/README.md
deleted file mode 100644
index 897e105..0000000
--- a/node_modules/glogg/README.md
+++ /dev/null
@@ -1,114 +0,0 @@
-
-
-
-
-
-
-# glogg
-
-[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Travis Build Status][travis-image]][travis-url] [![AppVeyor Build Status][appveyor-image]][appveyor-url] [![Coveralls Status][coveralls-image]][coveralls-url] [![Gitter chat][gitter-image]][gitter-url]
-
-Global logging utility.
-
-## Usage
-
-```js
-var getLogger = require('glogg');
-
-var logger = getLogger('my-namespace');
-
-// logs strings
-logger.debug('The MOST verbose!');
-logger.info('Some important info');
-logger.warn('All the warnings to you');
-logger.error('OH NO! SOMETHING HAPPENED!');
-
-// supports util.format!
-logger.info('%s style!', 'printf');
-
-// log anything
-logger.debug({ my: 'obj' });
-logger.info([1, 2, 3]);
-
-// somewhere else
-logger.on('info', function(msg){
- // do something with msg
-});
-
-// must be handled to avoid crashing process
-logger.on('error', function(msg){
- // now it won't crash
-});
-```
-
-## API
-
-__Note: This module makes no assumptions about the log levels and they will always
-be emitted. If you are looking to filter some out, your listeners will need to have
-extra logic.__
-
-### getLogger([namespace])
-
-Create a new logger at the given namespace (or the default if no namespace is provided).
-Returns an augmented [`sparkles`](https://github.com/phated/sparkles) EventEmitter object
-with 4 methods: `debug()`, `info()`, `warn()` and `error()`. When called, these methods emit
-an event with the same name. If the first argument is a string, the arguments
-are passed through node's `util.format()` before being emitted. Other parts
-of a node program can get the logger by namespace and listen for the events to
-be emitted.
-
-#### logger.debug(msg)
-
-Emits a `debug` event with the given `msg`.
-
-If the first argument is a string, all arguments are passed to node's
-`util.format()` before being emitted.
-
-#### logger.info(msg)
-
-Emits a `info` event with the given `msg`.
-
-If the first argument is a string, all arguments are passed to node's
-`util.format()` before being emitted.
-
-#### logger.warn(msg)
-
-Emits a `warn` event with the given `msg`.
-
-If the first argument is a string, all arguments are passed to node's
-`util.format()` before being emitted.
-
-#### logger.error(msg)
-
-Emits a `error` event with the given `msg`.
-
-If the first argument is a string, all arguments are passed to node's
-`util.format()` before being emitted.
-
-__Note: You must handle this event in some way or the node process will crash
-when an `error` event is emitted.__
-
-#### logger.on(event, fn)
-
-Standard API from node's `EventEmitter`. Use this to listen for events from
-the logger methods.
-
-## License
-
-MIT
-
-[downloads-image]: http://img.shields.io/npm/dm/glogg.svg
-[npm-url]: https://www.npmjs.com/package/glogg
-[npm-image]: http://img.shields.io/npm/v/glogg.svg
-
-[travis-url]: https://travis-ci.org/gulpjs/glogg
-[travis-image]: http://img.shields.io/travis/gulpjs/glogg.svg?label=travis-ci
-
-[appveyor-url]: https://ci.appveyor.com/project/gulpjs/glogg
-[appveyor-image]: https://img.shields.io/appveyor/ci/gulpjs/glogg.svg?label=appveyor
-
-[coveralls-url]: https://coveralls.io/r/gulpjs/glogg
-[coveralls-image]: http://img.shields.io/coveralls/gulpjs/glogg/master.svg
-
-[gitter-url]: https://gitter.im/gulpjs/gulp
-[gitter-image]: https://badges.gitter.im/gulpjs/gulp.svg
diff --git a/node_modules/glogg/index.js b/node_modules/glogg/index.js
deleted file mode 100644
index 6e34bcf..0000000
--- a/node_modules/glogg/index.js
+++ /dev/null
@@ -1,34 +0,0 @@
-'use strict';
-
-var format = require('util').format;
-
-var sparkles = require('sparkles');
-
-var levels = [
- 'debug',
- 'info',
- 'warn',
- 'error',
-];
-
-function getLogger(namespace) {
- var logger = sparkles(namespace);
-
- levels.forEach(function(level) {
- logger[level] = makeLogLevel(logger, level);
- });
-
- return logger;
-}
-
-function makeLogLevel(self, level) {
- return function(msg) {
- if (typeof msg === 'string') {
- msg = format.apply(null, arguments);
- }
-
- self.emit(level, msg);
- };
-}
-
-module.exports = getLogger;
diff --git a/node_modules/glogg/package.json b/node_modules/glogg/package.json
deleted file mode 100644
index e848906..0000000
--- a/node_modules/glogg/package.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "name": "glogg",
- "version": "1.0.2",
- "description": "Global logging utility",
- "author": "Gulp Team (http://gulpjs.com/)",
- "contributors": [
- "Blaine Bublitz "
- ],
- "repository": "gulpjs/glogg",
- "license": "MIT",
- "engines": {
- "node": ">= 0.10"
- },
- "main": "index.js",
- "files": [
- "LICENSE",
- "index.js"
- ],
- "scripts": {
- "lint": "eslint .",
- "pretest": "npm run lint",
- "test": "mocha --async-only",
- "cover": "istanbul cover _mocha --report lcovonly",
- "coveralls": "npm run cover && istanbul-coveralls"
- },
- "dependencies": {
- "sparkles": "^1.0.0"
- },
- "devDependencies": {
- "eslint": "^2.13.0",
- "eslint-config-gulp": "^3.0.1",
- "expect": "^1.20.2",
- "istanbul": "^0.4.3",
- "istanbul-coveralls": "^1.0.3",
- "mocha": "^3.5.3"
- },
- "keywords": [
- "global",
- "log",
- "logger",
- "logging",
- "shared"
- ]
-}
diff --git a/node_modules/graceful-fs/LICENSE b/node_modules/graceful-fs/LICENSE
deleted file mode 100644
index 9d2c803..0000000
--- a/node_modules/graceful-fs/LICENSE
+++ /dev/null
@@ -1,15 +0,0 @@
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter, Ben Noordhuis, and Contributors
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/node_modules/graceful-fs/README.md b/node_modules/graceful-fs/README.md
deleted file mode 100644
index 5273a50..0000000
--- a/node_modules/graceful-fs/README.md
+++ /dev/null
@@ -1,133 +0,0 @@
-# graceful-fs
-
-graceful-fs functions as a drop-in replacement for the fs module,
-making various improvements.
-
-The improvements are meant to normalize behavior across different
-platforms and environments, and to make filesystem access more
-resilient to errors.
-
-## Improvements over [fs module](https://nodejs.org/api/fs.html)
-
-* Queues up `open` and `readdir` calls, and retries them once
- something closes if there is an EMFILE error from too many file
- descriptors.
-* fixes `lchmod` for Node versions prior to 0.6.2.
-* implements `fs.lutimes` if possible. Otherwise it becomes a noop.
-* ignores `EINVAL` and `EPERM` errors in `chown`, `fchown` or
- `lchown` if the user isn't root.
-* makes `lchmod` and `lchown` become noops, if not available.
-* retries reading a file if `read` results in EAGAIN error.
-
-On Windows, it retries renaming a file for up to one second if `EACCESS`
-or `EPERM` error occurs, likely because antivirus software has locked
-the directory.
-
-## USAGE
-
-```javascript
-// use just like fs
-var fs = require('graceful-fs')
-
-// now go and do stuff with it...
-fs.readFileSync('some-file-or-whatever')
-```
-
-## Global Patching
-
-If you want to patch the global fs module (or any other fs-like
-module) you can do this:
-
-```javascript
-// Make sure to read the caveat below.
-var realFs = require('fs')
-var gracefulFs = require('graceful-fs')
-gracefulFs.gracefulify(realFs)
-```
-
-This should only ever be done at the top-level application layer, in
-order to delay on EMFILE errors from any fs-using dependencies. You
-should **not** do this in a library, because it can cause unexpected
-delays in other parts of the program.
-
-## Changes
-
-This module is fairly stable at this point, and used by a lot of
-things. That being said, because it implements a subtle behavior
-change in a core part of the node API, even modest changes can be
-extremely breaking, and the versioning is thus biased towards
-bumping the major when in doubt.
-
-The main change between major versions has been switching between
-providing a fully-patched `fs` module vs monkey-patching the node core
-builtin, and the approach by which a non-monkey-patched `fs` was
-created.
-
-The goal is to trade `EMFILE` errors for slower fs operations. So, if
-you try to open a zillion files, rather than crashing, `open`
-operations will be queued up and wait for something else to `close`.
-
-There are advantages to each approach. Monkey-patching the fs means
-that no `EMFILE` errors can possibly occur anywhere in your
-application, because everything is using the same core `fs` module,
-which is patched. However, it can also obviously cause undesirable
-side-effects, especially if the module is loaded multiple times.
-
-Implementing a separate-but-identical patched `fs` module is more
-surgical (and doesn't run the risk of patching multiple times), but
-also imposes the challenge of keeping in sync with the core module.
-
-The current approach loads the `fs` module, and then creates a
-lookalike object that has all the same methods, except a few that are
-patched. It is safe to use in all versions of Node from 0.8 through
-7.0.
-
-### v4
-
-* Do not monkey-patch the fs module. This module may now be used as a
- drop-in dep, and users can opt into monkey-patching the fs builtin
- if their app requires it.
-
-### v3
-
-* Monkey-patch fs, because the eval approach no longer works on recent
- node.
-* fixed possible type-error throw if rename fails on windows
-* verify that we *never* get EMFILE errors
-* Ignore ENOSYS from chmod/chown
-* clarify that graceful-fs must be used as a drop-in
-
-### v2.1.0
-
-* Use eval rather than monkey-patching fs.
-* readdir: Always sort the results
-* win32: requeue a file if error has an OK status
-
-### v2.0
-
-* A return to monkey patching
-* wrap process.cwd
-
-### v1.1
-
-* wrap readFile
-* Wrap fs.writeFile.
-* readdir protection
-* Don't clobber the fs builtin
-* Handle fs.read EAGAIN errors by trying again
-* Expose the curOpen counter
-* No-op lchown/lchmod if not implemented
-* fs.rename patch only for win32
-* Patch fs.rename to handle AV software on Windows
-* Close #4 Chown should not fail on einval or eperm if non-root
-* Fix isaacs/fstream#1 Only wrap fs one time
-* Fix #3 Start at 1024 max files, then back off on EMFILE
-* lutimes that doens't blow up on Linux
-* A full on-rewrite using a queue instead of just swallowing the EMFILE error
-* Wrap Read/Write streams as well
-
-### 1.0
-
-* Update engines for node 0.6
-* Be lstat-graceful on Windows
-* first
diff --git a/node_modules/graceful-fs/clone.js b/node_modules/graceful-fs/clone.js
deleted file mode 100644
index dff3cc8..0000000
--- a/node_modules/graceful-fs/clone.js
+++ /dev/null
@@ -1,23 +0,0 @@
-'use strict'
-
-module.exports = clone
-
-var getPrototypeOf = Object.getPrototypeOf || function (obj) {
- return obj.__proto__
-}
-
-function clone (obj) {
- if (obj === null || typeof obj !== 'object')
- return obj
-
- if (obj instanceof Object)
- var copy = { __proto__: getPrototypeOf(obj) }
- else
- var copy = Object.create(null)
-
- Object.getOwnPropertyNames(obj).forEach(function (key) {
- Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key))
- })
-
- return copy
-}
diff --git a/node_modules/graceful-fs/graceful-fs.js b/node_modules/graceful-fs/graceful-fs.js
deleted file mode 100644
index e15042d..0000000
--- a/node_modules/graceful-fs/graceful-fs.js
+++ /dev/null
@@ -1,373 +0,0 @@
-var fs = require('fs')
-var polyfills = require('./polyfills.js')
-var legacy = require('./legacy-streams.js')
-var clone = require('./clone.js')
-
-var util = require('util')
-
-/* istanbul ignore next - node 0.x polyfill */
-var gracefulQueue
-var previousSymbol
-
-/* istanbul ignore else - node 0.x polyfill */
-if (typeof Symbol === 'function' && typeof Symbol.for === 'function') {
- gracefulQueue = Symbol.for('graceful-fs.queue')
- // This is used in testing by future versions
- previousSymbol = Symbol.for('graceful-fs.previous')
-} else {
- gracefulQueue = '___graceful-fs.queue'
- previousSymbol = '___graceful-fs.previous'
-}
-
-function noop () {}
-
-function publishQueue(context, queue) {
- Object.defineProperty(context, gracefulQueue, {
- get: function() {
- return queue
- }
- })
-}
-
-var debug = noop
-if (util.debuglog)
- debug = util.debuglog('gfs4')
-else if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || ''))
- debug = function() {
- var m = util.format.apply(util, arguments)
- m = 'GFS4: ' + m.split(/\n/).join('\nGFS4: ')
- console.error(m)
- }
-
-// Once time initialization
-if (!fs[gracefulQueue]) {
- // This queue can be shared by multiple loaded instances
- var queue = global[gracefulQueue] || []
- publishQueue(fs, queue)
-
- // Patch fs.close/closeSync to shared queue version, because we need
- // to retry() whenever a close happens *anywhere* in the program.
- // This is essential when multiple graceful-fs instances are
- // in play at the same time.
- fs.close = (function (fs$close) {
- function close (fd, cb) {
- return fs$close.call(fs, fd, function (err) {
- // This function uses the graceful-fs shared queue
- if (!err) {
- retry()
- }
-
- if (typeof cb === 'function')
- cb.apply(this, arguments)
- })
- }
-
- Object.defineProperty(close, previousSymbol, {
- value: fs$close
- })
- return close
- })(fs.close)
-
- fs.closeSync = (function (fs$closeSync) {
- function closeSync (fd) {
- // This function uses the graceful-fs shared queue
- fs$closeSync.apply(fs, arguments)
- retry()
- }
-
- Object.defineProperty(closeSync, previousSymbol, {
- value: fs$closeSync
- })
- return closeSync
- })(fs.closeSync)
-
- if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || '')) {
- process.on('exit', function() {
- debug(fs[gracefulQueue])
- require('assert').equal(fs[gracefulQueue].length, 0)
- })
- }
-}
-
-if (!global[gracefulQueue]) {
- publishQueue(global, fs[gracefulQueue]);
-}
-
-module.exports = patch(clone(fs))
-if (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH && !fs.__patched) {
- module.exports = patch(fs)
- fs.__patched = true;
-}
-
-function patch (fs) {
- // Everything that references the open() function needs to be in here
- polyfills(fs)
- fs.gracefulify = patch
-
- fs.createReadStream = createReadStream
- fs.createWriteStream = createWriteStream
- var fs$readFile = fs.readFile
- fs.readFile = readFile
- function readFile (path, options, cb) {
- if (typeof options === 'function')
- cb = options, options = null
-
- return go$readFile(path, options, cb)
-
- function go$readFile (path, options, cb) {
- return fs$readFile(path, options, function (err) {
- if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))
- enqueue([go$readFile, [path, options, cb]])
- else {
- if (typeof cb === 'function')
- cb.apply(this, arguments)
- retry()
- }
- })
- }
- }
-
- var fs$writeFile = fs.writeFile
- fs.writeFile = writeFile
- function writeFile (path, data, options, cb) {
- if (typeof options === 'function')
- cb = options, options = null
-
- return go$writeFile(path, data, options, cb)
-
- function go$writeFile (path, data, options, cb) {
- return fs$writeFile(path, data, options, function (err) {
- if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))
- enqueue([go$writeFile, [path, data, options, cb]])
- else {
- if (typeof cb === 'function')
- cb.apply(this, arguments)
- retry()
- }
- })
- }
- }
-
- var fs$appendFile = fs.appendFile
- if (fs$appendFile)
- fs.appendFile = appendFile
- function appendFile (path, data, options, cb) {
- if (typeof options === 'function')
- cb = options, options = null
-
- return go$appendFile(path, data, options, cb)
-
- function go$appendFile (path, data, options, cb) {
- return fs$appendFile(path, data, options, function (err) {
- if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))
- enqueue([go$appendFile, [path, data, options, cb]])
- else {
- if (typeof cb === 'function')
- cb.apply(this, arguments)
- retry()
- }
- })
- }
- }
-
- var fs$copyFile = fs.copyFile
- if (fs$copyFile)
- fs.copyFile = copyFile
- function copyFile (src, dest, flags, cb) {
- if (typeof flags === 'function') {
- cb = flags
- flags = 0
- }
- return fs$copyFile(src, dest, flags, function (err) {
- if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))
- enqueue([fs$copyFile, [src, dest, flags, cb]])
- else {
- if (typeof cb === 'function')
- cb.apply(this, arguments)
- retry()
- }
- })
- }
-
- var fs$readdir = fs.readdir
- fs.readdir = readdir
- function readdir (path, options, cb) {
- var args = [path]
- if (typeof options !== 'function') {
- args.push(options)
- } else {
- cb = options
- }
- args.push(go$readdir$cb)
-
- return go$readdir(args)
-
- function go$readdir$cb (err, files) {
- if (files && files.sort)
- files.sort()
-
- if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))
- enqueue([go$readdir, [args]])
-
- else {
- if (typeof cb === 'function')
- cb.apply(this, arguments)
- retry()
- }
- }
- }
-
- function go$readdir (args) {
- return fs$readdir.apply(fs, args)
- }
-
- if (process.version.substr(0, 4) === 'v0.8') {
- var legStreams = legacy(fs)
- ReadStream = legStreams.ReadStream
- WriteStream = legStreams.WriteStream
- }
-
- var fs$ReadStream = fs.ReadStream
- if (fs$ReadStream) {
- ReadStream.prototype = Object.create(fs$ReadStream.prototype)
- ReadStream.prototype.open = ReadStream$open
- }
-
- var fs$WriteStream = fs.WriteStream
- if (fs$WriteStream) {
- WriteStream.prototype = Object.create(fs$WriteStream.prototype)
- WriteStream.prototype.open = WriteStream$open
- }
-
- Object.defineProperty(fs, 'ReadStream', {
- get: function () {
- return ReadStream
- },
- set: function (val) {
- ReadStream = val
- },
- enumerable: true,
- configurable: true
- })
- Object.defineProperty(fs, 'WriteStream', {
- get: function () {
- return WriteStream
- },
- set: function (val) {
- WriteStream = val
- },
- enumerable: true,
- configurable: true
- })
-
- // legacy names
- var FileReadStream = ReadStream
- Object.defineProperty(fs, 'FileReadStream', {
- get: function () {
- return FileReadStream
- },
- set: function (val) {
- FileReadStream = val
- },
- enumerable: true,
- configurable: true
- })
- var FileWriteStream = WriteStream
- Object.defineProperty(fs, 'FileWriteStream', {
- get: function () {
- return FileWriteStream
- },
- set: function (val) {
- FileWriteStream = val
- },
- enumerable: true,
- configurable: true
- })
-
- function ReadStream (path, options) {
- if (this instanceof ReadStream)
- return fs$ReadStream.apply(this, arguments), this
- else
- return ReadStream.apply(Object.create(ReadStream.prototype), arguments)
- }
-
- function ReadStream$open () {
- var that = this
- open(that.path, that.flags, that.mode, function (err, fd) {
- if (err) {
- if (that.autoClose)
- that.destroy()
-
- that.emit('error', err)
- } else {
- that.fd = fd
- that.emit('open', fd)
- that.read()
- }
- })
- }
-
- function WriteStream (path, options) {
- if (this instanceof WriteStream)
- return fs$WriteStream.apply(this, arguments), this
- else
- return WriteStream.apply(Object.create(WriteStream.prototype), arguments)
- }
-
- function WriteStream$open () {
- var that = this
- open(that.path, that.flags, that.mode, function (err, fd) {
- if (err) {
- that.destroy()
- that.emit('error', err)
- } else {
- that.fd = fd
- that.emit('open', fd)
- }
- })
- }
-
- function createReadStream (path, options) {
- return new fs.ReadStream(path, options)
- }
-
- function createWriteStream (path, options) {
- return new fs.WriteStream(path, options)
- }
-
- var fs$open = fs.open
- fs.open = open
- function open (path, flags, mode, cb) {
- if (typeof mode === 'function')
- cb = mode, mode = null
-
- return go$open(path, flags, mode, cb)
-
- function go$open (path, flags, mode, cb) {
- return fs$open(path, flags, mode, function (err, fd) {
- if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))
- enqueue([go$open, [path, flags, mode, cb]])
- else {
- if (typeof cb === 'function')
- cb.apply(this, arguments)
- retry()
- }
- })
- }
- }
-
- return fs
-}
-
-function enqueue (elem) {
- debug('ENQUEUE', elem[0].name, elem[1])
- fs[gracefulQueue].push(elem)
-}
-
-function retry () {
- var elem = fs[gracefulQueue].shift()
- if (elem) {
- debug('RETRY', elem[0].name, elem[1])
- elem[0].apply(null, elem[1])
- }
-}
diff --git a/node_modules/graceful-fs/legacy-streams.js b/node_modules/graceful-fs/legacy-streams.js
deleted file mode 100644
index d617b50..0000000
--- a/node_modules/graceful-fs/legacy-streams.js
+++ /dev/null
@@ -1,118 +0,0 @@
-var Stream = require('stream').Stream
-
-module.exports = legacy
-
-function legacy (fs) {
- return {
- ReadStream: ReadStream,
- WriteStream: WriteStream
- }
-
- function ReadStream (path, options) {
- if (!(this instanceof ReadStream)) return new ReadStream(path, options);
-
- Stream.call(this);
-
- var self = this;
-
- this.path = path;
- this.fd = null;
- this.readable = true;
- this.paused = false;
-
- this.flags = 'r';
- this.mode = 438; /*=0666*/
- this.bufferSize = 64 * 1024;
-
- options = options || {};
-
- // Mixin options into this
- var keys = Object.keys(options);
- for (var index = 0, length = keys.length; index < length; index++) {
- var key = keys[index];
- this[key] = options[key];
- }
-
- if (this.encoding) this.setEncoding(this.encoding);
-
- if (this.start !== undefined) {
- if ('number' !== typeof this.start) {
- throw TypeError('start must be a Number');
- }
- if (this.end === undefined) {
- this.end = Infinity;
- } else if ('number' !== typeof this.end) {
- throw TypeError('end must be a Number');
- }
-
- if (this.start > this.end) {
- throw new Error('start must be <= end');
- }
-
- this.pos = this.start;
- }
-
- if (this.fd !== null) {
- process.nextTick(function() {
- self._read();
- });
- return;
- }
-
- fs.open(this.path, this.flags, this.mode, function (err, fd) {
- if (err) {
- self.emit('error', err);
- self.readable = false;
- return;
- }
-
- self.fd = fd;
- self.emit('open', fd);
- self._read();
- })
- }
-
- function WriteStream (path, options) {
- if (!(this instanceof WriteStream)) return new WriteStream(path, options);
-
- Stream.call(this);
-
- this.path = path;
- this.fd = null;
- this.writable = true;
-
- this.flags = 'w';
- this.encoding = 'binary';
- this.mode = 438; /*=0666*/
- this.bytesWritten = 0;
-
- options = options || {};
-
- // Mixin options into this
- var keys = Object.keys(options);
- for (var index = 0, length = keys.length; index < length; index++) {
- var key = keys[index];
- this[key] = options[key];
- }
-
- if (this.start !== undefined) {
- if ('number' !== typeof this.start) {
- throw TypeError('start must be a Number');
- }
- if (this.start < 0) {
- throw new Error('start must be >= zero');
- }
-
- this.pos = this.start;
- }
-
- this.busy = false;
- this._queue = [];
-
- if (this.fd === null) {
- this._open = fs.open;
- this._queue.push([this._open, this.path, this.flags, this.mode, undefined]);
- this.flush();
- }
- }
-}
diff --git a/node_modules/graceful-fs/package.json b/node_modules/graceful-fs/package.json
deleted file mode 100644
index d73f971..0000000
--- a/node_modules/graceful-fs/package.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{
- "name": "graceful-fs",
- "description": "A drop-in replacement for fs, making various improvements.",
- "version": "4.2.6",
- "repository": {
- "type": "git",
- "url": "https://github.com/isaacs/node-graceful-fs"
- },
- "main": "graceful-fs.js",
- "directories": {
- "test": "test"
- },
- "scripts": {
- "preversion": "npm test",
- "postversion": "npm publish",
- "postpublish": "git push origin --follow-tags",
- "test": "nyc --silent node test.js | tap -c -",
- "posttest": "nyc report"
- },
- "keywords": [
- "fs",
- "module",
- "reading",
- "retry",
- "retries",
- "queue",
- "error",
- "errors",
- "handling",
- "EMFILE",
- "EAGAIN",
- "EINVAL",
- "EPERM",
- "EACCESS"
- ],
- "license": "ISC",
- "devDependencies": {
- "import-fresh": "^2.0.0",
- "mkdirp": "^0.5.0",
- "rimraf": "^2.2.8",
- "tap": "^12.7.0"
- },
- "files": [
- "fs.js",
- "graceful-fs.js",
- "legacy-streams.js",
- "polyfills.js",
- "clone.js"
- ]
-}
diff --git a/node_modules/graceful-fs/polyfills.js b/node_modules/graceful-fs/polyfills.js
deleted file mode 100644
index 1287da1..0000000
--- a/node_modules/graceful-fs/polyfills.js
+++ /dev/null
@@ -1,346 +0,0 @@
-var constants = require('constants')
-
-var origCwd = process.cwd
-var cwd = null
-
-var platform = process.env.GRACEFUL_FS_PLATFORM || process.platform
-
-process.cwd = function() {
- if (!cwd)
- cwd = origCwd.call(process)
- return cwd
-}
-try {
- process.cwd()
-} catch (er) {}
-
-// This check is needed until node.js 12 is required
-if (typeof process.chdir === 'function') {
- var chdir = process.chdir
- process.chdir = function (d) {
- cwd = null
- chdir.call(process, d)
- }
- if (Object.setPrototypeOf) Object.setPrototypeOf(process.chdir, chdir)
-}
-
-module.exports = patch
-
-function patch (fs) {
- // (re-)implement some things that are known busted or missing.
-
- // lchmod, broken prior to 0.6.2
- // back-port the fix here.
- if (constants.hasOwnProperty('O_SYMLINK') &&
- process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)) {
- patchLchmod(fs)
- }
-
- // lutimes implementation, or no-op
- if (!fs.lutimes) {
- patchLutimes(fs)
- }
-
- // https://github.com/isaacs/node-graceful-fs/issues/4
- // Chown should not fail on einval or eperm if non-root.
- // It should not fail on enosys ever, as this just indicates
- // that a fs doesn't support the intended operation.
-
- fs.chown = chownFix(fs.chown)
- fs.fchown = chownFix(fs.fchown)
- fs.lchown = chownFix(fs.lchown)
-
- fs.chmod = chmodFix(fs.chmod)
- fs.fchmod = chmodFix(fs.fchmod)
- fs.lchmod = chmodFix(fs.lchmod)
-
- fs.chownSync = chownFixSync(fs.chownSync)
- fs.fchownSync = chownFixSync(fs.fchownSync)
- fs.lchownSync = chownFixSync(fs.lchownSync)
-
- fs.chmodSync = chmodFixSync(fs.chmodSync)
- fs.fchmodSync = chmodFixSync(fs.fchmodSync)
- fs.lchmodSync = chmodFixSync(fs.lchmodSync)
-
- fs.stat = statFix(fs.stat)
- fs.fstat = statFix(fs.fstat)
- fs.lstat = statFix(fs.lstat)
-
- fs.statSync = statFixSync(fs.statSync)
- fs.fstatSync = statFixSync(fs.fstatSync)
- fs.lstatSync = statFixSync(fs.lstatSync)
-
- // if lchmod/lchown do not exist, then make them no-ops
- if (!fs.lchmod) {
- fs.lchmod = function (path, mode, cb) {
- if (cb) process.nextTick(cb)
- }
- fs.lchmodSync = function () {}
- }
- if (!fs.lchown) {
- fs.lchown = function (path, uid, gid, cb) {
- if (cb) process.nextTick(cb)
- }
- fs.lchownSync = function () {}
- }
-
- // on Windows, A/V software can lock the directory, causing this
- // to fail with an EACCES or EPERM if the directory contains newly
- // created files. Try again on failure, for up to 60 seconds.
-
- // Set the timeout this long because some Windows Anti-Virus, such as Parity
- // bit9, may lock files for up to a minute, causing npm package install
- // failures. Also, take care to yield the scheduler. Windows scheduling gives
- // CPU to a busy looping process, which can cause the program causing the lock
- // contention to be starved of CPU by node, so the contention doesn't resolve.
- if (platform === "win32") {
- fs.rename = (function (fs$rename) { return function (from, to, cb) {
- var start = Date.now()
- var backoff = 0;
- fs$rename(from, to, function CB (er) {
- if (er
- && (er.code === "EACCES" || er.code === "EPERM")
- && Date.now() - start < 60000) {
- setTimeout(function() {
- fs.stat(to, function (stater, st) {
- if (stater && stater.code === "ENOENT")
- fs$rename(from, to, CB);
- else
- cb(er)
- })
- }, backoff)
- if (backoff < 100)
- backoff += 10;
- return;
- }
- if (cb) cb(er)
- })
- }})(fs.rename)
- }
-
- // if read() returns EAGAIN, then just try it again.
- fs.read = (function (fs$read) {
- function read (fd, buffer, offset, length, position, callback_) {
- var callback
- if (callback_ && typeof callback_ === 'function') {
- var eagCounter = 0
- callback = function (er, _, __) {
- if (er && er.code === 'EAGAIN' && eagCounter < 10) {
- eagCounter ++
- return fs$read.call(fs, fd, buffer, offset, length, position, callback)
- }
- callback_.apply(this, arguments)
- }
- }
- return fs$read.call(fs, fd, buffer, offset, length, position, callback)
- }
-
- // This ensures `util.promisify` works as it does for native `fs.read`.
- if (Object.setPrototypeOf) Object.setPrototypeOf(read, fs$read)
- return read
- })(fs.read)
-
- fs.readSync = (function (fs$readSync) { return function (fd, buffer, offset, length, position) {
- var eagCounter = 0
- while (true) {
- try {
- return fs$readSync.call(fs, fd, buffer, offset, length, position)
- } catch (er) {
- if (er.code === 'EAGAIN' && eagCounter < 10) {
- eagCounter ++
- continue
- }
- throw er
- }
- }
- }})(fs.readSync)
-
- function patchLchmod (fs) {
- fs.lchmod = function (path, mode, callback) {
- fs.open( path
- , constants.O_WRONLY | constants.O_SYMLINK
- , mode
- , function (err, fd) {
- if (err) {
- if (callback) callback(err)
- return
- }
- // prefer to return the chmod error, if one occurs,
- // but still try to close, and report closing errors if they occur.
- fs.fchmod(fd, mode, function (err) {
- fs.close(fd, function(err2) {
- if (callback) callback(err || err2)
- })
- })
- })
- }
-
- fs.lchmodSync = function (path, mode) {
- var fd = fs.openSync(path, constants.O_WRONLY | constants.O_SYMLINK, mode)
-
- // prefer to return the chmod error, if one occurs,
- // but still try to close, and report closing errors if they occur.
- var threw = true
- var ret
- try {
- ret = fs.fchmodSync(fd, mode)
- threw = false
- } finally {
- if (threw) {
- try {
- fs.closeSync(fd)
- } catch (er) {}
- } else {
- fs.closeSync(fd)
- }
- }
- return ret
- }
- }
-
- function patchLutimes (fs) {
- if (constants.hasOwnProperty("O_SYMLINK")) {
- fs.lutimes = function (path, at, mt, cb) {
- fs.open(path, constants.O_SYMLINK, function (er, fd) {
- if (er) {
- if (cb) cb(er)
- return
- }
- fs.futimes(fd, at, mt, function (er) {
- fs.close(fd, function (er2) {
- if (cb) cb(er || er2)
- })
- })
- })
- }
-
- fs.lutimesSync = function (path, at, mt) {
- var fd = fs.openSync(path, constants.O_SYMLINK)
- var ret
- var threw = true
- try {
- ret = fs.futimesSync(fd, at, mt)
- threw = false
- } finally {
- if (threw) {
- try {
- fs.closeSync(fd)
- } catch (er) {}
- } else {
- fs.closeSync(fd)
- }
- }
- return ret
- }
-
- } else {
- fs.lutimes = function (_a, _b, _c, cb) { if (cb) process.nextTick(cb) }
- fs.lutimesSync = function () {}
- }
- }
-
- function chmodFix (orig) {
- if (!orig) return orig
- return function (target, mode, cb) {
- return orig.call(fs, target, mode, function (er) {
- if (chownErOk(er)) er = null
- if (cb) cb.apply(this, arguments)
- })
- }
- }
-
- function chmodFixSync (orig) {
- if (!orig) return orig
- return function (target, mode) {
- try {
- return orig.call(fs, target, mode)
- } catch (er) {
- if (!chownErOk(er)) throw er
- }
- }
- }
-
-
- function chownFix (orig) {
- if (!orig) return orig
- return function (target, uid, gid, cb) {
- return orig.call(fs, target, uid, gid, function (er) {
- if (chownErOk(er)) er = null
- if (cb) cb.apply(this, arguments)
- })
- }
- }
-
- function chownFixSync (orig) {
- if (!orig) return orig
- return function (target, uid, gid) {
- try {
- return orig.call(fs, target, uid, gid)
- } catch (er) {
- if (!chownErOk(er)) throw er
- }
- }
- }
-
- function statFix (orig) {
- if (!orig) return orig
- // Older versions of Node erroneously returned signed integers for
- // uid + gid.
- return function (target, options, cb) {
- if (typeof options === 'function') {
- cb = options
- options = null
- }
- function callback (er, stats) {
- if (stats) {
- if (stats.uid < 0) stats.uid += 0x100000000
- if (stats.gid < 0) stats.gid += 0x100000000
- }
- if (cb) cb.apply(this, arguments)
- }
- return options ? orig.call(fs, target, options, callback)
- : orig.call(fs, target, callback)
- }
- }
-
- function statFixSync (orig) {
- if (!orig) return orig
- // Older versions of Node erroneously returned signed integers for
- // uid + gid.
- return function (target, options) {
- var stats = options ? orig.call(fs, target, options)
- : orig.call(fs, target)
- if (stats.uid < 0) stats.uid += 0x100000000
- if (stats.gid < 0) stats.gid += 0x100000000
- return stats;
- }
- }
-
- // ENOSYS means that the fs doesn't support the op. Just ignore
- // that, because it doesn't matter.
- //
- // if there's no getuid, or if getuid() is something other
- // than 0, and the error is EINVAL or EPERM, then just ignore
- // it.
- //
- // This specific case is a silent failure in cp, install, tar,
- // and most other unix tools that manage permissions.
- //
- // When running as root, or if other types of errors are
- // encountered, then it's strict.
- function chownErOk (er) {
- if (!er)
- return true
-
- if (er.code === "ENOSYS")
- return true
-
- var nonroot = !process.getuid || process.getuid() !== 0
- if (nonroot) {
- if (er.code === "EINVAL" || er.code === "EPERM")
- return true
- }
-
- return false
- }
-}
diff --git a/node_modules/gulp-cli/LICENSE b/node_modules/gulp-cli/LICENSE
deleted file mode 100644
index 9aedc0d..0000000
--- a/node_modules/gulp-cli/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015 Blaine Bublitz, Eric Schoffstall and other contributors
-
-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/gulp-cli/README.md b/node_modules/gulp-cli/README.md
deleted file mode 100644
index a998637..0000000
--- a/node_modules/gulp-cli/README.md
+++ /dev/null
@@ -1,240 +0,0 @@
-
-
-
-
-
-
-# gulp-cli
-
-[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Build Status][travis-image]][travis-url] [![AppVeyor Build Status][appveyor-image]][appveyor-url] [![Coveralls Status][coveralls-image]][coveralls-url] [![Gitter chat][gitter-image]][gitter-url]
-
-Command Line Utility for Gulp
-
-## Usage
-
-```bash
-> gulp [flags] ...
-```
-
-## Custom Metadata
-
-When listing tasks with the `gulp -T` command, gulp-cli displays some custom metadata as defined upon task functions. Currently supported properties:
-
-* `task.description` - String of the description to display.
-
-```js
-function clean() { ... }
-clean.description = 'Cleans up generated files.';
-```
-
-* `task.flags` - Object with key/value pairs being flag/description to display.
-
-```js
-function build() { ... }
-build.flags = {
- '--prod': 'Builds in production mode.'
-};
-```
-
-Example Usage:
-
-```js
-function build() { ... }
-build.description = 'Build entire project.';
-build.flags = {
- '--prod': 'Builds in production mode (minification, etc).'
-};
-// gulp 3.x
-gulp.task('build', build);
-// gulp 4.x
-gulp.task(build);
-```
-
-## Tasks
-
-The task(s) listed on the command line will be executed.
-If more than one task is listed, Gulp will execute all of them
-concurrently, that is, as if they had all been listed as dependencies of
-a single task.
-
-By default, Gulp does not serialize tasks listed on the command line. If you would like to execute tasks serially, you must specify the `--series` flag. e.g. `gulp clean build --series`
-
-Just running `gulp` will execute the task `default`. If there is no
-`default` task, gulp will error.
-
-## Completion
-> Thanks to the grunt team, specifically Tyler Kellen
-
-To enable tasks auto-completion in shell you should add `eval "$(gulp --completion=shell)"` in your `.shellrc` file.
-
-###### Bash:
-
-Add `eval "$(gulp --completion=bash)"` to `~/.bashrc`.
-
-###### Zsh:
-
-Add `eval "$(gulp --completion=zsh)"` to `~/.zshrc`.
-
-###### Powershell:
-
-Add `Invoke-Expression ((gulp --completion=powershell) -join [System.Environment]::NewLine)` to `$PROFILE`.
-
-###### Fish:
-
-Add `gulp --completion=fish | source` to `~/.config/fish/config.fish`.
-
-## Compilers
-
-You can find a list of supported languages at https://github.com/js-cli/js-interpret. If you would like to add support for a new language, send pull requests/open issues on that project.
-
-## Environment
-
-The CLI adds process.env.INIT_CWD which is the original cwd it was launched from.
-
-## Configuration
-
-Configuration is supported through the use of a `.gulp.*` file (e.g. `.gulp.json`, `.gulp.yml`). You can find a list of supported languages at https://github.com/js-cli/js-interpret.
-
-Configuration from the home directory (`~`) and current working directory (`cwd`) are merged with `cwd` taking precedence.
-
-Supported configurations properties:
-
-| Property | Description |
-|--------------------|-------------|
-| description | Top-level description of the project/gulpfile (Replaces "Tasks for ~/path/of/gulpfile.js") |
-| flags.continue | Continue execution of tasks upon failure by default. |
-| flags.compactTasks | Reduce the output of task dependency tree by default. |
-| flags.tasksDepth | Set default depth of task dependency tree. |
-| flags.gulpfile | Set a default gulpfile |
-| flags.silent | Silence logging by default |
-| flags.series | Run tasks given on the CLI in series (the default is parallel) |
-| flags.require | An array of modules to require before running the gulpfile. Any relative paths will be resolved against the `--cwd` directory (if you don't want that behavior, use absolute paths) |
-| flags.nodeFlags | An array of flags used to forcibly respawn the process upon startup. For example, if you always want your gulpfiles to run in node's harmony mode, you can set `--harmony` here |
-
-## Flags
-
-gulp has very few flags to know about. All other flags are for tasks to use if needed.
-
-__Some flags only work with gulp 4 and will be ignored when invoked against gulp 3.__
-
-
-
-
- Flag
- Short Flag
- Description
-
-
-
-
- --help
- -h
- Show this help.
-
-
- --version
- -v
- Print the global and local gulp versions.
-
-
- --require [path]
-
- Will require a module before running the gulpfile. This is useful for transpilers but also has other applications.
-
-
- --gulpfile [path]
- -f
- Manually set path of gulpfile. Useful if you have multiple gulpfiles. This will set the CWD to the gulpfile directory as well.
-
-
- --cwd [path]
-
- Manually set the CWD. The search for the gulpfile, as well as the relativity of all requires (including the `--require` flag) will be from here.
-
-
- --verify [path (optional)]
-
- Will verify plugins referenced in project's package.json against the plugins blacklist.
-
-
- --tasks
- -T
- Print the task dependency tree for the loaded gulpfile.
-
-
- --tasks-simple
-
- Print a plaintext list of tasks for the loaded gulpfile.
-
-
- --tasks-json [path]
-
- Print the task dependency tree, in JSON format, for the loaded gulpfile. The [path] argument is optional, and if given writes the JSON to the path.
-
-
- --tasks-depth [number]
-
- Specify the depth of the task dependency tree to print. This flag can be used with --tasks or --tasks-json. (This flag was named --depth before but is deprecated.)
-
-
- --compact-tasks
-
- Reduce the output of task dependency tree by printing only top tasks and their child tasks. This flag can be used with --tasks or --tasks-json.
-
-
- --sort-tasks
-
- Will sort top tasks of task dependency tree. This flag can be used with --tasks.
-
-
- --color
-
- Will force gulp and gulp plugins to display colors, even when no color support is detected.
-
-
- --no-color
-
- Will force gulp and gulp plugins to not display colors, even when color support is detected.
-
-
- --silent
- -S
- Suppress all gulp logging.
-
-
- --continue
-
- Continue execution of tasks upon failure.
-
-
- --series
-
- Run tasks given on the CLI in series (the default is parallel).
-
-
- --log-level
- -L
- Set the loglevel. -L for least verbose and -LLLL for most verbose. -LLL is default.
-
-
-
-
-## License
-
-MIT
-
-[downloads-image]: http://img.shields.io/npm/dm/gulp-cli.svg
-[npm-url]: https://www.npmjs.com/package/gulp-cli
-[npm-image]: http://img.shields.io/npm/v/gulp-cli.svg
-
-[travis-url]: https://travis-ci.org/gulpjs/gulp-cli
-[travis-image]: http://img.shields.io/travis/gulpjs/gulp-cli.svg?label=travis-ci
-
-[appveyor-url]: https://ci.appveyor.com/project/gulpjs/gulp-cli
-[appveyor-image]: https://img.shields.io/appveyor/ci/gulpjs/gulp-cli.svg?label=appveyor
-
-[coveralls-url]: https://coveralls.io/r/gulpjs/gulp-cli
-[coveralls-image]: http://img.shields.io/coveralls/gulpjs/gulp-cli/master.svg
-
-[gitter-url]: https://gitter.im/gulpjs/gulp
-[gitter-image]: https://badges.gitter.im/gulpjs/gulp.svg
diff --git a/node_modules/gulp-cli/bin/gulp.js b/node_modules/gulp-cli/bin/gulp.js
deleted file mode 100755
index b6423d1..0000000
--- a/node_modules/gulp-cli/bin/gulp.js
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/usr/bin/env node
-
-'use strict';
-
-require('../')();
diff --git a/node_modules/gulp-cli/completion/README.md b/node_modules/gulp-cli/completion/README.md
deleted file mode 100644
index 3fa466f..0000000
--- a/node_modules/gulp-cli/completion/README.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# Completion for gulp
-> Thanks to the grunt team, specifically Tyler Kellen
-
-To enable tasks auto-completion in shell you should add `eval "$(gulp --completion=shell)"` in your `.shellrc` file.
-
-## Bash
-
-Add `eval "$(gulp --completion=bash)"` to `~/.bashrc`.
-
-## Zsh
-
-Add `eval "$(gulp --completion=zsh)"` to `~/.zshrc`.
-
-## Powershell
-
-Add `Invoke-Expression ((gulp --completion=powershell) -join [System.Environment]::NewLine)` to `$PROFILE`.
-
-## Fish
-
-Add `gulp --completion=fish | source` to `~/.config/fish/config.fish`.
diff --git a/node_modules/gulp-cli/completion/bash b/node_modules/gulp-cli/completion/bash
deleted file mode 100644
index 704c27c..0000000
--- a/node_modules/gulp-cli/completion/bash
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/bash
-
-# Borrowed from grunt-cli
-# http://gruntjs.com/
-#
-# Copyright (c) 2012 Tyler Kellen, contributors
-# Licensed under the MIT license.
-# https://github.com/gruntjs/grunt/blob/master/LICENSE-MIT
-
-# Usage:
-#
-# To enable bash completion for gulp, add the following line (minus the
-# leading #, which is the bash comment character) to your ~/.bashrc file:
-#
-# eval "$(gulp --completion=bash)"
-
-# Enable bash autocompletion.
-function _gulp_completions() {
- # The currently-being-completed word.
- local cur="${COMP_WORDS[COMP_CWORD]}"
- #Grab tasks
- local compls=$(gulp --tasks-simple)
- # Tell complete what stuff to show.
- COMPREPLY=($(compgen -W "$compls" -- "$cur"))
-}
-
-complete -o default -F _gulp_completions gulp
diff --git a/node_modules/gulp-cli/completion/fish b/node_modules/gulp-cli/completion/fish
deleted file mode 100644
index f27f224..0000000
--- a/node_modules/gulp-cli/completion/fish
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/usr/bin/env fish
-
-# Usage:
-#
-# To enable fish completion for gulp, add the following line to
-# your ~/.config/fish/config.fish file:
-#
-# gulp --completion=fish | source
-
-complete -c gulp -a "(gulp --tasks-simple)" -f
diff --git a/node_modules/gulp-cli/completion/powershell b/node_modules/gulp-cli/completion/powershell
deleted file mode 100644
index 08ec438..0000000
--- a/node_modules/gulp-cli/completion/powershell
+++ /dev/null
@@ -1,61 +0,0 @@
-# Copyright (c) 2014 Jason Jarrett
-#
-# Tab completion for the `gulp`
-#
-# Usage:
-#
-# To enable powershell completion for gulp you need to be running
-# at least PowerShell v3 or greater and add the below to your $PROFILE
-#
-# Invoke-Expression ((gulp --completion=powershell) -join [System.Environment]::NewLine)
-#
-#
-
-$gulp_completion_Process = {
- param($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameter)
-
-
- # Load up an assembly to read the gulpfile's sha1
- if(-not $global:GulpSHA1Managed) {
- [Reflection.Assembly]::LoadWithPartialName("System.Security") | out-null
- $global:GulpSHA1Managed = new-Object System.Security.Cryptography.SHA1Managed
- }
-
- # setup a global (in-memory) cache
- if(-not $global:GulpfileShaCache) {
- $global:GulpfileShaCache = @{};
- }
-
- $cache = $global:GulpfileShaCache;
-
- # Get the gulpfile's sha1
- $sha1gulpFile = (resolve-path gulpfile.js -ErrorAction Ignore | %{
- $file = [System.IO.File]::Open($_.Path, "open", "read")
- [string]::join('', ($global:GulpSHA1Managed.ComputeHash($file) | %{ $_.ToString("x2") }))
- $file.Dispose()
- })
-
- # lookup the sha1 for previously cached task lists.
- if($cache.ContainsKey($sha1gulpFile)){
- $tasks = $cache[$sha1gulpFile];
- } else {
- $tasks = (gulp --tasks-simple).split("`n");
- $cache[$sha1gulpFile] = $tasks;
- }
-
-
- $tasks |
- where { $_.startswith($commandName) }
- Sort-Object |
- foreach { New-Object System.Management.Automation.CompletionResult $_, $_, 'ParameterValue', ('{0}' -f $_) }
-}
-
-if (-not $global:options) {
- $global:options = @{
- CustomArgumentCompleters = @{};
- NativeArgumentCompleters = @{}
- }
-}
-
-$global:options['NativeArgumentCompleters']['gulp'] = $gulp_completion_Process
-$function:tabexpansion2 = $function:tabexpansion2 -replace 'End\r\n{','End { if ($null -ne $options) { $options += $global:options} else {$options = $global:options}'
diff --git a/node_modules/gulp-cli/completion/zsh b/node_modules/gulp-cli/completion/zsh
deleted file mode 100644
index 8169b22..0000000
--- a/node_modules/gulp-cli/completion/zsh
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/zsh
-
-# Borrowed from grunt-cli
-# http://gruntjs.com/
-#
-# Copyright (c) 2012 Tyler Kellen, contributors
-# Licensed under the MIT license.
-# https://github.com/gruntjs/grunt/blob/master/LICENSE-MIT
-
-# Usage:
-#
-# To enable zsh completion for gulp, add the following line (minus the
-# leading #, which is the zsh comment character) to your ~/.zshrc file:
-#
-# eval "$(gulp --completion=zsh)"
-
-# Enable zsh autocompletion.
-function _gulp_completion() {
- # Grab tasks
- compls=$(gulp --tasks-simple)
- completions=(${=compls})
- compadd -- $completions
-}
-
-compdef _gulp_completion gulp
diff --git a/node_modules/gulp-cli/gulp.1 b/node_modules/gulp-cli/gulp.1
deleted file mode 100644
index a9342d8..0000000
--- a/node_modules/gulp-cli/gulp.1
+++ /dev/null
@@ -1,83 +0,0 @@
-.TH "GULP" "" "June 2020" "" ""
-.SH "NAME"
-\fBgulp\fR
-.SS Usage
-.P
-\fBgulp [flags] \.\.\.\fP
-.SS Tasks
-.P
-The task(s) listed will be executed\.
-If more than one task is listed, Gulp will execute all of them
-concurrently, that is, as if they had all been listed as dependencies of
-a single task\.
-.P
-By default, Gulp does not serialize tasks listed on the command line\. If you would like to execute tasks serially, you must specify the \fB\-\-series\fP flag\. e\.g\. \fBgulp clean build \-\-series\fP
-.P
-Just running \fBgulp\fP will execute the task \fBdefault\fP\|\. If there is no
-\fBdefault\fP task, gulp will error\.
-.SS Compilers
-.P
-You can find a list of supported languages at https:// If you would like to add support for a new language, send pull requests/open issues on that project\.
-.SS Environment
-.P
-The CLI adds process\.env\.INIT_CWD which is the original cwd it was launched from\.
-.SS Flags
-.P
-gulp has very few flags to know about\. All other flags are for tasks to use if needed\.
-.P
-\fBSome flags only work with gulp 4 and will be ignored when invoked against gulp 3\.\fR
-.P
-\fB\-\-help\fR, \fB\-h\fR
- Show the help\.
-.P
-\fB\-\-version\fR, \fB\-v\fR
- Print the global and local gulp versions\.
-.P
-\fB\-\-require\fR [path]
- Will require a module before running the gulpfile\. This is useful for transpilers but also has other applications\.
-.P
-\fB\-\-gulpfile\fR [path], \fB\-f\fR [path]
- Manually set path of gulpfile\. Useful if you have multiple gulpfiles\. This will set the CWD to the gulpfile directory as well\.
-.P
-\fB\-\-cwd\fR [path]
- Manually set the CWD\. The search for the gulpfile, as well as the relativity of all requires will be from here\.
-.P
-\fB\-\-verify\fR [path (optional)]
- Will verify plugins referenced in project's package\.json against the plugins blacklist\.
-.P
-\fB\-\-tasks\fR, \fB\-T\fR
- Print the task dependency tree for the loaded gulpfile\.
-.P
-\fB\-\-tasks\-simple\fR
- Print a plaintext list of tasks for the loaded gulpfile\.
-.P
-\fB\-\-tasks\-json\fR [path]
- Print the task dependency tree, in JSON format, for the loaded gulpfile\. The [path] argument is optional, and if given writes the JSON to the path\.
-.P
-\fB\-\-tasks\-depth\fR [number]
- Specify the depth of the task dependency tree to print\. This flag can be used with \-\-tasks or \-\-tasks\-json\. (This flag was named \-\-depth before but is deprecated\.)
-.P
-\fB\-\-compact\-tasks\fR
- Reduce the output of task dependency tree by printing only top tasks and their child tasks\. This flag can be used with \-\-tasks or \-\-tasks\-json\.
-.P
-\fB\-\-sort\-tasks\fR
- Will sort top tasks of task dependency tree\. This flag can be used with \-\-tasks\.
-.P
-\fB\-\-color\fR
- Will force gulp and gulp plugins to display colors, even when no color support is detected\.
-.P
-\fB\-\-no\-color\fR
- Will force gulp and gulp plugins to not display colors, even when color support is detected\.
-.P
-\fB\-\-silent\fR, \fB\-S\fR
- Suppress all gulp logging\.
-.P
-\fB\-\-continue\fR
- Continue execution of tasks upon failure\.
-.P
-\fB\-\-series\fR
- Run tasks given on the CLI in series (the default is parallel)\.
-.P
-\fB\-\-log\-level\fR, \fB\-L\fR
- Set the loglevel\. \-L for least verbose and \-LLLL for most verbose\. \-LLL is default\.
-
diff --git a/node_modules/gulp-cli/index.js b/node_modules/gulp-cli/index.js
deleted file mode 100644
index 258c86a..0000000
--- a/node_modules/gulp-cli/index.js
+++ /dev/null
@@ -1,212 +0,0 @@
-'use strict';
-
-var fs = require('fs');
-var path = require('path');
-var log = require('gulplog');
-var yargs = require('yargs');
-var Liftoff = require('liftoff');
-var interpret = require('interpret');
-var v8flags = require('v8flags');
-var findRange = require('semver-greatest-satisfied-range');
-var ansi = require('./lib/shared/ansi');
-var exit = require('./lib/shared/exit');
-var tildify = require('./lib/shared/tildify');
-var makeTitle = require('./lib/shared/make-title');
-var cliOptions = require('./lib/shared/cli-options');
-var completion = require('./lib/shared/completion');
-var verifyDeps = require('./lib/shared/verify-dependencies');
-var cliVersion = require('./package.json').version;
-var getBlacklist = require('./lib/shared/get-blacklist');
-var toConsole = require('./lib/shared/log/to-console');
-
-var loadConfigFiles = require('./lib/shared/config/load-files');
-var mergeConfigToCliFlags = require('./lib/shared/config/cli-flags');
-var mergeConfigToEnvFlags = require('./lib/shared/config/env-flags');
-
-// Logging functions
-var logVerify = require('./lib/shared/log/verify');
-var logBlacklistError = require('./lib/shared/log/blacklist-error');
-
-// Get supported ranges
-var ranges = fs.readdirSync(path.join(__dirname, '/lib/versioned/'));
-
-// Set env var for ORIGINAL cwd
-// before anything touches it
-process.env.INIT_CWD = process.cwd();
-
-var cli = new Liftoff({
- name: 'gulp',
- processTitle: makeTitle('gulp', process.argv.slice(2)),
- completions: completion,
- extensions: interpret.jsVariants,
- v8flags: v8flags,
- configFiles: {
- '.gulp': {
- home: {
- path: '~',
- extensions: interpret.extensions,
- },
- cwd: {
- path: '.',
- extensions: interpret.extensions,
- },
- },
- },
-});
-
-var usage =
- '\n' + ansi.bold('Usage:') +
- ' gulp ' + ansi.blue('[options]') + ' tasks';
-
-var parser = yargs.usage(usage, cliOptions);
-var opts = parser.argv;
-
-cli.on('require', function(name) {
- // This is needed because interpret needs to stub the .mjs extension
- // Without the .mjs require hook, rechoir blows up
- // However, we don't want to show the mjs-stub loader in the logs
- if (path.basename(name, '.js') !== 'mjs-stub') {
- log.info('Requiring external module', ansi.magenta(name));
- }
-});
-
-cli.on('requireFail', function(name, error) {
- log.warn(
- ansi.yellow('Failed to load external module'),
- ansi.magenta(name)
- );
- /* istanbul ignore else */
- if (error) {
- log.warn(ansi.yellow(error.toString()));
- }
-});
-
-cli.on('respawn', function(flags, child) {
- var nodeFlags = ansi.magenta(flags.join(', '));
- var pid = ansi.magenta(child.pid);
- log.info('Node flags detected:', nodeFlags);
- log.info('Respawned to PID:', pid);
-});
-
-function run() {
- cli.prepare({
- cwd: opts.cwd,
- configPath: opts.gulpfile,
- require: opts.require,
- completion: opts.completion,
- }, function(env) {
- var cfgLoadOrder = ['home', 'cwd'];
- var cfg = loadConfigFiles(env.configFiles['.gulp'], cfgLoadOrder);
- opts = mergeConfigToCliFlags(opts, cfg);
- env = mergeConfigToEnvFlags(env, cfg, opts);
- env.configProps = cfg;
-
- // Set up event listeners for logging again after configuring.
- toConsole(log, opts);
-
- cli.execute(env, env.nodeFlags, handleArguments);
- });
-}
-
-module.exports = run;
-
-// The actual logic
-function handleArguments(env) {
-
- // This translates the --continue flag in gulp
- // To the settle env variable for undertaker
- // We use the process.env so the user's gulpfile
- // Can know about the flag
- if (opts.continue) {
- process.env.UNDERTAKER_SETTLE = 'true';
- }
-
- if (opts.help) {
- parser.showHelp(console.log);
- exit(0);
- }
-
- // Anything that needs to print outside of the logging mechanism should use console.log
- if (opts.version) {
- console.log('CLI version:', cliVersion);
- console.log('Local version:', env.modulePackage.version || 'Unknown');
- exit(0);
- }
-
- if (opts.verify) {
- var pkgPath = opts.verify !== true ? opts.verify : 'package.json';
- /* istanbul ignore else */
- if (path.resolve(pkgPath) !== path.normalize(pkgPath)) {
- pkgPath = path.join(env.cwd, pkgPath);
- }
- log.info('Verifying plugins in ' + pkgPath);
- return getBlacklist(function(err, blacklist) {
- /* istanbul ignore if */
- if (err) {
- return logBlacklistError(err);
- }
-
- var blacklisted = verifyDeps(require(pkgPath), blacklist);
-
- logVerify(blacklisted);
- });
- }
-
- if (!env.modulePath) {
- /* istanbul ignore next */
- var missingNodeModules =
- fs.existsSync(path.join(env.cwd, 'package.json'))
- && !fs.existsSync(path.join(env.cwd, 'node_modules'));
-
- /* istanbul ignore next */
- var missingGulpMessage =
- missingNodeModules
- ? 'Local modules not found in'
- : 'Local gulp not found in';
- log.error(
- ansi.red(missingGulpMessage),
- ansi.magenta(tildify(env.cwd))
- );
- var hasYarn = fs.existsSync(path.join(env.cwd, 'yarn.lock'));
- /* istanbul ignore next */
- var installCommand =
- missingNodeModules
- ? hasYarn
- ? 'yarn install'
- : 'npm install'
- : hasYarn
- ? 'yarn add gulp'
- : 'npm install gulp';
- log.error(ansi.red('Try running: ' + installCommand));
- exit(1);
- }
-
- if (!env.configPath) {
- log.error(ansi.red('No gulpfile found'));
- exit(1);
- }
-
- // Chdir before requiring gulpfile to make sure
- // we let them chdir as needed
- if (process.cwd() !== env.cwd) {
- process.chdir(env.cwd);
- log.info(
- 'Working directory changed to',
- ansi.magenta(tildify(env.cwd))
- );
- }
-
- // Find the correct CLI version to run
- var range = findRange(env.modulePackage.version, ranges);
-
- if (!range) {
- log.error(
- ansi.red('Unsupported gulp version', env.modulePackage.version)
- );
- exit(1);
- }
-
- // Load and execute the CLI version
- var versionedDir = path.join(__dirname, '/lib/versioned/', range, '/');
- require(versionedDir)(opts, env, env.configProps);
-}
diff --git a/node_modules/gulp-cli/lib/shared/ansi.js b/node_modules/gulp-cli/lib/shared/ansi.js
deleted file mode 100644
index d5030fa..0000000
--- a/node_modules/gulp-cli/lib/shared/ansi.js
+++ /dev/null
@@ -1,41 +0,0 @@
-'use strict';
-
-var colors = require('ansi-colors');
-var supportsColor = require('color-support');
-
-var hasColors = colorize();
-
-/* istanbul ignore next */
-module.exports = {
- red: hasColors ? colors.red : noColor,
- green: hasColors ? colors.green : noColor,
- blue: hasColors ? colors.blue : noColor,
- magenta: hasColors ? colors.magenta : noColor,
- cyan: hasColors ? colors.cyan : noColor,
- white: hasColors ? colors.white : noColor,
- gray: hasColors ? colors.gray : noColor,
- bgred: hasColors ? colors.bgred : noColor,
- bold: hasColors ? colors.bold : noColor,
- yellow: hasColors ? colors.yellow : noColor,
-};
-
-function noColor(message) {
- return message;
-}
-
-function hasFlag(flag) {
- return (process.argv.indexOf('--' + flag) !== -1);
-}
-
-function colorize() {
- if (hasFlag('no-color')) {
- return false;
- }
-
- /* istanbul ignore if */
- if (hasFlag('color')) {
- return true;
- }
-
- return supportsColor();
-}
diff --git a/node_modules/gulp-cli/lib/shared/cli-options.js b/node_modules/gulp-cli/lib/shared/cli-options.js
deleted file mode 100644
index 09d98e3..0000000
--- a/node_modules/gulp-cli/lib/shared/cli-options.js
+++ /dev/null
@@ -1,122 +0,0 @@
-'use strict';
-
-var ansi = require('./ansi');
-
-module.exports = {
- help: {
- alias: 'h',
- type: 'boolean',
- desc: ansi.gray(
- 'Show this help.'),
- },
- version: {
- alias: 'v',
- type: 'boolean',
- desc: ansi.gray(
- 'Print the global and local gulp versions.'),
- },
- require: {
- type: 'string',
- requiresArg: true,
- desc: ansi.gray(
- 'Will require a module before running the gulpfile. ' +
- 'This is useful for transpilers but also has other applications.'),
- },
- gulpfile: {
- alias: 'f',
- type: 'string',
- requiresArg: true,
- desc: ansi.gray(
- 'Manually set path of gulpfile. Useful if you have multiple gulpfiles. ' +
- 'This will set the CWD to the gulpfile directory as well.'),
- },
- cwd: {
- type: 'string',
- requiresArg: true,
- desc: ansi.gray(
- 'Manually set the CWD. The search for the gulpfile, ' +
- 'as well as the relativity of all requires will be from here.'),
- },
- verify: {
- desc: ansi.gray(
- 'Will verify plugins referenced in project\'s package.json against ' +
- 'the plugins blacklist.'),
- },
- tasks: {
- alias: 'T',
- type: 'boolean',
- desc: ansi.gray(
- 'Print the task dependency tree for the loaded gulpfile.'),
- },
- 'tasks-simple': {
- type: 'boolean',
- desc: ansi.gray(
- 'Print a plaintext list of tasks for the loaded gulpfile.'),
- },
- 'tasks-json': {
- desc: ansi.gray(
- 'Print the task dependency tree, ' +
- 'in JSON format, for the loaded gulpfile.'),
- },
- 'tasks-depth': {
- alias: 'depth',
- type: 'number',
- requiresArg: true,
- default: undefined, // To detect if this cli option is specified.
- desc: ansi.gray(
- 'Specify the depth of the task dependency tree.'),
- },
- 'compact-tasks': {
- type: 'boolean',
- default: undefined, // To detect if this cli option is specified.
- desc: ansi.gray(
- 'Reduce the output of task dependency tree by printing ' +
- 'only top tasks and their child tasks.'),
- },
- 'sort-tasks': {
- type: 'boolean',
- default: undefined, // To detect if this cli option is specified.
- desc: ansi.gray(
- 'Will sort top tasks of task dependency tree.'),
- },
- color: {
- type: 'boolean',
- desc: ansi.gray(
- 'Will force gulp and gulp plugins to display colors, ' +
- 'even when no color support is detected.'),
- },
- 'no-color': {
- type: 'boolean',
- desc: ansi.gray(
- 'Will force gulp and gulp plugins to not display colors, ' +
- 'even when color support is detected.'),
- },
- silent: {
- alias: 'S',
- type: 'boolean',
- default: undefined, // To detect if this cli option is specified.
- desc: ansi.gray(
- 'Suppress all gulp logging.'),
- },
- continue: {
- type: 'boolean',
- default: undefined, // To detect if this cli option is specified.
- desc: ansi.gray(
- 'Continue execution of tasks upon failure.'),
- },
- series: {
- type: 'boolean',
- default: undefined, // To detect if this cli option is specified.
- desc: ansi.gray(
- 'Run tasks given on the CLI in series (the default is parallel).'),
- },
- 'log-level': {
- alias: 'L',
- // Type isn't needed because count acts as a boolean
- count: true,
- default: undefined, // To detect if this cli option is specified.
- desc: ansi.gray(
- 'Set the loglevel. -L for least verbose and -LLLL for most verbose. ' +
- '-LLL is default.'),
- },
-};
diff --git a/node_modules/gulp-cli/lib/shared/completion.js b/node_modules/gulp-cli/lib/shared/completion.js
deleted file mode 100644
index 3a47023..0000000
--- a/node_modules/gulp-cli/lib/shared/completion.js
+++ /dev/null
@@ -1,22 +0,0 @@
-'use strict';
-
-var fs = require('fs');
-var path = require('path');
-
-module.exports = function(name) {
- if (typeof name !== 'string') {
- throw new Error('Missing completion type');
- }
- var file = path.join(__dirname, '../../completion', name);
- try {
- console.log(fs.readFileSync(file, 'utf8'));
- process.exit(0);
- } catch (err) {
- console.log(
- 'echo "gulp autocompletion rules for',
- '\'' + name + '\'',
- 'not found"'
- );
- process.exit(5);
- }
-};
diff --git a/node_modules/gulp-cli/lib/shared/config/cli-flags.js b/node_modules/gulp-cli/lib/shared/config/cli-flags.js
deleted file mode 100644
index 1baf38d..0000000
--- a/node_modules/gulp-cli/lib/shared/config/cli-flags.js
+++ /dev/null
@@ -1,25 +0,0 @@
-'use strict';
-
-var copyProps = require('copy-props');
-
-var fromTo = {
- 'flags.silent': 'silent',
- 'flags.continue': 'continue',
- 'flags.series': 'series',
- 'flags.logLevel': 'logLevel',
- 'flags.compactTasks': 'compactTasks',
- 'flags.tasksDepth': 'tasksDepth',
- 'flags.sortTasks': 'sortTasks',
-};
-
-function mergeConfigToCliFlags(opt, config) {
- return copyProps(config, opt, fromTo, defaults);
-}
-
-function defaults(cfgInfo, optInfo) {
- if (optInfo.value === undefined) {
- return cfgInfo.value;
- }
-}
-
-module.exports = mergeConfigToCliFlags;
diff --git a/node_modules/gulp-cli/lib/shared/config/env-flags.js b/node_modules/gulp-cli/lib/shared/config/env-flags.js
deleted file mode 100644
index a5a4abd..0000000
--- a/node_modules/gulp-cli/lib/shared/config/env-flags.js
+++ /dev/null
@@ -1,44 +0,0 @@
-'use strict';
-
-var path = require('path');
-var copyProps = require('copy-props');
-
-var toFrom = {
- configPath: 'flags.gulpfile',
- configBase: 'flags.gulpfile',
- require: 'flags.require',
- nodeFlags: 'flags.nodeFlags',
-};
-
-function mergeConfigToEnvFlags(env, config, cliOpts) {
- // This must reverse because `flags.gulpfile` determines 2 different properties
- var reverse = true;
- return copyProps(env, config, toFrom, convert, reverse);
-
- function convert(configInfo, envInfo) {
- if (envInfo.keyChain === 'configBase') {
- if (cliOpts.gulpfile === undefined) {
- return path.dirname(configInfo.value);
- }
- return;
- }
-
- if (envInfo.keyChain === 'configPath') {
- if (cliOpts.gulpfile === undefined) {
- return configInfo.value;
- }
- return;
- }
-
- if (envInfo.keyChain === 'require') {
- return [].concat(envInfo.value, configInfo.value);
- }
-
- /* istanbul ignore else */
- if (envInfo.keyChain === 'nodeFlags') {
- return [].concat(configInfo.value || []);
- }
- }
-}
-
-module.exports = mergeConfigToEnvFlags;
diff --git a/node_modules/gulp-cli/lib/shared/config/load-files.js b/node_modules/gulp-cli/lib/shared/config/load-files.js
deleted file mode 100644
index 4ebb29c..0000000
--- a/node_modules/gulp-cli/lib/shared/config/load-files.js
+++ /dev/null
@@ -1,30 +0,0 @@
-'use strict';
-
-var copyProps = require('copy-props');
-var path = require('path');
-
-function loadConfigFiles(configFiles, configFileOrder) {
- var config = {};
-
- configFileOrder.forEach(loadFile);
-
- function loadFile(key) {
- var filePath = configFiles[key];
- if (!filePath) {
- return;
- }
-
- copyProps(require(filePath), config, convert);
-
- function convert(loadedInfo) {
- if (loadedInfo.keyChain === 'flags.gulpfile') {
- return path.resolve(path.dirname(filePath), loadedInfo.value);
- }
- return loadedInfo.value;
- }
- }
-
- return config;
-}
-
-module.exports = loadConfigFiles;
diff --git a/node_modules/gulp-cli/lib/shared/exit.js b/node_modules/gulp-cli/lib/shared/exit.js
deleted file mode 100644
index 9d619c3..0000000
--- a/node_modules/gulp-cli/lib/shared/exit.js
+++ /dev/null
@@ -1,15 +0,0 @@
-'use strict';
-
-// Fix stdout truncation on windows
-function exit(code) {
- /* istanbul ignore next */
- if (process.platform === 'win32' && process.stdout.bufferSize) {
- process.stdout.once('drain', function() {
- process.exit(code);
- });
- return;
- }
- process.exit(code);
-}
-
-module.exports = exit;
diff --git a/node_modules/gulp-cli/lib/shared/get-blacklist.js b/node_modules/gulp-cli/lib/shared/get-blacklist.js
deleted file mode 100644
index 4cc16d4..0000000
--- a/node_modules/gulp-cli/lib/shared/get-blacklist.js
+++ /dev/null
@@ -1,62 +0,0 @@
-'use strict';
-
-var https = require('https');
-
-var concat = require('concat-stream');
-
-var url = 'https://raw.githubusercontent.com/gulpjs/plugins/master/src/blackList.json';
-
-function collect(stream, cb) {
- stream.on('error', cb);
- stream.pipe(concat(onSuccess));
-
- function onSuccess(result) {
- cb(null, result);
- }
-}
-
-function parse(str, cb) {
- try {
- cb(null, JSON.parse(str));
- } catch (err) {
- /* istanbul ignore next */
- cb(new Error('Invalid Blacklist JSON.'));
- }
-}
-
-// TODO: Test this impl
-function getBlacklist(cb) {
- https.get(url, onRequest);
-
- function onRequest(res) {
- /* istanbul ignore if */
- if (res.statusCode !== 200) {
- // TODO: Test different status codes
- return cb(new Error('Request failed. Status Code: ' + res.statusCode));
- }
-
- res.setEncoding('utf8');
-
- collect(res, onCollect);
- }
-
- function onCollect(err, result) {
- /* istanbul ignore if */
- if (err) {
- return cb(err);
- }
-
- parse(result, onParse);
- }
-
- function onParse(err, blacklist) {
- /* istanbul ignore if */
- if (err) {
- return cb(err);
- }
-
- cb(null, blacklist);
- }
-}
-
-module.exports = getBlacklist;
diff --git a/node_modules/gulp-cli/lib/shared/log/blacklist-error.js b/node_modules/gulp-cli/lib/shared/log/blacklist-error.js
deleted file mode 100644
index b0355b2..0000000
--- a/node_modules/gulp-cli/lib/shared/log/blacklist-error.js
+++ /dev/null
@@ -1,15 +0,0 @@
-'use strict';
-
-var log = require('gulplog');
-
-var ansi = require('../ansi');
-var exit = require('../exit');
-
-/* istanbul ignore next */
-function logBlacklistError(err) {
- log.error(ansi.red('Error: failed to retrieve plugins black-list'));
- log.error(err.message); // Avoid duplicating for each version
- exit(1);
-}
-
-module.exports = logBlacklistError;
diff --git a/node_modules/gulp-cli/lib/shared/log/copy-tree.js b/node_modules/gulp-cli/lib/shared/log/copy-tree.js
deleted file mode 100644
index 99d7b5f..0000000
--- a/node_modules/gulp-cli/lib/shared/log/copy-tree.js
+++ /dev/null
@@ -1,81 +0,0 @@
-'use strict';
-
-function copyNode(node) {
- var newNode = {};
- Object.keys(node).forEach(function(key) {
- newNode[key] = node[key];
- });
- return newNode;
-}
-
-var defaultNodeFactory = {
- topNode: copyNode,
- taskNode: copyNode,
- childNode: copyNode,
-};
-
-function copyTree(tree, opts, nodeFactory) {
- opts = opts || {};
-
- var depth = opts.tasksDepth;
- depth = typeof depth === 'number' ? ((depth < 1) ? 1 : depth) : null;
-
- nodeFactory = nodeFactory || defaultNodeFactory;
-
- var newTree = nodeFactory.topNode(tree);
- newTree.nodes = [];
-
- if (Array.isArray(tree.nodes)) {
- tree.nodes.forEach(visit);
- }
-
- function visit(node) {
- var newNode = nodeFactory.taskNode(node);
- newNode.nodes = [];
- newTree.nodes.push(newNode);
-
- if (opts.compactTasks) {
- forEach(node.nodes, copyNotRecursively, newNode);
-
- } else if (!depth || depth > 1) {
- forEach(node.nodes, copyRecursively, depth, 2, newNode);
- }
- }
-
- function copyNotRecursively(child, newParent) {
- var newChild = nodeFactory.childNode(child);
- newChild.nodes = [];
- newParent.nodes.push(newChild);
-
- if (child.branch) {
- forEach(child.nodes, copyNotRecursively, newChild);
- }
- }
-
- function copyRecursively(child, maxDepth, nowDepth, newParent) {
- var newChild = nodeFactory.childNode(child);
- newChild.nodes = [];
- newParent.nodes.push(newChild);
-
- if (!maxDepth || maxDepth > nowDepth) {
- forEach(child.nodes, copyRecursively, maxDepth, nowDepth + 1, newChild);
- }
- }
-
- return newTree;
-}
-
-function forEach(nodes, fn) {
- if (!Array.isArray(nodes)) {
- return;
- }
-
- var args = Array.prototype.slice.call(arguments, 2);
-
- for (var i = 0, n = nodes.length; i < n; i++) {
- fn.apply(nodes[i], [nodes[i]].concat(args));
- }
-}
-
-module.exports = copyTree;
-
diff --git a/node_modules/gulp-cli/lib/shared/log/tasks.js b/node_modules/gulp-cli/lib/shared/log/tasks.js
deleted file mode 100644
index 0b76b08..0000000
--- a/node_modules/gulp-cli/lib/shared/log/tasks.js
+++ /dev/null
@@ -1,166 +0,0 @@
-'use strict';
-
-var archy = require('archy');
-var log = require('gulplog');
-
-var sortBy = require('array-sort');
-var isObject = require('isobject');
-
-var ansi = require('../ansi');
-var copyTree = require('./copy-tree');
-
-function logTasks(tree, opts, getTask) {
- if (opts.sortTasks) {
- tree.nodes = sortBy(tree.nodes, 'label');
- }
-
- var lineInfos = [];
- var entryObserver = getLineInfoCollector(lineInfos);
- var nodeFactory = getNodeFactory(getTask, entryObserver);
-
- tree = copyTree(tree, opts, nodeFactory);
- var spacer = getSpacerForLineIndents(tree, lineInfos);
- var lines = getLinesContainingOnlyBranches(tree);
-
- log.info(tree.label);
- printTreeList(lines, spacer, lineInfos);
-}
-
-function getLineInfoCollector(lineInfos) {
- return {
- topTask: function(node) {
- lineInfos.push({
- name: node.label,
- desc: node.desc,
- type: 'top',
- });
- },
- option: function(opt) {
- lineInfos.push({
- name: opt.label,
- desc: opt.desc,
- type: 'option',
- });
- },
- childTask: function(node) {
- lineInfos.push({
- name: node.label,
- type: 'child',
- });
- },
- };
-}
-
-function getNodeFactory(getTask, entryObserver) {
- return {
- topNode: function(node) {
- return {
- label: node.label,
- };
- },
-
- taskNode: function(node) {
- /* istanbul ignore next */
- var task = getTask(node.label) || {};
-
- var newNode = {
- label: node.label,
- desc: typeof task.description === 'string' ? task.description : '',
- opts: [],
- };
- entryObserver.topTask(newNode);
-
- if (isObject(task.flags)) {
- Object.keys(task.flags).sort().forEach(function(flag) {
- if (flag.length === 0) {
- return;
- }
- /* istanbul ignore next */
- var opt = {
- label: flag,
- desc: typeof task.flags[flag] === 'string' ? task.flags[flag] : '',
- };
- entryObserver.option(opt);
- newNode.opts.push(opt);
- newNode.label += '\n' + opt.label; // The way of archy for options.
- });
- }
-
- return newNode;
- },
-
- childNode: function(node) {
- var newChild = {
- label: node.label,
- };
- entryObserver.childTask(newChild);
- newChild.label = ''; // Because don't use child tasks to calc indents.
-
- return newChild;
- },
- };
-}
-
-function getSpacerForLineIndents(tree, lineInfos) {
- var maxSize = 0;
- var sizes = [];
-
- archy(tree)
- .split('\n')
- .slice(1, -1)
- .forEach(function(line, index) {
- var info = lineInfos[index];
- if (info.type === 'top' || info.type === 'option') {
- maxSize = Math.max(maxSize, line.length);
- sizes.push(line.length);
- } else {
- sizes.push(0);
- }
- });
-
- maxSize += 3;
-
- return function(index) {
- return Array(maxSize - sizes[index]).join(' ');
- };
-}
-
-function getLinesContainingOnlyBranches(tree) {
- tree.nodes.forEach(function(node) {
- node.label = '';
- node.opts.forEach(function() {
- node.label += '\n';
- });
- });
-
- return archy(tree)
- .split('\n')
- .slice(1, -1);
-}
-
-function printTreeList(lines, spacer, lineInfos) {
- lines.forEach(function(branch, index) {
- var info = lineInfos[index];
-
- var line = ansi.white(branch);
-
- if (info.type === 'top') {
- line += ansi.cyan(info.name);
- if (info.desc.length > 0) {
- line += spacer(index) + ansi.white(info.desc);
- }
- } else if (info.type === 'option') {
- line += ansi.magenta(info.name);
- if (info.desc.length > 0) {
- line += spacer(index) + ansi.white('…' + info.desc);
- }
- } else { // If (info.type === 'child') {
- line += ansi.white(info.name);
- }
-
- log.info(line);
- });
-}
-
-module.exports = logTasks;
-
diff --git a/node_modules/gulp-cli/lib/shared/log/to-console.js b/node_modules/gulp-cli/lib/shared/log/to-console.js
deleted file mode 100644
index 43650af..0000000
--- a/node_modules/gulp-cli/lib/shared/log/to-console.js
+++ /dev/null
@@ -1,58 +0,0 @@
-'use strict';
-
-var fancyLog = require('fancy-log');
-
-/* istanbul ignore next */
-function noop() {}
-
-// The sorting of the levels is
-// significant.
-var levels = [
- 'error', // -L: Logs error events.
- 'warn', // -LL: Logs warn and error events.
- 'info', // -LLL: Logs info, warn and error events.
- 'debug', // -LLLL: Logs all log levels.
-];
-
-function cleanup(log) {
- levels.forEach(removeListeners);
-
- function removeListeners(level) {
- if (level === 'error') {
- log.removeListener(level, noop);
- log.removeListener(level, fancyLog.error);
- } else {
- log.removeListener(level, fancyLog);
- }
- }
-}
-
-function toConsole(log, opts) {
- // Remove previous listeners to enable to call this twice.
- cleanup(log);
-
- // Return immediately if logging is
- // not desired.
- if (opts.tasksSimple || opts.tasksJson || opts.help || opts.version || opts.silent) {
- // Keep from crashing process when silent.
- log.on('error', noop);
- return;
- }
-
- // Default loglevel to info level (3).
- var loglevel = opts.logLevel || 3;
-
- levels
- .filter(function(item, i) {
- return i < loglevel;
- })
- .forEach(function(level) {
- if (level === 'error') {
- log.on(level, fancyLog.error);
- } else {
- log.on(level, fancyLog);
- }
- });
-}
-
-module.exports = toConsole;
diff --git a/node_modules/gulp-cli/lib/shared/log/verify.js b/node_modules/gulp-cli/lib/shared/log/verify.js
deleted file mode 100644
index 7104623..0000000
--- a/node_modules/gulp-cli/lib/shared/log/verify.js
+++ /dev/null
@@ -1,28 +0,0 @@
-'use strict';
-
-var log = require('gulplog');
-
-var ansi = require('../ansi');
-var exit = require('../exit');
-
-function logVerify(blacklisted) {
- var pluginNames = Object.keys(blacklisted);
-
- if (!pluginNames.length) {
- log.info(
- ansi.green('There are no blacklisted plugins in this project')
- );
- exit(0);
- }
-
- log.warn(ansi.red('Blacklisted plugins found in this project:'));
-
- pluginNames.map(function(pluginName) {
- var reason = blacklisted[pluginName];
- log.warn(ansi.bgred(pluginName) + ': ' + reason);
- });
-
- exit(1);
-}
-
-module.exports = logVerify;
diff --git a/node_modules/gulp-cli/lib/shared/make-title.js b/node_modules/gulp-cli/lib/shared/make-title.js
deleted file mode 100644
index aa6d2ee..0000000
--- a/node_modules/gulp-cli/lib/shared/make-title.js
+++ /dev/null
@@ -1,11 +0,0 @@
-'use strict';
-
-function makeTitle(cmd, argv) {
- if (!argv || argv.length === 0) {
- return cmd;
- }
-
- return [cmd].concat(argv).join(' ');
-}
-
-module.exports = makeTitle;
diff --git a/node_modules/gulp-cli/lib/shared/register-exports.js b/node_modules/gulp-cli/lib/shared/register-exports.js
deleted file mode 100644
index 572e9ed..0000000
--- a/node_modules/gulp-cli/lib/shared/register-exports.js
+++ /dev/null
@@ -1,21 +0,0 @@
-'use strict';
-
-function registerExports(gulpInst, tasks) {
- var taskNames = Object.keys(tasks);
-
- if (taskNames.length) {
- taskNames.forEach(register);
- }
-
- function register(taskName) {
- var task = tasks[taskName];
-
- if (typeof task !== 'function') {
- return;
- }
-
- gulpInst.task(task.displayName || taskName, task);
- }
-}
-
-module.exports = registerExports;
diff --git a/node_modules/gulp-cli/lib/shared/require-or-import.js b/node_modules/gulp-cli/lib/shared/require-or-import.js
deleted file mode 100644
index 6970ae4..0000000
--- a/node_modules/gulp-cli/lib/shared/require-or-import.js
+++ /dev/null
@@ -1,32 +0,0 @@
-'use strict';
-
-var pathToFileURL = require('url').pathToFileURL;
-
-var importESM;
-try {
- // Node.js <10 errors out with a SyntaxError when loading a script that uses import().
- // So a function is dynamically created to catch the SyntaxError at runtime instead of parsetime.
- // That way we can keep supporting all Node.js versions all the way back to 0.10.
- importESM = new Function('id', 'return import(id);');
-} catch (e) {
- importESM = null;
-}
-
-function requireOrImport(path, callback) {
- var err = null;
- var cjs;
- try {
- cjs = require(path);
- } catch (e) {
- if (pathToFileURL && importESM && e.code === 'ERR_REQUIRE_ESM') {
- // This is needed on Windows, because import() fails if providing a Windows file path.
- var url = pathToFileURL(path);
- importESM(url).then(function(esm) { callback(null, esm); }, callback);
- return;
- }
- err = e;
- }
- process.nextTick(function() { callback(err, cjs); });
-}
-
-module.exports = requireOrImport;
diff --git a/node_modules/gulp-cli/lib/shared/tildify.js b/node_modules/gulp-cli/lib/shared/tildify.js
deleted file mode 100644
index a9c61fc..0000000
--- a/node_modules/gulp-cli/lib/shared/tildify.js
+++ /dev/null
@@ -1,9 +0,0 @@
-'use strict';
-
-var replaceHomedir = require('replace-homedir');
-
-function tildify(filepath) {
- return replaceHomedir(filepath, '~');
-}
-
-module.exports = tildify;
diff --git a/node_modules/gulp-cli/lib/shared/verify-dependencies.js b/node_modules/gulp-cli/lib/shared/verify-dependencies.js
deleted file mode 100644
index a0d4812..0000000
--- a/node_modules/gulp-cli/lib/shared/verify-dependencies.js
+++ /dev/null
@@ -1,25 +0,0 @@
-'use strict';
-
-var matchdep = require('matchdep');
-
-/**
- * Given a collection of plugin names verifies this collection against
- * the blacklist. Returns an object with:
- * [plugin name]=>[blacklisting reason]
- * or an empty object if none of the dependencies to check are blacklisted.
- *
- * @param pkg - package.json contents
- * @param blacklist - contents of the blacklist in JSON format
- */
-function verifyDependencies(pkg, blacklist) {
- var blacklisted = matchdep
- .filterAll(Object.keys(blacklist), pkg)
- .reduce(function(blacklisted, pluginName) {
- blacklisted[pluginName] = blacklist[pluginName];
- return blacklisted;
- }, {});
-
- return blacklisted;
-}
-
-module.exports = verifyDependencies;
diff --git a/node_modules/gulp-cli/lib/versioned/^3.7.0/format-error.js b/node_modules/gulp-cli/lib/versioned/^3.7.0/format-error.js
deleted file mode 100644
index 705e0bf..0000000
--- a/node_modules/gulp-cli/lib/versioned/^3.7.0/format-error.js
+++ /dev/null
@@ -1,23 +0,0 @@
-'use strict';
-
-// Format orchestrator errors
-function formatError(e) {
- if (!e.err) {
- return e.message;
- }
-
- // PluginError
- if (typeof e.err.showStack === 'boolean') {
- return e.err.toString();
- }
-
- // Normal error
- if (e.err.stack) {
- return e.err.stack;
- }
-
- // Unknown (string, number, etc.)
- return new Error(String(e.err)).stack;
-}
-
-module.exports = formatError;
diff --git a/node_modules/gulp-cli/lib/versioned/^3.7.0/index.js b/node_modules/gulp-cli/lib/versioned/^3.7.0/index.js
deleted file mode 100644
index b3a0da5..0000000
--- a/node_modules/gulp-cli/lib/versioned/^3.7.0/index.js
+++ /dev/null
@@ -1,83 +0,0 @@
-'use strict';
-
-var fs = require('fs');
-
-var log = require('gulplog');
-var stdout = require('mute-stdout');
-
-var taskTree = require('./task-tree');
-var copyTree = require('../../shared/log/copy-tree');
-
-var tildify = require('../../shared/tildify');
-var logTasks = require('../../shared/log/tasks');
-var ansi = require('../../shared/ansi');
-var exit = require('../../shared/exit');
-var logEvents = require('./log/events');
-var logTasksSimple = require('./log/tasks-simple');
-var registerExports = require('../../shared/register-exports');
-var requireOrImport = require('../../shared/require-or-import');
-
-function execute(opts, env, config) {
- var tasks = opts._;
- var toRun = tasks.length ? tasks : ['default'];
-
- if (opts.tasksSimple || opts.tasks || opts.tasksJson) {
- // Mute stdout if we are listing tasks
- stdout.mute();
- }
-
- // This is what actually loads up the gulpfile
- requireOrImport(env.configPath, function(err, exported) {
- // Before import(), if require() failed we got an unhandled exception on the module level.
- // So console.error() & exit() were added here to mimic the old behavior as close as possible.
- if (err) {
- console.error(err);
- exit(1);
- }
-
- log.info('Using gulpfile', ansi.magenta(tildify(env.configPath)));
-
- var gulpInst = require(env.modulePath);
- logEvents(gulpInst);
-
- registerExports(gulpInst, exported);
-
- // Always unmute stdout after gulpfile is required
- stdout.unmute();
-
- var tree;
- if (opts.tasksSimple) {
- return logTasksSimple(env, gulpInst);
- }
- if (opts.tasks) {
- tree = taskTree(gulpInst.tasks);
- if (config.description && typeof config.description === 'string') {
- tree.label = config.description;
- } else {
- tree.label = 'Tasks for ' + ansi.magenta(tildify(env.configPath));
- }
- return logTasks(tree, opts, function(task) {
- return gulpInst.tasks[task].fn;
- });
- }
- if (opts.tasksJson) {
- tree = taskTree(gulpInst.tasks);
- if (config.description && typeof config.description === 'string') {
- tree.label = config.description;
- } else {
- tree.label = 'Tasks for ' + tildify(env.configPath);
- }
-
- var output = JSON.stringify(copyTree(tree, opts));
-
- if (typeof opts.tasksJson === 'boolean') {
- return console.log(output);
- }
-
- return fs.writeFileSync(opts.tasksJson, output, 'utf-8');
- }
- gulpInst.start.apply(gulpInst, toRun);
- });
-}
-
-module.exports = execute;
diff --git a/node_modules/gulp-cli/lib/versioned/^3.7.0/log/events.js b/node_modules/gulp-cli/lib/versioned/^3.7.0/log/events.js
deleted file mode 100644
index b7bd00a..0000000
--- a/node_modules/gulp-cli/lib/versioned/^3.7.0/log/events.js
+++ /dev/null
@@ -1,60 +0,0 @@
-'use strict';
-
-var log = require('gulplog');
-var prettyTime = require('pretty-hrtime');
-
-var ansi = require('../../../shared/ansi');
-var exit = require('../../../shared/exit');
-var formatError = require('../format-error');
-
-// Wire up logging events
-function logEvents(gulpInst) {
-
- // Exit with 0 or 1
- var failed = false;
- process.once('exit', function(code) {
- if (code === 0 && failed) {
- exit(1);
- }
- });
-
- // Total hack due to poor error management in orchestrator
- gulpInst.on('err', function() {
- failed = true;
- });
-
- gulpInst.on('task_start', function(e) {
- // TODO: batch these
- // so when 5 tasks start at once it only logs one time with all 5
- log.info('Starting', '\'' + ansi.cyan(e.task) + '\'...');
- });
-
- gulpInst.on('task_stop', function(e) {
- var time = prettyTime(e.hrDuration);
- log.info(
- 'Finished', '\'' + ansi.cyan(e.task) + '\'',
- 'after', ansi.magenta(time)
- );
- });
-
- gulpInst.on('task_err', function(e) {
- var msg = formatError(e);
- var time = prettyTime(e.hrDuration);
- log.error(
- '\'' + ansi.cyan(e.task) + '\'',
- ansi.red('errored after'),
- ansi.magenta(time)
- );
- log.error(msg);
- });
-
- gulpInst.on('task_not_found', function(err) {
- log.error(
- ansi.red('Task \'' + err.task + '\' is not in your gulpfile')
- );
- log.error('Please check the documentation for proper gulpfile formatting');
- exit(1);
- });
-}
-
-module.exports = logEvents;
diff --git a/node_modules/gulp-cli/lib/versioned/^3.7.0/log/tasks-simple.js b/node_modules/gulp-cli/lib/versioned/^3.7.0/log/tasks-simple.js
deleted file mode 100644
index dca2fdf..0000000
--- a/node_modules/gulp-cli/lib/versioned/^3.7.0/log/tasks-simple.js
+++ /dev/null
@@ -1,9 +0,0 @@
-'use strict';
-
-function logTasksSimple(env, localGulp) {
- console.log(Object.keys(localGulp.tasks)
- .join('\n')
- .trim());
-}
-
-module.exports = logTasksSimple;
diff --git a/node_modules/gulp-cli/lib/versioned/^3.7.0/task-tree.js b/node_modules/gulp-cli/lib/versioned/^3.7.0/task-tree.js
deleted file mode 100644
index 8d68980..0000000
--- a/node_modules/gulp-cli/lib/versioned/^3.7.0/task-tree.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-module.exports = function(tasks) {
- var map = {};
- var arr = [];
- Object.keys(tasks).forEach(function(taskname) {
- var task = {
- label: taskname,
- type: 'task',
- nodes: [],
- };
- map[taskname] = task;
- arr.push(task);
- });
- Object.keys(tasks).forEach(function(taskname) {
- var task = map[taskname];
- tasks[taskname].dep.forEach(function(childname) {
- var child = map[childname] || {
- label: childname,
- type: 'task',
- nodes: [],
- };
- task.nodes.push(child);
- });
- });
- return { label: 'Tasks', nodes: arr };
-};
diff --git a/node_modules/gulp-cli/lib/versioned/^4.0.0-alpha.1/index.js b/node_modules/gulp-cli/lib/versioned/^4.0.0-alpha.1/index.js
deleted file mode 100644
index 116956a..0000000
--- a/node_modules/gulp-cli/lib/versioned/^4.0.0-alpha.1/index.js
+++ /dev/null
@@ -1,96 +0,0 @@
-'use strict';
-
-var fs = require('fs');
-
-var log = require('gulplog');
-var stdout = require('mute-stdout');
-
-var ansi = require('../../shared/ansi');
-var exit = require('../../shared/exit');
-var tildify = require('../../shared/tildify');
-
-var logTasks = require('../../shared/log/tasks');
-var logEvents = require('../^4.0.0/log/events');
-var logSyncTask = require('../^4.0.0/log/sync-task');
-var logTasksSimple = require('../^4.0.0/log/tasks-simple');
-var registerExports = require('../../shared/register-exports');
-
-var copyTree = require('../../shared/log/copy-tree');
-var requireOrImport = require('../../shared/require-or-import');
-
-function execute(opts, env, config) {
-
- var tasks = opts._;
- var toRun = tasks.length ? tasks : ['default'];
-
- if (opts.tasksSimple || opts.tasks || opts.tasksJson) {
- // Mute stdout if we are listing tasks
- stdout.mute();
- }
-
- var gulpInst = require(env.modulePath);
- logEvents(gulpInst);
- logSyncTask(gulpInst, opts);
-
- // This is what actually loads up the gulpfile
- requireOrImport(env.configPath, function(err, exported) {
- // Before import(), if require() failed we got an unhandled exception on the module level.
- // So console.error() & exit() were added here to mimic the old behavior as close as possible.
- if (err) {
- console.error(err);
- exit(1);
- }
-
- registerExports(gulpInst, exported);
-
- // Always unmute stdout after gulpfile is required
- stdout.unmute();
-
- var tree;
- if (opts.tasksSimple) {
- return logTasksSimple(gulpInst.tree());
- }
- if (opts.tasks) {
- tree = {};
- if (config.description && typeof config.description === 'string') {
- tree.label = config.description;
- } else {
- tree.label = 'Tasks for ' + ansi.magenta(tildify(env.configPath));
- }
- tree.nodes = gulpInst.tree({ deep: true });
- return logTasks(tree, opts, function(taskname) {
- return gulpInst.task(taskname);
- });
- }
- if (opts.tasksJson) {
- tree = {};
- if (config.description && typeof config.description === 'string') {
- tree.label = config.description;
- } else {
- tree.label = 'Tasks for ' + tildify(env.configPath);
- }
- tree.nodes = gulpInst.tree({ deep: true });
-
- var output = JSON.stringify(copyTree(tree, opts));
- if (typeof opts.tasksJson === 'boolean' && opts.tasksJson) {
- return console.log(output);
- }
- return fs.writeFileSync(opts.tasksJson, output, 'utf-8');
- }
- try {
- log.info('Using gulpfile', ansi.magenta(tildify(env.configPath)));
- var runMethod = opts.series ? 'series' : 'parallel';
- gulpInst[runMethod](toRun)(function(err) {
- if (err) {
- exit(1);
- }
- });
- } catch (err) {
- log.error(ansi.red(err.message));
- log.error('To list available tasks, try running: gulp --tasks');
- exit(1);
- }
- });
-}
-
-module.exports = execute;
diff --git a/node_modules/gulp-cli/lib/versioned/^4.0.0-alpha.2/index.js b/node_modules/gulp-cli/lib/versioned/^4.0.0-alpha.2/index.js
deleted file mode 100644
index 1fca06f..0000000
--- a/node_modules/gulp-cli/lib/versioned/^4.0.0-alpha.2/index.js
+++ /dev/null
@@ -1,96 +0,0 @@
-'use strict';
-
-var fs = require('fs');
-
-var log = require('gulplog');
-var stdout = require('mute-stdout');
-
-var ansi = require('../../shared/ansi');
-var exit = require('../../shared/exit');
-var tildify = require('../../shared/tildify');
-
-var logTasks = require('../../shared/log/tasks');
-var logEvents = require('../^4.0.0/log/events');
-var logSyncTask = require('../^4.0.0/log/sync-task');
-var logTasksSimple = require('../^4.0.0/log/tasks-simple');
-var registerExports = require('../../shared/register-exports');
-
-var copyTree = require('../../shared/log/copy-tree');
-var getTask = require('../^4.0.0/log/get-task');
-var requireOrImport = require('../../shared/require-or-import');
-
-function execute(opts, env, config) {
-
- var tasks = opts._;
- var toRun = tasks.length ? tasks : ['default'];
-
- if (opts.tasksSimple || opts.tasks || opts.tasksJson) {
- // Mute stdout if we are listing tasks
- stdout.mute();
- }
-
- var gulpInst = require(env.modulePath);
- logEvents(gulpInst);
- logSyncTask(gulpInst, opts);
-
- // This is what actually loads up the gulpfile
- requireOrImport(env.configPath, function(err, exported) {
- // Before import(), if require() failed we got an unhandled exception on the module level.
- // So console.error() & exit() were added here to mimic the old behavior as close as possible.
- if (err) {
- console.error(err);
- exit(1);
- }
-
- registerExports(gulpInst, exported);
-
- // Always unmute stdout after gulpfile is required
- stdout.unmute();
-
- var tree;
- if (opts.tasksSimple) {
- tree = gulpInst.tree();
- return logTasksSimple(tree.nodes);
- }
- if (opts.tasks) {
- tree = gulpInst.tree({ deep: true });
- if (config.description && typeof config.description === 'string') {
- tree.label = config.description;
- } else {
- tree.label = 'Tasks for ' + ansi.magenta(tildify(env.configPath));
- }
-
- return logTasks(tree, opts, getTask(gulpInst));
- }
- if (opts.tasksJson) {
- tree = gulpInst.tree({ deep: true });
- if (config.description && typeof config.description === 'string') {
- tree.label = config.description;
- } else {
- tree.label = 'Tasks for ' + tildify(env.configPath);
- }
-
- var output = JSON.stringify(copyTree(tree, opts));
-
- if (typeof opts.tasksJson === 'boolean' && opts.tasksJson) {
- return console.log(output);
- }
- return fs.writeFileSync(opts.tasksJson, output, 'utf-8');
- }
- try {
- log.info('Using gulpfile', ansi.magenta(tildify(env.configPath)));
- var runMethod = opts.series ? 'series' : 'parallel';
- gulpInst[runMethod](toRun)(function(err) {
- if (err) {
- exit(1);
- }
- });
- } catch (err) {
- log.error(ansi.red(err.message));
- log.error('To list available tasks, try running: gulp --tasks');
- exit(1);
- }
- });
-}
-
-module.exports = execute;
diff --git a/node_modules/gulp-cli/lib/versioned/^4.0.0/format-error.js b/node_modules/gulp-cli/lib/versioned/^4.0.0/format-error.js
deleted file mode 100644
index 3d8a771..0000000
--- a/node_modules/gulp-cli/lib/versioned/^4.0.0/format-error.js
+++ /dev/null
@@ -1,24 +0,0 @@
-'use strict';
-
-// Format orchestrator errors
-/* istanbul ignore next */
-function formatError(e) {
- if (!e.error) {
- return e.message;
- }
-
- // PluginError
- if (typeof e.error.showStack === 'boolean') {
- return e.error.toString();
- }
-
- // Normal error
- if (e.error.stack) {
- return e.error.stack;
- }
-
- // Unknown (string, number, etc.)
- return new Error(String(e.error)).stack;
-}
-
-module.exports = formatError;
diff --git a/node_modules/gulp-cli/lib/versioned/^4.0.0/index.js b/node_modules/gulp-cli/lib/versioned/^4.0.0/index.js
deleted file mode 100644
index f0f0f45..0000000
--- a/node_modules/gulp-cli/lib/versioned/^4.0.0/index.js
+++ /dev/null
@@ -1,96 +0,0 @@
-'use strict';
-
-var fs = require('fs');
-
-var log = require('gulplog');
-var stdout = require('mute-stdout');
-
-var ansi = require('../../shared/ansi');
-var exit = require('../../shared/exit');
-var tildify = require('../../shared/tildify');
-
-var logTasks = require('../../shared/log/tasks');
-var logEvents = require('./log/events');
-var logSyncTask = require('./log/sync-task');
-var logTasksSimple = require('./log/tasks-simple');
-var registerExports = require('../../shared/register-exports');
-
-var copyTree = require('../../shared/log/copy-tree');
-var getTask = require('./log/get-task');
-var requireOrImport = require('../../shared/require-or-import');
-
-function execute(opts, env, config) {
-
- var tasks = opts._;
- var toRun = tasks.length ? tasks : ['default'];
-
- if (opts.tasksSimple || opts.tasks || opts.tasksJson) {
- // Mute stdout if we are listing tasks
- stdout.mute();
- }
-
- var gulpInst = require(env.modulePath);
- logEvents(gulpInst);
- logSyncTask(gulpInst, opts);
-
- // This is what actually loads up the gulpfile
- requireOrImport(env.configPath, function(err, exported) {
- // Before import(), if require() failed we got an unhandled exception on the module level.
- // So console.error() & exit() were added here to mimic the old behavior as close as possible.
- if (err) {
- console.error(err);
- exit(1);
- }
-
- registerExports(gulpInst, exported);
-
- // Always unmute stdout after gulpfile is required
- stdout.unmute();
-
- var tree;
- if (opts.tasksSimple) {
- tree = gulpInst.tree();
- return logTasksSimple(tree.nodes);
- }
- if (opts.tasks) {
- tree = gulpInst.tree({ deep: true });
- if (config.description && typeof config.description === 'string') {
- tree.label = config.description;
- } else {
- tree.label = 'Tasks for ' + ansi.magenta(tildify(env.configPath));
- }
-
- return logTasks(tree, opts, getTask(gulpInst));
- }
- if (opts.tasksJson) {
- tree = gulpInst.tree({ deep: true });
- if (config.description && typeof config.description === 'string') {
- tree.label = config.description;
- } else {
- tree.label = 'Tasks for ' + tildify(env.configPath);
- }
-
- var output = JSON.stringify(copyTree(tree, opts));
-
- if (typeof opts.tasksJson === 'boolean' && opts.tasksJson) {
- return console.log(output);
- }
- return fs.writeFileSync(opts.tasksJson, output, 'utf-8');
- }
- try {
- log.info('Using gulpfile', ansi.magenta(tildify(env.configPath)));
- var runMethod = opts.series ? 'series' : 'parallel';
- gulpInst[runMethod](toRun)(function(err) {
- if (err) {
- exit(1);
- }
- });
- } catch (err) {
- log.error(ansi.red(err.message));
- log.error('To list available tasks, try running: gulp --tasks');
- exit(1);
- }
- });
-}
-
-module.exports = execute;
diff --git a/node_modules/gulp-cli/lib/versioned/^4.0.0/log/events.js b/node_modules/gulp-cli/lib/versioned/^4.0.0/log/events.js
deleted file mode 100644
index 1f6e7b1..0000000
--- a/node_modules/gulp-cli/lib/versioned/^4.0.0/log/events.js
+++ /dev/null
@@ -1,50 +0,0 @@
-'use strict';
-
-var log = require('gulplog');
-var prettyTime = require('pretty-hrtime');
-
-var ansi = require('../../../shared/ansi');
-var formatError = require('../format-error');
-
-// Wire up logging events
-function logEvents(gulpInst) {
-
- var loggedErrors = [];
-
- gulpInst.on('start', function(evt) {
- /* istanbul ignore next */
- // TODO: batch these
- // so when 5 tasks start at once it only logs one time with all 5
- var level = evt.branch ? 'debug' : 'info';
- log[level]('Starting', '\'' + ansi.cyan(evt.name) + '\'...');
- });
-
- gulpInst.on('stop', function(evt) {
- var time = prettyTime(evt.duration);
- /* istanbul ignore next */
- var level = evt.branch ? 'debug' : 'info';
- log[level](
- 'Finished', '\'' + ansi.cyan(evt.name) + '\'',
- 'after', ansi.magenta(time)
- );
- });
-
- gulpInst.on('error', function(evt) {
- var msg = formatError(evt);
- var time = prettyTime(evt.duration);
- var level = evt.branch ? 'debug' : 'error';
- log[level](
- '\'' + ansi.cyan(evt.name) + '\'',
- ansi.red('errored after'),
- ansi.magenta(time)
- );
-
- // If we haven't logged this before, log it and add to list
- if (loggedErrors.indexOf(evt.error) === -1) {
- log.error(msg);
- loggedErrors.push(evt.error);
- }
- });
-}
-
-module.exports = logEvents;
diff --git a/node_modules/gulp-cli/lib/versioned/^4.0.0/log/get-task.js b/node_modules/gulp-cli/lib/versioned/^4.0.0/log/get-task.js
deleted file mode 100644
index 1b15871..0000000
--- a/node_modules/gulp-cli/lib/versioned/^4.0.0/log/get-task.js
+++ /dev/null
@@ -1,43 +0,0 @@
-'use strict';
-
-var isObject = require('isobject');
-
-function getTask(gulpInst) {
- return function(name) {
- var task = gulpInst.task(name);
- return {
- description: getDescription(task),
- flags: getFlags(task),
- };
- };
-}
-
-function getDescription(task) {
- if (typeof task.description === 'string') {
- return task.description;
- }
- /* istanbul ignore else */
- if (typeof task.unwrap === 'function') {
- var origFn = task.unwrap();
- if (typeof origFn.description === 'string') {
- return origFn.description;
- }
- }
- return undefined;
-}
-
-function getFlags(task) {
- if (isObject(task.flags)) {
- return task.flags;
- }
- /* istanbul ignore else */
- if (typeof task.unwrap === 'function') {
- var origFn = task.unwrap();
- if (isObject(origFn.flags)) {
- return origFn.flags;
- }
- }
- return undefined;
-}
-
-module.exports = getTask;
diff --git a/node_modules/gulp-cli/lib/versioned/^4.0.0/log/sync-task.js b/node_modules/gulp-cli/lib/versioned/^4.0.0/log/sync-task.js
deleted file mode 100644
index 39cb453..0000000
--- a/node_modules/gulp-cli/lib/versioned/^4.0.0/log/sync-task.js
+++ /dev/null
@@ -1,52 +0,0 @@
-'use strict';
-
-var log = require('gulplog');
-var ansi = require('../../../shared/ansi');
-
-var tasks = {};
-
-function warn() {
- var taskKeys = Object.keys(tasks);
-
- if (!taskKeys.length) {
- return;
- }
-
- var taskNames = taskKeys.map(function(key) {
- return tasks[key];
- }).join(', ');
-
- process.exitCode = 1;
-
- log.warn(
- ansi.red('The following tasks did not complete:'),
- ansi.cyan(taskNames)
- );
- log.warn(
- ansi.red('Did you forget to signal async completion?')
- );
-}
-
-function start(e) {
- tasks[e.uid] = e.name;
-}
-
-function clear(e) {
- delete tasks[e.uid];
-}
-
-function clearAll() {
- tasks = {};
-}
-
-function logSyncTask(gulpInst, opts) {
-
- process.once('exit', warn);
- gulpInst.on('start', start);
- gulpInst.on('stop', clear);
- // When not running in --continue mode, we need to clear everything on error to avoid
- // false positives.
- gulpInst.on('error', opts.continue ? clear : clearAll);
-}
-
-module.exports = logSyncTask;
diff --git a/node_modules/gulp-cli/lib/versioned/^4.0.0/log/tasks-simple.js b/node_modules/gulp-cli/lib/versioned/^4.0.0/log/tasks-simple.js
deleted file mode 100644
index 65cde51..0000000
--- a/node_modules/gulp-cli/lib/versioned/^4.0.0/log/tasks-simple.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-
-function logTasksSimple(nodes) {
- console.log(nodes.join('\n').trim());
-}
-
-module.exports = logTasksSimple;
diff --git a/node_modules/gulp-cli/package.json b/node_modules/gulp-cli/package.json
deleted file mode 100644
index bed47c0..0000000
--- a/node_modules/gulp-cli/package.json
+++ /dev/null
@@ -1,77 +0,0 @@
-{
- "name": "gulp-cli",
- "version": "2.3.0",
- "description": "Command line interface for gulp",
- "author": "Gulp Team (https://gulpjs.com/)",
- "contributors": [],
- "homepage": "https://gulpjs.com",
- "repository": "gulpjs/gulp-cli",
- "license": "MIT",
- "man": "gulp.1",
- "engines": {
- "node": ">= 0.10"
- },
- "main": "index.js",
- "bin": {
- "gulp": "bin/gulp.js"
- },
- "files": [
- "index.js",
- "lib",
- "bin",
- "completion",
- "gulp.1"
- ],
- "scripts": {
- "lint": "eslint .",
- "prepublish": "marked-man --name gulp docs/CLI.md > gulp.1",
- "pretest": "npm run lint",
- "test": "mocha --async-only --timeout 5000 test/lib test",
- "cover": "nyc --reporter=lcov --reporter=text-summary npm test",
- "coveralls": "nyc --reporter=text-lcov npm test | coveralls"
- },
- "dependencies": {
- "ansi-colors": "^1.0.1",
- "archy": "^1.0.0",
- "array-sort": "^1.0.0",
- "concat-stream": "^1.6.0",
- "color-support": "^1.1.3",
- "copy-props": "^2.0.1",
- "fancy-log": "^1.3.2",
- "gulplog": "^1.0.0",
- "interpret": "^1.4.0",
- "isobject": "^3.0.1",
- "liftoff": "^3.1.0",
- "matchdep": "^2.0.0",
- "mute-stdout": "^1.0.0",
- "pretty-hrtime": "^1.0.0",
- "replace-homedir": "^1.0.0",
- "semver-greatest-satisfied-range": "^1.1.0",
- "v8flags": "^3.2.0",
- "yargs": "^7.1.0"
- },
- "devDependencies": {
- "babel-preset-es2015": "^6.5.0",
- "babel-register": "^6.5.1",
- "coveralls": "^3.0.3",
- "eslint": "^2.13.1",
- "eslint-config-gulp": "^3.0.1",
- "expect": "^1.20.2",
- "gulp": "^4.0.0",
- "gulp-test-tools": "^0.6.1",
- "marked-man": "^0.2.1",
- "mocha": "^3.2.0",
- "nyc": "^13.3.0",
- "rimraf": "^2.6.1",
- "semver": "^5.7.1"
- },
- "keywords": [
- "build",
- "stream",
- "system",
- "make",
- "tool",
- "asset",
- "pipeline"
- ]
-}
diff --git a/node_modules/gulp/CHANGELOG.md b/node_modules/gulp/CHANGELOG.md
deleted file mode 100644
index d6555de..0000000
--- a/node_modules/gulp/CHANGELOG.md
+++ /dev/null
@@ -1,269 +0,0 @@
-# gulp changelog
-
-## 4.0.0
-
-### Task system changes
-
-- replaced 3.x task system (orchestrator) with new task system (bach)
- - removed gulp.reset
- - removed 3 argument syntax for `gulp.task`
- - `gulp.task` should only be used when you will call the task with the CLI
- - added `gulp.series` and `gulp.parallel` methods for composing tasks. Everything must use these now.
- - added single argument syntax for `gulp.task` which allows a named function to be used as the name of the task and task function.
- - added `gulp.tree` method for retrieving the task tree. Pass `{ deep: true }` for an `archy` compatible node list.
- - added `gulp.registry` for setting custom registries.
-
-### CLI changes
-
-- split CLI out into a module if you want to save bandwidth/disk space. you can install the gulp CLI using either `npm install gulp -g` or `npm install gulp-cli -g`, where gulp-cli is the smaller one (no module code included)
-- add `--tasks-json` flag to CLI to dump the whole tree out for other tools to consume
-- added `--verify` flag to check the dependencies in package.json against the plugin blacklist.
-
-### vinyl/vinyl-fs changes
-
-- added `gulp.symlink` which functions exactly like `gulp.dest`, but symlinks instead.
-- added `dirMode` param to `gulp.dest` and `gulp.symlink` which allows better control over the mode of the destination folder that is created.
-- globs passed to `gulp.src` will be evaluated in order, which means this is possible `gulp.src(['*.js', '!b*.js', 'bad.js'])` (exclude every JS file that starts with a b except bad.js)
-- performance for gulp.src has improved massively
- - `gulp.src(['**/*', '!b.js'])` will no longer eat CPU since negations happen during walking now
-- added `since` option to `gulp.src` which lets you only match files that have been modified since a certain date (for incremental builds)
-- fixed `gulp.src` not following symlinks
-- added `overwrite` option to `gulp.dest` which allows you to enable or disable overwriting of existing files
-
-## 3.9.1
-
-- update interpret to 1.0.0 (support for babel-register)
-- fix to include manpages in published tarball
-- documentation/recipe updates
-
-## 3.9.0
-
-- add babel support
-- add transpiler fallback support
-- add support for some renamed transpilers: livescript, etc
-- add JSCS
-- update dependencies (liftoff, interpret)
-- documentation tweaks
-
-## 3.8.11
-
-- fix node 0.12/iojs problems
-- add node 0.12 and iojs to travis
-- update dependencies (liftoff, v8flags)
-- documentation tweaks
-
-## 3.8.10
-
-- add link to spanish docs
-- update dependencies (archy, semver, mocha, etc)
-- documentation tweaks
-
-## 3.8.9
-
-- fix local version undefined output
-- add completion for fish shell
-- fix powershell completion line splitting
-- add support for arbitrary node flags (oops, should have been a minor bump)
-- add v8flags dependency
-- update dependencies (liftoff)
-- documentation tweaks
-
-## 3.8.8
-
-- update dependencies (minimist, tildify)
-- documentation tweaks
-
-## 3.8.7
-
-- handle errors a bit better
-- update dependencies (gulp-util, semver, etc)
-- documentation tweaks
-
-## 3.8.6
-
-- remove executable flag from LICENSE
-- update dependencies (chalk, minimist, liftoff, etc)
-- documentation tweaks
-
-## 3.8.5
-
-- simplify --silent and --tasks-simple
-- fix bug in autocomplete where errors would come out
-
-## 3.8.4
-
-- CLI will use exit code 1 on exit when any task fails during the lifetime of the process
-
-
-## 3.8.3
-
-- Tweak error formatting to work better with PluginErrors and strings
-
-## 3.8.2
-
-- add manpage generation
-
-## 3.8.1
-
-- the CLI now adds process.env.INIT_CWD which is the original cwd it was launched from
-
-## 3.8.0
-
-- update vinyl-fs
- - gulp.src is now a writable passthrough, this means you can use it to add files to your pipeline at any point
- - gulp.dest can now take a function to determine the folder
-
-This is now possible!
-
-```js
-gulp.src('lib/*.js')
- .pipe(uglify())
- .pipe(gulp.src('styles/*.css'))
- .pipe(gulp.dest(function(file){
- // I don't know, you can do something cool here
- return 'build/whatever';
- }));
-```
-
-## 3.7.0
-
-- update vinyl-fs to remove BOM from UTF8 files
-- add --tasks-simple flag for plaintext task listings
-- updated autocomplete scripts to be simpler and use new --tasks-simple flag
-- added support for transpilers via liftoff 0.11 and interpret
- - just npm install your compiler (coffee-script for example) and it will work out of the box
-
-## 3.5.5
-
-- update deps
-- gulp.dest now support mode option, uses source file mode by default (file.stat.mode)
-- use chalk for colors in bin
-- update gulp.env deprecation msg to be more helpful
-
-
-## 3.5.2
-
-- add -V for version on CLI (unix standard)
-- -v is deprecated, use -V
-- add -T as an alias for --tasks
-- documentation
-
-## 3.5
-
-- added `gulp.watch(globs, tasksArray)` sugar
-- remove gulp.taskQueue
-- deprecate gulp.run
-- deprecate gulp.env
-- add engineStrict to prevent people with node < 0.9 from installing
-
-## 3.4
-
-- added `--tasks` that prints out the tree of tasks + deps
-- global cli + local install mismatch is no longer fatal
-- remove tests for fs stuff
-- switch core src, dest, and watch to vinyl-fs
-- internal cleaning
-
-## 3.3.4
-
-- `--base` is now `--cwd`
-
-## 3.3.3
-
-- support for `--base` CLI arg to change where the search for gulpfile/`--require`s starts
-- support for `--gulpfile` CLI arg to point to a gulpfile specifically
-
-## 3.3.0
-
-- file.contents streams are no longer paused coming out of src
-- dest now passes files through before they are empty to fix passing to multiple dests
-
-## 3.2.4
-
-- Bug fix - we didn't have any CLI tests
-
-## 3.2.3
-
-- Update dependencies for bug fixes
-- autocomplete stuff in the completion folder
-
-## 3.2
-
-- File object is now [vinyl](https://github.com/wearefractal/vinyl)
-- .watch() is now [glob-watcher](https://github.com/wearefractal/glob-watcher)
-- Fix CLI -v when no gulpfile found
-- gulp-util updated
-- Logging moved to CLI bin file
- - Will cause double logging if you update global CLI to 3.2 but not local
- - Will cause no logging if you update local to 3.1 but not global CLI
-- Drop support for < 0.9
-
-## 3.1.3
-
-- Move isStream and isBuffer to gulp-util
-
-## 3.1
-
-- Move file class to gulp-util
-
-## 3.0
-
-- Ability to pass multiple globs and glob negations to glob-stream
-- Breaking change to the way glob-stream works
-- File object is now a class
-- file.shortened changed to file.relative
-- file.cwd added
-- Break out getStats to avoid nesting
-- Major code reorganization
-
-## 2.7
-
-- Breaking change to the way options are passed to glob-stream
-- Introduce new File object to ease pain of computing shortened names (now a getter)
-
-## 2.4 - 2.6
-
-- Moved stuff to gulp-util
-- Quit exposing createGlobStream (just use the glob-stream module)
-- More logging
-- Prettier time durations
-- Tons of documentation changes
-- gulp.trigger(tasks...) as a through stream
-
-## 1.2-2.4 (11/12/13)
-
-- src buffer=false fixed for 0.8 and 0.9 (remember to .resume() on these versions before consuming)
-- CLI completely rewritten
- - Colorful logging
- - Uses local version of gulp to run tasks
- - Uses findup to locate gulpfile (so you can run it anywhere in your project)
- - chdir to gulpfile directory before loading it
- - Correct exit codes on errors
-- silent flag added to gulp to disable logging
-- Fixes to task orchestration (3rd party)
-- Better support for globbed directories (thanks @robrich)
-
-## 1.2 (10/28/13)
-
-- Can specify buffer=false on src streams to make file.content a stream
-- Can specify read=false on src streams to disable file.content
-
-## 1.1 (10/21/13)
-
-- Can specify run callback
-- Can specify task dependencies
-- Tasks can accept callback or return promise
-- `gulp.verbose` exposes run-time internals
-
-## 1.0 (9/26/13)
-
-- Specify dependency versions
-- Updated docs
-
-## 0.2 (8/6/13)
-
-- Rename .files() to .src() and .folder() to .dest()
-
-## 0.1 (7/18/13)
-
-- Initial Release
diff --git a/node_modules/gulp/LICENSE b/node_modules/gulp/LICENSE
deleted file mode 100644
index 6a29df9..0000000
--- a/node_modules/gulp/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2013-2018 Blaine Bublitz , Eric Schoffstall and other contributors
-
-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/gulp/README.md b/node_modules/gulp/README.md
deleted file mode 100644
index aac4230..0000000
--- a/node_modules/gulp/README.md
+++ /dev/null
@@ -1,284 +0,0 @@
-
-
-
-
-
The streaming build system
-
-
-[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Azure Pipelines Build Status][azure-pipelines-image]][azure-pipelines-url] [![Build Status][travis-image]][travis-url] [![AppVeyor Build Status][appveyor-image]][appveyor-url] [![Coveralls Status][coveralls-image]][coveralls-url] [![OpenCollective Backers][backer-badge]][backer-url] [![OpenCollective Sponsors][sponsor-badge]][sponsor-url] [![Gitter chat][gitter-image]][gitter-url]
-
-
-## What is gulp?
-
-- **Automation** - gulp is a toolkit that helps you automate painful or time-consuming tasks in your development workflow.
-- **Platform-agnostic** - Integrations are built into all major IDEs and people are using gulp with PHP, .NET, Node.js, Java, and other platforms.
-- **Strong Ecosystem** - Use npm modules to do anything you want + over 2000 curated plugins for streaming file transformations
-- **Simple** - By providing only a minimal API surface, gulp is easy to learn and simple to use
-
-## What's new in 4.0?!
-
-* The task system was rewritten from the ground-up, allowing task composition using `series()` and `parallel()` methods
-* The watcher was updated, now using chokidar (no more need for gulp-watch!), with feature parity to our task system
-* First-class support was added for incremental builds using `lastRun()`
-* A `symlink()` method was exposed to create symlinks instead of copying files
-* Built-in support for sourcemaps was added - the gulp-sourcemaps plugin is no longer necessary!
-* Task registration of exported functions - using node or ES exports - is now recommended
-* Custom registries were designed, allowing for shared tasks or augmented functionality
-* Stream implementations were improved, allowing for better conditional and phased builds
-
-## Installation
-
-Follow our [Quick Start guide][quick-start].
-
-## Roadmap
-
-Find out about all our work-in-progress and outstanding issues at https://github.com/orgs/gulpjs/projects.
-
-## Documentation
-
-Check out the [Getting Started guide][getting-started-guide] and [API docs][api-docs] on our website!
-
-__Excuse our dust! All other docs will be behind until we get everything updated. Please open an issue if something isn't working.__
-
-## Sample `gulpfile.js`
-
-This file will give you a taste of what gulp does.
-
-```js
-var gulp = require('gulp');
-var less = require('gulp-less');
-var babel = require('gulp-babel');
-var concat = require('gulp-concat');
-var uglify = require('gulp-uglify');
-var rename = require('gulp-rename');
-var cleanCSS = require('gulp-clean-css');
-var del = require('del');
-
-var paths = {
- styles: {
- src: 'src/styles/**/*.less',
- dest: 'assets/styles/'
- },
- scripts: {
- src: 'src/scripts/**/*.js',
- dest: 'assets/scripts/'
- }
-};
-
-/* Not all tasks need to use streams, a gulpfile is just another node program
- * and you can use all packages available on npm, but it must return either a
- * Promise, a Stream or take a callback and call it
- */
-function clean() {
- // You can use multiple globbing patterns as you would with `gulp.src`,
- // for example if you are using del 2.0 or above, return its promise
- return del([ 'assets' ]);
-}
-
-/*
- * Define our tasks using plain functions
- */
-function styles() {
- return gulp.src(paths.styles.src)
- .pipe(less())
- .pipe(cleanCSS())
- // pass in options to the stream
- .pipe(rename({
- basename: 'main',
- suffix: '.min'
- }))
- .pipe(gulp.dest(paths.styles.dest));
-}
-
-function scripts() {
- return gulp.src(paths.scripts.src, { sourcemaps: true })
- .pipe(babel())
- .pipe(uglify())
- .pipe(concat('main.min.js'))
- .pipe(gulp.dest(paths.scripts.dest));
-}
-
-function watch() {
- gulp.watch(paths.scripts.src, scripts);
- gulp.watch(paths.styles.src, styles);
-}
-
-/*
- * Specify if tasks run in series or parallel using `gulp.series` and `gulp.parallel`
- */
-var build = gulp.series(clean, gulp.parallel(styles, scripts));
-
-/*
- * You can use CommonJS `exports` module notation to declare tasks
- */
-exports.clean = clean;
-exports.styles = styles;
-exports.scripts = scripts;
-exports.watch = watch;
-exports.build = build;
-/*
- * Define default task that can be called by just running `gulp` from cli
- */
-exports.default = build;
-```
-
-## Use latest JavaScript version in your gulpfile
-
-__Most new versions of node support most features that Babel provides, except the `import`/`export` syntax. When only that syntax is desired, rename to `gulpfile.esm.js`, install the [esm][esm-module] module, and skip the Babel portion below.__
-
-Node already supports a lot of __ES2015+__ features, but to avoid compatibility problems we suggest to install Babel and rename your `gulpfile.js` to `gulpfile.babel.js`.
-
-```sh
-npm install --save-dev @babel/register @babel/core @babel/preset-env
-```
-
-Then create a **.babelrc** file with the preset configuration.
-
-```js
-{
- "presets": [ "@babel/preset-env" ]
-}
-```
-
-And here's the same sample from above written in **ES2015+**.
-
-```js
-import gulp from 'gulp';
-import less from 'gulp-less';
-import babel from 'gulp-babel';
-import concat from 'gulp-concat';
-import uglify from 'gulp-uglify';
-import rename from 'gulp-rename';
-import cleanCSS from 'gulp-clean-css';
-import del from 'del';
-
-const paths = {
- styles: {
- src: 'src/styles/**/*.less',
- dest: 'assets/styles/'
- },
- scripts: {
- src: 'src/scripts/**/*.js',
- dest: 'assets/scripts/'
- }
-};
-
-/*
- * For small tasks you can export arrow functions
- */
-export const clean = () => del([ 'assets' ]);
-
-/*
- * You can also declare named functions and export them as tasks
- */
-export function styles() {
- return gulp.src(paths.styles.src)
- .pipe(less())
- .pipe(cleanCSS())
- // pass in options to the stream
- .pipe(rename({
- basename: 'main',
- suffix: '.min'
- }))
- .pipe(gulp.dest(paths.styles.dest));
-}
-
-export function scripts() {
- return gulp.src(paths.scripts.src, { sourcemaps: true })
- .pipe(babel())
- .pipe(uglify())
- .pipe(concat('main.min.js'))
- .pipe(gulp.dest(paths.scripts.dest));
-}
-
- /*
- * You could even use `export as` to rename exported tasks
- */
-function watchFiles() {
- gulp.watch(paths.scripts.src, scripts);
- gulp.watch(paths.styles.src, styles);
-}
-export { watchFiles as watch };
-
-const build = gulp.series(clean, gulp.parallel(styles, scripts));
-/*
- * Export a default task
- */
-export default build;
-```
-
-## Incremental Builds
-
-You can filter out unchanged files between runs of a task using
-the `gulp.src` function's `since` option and `gulp.lastRun`:
-```js
-const paths = {
- ...
- images: {
- src: 'src/images/**/*.{jpg,jpeg,png}',
- dest: 'build/img/'
- }
-}
-
-function images() {
- return gulp.src(paths.images.src, {since: gulp.lastRun(images)})
- .pipe(imagemin({optimizationLevel: 5}))
- .pipe(gulp.dest(paths.images.dest));
-}
-
-function watch() {
- gulp.watch(paths.images.src, images);
-}
-```
-Task run times are saved in memory and are lost when gulp exits. It will only
-save time during the `watch` task when running the `images` task
-for a second time.
-
-## Want to contribute?
-
-Anyone can help make this project better - check out our [Contributing guide](/CONTRIBUTING.md)!
-
-## Backers
-
-Support us with a monthly donation and help us continue our activities.
-
-[![Backers][backers-image]][support-url]
-
-## Sponsors
-
-Become a sponsor to get your logo on our README on Github.
-
-[![Sponsors][sponsors-image]][support-url]
-
-[downloads-image]: https://img.shields.io/npm/dm/gulp.svg
-[npm-url]: https://www.npmjs.com/package/gulp
-[npm-image]: https://img.shields.io/npm/v/gulp.svg
-
-[azure-pipelines-url]: https://dev.azure.com/gulpjs/gulp/_build/latest?definitionId=1&branchName=master
-[azure-pipelines-image]: https://dev.azure.com/gulpjs/gulp/_apis/build/status/gulp?branchName=master
-
-[travis-url]: https://travis-ci.org/gulpjs/gulp
-[travis-image]: https://img.shields.io/travis/gulpjs/gulp.svg?label=travis-ci
-
-[appveyor-url]: https://ci.appveyor.com/project/gulpjs/gulp
-[appveyor-image]: https://img.shields.io/appveyor/ci/gulpjs/gulp.svg?label=appveyor
-
-[coveralls-url]: https://coveralls.io/r/gulpjs/gulp
-[coveralls-image]: https://img.shields.io/coveralls/gulpjs/gulp/master.svg
-
-[gitter-url]: https://gitter.im/gulpjs/gulp
-[gitter-image]: https://badges.gitter.im/gulpjs/gulp.svg
-
-[backer-url]: #backers
-[backer-badge]: https://opencollective.com/gulpjs/backers/badge.svg?color=blue
-[sponsor-url]: #sponsors
-[sponsor-badge]: https://opencollective.com/gulpjs/sponsors/badge.svg?color=blue
-
-[support-url]: https://opencollective.com/gulpjs#support
-
-[backers-image]: https://opencollective.com/gulpjs/backers.svg
-[sponsors-image]: https://opencollective.com/gulpjs/sponsors.svg
-
-[quick-start]: https://gulpjs.com/docs/en/getting-started/quick-start
-[getting-started-guide]: https://gulpjs.com/docs/en/getting-started/quick-start
-[api-docs]: https://gulpjs.com/docs/en/api/concepts
diff --git a/node_modules/gulp/bin/gulp.js b/node_modules/gulp/bin/gulp.js
deleted file mode 100755
index f4b80cc..0000000
--- a/node_modules/gulp/bin/gulp.js
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env node
-
-require('gulp-cli')();
diff --git a/node_modules/gulp/index.js b/node_modules/gulp/index.js
deleted file mode 100644
index 8b73521..0000000
--- a/node_modules/gulp/index.js
+++ /dev/null
@@ -1,55 +0,0 @@
-'use strict';
-
-var util = require('util');
-var Undertaker = require('undertaker');
-var vfs = require('vinyl-fs');
-var watch = require('glob-watcher');
-
-function Gulp() {
- Undertaker.call(this);
-
- // Bind the functions for destructuring
- this.watch = this.watch.bind(this);
- this.task = this.task.bind(this);
- this.series = this.series.bind(this);
- this.parallel = this.parallel.bind(this);
- this.registry = this.registry.bind(this);
- this.tree = this.tree.bind(this);
- this.lastRun = this.lastRun.bind(this);
- this.src = this.src.bind(this);
- this.dest = this.dest.bind(this);
- this.symlink = this.symlink.bind(this);
-}
-util.inherits(Gulp, Undertaker);
-
-Gulp.prototype.src = vfs.src;
-Gulp.prototype.dest = vfs.dest;
-Gulp.prototype.symlink = vfs.symlink;
-Gulp.prototype.watch = function(glob, opt, task) {
- if (typeof opt === 'string' || typeof task === 'string' ||
- Array.isArray(opt) || Array.isArray(task)) {
- throw new Error('watching ' + glob + ': watch task has to be ' +
- 'a function (optionally generated by using gulp.parallel ' +
- 'or gulp.series)');
- }
-
- if (typeof opt === 'function') {
- task = opt;
- opt = {};
- }
-
- opt = opt || {};
-
- var fn;
- if (typeof task === 'function') {
- fn = this.parallel(task);
- }
-
- return watch(glob, opt, fn);
-};
-
-// Let people use this class from our instance
-Gulp.prototype.Gulp = Gulp;
-
-var inst = new Gulp();
-module.exports = inst;
diff --git a/node_modules/gulp/package.json b/node_modules/gulp/package.json
deleted file mode 100644
index 256684a..0000000
--- a/node_modules/gulp/package.json
+++ /dev/null
@@ -1,60 +0,0 @@
-{
- "name": "gulp",
- "version": "4.0.2",
- "description": "The streaming build system.",
- "homepage": "https://gulpjs.com",
- "author": "Gulp Team (https://gulpjs.com/)",
- "contributors": [
- "Eric Schoffstall ",
- "Blaine Bublitz "
- ],
- "repository": "gulpjs/gulp",
- "license": "MIT",
- "engines": {
- "node": ">= 0.10"
- },
- "main": "index.js",
- "files": [
- "LICENSE",
- "index.js",
- "bin"
- ],
- "bin": {
- "gulp": "./bin/gulp.js"
- },
- "scripts": {
- "lint": "eslint .",
- "pretest": "npm run lint",
- "test": "nyc mocha --async-only",
- "azure-pipelines": "nyc mocha --async-only --reporter xunit -O output=test.xunit",
- "coveralls": "nyc report --reporter=text-lcov | coveralls"
- },
- "dependencies": {
- "glob-watcher": "^5.0.3",
- "gulp-cli": "^2.2.0",
- "undertaker": "^1.2.1",
- "vinyl-fs": "^3.0.0"
- },
- "devDependencies": {
- "coveralls": "github:phated/node-coveralls#2.x",
- "eslint": "^2.13.1",
- "eslint-config-gulp": "^3.0.1",
- "expect": "^1.20.2",
- "mkdirp": "^0.5.1",
- "mocha": "^3.0.0",
- "nyc": "^10.3.2",
- "rimraf": "^2.6.3"
- },
- "keywords": [
- "build",
- "stream",
- "system",
- "make",
- "tool",
- "asset",
- "pipeline",
- "series",
- "parallel",
- "streaming"
- ]
-}
diff --git a/node_modules/gulplog/CHANGELOG.md b/node_modules/gulplog/CHANGELOG.md
deleted file mode 100644
index 5f84e9b..0000000
--- a/node_modules/gulplog/CHANGELOG.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# gulplog changelog
-
-## 1.0.0
-
-- Initial release
-- No implementation changed since initial commit
-
-## 0.0.0
-
-- Experimentation
diff --git a/node_modules/gulplog/LICENSE b/node_modules/gulplog/LICENSE
deleted file mode 100644
index 8ac3554..0000000
--- a/node_modules/gulplog/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015 Blaine Bublitz, Eric Schoffstall and other contributors
-
-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/gulplog/README.md b/node_modules/gulplog/README.md
deleted file mode 100644
index 484e939..0000000
--- a/node_modules/gulplog/README.md
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-
-
-
-
-# gulplog
-
-[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Build Status][travis-image]][travis-url] [![Gitter chat][gitter-image]][gitter-url]
-
-Logger for gulp and gulp plugins
-
-## Usage
-
-```js
-var logger = require('gulplog');
-
-// logs strings
-logger.debug('The MOST verbose!');
-logger.info('Some important info');
-logger.warn('All the warnings to you');
-logger.error('OH NO! SOMETHING HAPPENED!');
-
-// supports util.format!
-logger.info('%s style!', 'printf');
-
-// log anything
-logger.debug({ my: 'obj' });
-logger.info([1, 2, 3]);
-```
-
-## API
-
-Logging (and level of logging) is controlled by [`gulp-cli`][gulp-cli-url]
-
-#### logger.debug(msg)
-
-Highest log level. Typically used for debugging purposes.
-
-If the first argument is a string, all arguments are passed to node's
-[`util.format()`][util-format-url] before being emitted.
-
-#### logger.info(msg)
-
-Standard log level. Typically used for user information.
-
-If the first argument is a string, all arguments are passed to node's
-[`util.format()`][util-format-url] before being emitted.
-
-#### logger.warn(msg)
-
-Warning log level. Typically used for warnings.
-
-If the first argument is a string, all arguments are passed to node's
-[`util.format()`][util-format-url] before being emitted.
-
-#### logger.error(msg)
-
-Error log level. Typically used when things went horribly wrong.
-
-If the first argument is a string, all arguments are passed to node's
-[`util.format()`][util-format-url] before being emitted.
-
-## License
-
-MIT
-
-[downloads-image]: http://img.shields.io/npm/dm/gulplog.svg
-[npm-url]: https://npmjs.org/package/gulplog
-[npm-image]: http://img.shields.io/npm/v/gulplog.svg
-
-[travis-url]: https://travis-ci.org/gulpjs/gulplog
-[travis-image]: http://img.shields.io/travis/gulpjs/gulplog.svg
-
-[gitter-url]: https://gitter.im/gulpjs/gulp
-[gitter-image]: https://badges.gitter.im/gulpjs/gulp.png
-
-[gulp-cli-url]: https://github.com/gulpjs/gulp-cli
-[util-format-url]: https://nodejs.org/docs/latest/api/util.html#util_util_format_format
diff --git a/node_modules/gulplog/index.js b/node_modules/gulplog/index.js
deleted file mode 100644
index b92a646..0000000
--- a/node_modules/gulplog/index.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-
-var getLogger = require('glogg');
-
-var logger = getLogger('gulplog');
-
-module.exports = logger;
diff --git a/node_modules/gulplog/package.json b/node_modules/gulplog/package.json
deleted file mode 100644
index 047bc7c..0000000
--- a/node_modules/gulplog/package.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "name": "gulplog",
- "version": "1.0.0",
- "description": "Logger for gulp and gulp plugins",
- "author": "Blaine Bublitz (http://iceddev.com)",
- "contributors": [],
- "repository": "gulpjs/gulplog",
- "license": "MIT",
- "engines": {
- "node": ">= 0.10"
- },
- "main": "index.js",
- "files": [
- "LICENSE",
- "index.js"
- ],
- "scripts": {
- "test": "eslint index.js && jscs index.js"
- },
- "dependencies": {
- "glogg": "^1.0.0"
- },
- "devDependencies": {
- "eslint": "^1.5.1",
- "eslint-config-node-style-guide": "^1.0.1",
- "jscs": "^2.1.1"
- },
- "keywords": [
- "gulp",
- "gulp-util",
- "log",
- "logging"
- ]
-}
diff --git a/node_modules/has-symbols/.eslintignore b/node_modules/has-symbols/.eslintignore
deleted file mode 100644
index 404abb2..0000000
--- a/node_modules/has-symbols/.eslintignore
+++ /dev/null
@@ -1 +0,0 @@
-coverage/
diff --git a/node_modules/has-symbols/.eslintrc b/node_modules/has-symbols/.eslintrc
deleted file mode 100644
index 2d9a66a..0000000
--- a/node_modules/has-symbols/.eslintrc
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "root": true,
-
- "extends": "@ljharb",
-
- "rules": {
- "max-statements-per-line": [2, { "max": 2 }],
- "no-magic-numbers": 0,
- "multiline-comment-style": 0,
- }
-}
diff --git a/node_modules/has-symbols/.github/FUNDING.yml b/node_modules/has-symbols/.github/FUNDING.yml
deleted file mode 100644
index 04cf87e..0000000
--- a/node_modules/has-symbols/.github/FUNDING.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-# These are supported funding model platforms
-
-github: [ljharb]
-patreon: # Replace with a single Patreon username
-open_collective: # Replace with a single Open Collective username
-ko_fi: # Replace with a single Ko-fi username
-tidelift: npm/has-symbols
-community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
-liberapay: # Replace with a single Liberapay username
-issuehunt: # Replace with a single IssueHunt username
-otechie: # Replace with a single Otechie username
-custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
diff --git a/node_modules/has-symbols/.nycrc b/node_modules/has-symbols/.nycrc
deleted file mode 100644
index 1826526..0000000
--- a/node_modules/has-symbols/.nycrc
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "all": true,
- "check-coverage": false,
- "reporter": ["text-summary", "text", "html", "json"],
- "lines": 86,
- "statements": 85.93,
- "functions": 82.43,
- "branches": 76.06,
- "exclude": [
- "coverage",
- "test"
- ]
-}
diff --git a/node_modules/has-symbols/CHANGELOG.md b/node_modules/has-symbols/CHANGELOG.md
deleted file mode 100644
index 852ca04..0000000
--- a/node_modules/has-symbols/CHANGELOG.md
+++ /dev/null
@@ -1,58 +0,0 @@
-# Changelog
-
-All notable changes to this project will be documented in this file.
-
-The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
-and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-
-## [v1.0.2](https://github.com/inspect-js/has-symbols/compare/v1.0.1...v1.0.2) - 2021-02-27
-
-### Fixed
-
-- [Fix] use a universal way to get the original Symbol [`#11`](https://github.com/inspect-js/has-symbols/issues/11)
-
-### Commits
-
-- [Tests] migrate tests to Github Actions [`90ae798`](https://github.com/inspect-js/has-symbols/commit/90ae79820bdfe7bc703d67f5f3c5e205f98556d3)
-- [meta] do not publish github action workflow files [`29e60a1`](https://github.com/inspect-js/has-symbols/commit/29e60a1b7c25c7f1acf7acff4a9320d0d10c49b4)
-- [Tests] run `nyc` on all tests [`8476b91`](https://github.com/inspect-js/has-symbols/commit/8476b915650d360915abe2522505abf4b0e8f0ae)
-- [readme] fix repo URLs, remove defunct badges [`126288e`](https://github.com/inspect-js/has-symbols/commit/126288ecc1797c0a40247a6b78bcb2e0bc5d7036)
-- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `core-js`, `get-own-property-symbols` [`d84bdfa`](https://github.com/inspect-js/has-symbols/commit/d84bdfa48ac5188abbb4904b42614cd6c030940a)
-- [Tests] fix linting errors [`0df3070`](https://github.com/inspect-js/has-symbols/commit/0df3070b981b6c9f2ee530c09189a7f5c6def839)
-- [actions] add "Allow Edits" workflow [`1e6bc29`](https://github.com/inspect-js/has-symbols/commit/1e6bc29b188f32b9648657b07eda08504be5aa9c)
-- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`36cea2a`](https://github.com/inspect-js/has-symbols/commit/36cea2addd4e6ec435f35a2656b4e9ef82498e9b)
-- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`1278338`](https://github.com/inspect-js/has-symbols/commit/127833801865fbc2cc8979beb9ca869c7bfe8222)
-- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`1493254`](https://github.com/inspect-js/has-symbols/commit/1493254eda13db5fb8fc5e4a3e8324b3d196029d)
-- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `core-js` [`b090bf2`](https://github.com/inspect-js/has-symbols/commit/b090bf214d3679a30edc1e2d729d466ab5183e1d)
-- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`4addb7a`](https://github.com/inspect-js/has-symbols/commit/4addb7ab4dc73f927ae99928d68817554fc21dc0)
-- [Dev Deps] update `auto-changelog`, `tape` [`81d0baf`](https://github.com/inspect-js/has-symbols/commit/81d0baf3816096a89a8558e8043895f7a7d10d8b)
-- [Dev Deps] update `auto-changelog`; add `aud` [`1a4e561`](https://github.com/inspect-js/has-symbols/commit/1a4e5612c25d91c3a03d509721d02630bc4fe3da)
-- [readme] remove unused testling URLs [`3000941`](https://github.com/inspect-js/has-symbols/commit/3000941f958046e923ed8152edb1ef4a599e6fcc)
-- [Tests] only audit prod deps [`692e974`](https://github.com/inspect-js/has-symbols/commit/692e9743c912410e9440207631a643a34b4741a1)
-- [Dev Deps] update `@ljharb/eslint-config` [`51c946c`](https://github.com/inspect-js/has-symbols/commit/51c946c7f6baa793ec5390bb5a45cdce16b4ba76)
-
-## [v1.0.1](https://github.com/inspect-js/has-symbols/compare/v1.0.0...v1.0.1) - 2019-11-16
-
-### Commits
-
-- [Tests] use shared travis-ci configs [`ce396c9`](https://github.com/inspect-js/has-symbols/commit/ce396c9419ff11c43d0da5d05cdbb79f7fb42229)
-- [Tests] up to `node` `v12.4`, `v11.15`, `v10.15`, `v9.11`, `v8.15`, `v7.10`, `v6.17`, `v4.9`; use `nvm install-latest-npm` [`0690732`](https://github.com/inspect-js/has-symbols/commit/0690732801f47ab429f39ba1962f522d5c462d6b)
-- [meta] add `auto-changelog` [`2163d0b`](https://github.com/inspect-js/has-symbols/commit/2163d0b7f36343076b8f947cd1667dd1750f26fc)
-- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `core-js`, `safe-publish-latest`, `tape` [`8e0951f`](https://github.com/inspect-js/has-symbols/commit/8e0951f1a7a2e52068222b7bb73511761e6e4d9c)
-- [actions] add automatic rebasing / merge commit blocking [`b09cdb7`](https://github.com/inspect-js/has-symbols/commit/b09cdb7cd7ee39e7a769878f56e2d6066f5ccd1d)
-- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`, `core-js`, `get-own-property-symbols`, `tape` [`1dd42cd`](https://github.com/inspect-js/has-symbols/commit/1dd42cd86183ed0c50f99b1062345c458babca91)
-- [meta] create FUNDING.yml [`aa57a17`](https://github.com/inspect-js/has-symbols/commit/aa57a17b19708906d1927f821ea8e73394d84ca4)
-- Only apps should have lockfiles [`a2d8bea`](https://github.com/inspect-js/has-symbols/commit/a2d8bea23a97d15c09eaf60f5b107fcf9a4d57aa)
-- [Tests] use `npx aud` instead of `nsp` or `npm audit` with hoops [`9e96cb7`](https://github.com/inspect-js/has-symbols/commit/9e96cb783746cbed0c10ef78e599a8eaa7ebe193)
-- [meta] add `funding` field [`a0b32cf`](https://github.com/inspect-js/has-symbols/commit/a0b32cf68e803f963c1639b6d47b0a9d6440bab0)
-- [Dev Deps] update `safe-publish-latest` [`cb9f0a5`](https://github.com/inspect-js/has-symbols/commit/cb9f0a521a3a1790f1064d437edd33bb6c3d6af0)
-
-## v1.0.0 - 2016-09-19
-
-### Commits
-
-- Tests. [`ecb6eb9`](https://github.com/inspect-js/has-symbols/commit/ecb6eb934e4883137f3f93b965ba5e0a98df430d)
-- package.json [`88a337c`](https://github.com/inspect-js/has-symbols/commit/88a337cee0864a0da35f5d19e69ff0ef0150e46a)
-- Initial commit [`42e1e55`](https://github.com/inspect-js/has-symbols/commit/42e1e5502536a2b8ac529c9443984acd14836b1c)
-- Initial implementation. [`33f5cc6`](https://github.com/inspect-js/has-symbols/commit/33f5cc6cdff86e2194b081ee842bfdc63caf43fb)
-- read me [`01f1170`](https://github.com/inspect-js/has-symbols/commit/01f1170188ff7cb1558aa297f6ba5b516c6d7b0c)
diff --git a/node_modules/has-symbols/LICENSE b/node_modules/has-symbols/LICENSE
deleted file mode 100644
index df31cbf..0000000
--- a/node_modules/has-symbols/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2016 Jordan Harband
-
-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/has-symbols/README.md b/node_modules/has-symbols/README.md
deleted file mode 100644
index 3875d7e..0000000
--- a/node_modules/has-symbols/README.md
+++ /dev/null
@@ -1,40 +0,0 @@
-# has-symbols [![Version Badge][2]][1]
-
-[![dependency status][5]][6]
-[![dev dependency status][7]][8]
-[![License][license-image]][license-url]
-[![Downloads][downloads-image]][downloads-url]
-
-[![npm badge][11]][1]
-
-Determine if the JS environment has Symbol support. Supports spec, or shams.
-
-## Example
-
-```js
-var hasSymbols = require('has-symbols');
-
-hasSymbols() === true; // if the environment has native Symbol support. Not polyfillable, not forgeable.
-
-var hasSymbolsKinda = require('has-symbols/shams');
-hasSymbolsKinda() === true; // if the environment has a Symbol sham that mostly follows the spec.
-```
-
-## Supported Symbol shams
- - get-own-property-symbols [npm](https://www.npmjs.com/package/get-own-property-symbols) | [github](https://github.com/WebReflection/get-own-property-symbols)
- - core-js [npm](https://www.npmjs.com/package/core-js) | [github](https://github.com/zloirock/core-js)
-
-## Tests
-Simply clone the repo, `npm install`, and run `npm test`
-
-[1]: https://npmjs.org/package/has-symbols
-[2]: https://versionbadg.es/inspect-js/has-symbols.svg
-[5]: https://david-dm.org/inspect-js/has-symbols.svg
-[6]: https://david-dm.org/inspect-js/has-symbols
-[7]: https://david-dm.org/inspect-js/has-symbols/dev-status.svg
-[8]: https://david-dm.org/inspect-js/has-symbols#info=devDependencies
-[11]: https://nodei.co/npm/has-symbols.png?downloads=true&stars=true
-[license-image]: https://img.shields.io/npm/l/has-symbols.svg
-[license-url]: LICENSE
-[downloads-image]: https://img.shields.io/npm/dm/has-symbols.svg
-[downloads-url]: https://npm-stat.com/charts.html?package=has-symbols
diff --git a/node_modules/has-symbols/index.js b/node_modules/has-symbols/index.js
deleted file mode 100644
index 17044fa..0000000
--- a/node_modules/has-symbols/index.js
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-
-var origSymbol = typeof Symbol !== 'undefined' && Symbol;
-var hasSymbolSham = require('./shams');
-
-module.exports = function hasNativeSymbols() {
- if (typeof origSymbol !== 'function') { return false; }
- if (typeof Symbol !== 'function') { return false; }
- if (typeof origSymbol('foo') !== 'symbol') { return false; }
- if (typeof Symbol('bar') !== 'symbol') { return false; }
-
- return hasSymbolSham();
-};
diff --git a/node_modules/has-symbols/package.json b/node_modules/has-symbols/package.json
deleted file mode 100644
index 2c2f572..0000000
--- a/node_modules/has-symbols/package.json
+++ /dev/null
@@ -1,96 +0,0 @@
-{
- "name": "has-symbols",
- "version": "1.0.2",
- "author": {
- "name": "Jordan Harband",
- "email": "ljharb@gmail.com",
- "url": "http://ljharb.codes"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- },
- "contributors": [
- {
- "name": "Jordan Harband",
- "email": "ljharb@gmail.com",
- "url": "http://ljharb.codes"
- }
- ],
- "description": "Determine if the JS environment has Symbol support. Supports spec, or shams.",
- "license": "MIT",
- "main": "index.js",
- "scripts": {
- "prepublish": "safe-publish-latest",
- "pretest": "npm run --silent lint",
- "test": "npm run tests-only",
- "posttest": "aud --production",
- "tests-only": "npm run test:stock && npm run test:staging && npm run test:shams",
- "test:stock": "nyc node test",
- "test:staging": "nyc node --harmony --es-staging test",
- "test:shams": "npm run --silent test:shams:getownpropertysymbols && npm run --silent test:shams:corejs",
- "test:shams:corejs": "nyc node test/shams/core-js.js",
- "test:shams:getownpropertysymbols": "nyc node test/shams/get-own-property-symbols.js",
- "lint": "eslint --ext=js,mjs .",
- "version": "auto-changelog && git add CHANGELOG.md",
- "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\""
- },
- "repository": {
- "type": "git",
- "url": "git://github.com/inspect-js/has-symbols.git"
- },
- "keywords": [
- "Symbol",
- "symbols",
- "typeof",
- "sham",
- "polyfill",
- "native",
- "core-js",
- "ES6"
- ],
- "devDependencies": {
- "@ljharb/eslint-config": "^17.5.1",
- "aud": "^1.1.4",
- "auto-changelog": "^2.2.1",
- "core-js": "^2.6.12",
- "eslint": "^7.20.0",
- "get-own-property-symbols": "^0.9.5",
- "nyc": "^10.3.2",
- "safe-publish-latest": "^1.1.4",
- "tape": "^5.2.0"
- },
- "testling": {
- "files": "test/index.js",
- "browsers": [
- "iexplore/6.0..latest",
- "firefox/3.0..6.0",
- "firefox/15.0..latest",
- "firefox/nightly",
- "chrome/4.0..10.0",
- "chrome/20.0..latest",
- "chrome/canary",
- "opera/10.0..latest",
- "opera/next",
- "safari/4.0..latest",
- "ipad/6.0..latest",
- "iphone/6.0..latest",
- "android-browser/4.2"
- ]
- },
- "engines": {
- "node": ">= 0.4"
- },
- "auto-changelog": {
- "output": "CHANGELOG.md",
- "template": "keepachangelog",
- "unreleased": false,
- "commitLimit": false,
- "backfillLimit": false,
- "hideCredit": true
- },
- "greenkeeper": {
- "ignore": [
- "core-js"
- ]
- }
-}
diff --git a/node_modules/has-symbols/shams.js b/node_modules/has-symbols/shams.js
deleted file mode 100644
index 1285210..0000000
--- a/node_modules/has-symbols/shams.js
+++ /dev/null
@@ -1,42 +0,0 @@
-'use strict';
-
-/* eslint complexity: [2, 18], max-statements: [2, 33] */
-module.exports = function hasSymbols() {
- if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }
- if (typeof Symbol.iterator === 'symbol') { return true; }
-
- var obj = {};
- var sym = Symbol('test');
- var symObj = Object(sym);
- if (typeof sym === 'string') { return false; }
-
- if (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }
- if (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }
-
- // temp disabled per https://github.com/ljharb/object.assign/issues/17
- // if (sym instanceof Symbol) { return false; }
- // temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4
- // if (!(symObj instanceof Symbol)) { return false; }
-
- // if (typeof Symbol.prototype.toString !== 'function') { return false; }
- // if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }
-
- var symVal = 42;
- obj[sym] = symVal;
- for (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop
- if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }
-
- if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }
-
- var syms = Object.getOwnPropertySymbols(obj);
- if (syms.length !== 1 || syms[0] !== sym) { return false; }
-
- if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }
-
- if (typeof Object.getOwnPropertyDescriptor === 'function') {
- var descriptor = Object.getOwnPropertyDescriptor(obj, sym);
- if (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }
- }
-
- return true;
-};
diff --git a/node_modules/has-symbols/test/index.js b/node_modules/has-symbols/test/index.js
deleted file mode 100644
index 352129c..0000000
--- a/node_modules/has-symbols/test/index.js
+++ /dev/null
@@ -1,22 +0,0 @@
-'use strict';
-
-var test = require('tape');
-var hasSymbols = require('../');
-var runSymbolTests = require('./tests');
-
-test('interface', function (t) {
- t.equal(typeof hasSymbols, 'function', 'is a function');
- t.equal(typeof hasSymbols(), 'boolean', 'returns a boolean');
- t.end();
-});
-
-test('Symbols are supported', { skip: !hasSymbols() }, function (t) {
- runSymbolTests(t);
- t.end();
-});
-
-test('Symbols are not supported', { skip: hasSymbols() }, function (t) {
- t.equal(typeof Symbol, 'undefined', 'global Symbol is undefined');
- t.equal(typeof Object.getOwnPropertySymbols, 'undefined', 'Object.getOwnPropertySymbols does not exist');
- t.end();
-});
diff --git a/node_modules/has-symbols/test/shams/core-js.js b/node_modules/has-symbols/test/shams/core-js.js
deleted file mode 100644
index df5365c..0000000
--- a/node_modules/has-symbols/test/shams/core-js.js
+++ /dev/null
@@ -1,28 +0,0 @@
-'use strict';
-
-var test = require('tape');
-
-if (typeof Symbol === 'function' && typeof Symbol() === 'symbol') {
- test('has native Symbol support', function (t) {
- t.equal(typeof Symbol, 'function');
- t.equal(typeof Symbol(), 'symbol');
- t.end();
- });
- return;
-}
-
-var hasSymbols = require('../../shams');
-
-test('polyfilled Symbols', function (t) {
- /* eslint-disable global-require */
- t.equal(hasSymbols(), false, 'hasSymbols is false before polyfilling');
- require('core-js/fn/symbol');
- require('core-js/fn/symbol/to-string-tag');
-
- require('../tests')(t);
-
- var hasSymbolsAfter = hasSymbols();
- t.equal(hasSymbolsAfter, true, 'hasSymbols is true after polyfilling');
- /* eslint-enable global-require */
- t.end();
-});
diff --git a/node_modules/has-symbols/test/shams/get-own-property-symbols.js b/node_modules/has-symbols/test/shams/get-own-property-symbols.js
deleted file mode 100644
index 9191b24..0000000
--- a/node_modules/has-symbols/test/shams/get-own-property-symbols.js
+++ /dev/null
@@ -1,28 +0,0 @@
-'use strict';
-
-var test = require('tape');
-
-if (typeof Symbol === 'function' && typeof Symbol() === 'symbol') {
- test('has native Symbol support', function (t) {
- t.equal(typeof Symbol, 'function');
- t.equal(typeof Symbol(), 'symbol');
- t.end();
- });
- return;
-}
-
-var hasSymbols = require('../../shams');
-
-test('polyfilled Symbols', function (t) {
- /* eslint-disable global-require */
- t.equal(hasSymbols(), false, 'hasSymbols is false before polyfilling');
-
- require('get-own-property-symbols');
-
- require('../tests')(t);
-
- var hasSymbolsAfter = hasSymbols();
- t.equal(hasSymbolsAfter, true, 'hasSymbols is true after polyfilling');
- /* eslint-enable global-require */
- t.end();
-});
diff --git a/node_modules/has-symbols/test/tests.js b/node_modules/has-symbols/test/tests.js
deleted file mode 100644
index 89edd12..0000000
--- a/node_modules/has-symbols/test/tests.js
+++ /dev/null
@@ -1,56 +0,0 @@
-'use strict';
-
-// eslint-disable-next-line consistent-return
-module.exports = function runSymbolTests(t) {
- t.equal(typeof Symbol, 'function', 'global Symbol is a function');
-
- if (typeof Symbol !== 'function') { return false; }
-
- t.notEqual(Symbol(), Symbol(), 'two symbols are not equal');
-
- /*
- t.equal(
- Symbol.prototype.toString.call(Symbol('foo')),
- Symbol.prototype.toString.call(Symbol('foo')),
- 'two symbols with the same description stringify the same'
- );
- */
-
- /*
- var foo = Symbol('foo');
-
- t.notEqual(
- String(foo),
- String(Symbol('bar')),
- 'two symbols with different descriptions do not stringify the same'
- );
- */
-
- t.equal(typeof Symbol.prototype.toString, 'function', 'Symbol#toString is a function');
- // t.equal(String(foo), Symbol.prototype.toString.call(foo), 'Symbol#toString equals String of the same symbol');
-
- t.equal(typeof Object.getOwnPropertySymbols, 'function', 'Object.getOwnPropertySymbols is a function');
-
- var obj = {};
- var sym = Symbol('test');
- var symObj = Object(sym);
- t.notEqual(typeof sym, 'string', 'Symbol is not a string');
- t.equal(Object.prototype.toString.call(sym), '[object Symbol]', 'symbol primitive Object#toStrings properly');
- t.equal(Object.prototype.toString.call(symObj), '[object Symbol]', 'symbol primitive Object#toStrings properly');
-
- var symVal = 42;
- obj[sym] = symVal;
- // eslint-disable-next-line no-restricted-syntax
- for (sym in obj) { t.fail('symbol property key was found in for..in of object'); }
-
- t.deepEqual(Object.keys(obj), [], 'no enumerable own keys on symbol-valued object');
- t.deepEqual(Object.getOwnPropertyNames(obj), [], 'no own names on symbol-valued object');
- t.deepEqual(Object.getOwnPropertySymbols(obj), [sym], 'one own symbol on symbol-valued object');
- t.equal(Object.prototype.propertyIsEnumerable.call(obj, sym), true, 'symbol is enumerable');
- t.deepEqual(Object.getOwnPropertyDescriptor(obj, sym), {
- configurable: true,
- enumerable: true,
- value: 42,
- writable: true
- }, 'property descriptor is correct');
-};
diff --git a/node_modules/has-value/LICENSE b/node_modules/has-value/LICENSE
deleted file mode 100644
index d734237..0000000
--- a/node_modules/has-value/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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/has-value/README.md b/node_modules/has-value/README.md
deleted file mode 100644
index f9b428c..0000000
--- a/node_modules/has-value/README.md
+++ /dev/null
@@ -1,149 +0,0 @@
-# has-value [![NPM version](https://img.shields.io/npm/v/has-value.svg?style=flat)](https://www.npmjs.com/package/has-value) [![NPM monthly downloads](https://img.shields.io/npm/dm/has-value.svg?style=flat)](https://npmjs.org/package/has-value) [![NPM total downloads](https://img.shields.io/npm/dt/has-value.svg?style=flat)](https://npmjs.org/package/has-value) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/has-value.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/has-value)
-
-> Returns true if a value exists, false if empty. Works with deeply nested values using object paths.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save has-value
-```
-
-**Works for:**
-
-* booleans
-* functions
-* numbers
-* strings
-* nulls
-* object
-* arrays
-
-## Usage
-
-Works with property values (supports object-path notation, like `foo.bar`) or a single value:
-
-```js
-var hasValue = require('has-value');
-
-hasValue('foo');
-hasValue({foo: 'bar'}, 'foo');
-hasValue({a: {b: {c: 'foo'}}}, 'a.b.c');
-//=> true
-
-hasValue('');
-hasValue({foo: ''}, 'foo');
-//=> false
-
-hasValue(0);
-hasValue(1);
-hasValue({foo: 0}, 'foo');
-hasValue({foo: 1}, 'foo');
-hasValue({foo: null}, 'foo');
-hasValue({foo: {bar: 'a'}}}, 'foo');
-hasValue({foo: {bar: 'a'}}}, 'foo.bar');
-//=> true
-
-hasValue({foo: {}}}, 'foo');
-hasValue({foo: {bar: {}}}}, 'foo.bar');
-hasValue({foo: undefined}, 'foo');
-//=> false
-
-hasValue([]);
-hasValue([[]]);
-hasValue([[], []]);
-hasValue([undefined]);
-hasValue({foo: []}, 'foo');
-//=> false
-
-hasValue([0]);
-hasValue([null]);
-hasValue(['foo']);
-hasValue({foo: ['a']}, 'foo');
-//=> true
-
-hasValue(function() {})
-hasValue(function(foo) {})
-hasValue({foo: function(foo) {}}, 'foo');
-hasValue({foo: function() {}}, 'foo');
-//=> true
-
-hasValue(true);
-hasValue(false);
-hasValue({foo: true}, 'foo');
-hasValue({foo: false}, 'foo');
-//=> true
-```
-
-## isEmpty
-
-To do the opposite and test for empty values, do:
-
-```js
-function isEmpty(o) {
- return !hasValue.apply(hasValue, arguments);
-}
-```
-
-## Release history
-
-### v1.0.0
-
-* `zero` always returns true
-* `array` now recurses, so that an array of empty arrays will return `false`
-* `null` now returns true
-
-## About
-
-### Related projects
-
-* [define-property](https://www.npmjs.com/package/define-property): Define a non-enumerable property on an object. | [homepage](https://github.com/jonschlinkert/define-property "Define a non-enumerable property on an object.")
-* [get-value](https://www.npmjs.com/package/get-value): Use property paths (`a.b.c`) to get a nested value from an object. | [homepage](https://github.com/jonschlinkert/get-value "Use property paths (`a.b.c`) to get a nested value from an object.")
-* [set-value](https://www.npmjs.com/package/set-value): Create nested values and any intermediaries using dot notation (`'a.b.c'`) paths. | [homepage](https://github.com/jonschlinkert/set-value "Create nested values and any intermediaries using dot notation (`'a.b.c'`) paths.")
-* [unset-value](https://www.npmjs.com/package/unset-value): Delete nested properties from an object using dot notation. | [homepage](https://github.com/jonschlinkert/unset-value "Delete nested properties from an object using dot notation.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 17 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 2 | [rmharrison](https://github.com/rmharrison) |
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on May 19, 2017._
\ No newline at end of file
diff --git a/node_modules/has-value/index.js b/node_modules/has-value/index.js
deleted file mode 100644
index c237494..0000000
--- a/node_modules/has-value/index.js
+++ /dev/null
@@ -1,16 +0,0 @@
-/*!
- * has-value
- *
- * Copyright (c) 2014-2017, Jon Schlinkert.
- * Licensed under the MIT License.
- */
-
-'use strict';
-
-var isObject = require('isobject');
-var hasValues = require('has-values');
-var get = require('get-value');
-
-module.exports = function(val, prop) {
- return hasValues(isObject(val) && prop ? get(val, prop) : val);
-};
diff --git a/node_modules/has-value/package.json b/node_modules/has-value/package.json
deleted file mode 100644
index e65d438..0000000
--- a/node_modules/has-value/package.json
+++ /dev/null
@@ -1,83 +0,0 @@
-{
- "name": "has-value",
- "description": "Returns true if a value exists, false if empty. Works with deeply nested values using object paths.",
- "version": "1.0.0",
- "homepage": "https://github.com/jonschlinkert/has-value",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Ryan M Harrison (https://linkedin.com/in/harrisonrm)"
- ],
- "repository": "jonschlinkert/has-value",
- "bugs": {
- "url": "https://github.com/jonschlinkert/has-value/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "get-value": "^2.0.6",
- "has-values": "^1.0.0",
- "isobject": "^3.0.0"
- },
- "devDependencies": {
- "gulp-format-md": "^0.1.12",
- "mocha": "^3.4.1"
- },
- "keywords": [
- "array",
- "boolean",
- "empty",
- "find",
- "function",
- "has",
- "hasOwn",
- "javascript",
- "js",
- "key",
- "keys",
- "node.js",
- "null",
- "number",
- "object",
- "properties",
- "property",
- "string",
- "type",
- "util",
- "utilities",
- "utility",
- "value"
- ],
- "verb": {
- "run": true,
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "define-property",
- "get-value",
- "set-value",
- "unset-value"
- ]
- },
- "reflinks": [],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/has-values/LICENSE b/node_modules/has-values/LICENSE
deleted file mode 100644
index d734237..0000000
--- a/node_modules/has-values/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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/has-values/README.md b/node_modules/has-values/README.md
deleted file mode 100644
index 98d4367..0000000
--- a/node_modules/has-values/README.md
+++ /dev/null
@@ -1,129 +0,0 @@
-# has-values [![NPM version](https://img.shields.io/npm/v/has-values.svg?style=flat)](https://www.npmjs.com/package/has-values) [![NPM monthly downloads](https://img.shields.io/npm/dm/has-values.svg?style=flat)](https://npmjs.org/package/has-values) [![NPM total downloads](https://img.shields.io/npm/dt/has-values.svg?style=flat)](https://npmjs.org/package/has-values) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/has-values.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/has-values)
-
-> Returns true if any values exist, false if empty. Works for booleans, functions, numbers, strings, nulls, objects and arrays.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save has-values
-```
-
-## Usage
-
-```js
-var hasValue = require('has-values');
-
-hasValue('a');
-//=> true
-
-hasValue('');
-//=> false
-
-hasValue(1);
-//=> true
-
-hasValue(0);
-//=> false
-
-hasValue({a: 'a'}});
-//=> true
-
-hasValue({});
-hasValue({foo: undefined});
-//=> false
-
-hasValue({foo: null});
-//=> true
-
-hasValue(['a']);
-//=> true
-
-hasValue([]);
-hasValue([[], []]);
-hasValue([[[]]]);
-//=> false
-
-hasValue(['foo']);
-hasValue([0]);
-//=> true
-
-hasValue(function(foo) {});
-//=> true
-
-hasValue(function() {});
-//=> true
-
-hasValue(true);
-//=> true
-
-hasValue(false);
-//=> true
-```
-
-## isEmpty
-
-To test for empty values, do:
-
-```js
-function isEmpty(o, isZero) {
- return !hasValue(o, isZero);
-}
-```
-
-## Release history
-
-### v1.0.0
-
-* `zero` always returns true
-* `array` now recurses, so that an array of empty arrays will return `false`
-* `null` now returns true
-
-## About
-
-### Related projects
-
-* [has-value](https://www.npmjs.com/package/has-value): Returns true if a value exists, false if empty. Works with deeply nested values using… [more](https://github.com/jonschlinkert/has-value) | [homepage](https://github.com/jonschlinkert/has-value "Returns true if a value exists, false if empty. Works with deeply nested values using object paths.")
-* [is-number](https://www.npmjs.com/package/is-number): Returns true if the value is a number. comprehensive tests. | [homepage](https://github.com/jonschlinkert/is-number "Returns true if the value is a number. comprehensive tests.")
-* [is-plain-object](https://www.npmjs.com/package/is-plain-object): Returns true if an object was created by the `Object` constructor. | [homepage](https://github.com/jonschlinkert/is-plain-object "Returns true if an object was created by the `Object` constructor.")
-* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.")
-* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on May 19, 2017._
\ No newline at end of file
diff --git a/node_modules/has-values/index.js b/node_modules/has-values/index.js
deleted file mode 100644
index 9bebb9f..0000000
--- a/node_modules/has-values/index.js
+++ /dev/null
@@ -1,60 +0,0 @@
-/*!
- * has-values
- *
- * Copyright (c) 2014-2015, 2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-var typeOf = require('kind-of');
-var isNumber = require('is-number');
-
-module.exports = function hasValue(val) {
- // is-number checks for NaN and other edge cases
- if (isNumber(val)) {
- return true;
- }
-
- switch (typeOf(val)) {
- case 'null':
- case 'boolean':
- case 'function':
- return true;
- case 'string':
- case 'arguments':
- return val.length !== 0;
- case 'error':
- return val.message !== '';
- case 'array':
- var len = val.length;
- if (len === 0) {
- return false;
- }
- for (var i = 0; i < len; i++) {
- if (hasValue(val[i])) {
- return true;
- }
- }
- return false;
- case 'file':
- case 'map':
- case 'set':
- return val.size !== 0;
- case 'object':
- var keys = Object.keys(val);
- if (keys.length === 0) {
- return false;
- }
- for (var i = 0; i < keys.length; i++) {
- var key = keys[i];
- if (hasValue(val[key])) {
- return true;
- }
- }
- return false;
- default: {
- return false;
- }
- }
-};
diff --git a/node_modules/has-values/node_modules/kind-of/LICENSE b/node_modules/has-values/node_modules/kind-of/LICENSE
deleted file mode 100644
index d734237..0000000
--- a/node_modules/has-values/node_modules/kind-of/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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/has-values/node_modules/kind-of/README.md b/node_modules/has-values/node_modules/kind-of/README.md
deleted file mode 100644
index 83469b0..0000000
--- a/node_modules/has-values/node_modules/kind-of/README.md
+++ /dev/null
@@ -1,267 +0,0 @@
-# kind-of [![NPM version](https://img.shields.io/npm/v/kind-of.svg?style=flat)](https://www.npmjs.com/package/kind-of) [![NPM monthly downloads](https://img.shields.io/npm/dm/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![NPM total downloads](https://img.shields.io/npm/dt/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/kind-of.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/kind-of)
-
-> Get the native type of a value.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save kind-of
-```
-
-Install with [bower](https://bower.io/)
-
-```sh
-$ bower install kind-of --save
-```
-
-## Usage
-
-> es5, browser and es6 ready
-
-```js
-var kindOf = require('kind-of');
-
-kindOf(undefined);
-//=> 'undefined'
-
-kindOf(null);
-//=> 'null'
-
-kindOf(true);
-//=> 'boolean'
-
-kindOf(false);
-//=> 'boolean'
-
-kindOf(new Boolean(true));
-//=> 'boolean'
-
-kindOf(new Buffer(''));
-//=> 'buffer'
-
-kindOf(42);
-//=> 'number'
-
-kindOf(new Number(42));
-//=> 'number'
-
-kindOf('str');
-//=> 'string'
-
-kindOf(new String('str'));
-//=> 'string'
-
-kindOf(arguments);
-//=> 'arguments'
-
-kindOf({});
-//=> 'object'
-
-kindOf(Object.create(null));
-//=> 'object'
-
-kindOf(new Test());
-//=> 'object'
-
-kindOf(new Date());
-//=> 'date'
-
-kindOf([]);
-//=> 'array'
-
-kindOf([1, 2, 3]);
-//=> 'array'
-
-kindOf(new Array());
-//=> 'array'
-
-kindOf(/foo/);
-//=> 'regexp'
-
-kindOf(new RegExp('foo'));
-//=> 'regexp'
-
-kindOf(function () {});
-//=> 'function'
-
-kindOf(function * () {});
-//=> 'function'
-
-kindOf(new Function());
-//=> 'function'
-
-kindOf(new Map());
-//=> 'map'
-
-kindOf(new WeakMap());
-//=> 'weakmap'
-
-kindOf(new Set());
-//=> 'set'
-
-kindOf(new WeakSet());
-//=> 'weakset'
-
-kindOf(Symbol('str'));
-//=> 'symbol'
-
-kindOf(new Int8Array());
-//=> 'int8array'
-
-kindOf(new Uint8Array());
-//=> 'uint8array'
-
-kindOf(new Uint8ClampedArray());
-//=> 'uint8clampedarray'
-
-kindOf(new Int16Array());
-//=> 'int16array'
-
-kindOf(new Uint16Array());
-//=> 'uint16array'
-
-kindOf(new Int32Array());
-//=> 'int32array'
-
-kindOf(new Uint32Array());
-//=> 'uint32array'
-
-kindOf(new Float32Array());
-//=> 'float32array'
-
-kindOf(new Float64Array());
-//=> 'float64array'
-```
-
-## Benchmarks
-
-Benchmarked against [typeof](http://github.com/CodingFu/typeof) and [type-of](https://github.com/ForbesLindesay/type-of).
-Note that performaces is slower for es6 features `Map`, `WeakMap`, `Set` and `WeakSet`.
-
-```bash
-#1: array
- current x 23,329,397 ops/sec ±0.82% (94 runs sampled)
- lib-type-of x 4,170,273 ops/sec ±0.55% (94 runs sampled)
- lib-typeof x 9,686,935 ops/sec ±0.59% (98 runs sampled)
-
-#2: boolean
- current x 27,197,115 ops/sec ±0.85% (94 runs sampled)
- lib-type-of x 3,145,791 ops/sec ±0.73% (97 runs sampled)
- lib-typeof x 9,199,562 ops/sec ±0.44% (99 runs sampled)
-
-#3: date
- current x 20,190,117 ops/sec ±0.86% (92 runs sampled)
- lib-type-of x 5,166,970 ops/sec ±0.74% (94 runs sampled)
- lib-typeof x 9,610,821 ops/sec ±0.50% (96 runs sampled)
-
-#4: function
- current x 23,855,460 ops/sec ±0.60% (97 runs sampled)
- lib-type-of x 5,667,740 ops/sec ±0.54% (100 runs sampled)
- lib-typeof x 10,010,644 ops/sec ±0.44% (100 runs sampled)
-
-#5: null
- current x 27,061,047 ops/sec ±0.97% (96 runs sampled)
- lib-type-of x 13,965,573 ops/sec ±0.62% (97 runs sampled)
- lib-typeof x 8,460,194 ops/sec ±0.61% (97 runs sampled)
-
-#6: number
- current x 25,075,682 ops/sec ±0.53% (99 runs sampled)
- lib-type-of x 2,266,405 ops/sec ±0.41% (98 runs sampled)
- lib-typeof x 9,821,481 ops/sec ±0.45% (99 runs sampled)
-
-#7: object
- current x 3,348,980 ops/sec ±0.49% (99 runs sampled)
- lib-type-of x 3,245,138 ops/sec ±0.60% (94 runs sampled)
- lib-typeof x 9,262,952 ops/sec ±0.59% (99 runs sampled)
-
-#8: regex
- current x 21,284,827 ops/sec ±0.72% (96 runs sampled)
- lib-type-of x 4,689,241 ops/sec ±0.43% (100 runs sampled)
- lib-typeof x 8,957,593 ops/sec ±0.62% (98 runs sampled)
-
-#9: string
- current x 25,379,234 ops/sec ±0.58% (96 runs sampled)
- lib-type-of x 3,635,148 ops/sec ±0.76% (93 runs sampled)
- lib-typeof x 9,494,134 ops/sec ±0.49% (98 runs sampled)
-
-#10: undef
- current x 27,459,221 ops/sec ±1.01% (93 runs sampled)
- lib-type-of x 14,360,433 ops/sec ±0.52% (99 runs sampled)
- lib-typeof x 23,202,868 ops/sec ±0.59% (94 runs sampled)
-
-```
-
-## Release history
-
-### v4.0.0
-
-**Added**
-
-* `promise` support
-
-## Optimizations
-
-In 7 out of 8 cases, this library is 2x-10x faster than other top libraries included in the benchmarks. There are a few things that lead to this performance advantage, none of them hard and fast rules, but all of them simple and repeatable in almost any code library:
-
-1. Optimize around the fastest and most common use cases first. Of course, this will change from project-to-project, but I took some time to understand how and why `typeof` checks were being used in my own libraries and other libraries I use a lot.
-2. Optimize around bottlenecks - In other words, the order in which conditionals are implemented is significant, because each check is only as fast as the failing checks that came before it. Here, the biggest bottleneck by far is checking for plain objects (an object that was created by the `Object` constructor). I opted to make this check happen by process of elimination rather than brute force up front (e.g. by using something like `val.constructor.name`), so that every other type check would not be penalized it.
-3. Don't do uneccessary processing - why do `.slice(8, -1).toLowerCase();` just to get the word `regex`? It's much faster to do `if (type === '[object RegExp]') return 'regex'`
-
-## About
-
-### Related projects
-
-* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/jonschlinkert/is-glob) | [homepage](https://github.com/jonschlinkert/is-glob "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet")
-* [is-number](https://www.npmjs.com/package/is-number): Returns true if the value is a number. comprehensive tests. | [homepage](https://github.com/jonschlinkert/is-number "Returns true if the value is a number. comprehensive tests.")
-* [is-primitive](https://www.npmjs.com/package/is-primitive): Returns `true` if the value is a primitive. | [homepage](https://github.com/jonschlinkert/is-primitive "Returns `true` if the value is a primitive. ")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 64 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 2 | [miguelmota](https://github.com/miguelmota) |
-| 1 | [dtothefp](https://github.com/dtothefp) |
-| 1 | [ksheedlo](https://github.com/ksheedlo) |
-| 1 | [pdehaan](https://github.com/pdehaan) |
-| 1 | [laggingreflex](https://github.com/laggingreflex) |
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on May 19, 2017._
\ No newline at end of file
diff --git a/node_modules/has-values/node_modules/kind-of/index.js b/node_modules/has-values/node_modules/kind-of/index.js
deleted file mode 100644
index 4c0233b..0000000
--- a/node_modules/has-values/node_modules/kind-of/index.js
+++ /dev/null
@@ -1,119 +0,0 @@
-var isBuffer = require('is-buffer');
-var toString = Object.prototype.toString;
-
-/**
- * Get the native `typeof` a value.
- *
- * @param {*} `val`
- * @return {*} Native javascript type
- */
-
-module.exports = function kindOf(val) {
- // primitivies
- if (typeof val === 'undefined') {
- return 'undefined';
- }
- if (val === null) {
- return 'null';
- }
- if (val === true || val === false || val instanceof Boolean) {
- return 'boolean';
- }
- if (typeof val === 'string' || val instanceof String) {
- return 'string';
- }
- if (typeof val === 'number' || val instanceof Number) {
- return 'number';
- }
-
- // functions
- if (typeof val === 'function' || val instanceof Function) {
- return 'function';
- }
-
- // array
- if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) {
- return 'array';
- }
-
- // check for instances of RegExp and Date before calling `toString`
- if (val instanceof RegExp) {
- return 'regexp';
- }
- if (val instanceof Date) {
- return 'date';
- }
-
- // other objects
- var type = toString.call(val);
-
- if (type === '[object RegExp]') {
- return 'regexp';
- }
- if (type === '[object Date]') {
- return 'date';
- }
- if (type === '[object Arguments]') {
- return 'arguments';
- }
- if (type === '[object Error]') {
- return 'error';
- }
- if (type === '[object Promise]') {
- return 'promise';
- }
-
- // buffer
- if (isBuffer(val)) {
- return 'buffer';
- }
-
- // es6: Map, WeakMap, Set, WeakSet
- if (type === '[object Set]') {
- return 'set';
- }
- if (type === '[object WeakSet]') {
- return 'weakset';
- }
- if (type === '[object Map]') {
- return 'map';
- }
- if (type === '[object WeakMap]') {
- return 'weakmap';
- }
- if (type === '[object Symbol]') {
- return 'symbol';
- }
-
- // typed arrays
- if (type === '[object Int8Array]') {
- return 'int8array';
- }
- if (type === '[object Uint8Array]') {
- return 'uint8array';
- }
- if (type === '[object Uint8ClampedArray]') {
- return 'uint8clampedarray';
- }
- if (type === '[object Int16Array]') {
- return 'int16array';
- }
- if (type === '[object Uint16Array]') {
- return 'uint16array';
- }
- if (type === '[object Int32Array]') {
- return 'int32array';
- }
- if (type === '[object Uint32Array]') {
- return 'uint32array';
- }
- if (type === '[object Float32Array]') {
- return 'float32array';
- }
- if (type === '[object Float64Array]') {
- return 'float64array';
- }
-
- // must be a plain object
- return 'object';
-};
diff --git a/node_modules/has-values/node_modules/kind-of/package.json b/node_modules/has-values/node_modules/kind-of/package.json
deleted file mode 100644
index 222afc0..0000000
--- a/node_modules/has-values/node_modules/kind-of/package.json
+++ /dev/null
@@ -1,90 +0,0 @@
-{
- "name": "kind-of",
- "description": "Get the native type of a value.",
- "version": "4.0.0",
- "homepage": "https://github.com/jonschlinkert/kind-of",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "David Fox-Powell (https://dtothefp.github.io/me)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Ken Sheedlo (kensheedlo.com)",
- "laggingreflex (https://github.com/laggingreflex)",
- "Miguel Mota (https://miguelmota.com)",
- "Peter deHaan (http://about.me/peterdehaan)"
- ],
- "repository": "jonschlinkert/kind-of",
- "bugs": {
- "url": "https://github.com/jonschlinkert/kind-of/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha",
- "prepublish": "browserify -o browser.js -e index.js -s index --bare"
- },
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "devDependencies": {
- "ansi-bold": "^0.1.1",
- "benchmarked": "^1.1.1",
- "browserify": "^14.3.0",
- "glob": "^7.1.1",
- "gulp-format-md": "^0.1.12",
- "mocha": "^3.4.1",
- "type-of": "^2.0.1",
- "typeof": "^1.0.0"
- },
- "keywords": [
- "arguments",
- "array",
- "boolean",
- "check",
- "date",
- "function",
- "is",
- "is-type",
- "is-type-of",
- "kind",
- "kind-of",
- "number",
- "object",
- "of",
- "regexp",
- "string",
- "test",
- "type",
- "type-of",
- "typeof",
- "types"
- ],
- "verb": {
- "related": {
- "list": [
- "is-glob",
- "is-number",
- "is-primitive"
- ]
- },
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- },
- "reflinks": [
- "verb"
- ]
- }
-}
diff --git a/node_modules/has-values/package.json b/node_modules/has-values/package.json
deleted file mode 100644
index bdd841d..0000000
--- a/node_modules/has-values/package.json
+++ /dev/null
@@ -1,82 +0,0 @@
-{
- "name": "has-values",
- "description": "Returns true if any values exist, false if empty. Works for booleans, functions, numbers, strings, nulls, objects and arrays. ",
- "version": "1.0.0",
- "homepage": "https://github.com/jonschlinkert/has-values",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/has-values",
- "bugs": {
- "url": "https://github.com/jonschlinkert/has-values/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "is-number": "^3.0.0",
- "kind-of": "^4.0.0"
- },
- "devDependencies": {
- "gulp-format-md": "^0.1.12",
- "mocha": "^3.4.1"
- },
- "keywords": [
- "array",
- "boolean",
- "empty",
- "find",
- "function",
- "has",
- "hasOwn",
- "javascript",
- "js",
- "key",
- "keys",
- "node.js",
- "null",
- "number",
- "object",
- "properties",
- "property",
- "string",
- "type",
- "util",
- "utilities",
- "utility",
- "value",
- "values"
- ],
- "verb": {
- "run": true,
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "has-value",
- "kind-of",
- "is-number",
- "is-plain-object",
- "isobject"
- ]
- },
- "reflinks": [
- "verb"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/has/LICENSE-MIT b/node_modules/has/LICENSE-MIT
deleted file mode 100644
index ae7014d..0000000
--- a/node_modules/has/LICENSE-MIT
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2013 Thiago de Arruda
-
-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/has/README.md b/node_modules/has/README.md
deleted file mode 100644
index 635e3a4..0000000
--- a/node_modules/has/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# has
-
-> Object.prototype.hasOwnProperty.call shortcut
-
-## Installation
-
-```sh
-npm install --save has
-```
-
-## Usage
-
-```js
-var has = require('has');
-
-has({}, 'hasOwnProperty'); // false
-has(Object.prototype, 'hasOwnProperty'); // true
-```
diff --git a/node_modules/has/package.json b/node_modules/has/package.json
deleted file mode 100644
index 7c4592f..0000000
--- a/node_modules/has/package.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
- "name": "has",
- "description": "Object.prototype.hasOwnProperty.call shortcut",
- "version": "1.0.3",
- "homepage": "https://github.com/tarruda/has",
- "author": {
- "name": "Thiago de Arruda",
- "email": "tpadilha84@gmail.com"
- },
- "contributors": [
- {
- "name": "Jordan Harband",
- "email": "ljharb@gmail.com",
- "url": "http://ljharb.codes"
- }
- ],
- "repository": {
- "type": "git",
- "url": "git://github.com/tarruda/has.git"
- },
- "bugs": {
- "url": "https://github.com/tarruda/has/issues"
- },
- "license": "MIT",
- "licenses": [
- {
- "type": "MIT",
- "url": "https://github.com/tarruda/has/blob/master/LICENSE-MIT"
- }
- ],
- "main": "./src",
- "dependencies": {
- "function-bind": "^1.1.1"
- },
- "devDependencies": {
- "@ljharb/eslint-config": "^12.2.1",
- "eslint": "^4.19.1",
- "tape": "^4.9.0"
- },
- "engines": {
- "node": ">= 0.4.0"
- },
- "scripts": {
- "lint": "eslint .",
- "pretest": "npm run lint",
- "test": "tape test"
- }
-}
diff --git a/node_modules/has/src/index.js b/node_modules/has/src/index.js
deleted file mode 100644
index dd92dd9..0000000
--- a/node_modules/has/src/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-'use strict';
-
-var bind = require('function-bind');
-
-module.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);
diff --git a/node_modules/has/test/index.js b/node_modules/has/test/index.js
deleted file mode 100644
index 43d480b..0000000
--- a/node_modules/has/test/index.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-
-var test = require('tape');
-var has = require('../');
-
-test('has', function (t) {
- t.equal(has({}, 'hasOwnProperty'), false, 'object literal does not have own property "hasOwnProperty"');
- t.equal(has(Object.prototype, 'hasOwnProperty'), true, 'Object.prototype has own property "hasOwnProperty"');
- t.end();
-});
diff --git a/node_modules/homedir-polyfill/LICENSE b/node_modules/homedir-polyfill/LICENSE
deleted file mode 100644
index f92fdcf..0000000
--- a/node_modules/homedir-polyfill/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2016 Brian Woodward
-
-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/homedir-polyfill/README.md b/node_modules/homedir-polyfill/README.md
deleted file mode 100644
index 8770050..0000000
--- a/node_modules/homedir-polyfill/README.md
+++ /dev/null
@@ -1,96 +0,0 @@
-# homedir-polyfill [![NPM version](https://img.shields.io/npm/v/homedir-polyfill.svg?style=flat)](https://www.npmjs.com/package/homedir-polyfill) [![NPM monthly downloads](https://img.shields.io/npm/dm/homedir-polyfill.svg?style=flat)](https://npmjs.org/package/homedir-polyfill) [![NPM total downloads](https://img.shields.io/npm/dt/homedir-polyfill.svg?style=flat)](https://npmjs.org/package/homedir-polyfill) [![Linux Build Status](https://img.shields.io/travis/doowb/homedir-polyfill.svg?style=flat&label=Travis)](https://travis-ci.org/doowb/homedir-polyfill) [![Windows Build Status](https://img.shields.io/appveyor/ci/doowb/homedir-polyfill.svg?style=flat&label=AppVeyor)](https://ci.appveyor.com/project/doowb/homedir-polyfill)
-
-> Node.js os.homedir polyfill for older versions of node.js.
-
-Please consider following this project's author, [Brian Woodward](https://github.com/doowb), and consider starring the project to show your :heart: and support.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save homedir-polyfill
-```
-
-## Usage
-
-```js
-var homedir = require('homedir-polyfill');
-console.log(homedir());
-//=> /Users/doowb
-```
-
-## Reasoning
-
-This library is a polyfill for the [node.js os.homedir](https://nodejs.org/api/os.html#os_os_homedir) method found in modern versions of node.js.
-
-This implementation tries to follow the implementation found in `libuv` by finding the current user using the `process.geteuid()` method and the `/etc/passwd` file. This should usually work in a linux environment, but will also fallback to looking at user specific environment variables to build the user's home directory if neccessary.
-
-Since `/etc/passwd` is not available on windows platforms, this implementation will use environment variables to find the home directory.
-
-In modern versions of node.js, [os.homedir](https://nodejs.org/api/os.html#os_os_homedir) is used.
-
-## About
-
-
-Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-Please read the [contributing guide](contributing.md) for advice on opening issues, pull requests, and coding standards.
-
-
-
-
-Running Tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-
-
-
-Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-
-
-### Related projects
-
-You might also be interested in these projects:
-
-[parse-passwd](https://www.npmjs.com/package/parse-passwd): Parse a passwd file into a list of users. | [homepage](https://github.com/doowb/parse-passwd "Parse a passwd file into a list of users.")
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 19 | [doowb](https://github.com/doowb) |
-| 2 | [martinheidegger](https://github.com/martinheidegger) |
-
-### Author
-
-**Brian Woodward**
-
-* [GitHub Profile](https://github.com/doowb)
-* [Twitter Profile](https://twitter.com/doowb)
-* [LinkedIn Profile](https://linkedin.com/in/woodwardbrian)
-
-### License
-
-Copyright © 2016 - 2019, [Brian Woodward](https://github.com/doowb).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on February 21, 2019._
diff --git a/node_modules/homedir-polyfill/index.js b/node_modules/homedir-polyfill/index.js
deleted file mode 100644
index 298168e..0000000
--- a/node_modules/homedir-polyfill/index.js
+++ /dev/null
@@ -1,9 +0,0 @@
-'use strict';
-
-var os = require('os');
-if (typeof os.homedir !== 'undefined') {
- module.exports = os.homedir;
-} else {
- module.exports = require('./polyfill.js');
-}
-
diff --git a/node_modules/homedir-polyfill/package.json b/node_modules/homedir-polyfill/package.json
deleted file mode 100644
index ab5bc71..0000000
--- a/node_modules/homedir-polyfill/package.json
+++ /dev/null
@@ -1,62 +0,0 @@
-{
- "name": "homedir-polyfill",
- "description": "Node.js os.homedir polyfill for older versions of node.js.",
- "version": "1.0.3",
- "homepage": "https://github.com/doowb/homedir-polyfill",
- "author": "Brian Woodward (https://github.com/doowb)",
- "repository": "doowb/homedir-polyfill",
- "bugs": {
- "url": "https://github.com/doowb/homedir-polyfill/issues"
- },
- "license": "MIT",
- "files": [
- "index.js",
- "polyfill.js",
- "LICENSE"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "devDependencies": {
- "gulp-format-md": "^0.1.11",
- "mocha": "^3.1.2"
- },
- "keywords": [
- "home",
- "homedir",
- "homedirectory",
- "os",
- "os-homedir",
- "polyfill",
- "userhome"
- ],
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- },
- "related": {
- "list": [
- "parse-passwd"
- ]
- },
- "reflinks": [
- "verb",
- "verb-generate-readme"
- ]
- },
- "dependencies": {
- "parse-passwd": "^1.0.0"
- }
-}
diff --git a/node_modules/homedir-polyfill/polyfill.js b/node_modules/homedir-polyfill/polyfill.js
deleted file mode 100644
index 83aee38..0000000
--- a/node_modules/homedir-polyfill/polyfill.js
+++ /dev/null
@@ -1,81 +0,0 @@
-'use strict';
-
-var fs = require('fs');
-var parse = require('parse-passwd');
-
-function homedir() {
- // The following logic is from looking at logic used in the different platform
- // versions of the uv_os_homedir function found in https://github.com/libuv/libuv
- // This is the function used in modern versions of node.js
-
- if (process.platform === 'win32') {
- // check the USERPROFILE first
- if (process.env.USERPROFILE) {
- return process.env.USERPROFILE;
- }
-
- // check HOMEDRIVE and HOMEPATH
- if (process.env.HOMEDRIVE && process.env.HOMEPATH) {
- return process.env.HOMEDRIVE + process.env.HOMEPATH;
- }
-
- // fallback to HOME
- if (process.env.HOME) {
- return process.env.HOME;
- }
-
- return null;
- }
-
- // check HOME environment variable first
- if (process.env.HOME) {
- return process.env.HOME;
- }
-
- // on linux platforms (including OSX) find the current user and get their homedir from the /etc/passwd file
- var passwd = tryReadFileSync('/etc/passwd');
- var home = find(parse(passwd), getuid());
- if (home) {
- return home;
- }
-
- // fallback to using user environment variables
- var user = process.env.LOGNAME || process.env.USER || process.env.LNAME || process.env.USERNAME;
-
- if (!user) {
- return null;
- }
-
- if (process.platform === 'darwin') {
- return '/Users/' + user;
- }
-
- return '/home/' + user;
-}
-
-function find(arr, uid) {
- var len = arr.length;
- for (var i = 0; i < len; i++) {
- if (+arr[i].uid === uid) {
- return arr[i].homedir;
- }
- }
-}
-
-function getuid() {
- if (typeof process.geteuid === 'function') {
- return process.geteuid();
- }
- return process.getuid();
-}
-
-function tryReadFileSync(fp) {
- try {
- return fs.readFileSync(fp, 'utf8');
- } catch (err) {
- return '';
- }
-}
-
-module.exports = homedir;
-
diff --git a/node_modules/hosted-git-info/CHANGELOG.md b/node_modules/hosted-git-info/CHANGELOG.md
deleted file mode 100644
index 6987fb4..0000000
--- a/node_modules/hosted-git-info/CHANGELOG.md
+++ /dev/null
@@ -1,151 +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.
-
-
-## [2.8.9](https://github.com/npm/hosted-git-info/compare/v2.8.8...v2.8.9) (2021-04-07)
-
-
-### Bug Fixes
-
-* backport regex fix from [#76](https://github.com/npm/hosted-git-info/issues/76) ([29adfe5](https://github.com/npm/hosted-git-info/commit/29adfe5)), closes [#84](https://github.com/npm/hosted-git-info/issues/84)
-
-
-
-
-## [2.8.8](https://github.com/npm/hosted-git-info/compare/v2.8.7...v2.8.8) (2020-02-29)
-
-
-### Bug Fixes
-
-* [#61](https://github.com/npm/hosted-git-info/issues/61) & [#65](https://github.com/npm/hosted-git-info/issues/65) addressing issues w/ url.URL implmentation which regressed node 6 support ([5038b18](https://github.com/npm/hosted-git-info/commit/5038b18)), closes [#66](https://github.com/npm/hosted-git-info/issues/66)
-
-
-
-
-## [2.8.7](https://github.com/npm/hosted-git-info/compare/v2.8.6...v2.8.7) (2020-02-26)
-
-
-### Bug Fixes
-
-* Do not attempt to use url.URL when unavailable ([2d0bb66](https://github.com/npm/hosted-git-info/commit/2d0bb66)), closes [#61](https://github.com/npm/hosted-git-info/issues/61) [#62](https://github.com/npm/hosted-git-info/issues/62)
-* Do not pass scp-style URLs to the WhatWG url.URL ([f2cdfcf](https://github.com/npm/hosted-git-info/commit/f2cdfcf)), closes [#60](https://github.com/npm/hosted-git-info/issues/60)
-
-
-
-
-## [2.8.6](https://github.com/npm/hosted-git-info/compare/v2.8.5...v2.8.6) (2020-02-25)
-
-
-
-
-## [2.8.5](https://github.com/npm/hosted-git-info/compare/v2.8.4...v2.8.5) (2019-10-07)
-
-
-### Bug Fixes
-
-* updated pathmatch for gitlab ([e8325b5](https://github.com/npm/hosted-git-info/commit/e8325b5)), closes [#51](https://github.com/npm/hosted-git-info/issues/51)
-* updated pathmatch for gitlab ([ffe056f](https://github.com/npm/hosted-git-info/commit/ffe056f))
-
-
-
-
-## [2.8.4](https://github.com/npm/hosted-git-info/compare/v2.8.3...v2.8.4) (2019-08-12)
-
-
-
-
-## [2.8.3](https://github.com/npm/hosted-git-info/compare/v2.8.2...v2.8.3) (2019-08-12)
-
-
-
-
-## [2.8.2](https://github.com/npm/hosted-git-info/compare/v2.8.1...v2.8.2) (2019-08-05)
-
-
-### Bug Fixes
-
-* http protocol use sshurl by default ([3b1d629](https://github.com/npm/hosted-git-info/commit/3b1d629)), closes [#48](https://github.com/npm/hosted-git-info/issues/48)
-
-
-
-
-## [2.8.1](https://github.com/npm/hosted-git-info/compare/v2.8.0...v2.8.1) (2019-08-05)
-
-
-### Bug Fixes
-
-* ignore noCommittish on tarball url generation ([5d4a8d7](https://github.com/npm/hosted-git-info/commit/5d4a8d7))
-* use gist tarball url that works for anonymous gists ([1692435](https://github.com/npm/hosted-git-info/commit/1692435))
-
-
-
-
-# [2.8.0](https://github.com/npm/hosted-git-info/compare/v2.7.1...v2.8.0) (2019-08-05)
-
-
-### Bug Fixes
-
-* Allow slashes in gitlab project section ([bbcf7b2](https://github.com/npm/hosted-git-info/commit/bbcf7b2)), closes [#46](https://github.com/npm/hosted-git-info/issues/46) [#43](https://github.com/npm/hosted-git-info/issues/43)
-* **git-host:** disallow URI-encoded slash (%2F) in `path` ([3776fa5](https://github.com/npm/hosted-git-info/commit/3776fa5)), closes [#44](https://github.com/npm/hosted-git-info/issues/44)
-* **gitlab:** Do not URL encode slashes in project name for GitLab https URL ([cbf04f9](https://github.com/npm/hosted-git-info/commit/cbf04f9)), closes [#47](https://github.com/npm/hosted-git-info/issues/47)
-* do not allow invalid gist urls ([d5cf830](https://github.com/npm/hosted-git-info/commit/d5cf830))
-* **cache:** Switch to lru-cache to save ourselves from unlimited memory consumption ([e518222](https://github.com/npm/hosted-git-info/commit/e518222)), closes [#38](https://github.com/npm/hosted-git-info/issues/38)
-
-
-### Features
-
-* give these objects a name ([60abaea](https://github.com/npm/hosted-git-info/commit/60abaea))
-
-
-
-
-## [2.7.1](https://github.com/npm/hosted-git-info/compare/v2.7.0...v2.7.1) (2018-07-07)
-
-
-### Bug Fixes
-
-* **index:** Guard against non-string types ([5bc580d](https://github.com/npm/hosted-git-info/commit/5bc580d))
-* **parse:** Crash on strings that parse to having no host ([c931482](https://github.com/npm/hosted-git-info/commit/c931482)), closes [#35](https://github.com/npm/hosted-git-info/issues/35)
-
-
-
-
-# [2.7.0](https://github.com/npm/hosted-git-info/compare/v2.6.1...v2.7.0) (2018-07-06)
-
-
-### Bug Fixes
-
-* **github tarball:** update github tarballtemplate ([6efd582](https://github.com/npm/hosted-git-info/commit/6efd582)), closes [#34](https://github.com/npm/hosted-git-info/issues/34)
-* **gitlab docs:** switched to lowercase anchors for readmes ([701bcd1](https://github.com/npm/hosted-git-info/commit/701bcd1))
-
-
-### Features
-
-* **all:** Support www. prefixes on hostnames ([3349575](https://github.com/npm/hosted-git-info/commit/3349575)), closes [#32](https://github.com/npm/hosted-git-info/issues/32)
-
-
-
-
-## [2.6.1](https://github.com/npm/hosted-git-info/compare/v2.6.0...v2.6.1) (2018-06-25)
-
-### Bug Fixes
-
-* **Revert:** "compat: remove Object.assign fallback ([#25](https://github.com/npm/hosted-git-info/issues/25))" ([cce5a62](https://github.com/npm/hosted-git-info/commit/cce5a62))
-* **Revert:** "git-host: fix forgotten extend()" ([a815ec9](https://github.com/npm/hosted-git-info/commit/a815ec9))
-
-
-
-
-# [2.6.0](https://github.com/npm/hosted-git-info/compare/v2.5.0...v2.6.0) (2018-03-07)
-
-
-### Bug Fixes
-
-* **compat:** remove Object.assign fallback ([#25](https://github.com/npm/hosted-git-info/issues/25)) ([627ab55](https://github.com/npm/hosted-git-info/commit/627ab55))
-* **git-host:** fix forgotten extend() ([eba1f7b](https://github.com/npm/hosted-git-info/commit/eba1f7b))
-
-
-### Features
-
-* **browse:** fragment support for browse() ([#28](https://github.com/npm/hosted-git-info/issues/28)) ([cd5e5bb](https://github.com/npm/hosted-git-info/commit/cd5e5bb))
diff --git a/node_modules/hosted-git-info/LICENSE b/node_modules/hosted-git-info/LICENSE
deleted file mode 100644
index 4505576..0000000
--- a/node_modules/hosted-git-info/LICENSE
+++ /dev/null
@@ -1,13 +0,0 @@
-Copyright (c) 2015, Rebecca Turner
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
diff --git a/node_modules/hosted-git-info/README.md b/node_modules/hosted-git-info/README.md
deleted file mode 100644
index 7b723f6..0000000
--- a/node_modules/hosted-git-info/README.md
+++ /dev/null
@@ -1,133 +0,0 @@
-# hosted-git-info
-
-This will let you identify and transform various git hosts URLs between
-protocols. It also can tell you what the URL is for the raw path for
-particular file for direct access without git.
-
-## Example
-
-```javascript
-var hostedGitInfo = require("hosted-git-info")
-var info = hostedGitInfo.fromUrl("git@github.com:npm/hosted-git-info.git", opts)
-/* info looks like:
-{
- type: "github",
- domain: "github.com",
- user: "npm",
- project: "hosted-git-info"
-}
-*/
-```
-
-If the URL can't be matched with a git host, `null` will be returned. We
-can match git, ssh and https urls. Additionally, we can match ssh connect
-strings (`git@github.com:npm/hosted-git-info`) and shortcuts (eg,
-`github:npm/hosted-git-info`). Github specifically, is detected in the case
-of a third, unprefixed, form: `npm/hosted-git-info`.
-
-If it does match, the returned object has properties of:
-
-* info.type -- The short name of the service
-* info.domain -- The domain for git protocol use
-* info.user -- The name of the user/org on the git host
-* info.project -- The name of the project on the git host
-
-## Version Contract
-
-The major version will be bumped any time…
-
-* The constructor stops accepting URLs that it previously accepted.
-* A method is removed.
-* A method can no longer accept the number and type of arguments it previously accepted.
-* A method can return a different type than it currently returns.
-
-Implications:
-
-* I do not consider the specific format of the urls returned from, say
- `.https()` to be a part of the contract. The contract is that it will
- return a string that can be used to fetch the repo via HTTPS. But what
- that string looks like, specifically, can change.
-* Dropping support for a hosted git provider would constitute a breaking
- change.
-
-## Usage
-
-### var info = hostedGitInfo.fromUrl(gitSpecifier[, options])
-
-* *gitSpecifer* is a URL of a git repository or a SCP-style specifier of one.
-* *options* is an optional object. It can have the following properties:
- * *noCommittish* — If true then committishes won't be included in generated URLs.
- * *noGitPlus* — If true then `git+` won't be prefixed on URLs.
-
-## Methods
-
-All of the methods take the same options as the `fromUrl` factory. Options
-provided to a method override those provided to the constructor.
-
-* info.file(path, opts)
-
-Given the path of a file relative to the repository, returns a URL for
-directly fetching it from the githost. If no committish was set then
-`master` will be used as the default.
-
-For example `hostedGitInfo.fromUrl("git@github.com:npm/hosted-git-info.git#v1.0.0").file("package.json")`
-would return `https://raw.githubusercontent.com/npm/hosted-git-info/v1.0.0/package.json`
-
-* info.shortcut(opts)
-
-eg, `github:npm/hosted-git-info`
-
-* info.browse(path, fragment, opts)
-
-eg, `https://github.com/npm/hosted-git-info/tree/v1.2.0`,
-`https://github.com/npm/hosted-git-info/tree/v1.2.0/package.json`,
-`https://github.com/npm/hosted-git-info/tree/v1.2.0/REAMDE.md#supported-hosts`
-
-* info.bugs(opts)
-
-eg, `https://github.com/npm/hosted-git-info/issues`
-
-* info.docs(opts)
-
-eg, `https://github.com/npm/hosted-git-info/tree/v1.2.0#readme`
-
-* info.https(opts)
-
-eg, `git+https://github.com/npm/hosted-git-info.git`
-
-* info.sshurl(opts)
-
-eg, `git+ssh://git@github.com/npm/hosted-git-info.git`
-
-* info.ssh(opts)
-
-eg, `git@github.com:npm/hosted-git-info.git`
-
-* info.path(opts)
-
-eg, `npm/hosted-git-info`
-
-* info.tarball(opts)
-
-eg, `https://github.com/npm/hosted-git-info/archive/v1.2.0.tar.gz`
-
-* info.getDefaultRepresentation()
-
-Returns the default output type. The default output type is based on the
-string you passed in to be parsed
-
-* info.toString(opts)
-
-Uses the getDefaultRepresentation to call one of the other methods to get a URL for
-this resource. As such `hostedGitInfo.fromUrl(url).toString()` will give
-you a normalized version of the URL that still uses the same protocol.
-
-Shortcuts will still be returned as shortcuts, but the special case github
-form of `org/project` will be normalized to `github:org/project`.
-
-SSH connect strings will be normalized into `git+ssh` URLs.
-
-## Supported hosts
-
-Currently this supports Github, Bitbucket and Gitlab. Pull requests for
-additional hosts welcome.
diff --git a/node_modules/hosted-git-info/git-host-info.js b/node_modules/hosted-git-info/git-host-info.js
deleted file mode 100644
index 8147e33..0000000
--- a/node_modules/hosted-git-info/git-host-info.js
+++ /dev/null
@@ -1,79 +0,0 @@
-'use strict'
-
-var gitHosts = module.exports = {
- github: {
- // First two are insecure and generally shouldn't be used any more, but
- // they are still supported.
- 'protocols': [ 'git', 'http', 'git+ssh', 'git+https', 'ssh', 'https' ],
- 'domain': 'github.com',
- 'treepath': 'tree',
- 'filetemplate': 'https://{auth@}raw.githubusercontent.com/{user}/{project}/{committish}/{path}',
- 'bugstemplate': 'https://{domain}/{user}/{project}/issues',
- 'gittemplate': 'git://{auth@}{domain}/{user}/{project}.git{#committish}',
- 'tarballtemplate': 'https://codeload.{domain}/{user}/{project}/tar.gz/{committish}'
- },
- bitbucket: {
- 'protocols': [ 'git+ssh', 'git+https', 'ssh', 'https' ],
- 'domain': 'bitbucket.org',
- 'treepath': 'src',
- 'tarballtemplate': 'https://{domain}/{user}/{project}/get/{committish}.tar.gz'
- },
- gitlab: {
- 'protocols': [ 'git+ssh', 'git+https', 'ssh', 'https' ],
- 'domain': 'gitlab.com',
- 'treepath': 'tree',
- 'bugstemplate': 'https://{domain}/{user}/{project}/issues',
- 'httpstemplate': 'git+https://{auth@}{domain}/{user}/{projectPath}.git{#committish}',
- 'tarballtemplate': 'https://{domain}/{user}/{project}/repository/archive.tar.gz?ref={committish}',
- 'pathmatch': /^[/]([^/]+)[/]((?!.*(\/-\/|\/repository\/archive\.tar\.gz\?=.*|\/repository\/[^/]+\/archive.tar.gz$)).*?)(?:[.]git|[/])?$/
- },
- gist: {
- 'protocols': [ 'git', 'git+ssh', 'git+https', 'ssh', 'https' ],
- 'domain': 'gist.github.com',
- 'pathmatch': /^[/](?:([^/]+)[/])?([a-z0-9]{32,})(?:[.]git)?$/,
- 'filetemplate': 'https://gist.githubusercontent.com/{user}/{project}/raw{/committish}/{path}',
- 'bugstemplate': 'https://{domain}/{project}',
- 'gittemplate': 'git://{domain}/{project}.git{#committish}',
- 'sshtemplate': 'git@{domain}:/{project}.git{#committish}',
- 'sshurltemplate': 'git+ssh://git@{domain}/{project}.git{#committish}',
- 'browsetemplate': 'https://{domain}/{project}{/committish}',
- 'browsefiletemplate': 'https://{domain}/{project}{/committish}{#path}',
- 'docstemplate': 'https://{domain}/{project}{/committish}',
- 'httpstemplate': 'git+https://{domain}/{project}.git{#committish}',
- 'shortcuttemplate': '{type}:{project}{#committish}',
- 'pathtemplate': '{project}{#committish}',
- 'tarballtemplate': 'https://codeload.github.com/gist/{project}/tar.gz/{committish}',
- 'hashformat': function (fragment) {
- return 'file-' + formatHashFragment(fragment)
- }
- }
-}
-
-var gitHostDefaults = {
- 'sshtemplate': 'git@{domain}:{user}/{project}.git{#committish}',
- 'sshurltemplate': 'git+ssh://git@{domain}/{user}/{project}.git{#committish}',
- 'browsetemplate': 'https://{domain}/{user}/{project}{/tree/committish}',
- 'browsefiletemplate': 'https://{domain}/{user}/{project}/{treepath}/{committish}/{path}{#fragment}',
- 'docstemplate': 'https://{domain}/{user}/{project}{/tree/committish}#readme',
- 'httpstemplate': 'git+https://{auth@}{domain}/{user}/{project}.git{#committish}',
- 'filetemplate': 'https://{domain}/{user}/{project}/raw/{committish}/{path}',
- 'shortcuttemplate': '{type}:{user}/{project}{#committish}',
- 'pathtemplate': '{user}/{project}{#committish}',
- 'pathmatch': /^[/]([^/]+)[/]([^/]+?)(?:[.]git|[/])?$/,
- 'hashformat': formatHashFragment
-}
-
-Object.keys(gitHosts).forEach(function (name) {
- Object.keys(gitHostDefaults).forEach(function (key) {
- if (gitHosts[name][key]) return
- gitHosts[name][key] = gitHostDefaults[key]
- })
- gitHosts[name].protocols_re = RegExp('^(' +
- gitHosts[name].protocols.map(function (protocol) {
- return protocol.replace(/([\\+*{}()[\]$^|])/g, '\\$1')
- }).join('|') + '):$')
-})
-
-function formatHashFragment (fragment) {
- return fragment.toLowerCase().replace(/^\W+|\/|\W+$/g, '').replace(/\W+/g, '-')
-}
diff --git a/node_modules/hosted-git-info/git-host.js b/node_modules/hosted-git-info/git-host.js
deleted file mode 100644
index 9616fba..0000000
--- a/node_modules/hosted-git-info/git-host.js
+++ /dev/null
@@ -1,156 +0,0 @@
-'use strict'
-var gitHosts = require('./git-host-info.js')
-/* eslint-disable node/no-deprecated-api */
-
-// copy-pasta util._extend from node's source, to avoid pulling
-// the whole util module into peoples' webpack bundles.
-/* istanbul ignore next */
-var extend = Object.assign || function _extend (target, source) {
- // Don't do anything if source isn't an object
- if (source === null || typeof source !== 'object') return target
-
- var keys = Object.keys(source)
- var i = keys.length
- while (i--) {
- target[keys[i]] = source[keys[i]]
- }
- return target
-}
-
-module.exports = GitHost
-function GitHost (type, user, auth, project, committish, defaultRepresentation, opts) {
- var gitHostInfo = this
- gitHostInfo.type = type
- Object.keys(gitHosts[type]).forEach(function (key) {
- gitHostInfo[key] = gitHosts[type][key]
- })
- gitHostInfo.user = user
- gitHostInfo.auth = auth
- gitHostInfo.project = project
- gitHostInfo.committish = committish
- gitHostInfo.default = defaultRepresentation
- gitHostInfo.opts = opts || {}
-}
-
-GitHost.prototype.hash = function () {
- return this.committish ? '#' + this.committish : ''
-}
-
-GitHost.prototype._fill = function (template, opts) {
- if (!template) return
- var vars = extend({}, opts)
- vars.path = vars.path ? vars.path.replace(/^[/]+/g, '') : ''
- opts = extend(extend({}, this.opts), opts)
- var self = this
- Object.keys(this).forEach(function (key) {
- if (self[key] != null && vars[key] == null) vars[key] = self[key]
- })
- var rawAuth = vars.auth
- var rawcommittish = vars.committish
- var rawFragment = vars.fragment
- var rawPath = vars.path
- var rawProject = vars.project
- Object.keys(vars).forEach(function (key) {
- var value = vars[key]
- if ((key === 'path' || key === 'project') && typeof value === 'string') {
- vars[key] = value.split('/').map(function (pathComponent) {
- return encodeURIComponent(pathComponent)
- }).join('/')
- } else {
- vars[key] = encodeURIComponent(value)
- }
- })
- vars['auth@'] = rawAuth ? rawAuth + '@' : ''
- vars['#fragment'] = rawFragment ? '#' + this.hashformat(rawFragment) : ''
- vars.fragment = vars.fragment ? vars.fragment : ''
- vars['#path'] = rawPath ? '#' + this.hashformat(rawPath) : ''
- vars['/path'] = vars.path ? '/' + vars.path : ''
- vars.projectPath = rawProject.split('/').map(encodeURIComponent).join('/')
- if (opts.noCommittish) {
- vars['#committish'] = ''
- vars['/tree/committish'] = ''
- vars['/committish'] = ''
- vars.committish = ''
- } else {
- vars['#committish'] = rawcommittish ? '#' + rawcommittish : ''
- vars['/tree/committish'] = vars.committish
- ? '/' + vars.treepath + '/' + vars.committish
- : ''
- vars['/committish'] = vars.committish ? '/' + vars.committish : ''
- vars.committish = vars.committish || 'master'
- }
- var res = template
- Object.keys(vars).forEach(function (key) {
- res = res.replace(new RegExp('[{]' + key + '[}]', 'g'), vars[key])
- })
- if (opts.noGitPlus) {
- return res.replace(/^git[+]/, '')
- } else {
- return res
- }
-}
-
-GitHost.prototype.ssh = function (opts) {
- return this._fill(this.sshtemplate, opts)
-}
-
-GitHost.prototype.sshurl = function (opts) {
- return this._fill(this.sshurltemplate, opts)
-}
-
-GitHost.prototype.browse = function (P, F, opts) {
- if (typeof P === 'string') {
- if (typeof F !== 'string') {
- opts = F
- F = null
- }
- return this._fill(this.browsefiletemplate, extend({
- fragment: F,
- path: P
- }, opts))
- } else {
- return this._fill(this.browsetemplate, P)
- }
-}
-
-GitHost.prototype.docs = function (opts) {
- return this._fill(this.docstemplate, opts)
-}
-
-GitHost.prototype.bugs = function (opts) {
- return this._fill(this.bugstemplate, opts)
-}
-
-GitHost.prototype.https = function (opts) {
- return this._fill(this.httpstemplate, opts)
-}
-
-GitHost.prototype.git = function (opts) {
- return this._fill(this.gittemplate, opts)
-}
-
-GitHost.prototype.shortcut = function (opts) {
- return this._fill(this.shortcuttemplate, opts)
-}
-
-GitHost.prototype.path = function (opts) {
- return this._fill(this.pathtemplate, opts)
-}
-
-GitHost.prototype.tarball = function (opts_) {
- var opts = extend({}, opts_, { noCommittish: false })
- return this._fill(this.tarballtemplate, opts)
-}
-
-GitHost.prototype.file = function (P, opts) {
- return this._fill(this.filetemplate, extend({ path: P }, opts))
-}
-
-GitHost.prototype.getDefaultRepresentation = function () {
- return this.default
-}
-
-GitHost.prototype.toString = function (opts) {
- if (this.default && typeof this[this.default] === 'function') return this[this.default](opts)
- return this.sshurl(opts)
-}
diff --git a/node_modules/hosted-git-info/index.js b/node_modules/hosted-git-info/index.js
deleted file mode 100644
index 0885772..0000000
--- a/node_modules/hosted-git-info/index.js
+++ /dev/null
@@ -1,148 +0,0 @@
-'use strict'
-var url = require('url')
-var gitHosts = require('./git-host-info.js')
-var GitHost = module.exports = require('./git-host.js')
-
-var protocolToRepresentationMap = {
- 'git+ssh:': 'sshurl',
- 'git+https:': 'https',
- 'ssh:': 'sshurl',
- 'git:': 'git'
-}
-
-function protocolToRepresentation (protocol) {
- return protocolToRepresentationMap[protocol] || protocol.slice(0, -1)
-}
-
-var authProtocols = {
- 'git:': true,
- 'https:': true,
- 'git+https:': true,
- 'http:': true,
- 'git+http:': true
-}
-
-var cache = {}
-
-module.exports.fromUrl = function (giturl, opts) {
- if (typeof giturl !== 'string') return
- var key = giturl + JSON.stringify(opts || {})
-
- if (!(key in cache)) {
- cache[key] = fromUrl(giturl, opts)
- }
-
- return cache[key]
-}
-
-function fromUrl (giturl, opts) {
- if (giturl == null || giturl === '') return
- var url = fixupUnqualifiedGist(
- isGitHubShorthand(giturl) ? 'github:' + giturl : giturl
- )
- var parsed = parseGitUrl(url)
- var shortcutMatch = url.match(/^([^:]+):(?:[^@]+@)?(?:([^/]*)\/)?([^#]+)/)
- var matches = Object.keys(gitHosts).map(function (gitHostName) {
- try {
- var gitHostInfo = gitHosts[gitHostName]
- var auth = null
- if (parsed.auth && authProtocols[parsed.protocol]) {
- auth = parsed.auth
- }
- var committish = parsed.hash ? decodeURIComponent(parsed.hash.substr(1)) : null
- var user = null
- var project = null
- var defaultRepresentation = null
- if (shortcutMatch && shortcutMatch[1] === gitHostName) {
- user = shortcutMatch[2] && decodeURIComponent(shortcutMatch[2])
- project = decodeURIComponent(shortcutMatch[3].replace(/\.git$/, ''))
- defaultRepresentation = 'shortcut'
- } else {
- if (parsed.host && parsed.host !== gitHostInfo.domain && parsed.host.replace(/^www[.]/, '') !== gitHostInfo.domain) return
- if (!gitHostInfo.protocols_re.test(parsed.protocol)) return
- if (!parsed.path) return
- var pathmatch = gitHostInfo.pathmatch
- var matched = parsed.path.match(pathmatch)
- if (!matched) return
- /* istanbul ignore else */
- if (matched[1] !== null && matched[1] !== undefined) {
- user = decodeURIComponent(matched[1].replace(/^:/, ''))
- }
- project = decodeURIComponent(matched[2])
- defaultRepresentation = protocolToRepresentation(parsed.protocol)
- }
- return new GitHost(gitHostName, user, auth, project, committish, defaultRepresentation, opts)
- } catch (ex) {
- /* istanbul ignore else */
- if (ex instanceof URIError) {
- } else throw ex
- }
- }).filter(function (gitHostInfo) { return gitHostInfo })
- if (matches.length !== 1) return
- return matches[0]
-}
-
-function isGitHubShorthand (arg) {
- // Note: This does not fully test the git ref format.
- // See https://www.kernel.org/pub/software/scm/git/docs/git-check-ref-format.html
- //
- // The only way to do this properly would be to shell out to
- // git-check-ref-format, and as this is a fast sync function,
- // we don't want to do that. Just let git fail if it turns
- // out that the commit-ish is invalid.
- // GH usernames cannot start with . or -
- return /^[^:@%/\s.-][^:@%/\s]*[/][^:@\s/%]+(?:#.*)?$/.test(arg)
-}
-
-function fixupUnqualifiedGist (giturl) {
- // necessary for round-tripping gists
- var parsed = url.parse(giturl)
- if (parsed.protocol === 'gist:' && parsed.host && !parsed.path) {
- return parsed.protocol + '/' + parsed.host
- } else {
- return giturl
- }
-}
-
-function parseGitUrl (giturl) {
- var matched = giturl.match(/^([^@]+)@([^:/]+):[/]?((?:[^/]+[/])?[^/]+?)(?:[.]git)?(#.*)?$/)
- if (!matched) {
- var legacy = url.parse(giturl)
- // If we don't have url.URL, then sorry, this is just not fixable.
- // This affects Node <= 6.12.
- if (legacy.auth && typeof url.URL === 'function') {
- // git urls can be in the form of scp-style/ssh-connect strings, like
- // git+ssh://user@host.com:some/path, which the legacy url parser
- // supports, but WhatWG url.URL class does not. However, the legacy
- // parser de-urlencodes the username and password, so something like
- // https://user%3An%40me:p%40ss%3Aword@x.com/ becomes
- // https://user:n@me:p@ss:word@x.com/ which is all kinds of wrong.
- // Pull off just the auth and host, so we dont' get the confusing
- // scp-style URL, then pass that to the WhatWG parser to get the
- // auth properly escaped.
- var authmatch = giturl.match(/[^@]+@[^:/]+/)
- /* istanbul ignore else - this should be impossible */
- if (authmatch) {
- var whatwg = new url.URL(authmatch[0])
- legacy.auth = whatwg.username || ''
- if (whatwg.password) legacy.auth += ':' + whatwg.password
- }
- }
- return legacy
- }
- return {
- protocol: 'git+ssh:',
- slashes: true,
- auth: matched[1],
- host: matched[2],
- port: null,
- hostname: matched[2],
- hash: matched[4],
- search: null,
- query: null,
- pathname: '/' + matched[3],
- path: '/' + matched[3],
- href: 'git+ssh://' + matched[1] + '@' + matched[2] +
- '/' + matched[3] + (matched[4] || '')
- }
-}
diff --git a/node_modules/hosted-git-info/package.json b/node_modules/hosted-git-info/package.json
deleted file mode 100644
index 8cc554c..0000000
--- a/node_modules/hosted-git-info/package.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- "name": "hosted-git-info",
- "version": "2.8.9",
- "description": "Provides metadata and conversions from repository urls for Github, Bitbucket and Gitlab",
- "main": "index.js",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/npm/hosted-git-info.git"
- },
- "keywords": [
- "git",
- "github",
- "bitbucket",
- "gitlab"
- ],
- "author": "Rebecca Turner (http://re-becca.org)",
- "license": "ISC",
- "bugs": {
- "url": "https://github.com/npm/hosted-git-info/issues"
- },
- "homepage": "https://github.com/npm/hosted-git-info",
- "scripts": {
- "prerelease": "npm t",
- "postrelease": "npm publish --tag=ancient-legacy-fixes && git push --follow-tags",
- "posttest": "standard",
- "release": "standard-version -s",
- "test:coverage": "tap --coverage-report=html -J --coverage=90 --no-esm test/*.js",
- "test": "tap -J --coverage=90 --no-esm test/*.js"
- },
- "devDependencies": {
- "standard": "^11.0.1",
- "standard-version": "^4.4.0",
- "tap": "^12.7.0"
- },
- "files": [
- "index.js",
- "git-host.js",
- "git-host-info.js"
- ]
-}
diff --git a/node_modules/inflight/LICENSE b/node_modules/inflight/LICENSE
deleted file mode 100644
index 05eeeb8..0000000
--- a/node_modules/inflight/LICENSE
+++ /dev/null
@@ -1,15 +0,0 @@
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/node_modules/inflight/README.md b/node_modules/inflight/README.md
deleted file mode 100644
index 6dc8929..0000000
--- a/node_modules/inflight/README.md
+++ /dev/null
@@ -1,37 +0,0 @@
-# inflight
-
-Add callbacks to requests in flight to avoid async duplication
-
-## USAGE
-
-```javascript
-var inflight = require('inflight')
-
-// some request that does some stuff
-function req(key, callback) {
- // key is any random string. like a url or filename or whatever.
- //
- // will return either a falsey value, indicating that the
- // request for this key is already in flight, or a new callback
- // which when called will call all callbacks passed to inflightk
- // with the same key
- callback = inflight(key, callback)
-
- // If we got a falsey value back, then there's already a req going
- if (!callback) return
-
- // this is where you'd fetch the url or whatever
- // callback is also once()-ified, so it can safely be assigned
- // to multiple events etc. First call wins.
- setTimeout(function() {
- callback(null, key)
- }, 100)
-}
-
-// only assigns a single setTimeout
-// when it dings, all cbs get called
-req('foo', cb1)
-req('foo', cb2)
-req('foo', cb3)
-req('foo', cb4)
-```
diff --git a/node_modules/inflight/inflight.js b/node_modules/inflight/inflight.js
deleted file mode 100644
index 48202b3..0000000
--- 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/inflight/package.json b/node_modules/inflight/package.json
deleted file mode 100644
index 6084d35..0000000
--- a/node_modules/inflight/package.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "name": "inflight",
- "version": "1.0.6",
- "description": "Add callbacks to requests in flight to avoid async duplication",
- "main": "inflight.js",
- "files": [
- "inflight.js"
- ],
- "dependencies": {
- "once": "^1.3.0",
- "wrappy": "1"
- },
- "devDependencies": {
- "tap": "^7.1.2"
- },
- "scripts": {
- "test": "tap test.js --100"
- },
- "repository": {
- "type": "git",
- "url": "https://github.com/npm/inflight.git"
- },
- "author": "Isaac Z. Schlueter (http://blog.izs.me/)",
- "bugs": {
- "url": "https://github.com/isaacs/inflight/issues"
- },
- "homepage": "https://github.com/isaacs/inflight",
- "license": "ISC"
-}
diff --git a/node_modules/inherits/LICENSE b/node_modules/inherits/LICENSE
deleted file mode 100644
index dea3013..0000000
--- a/node_modules/inherits/LICENSE
+++ /dev/null
@@ -1,16 +0,0 @@
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
diff --git a/node_modules/inherits/README.md b/node_modules/inherits/README.md
deleted file mode 100644
index b1c5665..0000000
--- a/node_modules/inherits/README.md
+++ /dev/null
@@ -1,42 +0,0 @@
-Browser-friendly inheritance fully compatible with standard node.js
-[inherits](http://nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor).
-
-This package exports standard `inherits` from node.js `util` module in
-node environment, but also provides alternative browser-friendly
-implementation through [browser
-field](https://gist.github.com/shtylman/4339901). Alternative
-implementation is a literal copy of standard one located in standalone
-module to avoid requiring of `util`. It also has a shim for old
-browsers with no `Object.create` support.
-
-While keeping you sure you are using standard `inherits`
-implementation in node.js environment, it allows bundlers such as
-[browserify](https://github.com/substack/node-browserify) to not
-include full `util` package to your client code if all you need is
-just `inherits` function. It worth, because browser shim for `util`
-package is large and `inherits` is often the single function you need
-from it.
-
-It's recommended to use this package instead of
-`require('util').inherits` for any code that has chances to be used
-not only in node.js but in browser too.
-
-## usage
-
-```js
-var inherits = require('inherits');
-// then use exactly as the standard one
-```
-
-## note on version ~1.0
-
-Version ~1.0 had completely different motivation and is not compatible
-neither with 2.0 nor with standard node.js `inherits`.
-
-If you are using version ~1.0 and planning to switch to ~2.0, be
-careful:
-
-* new version uses `super_` instead of `super` for referencing
- superclass
-* new version overwrites current prototype while old one preserves any
- existing fields on it
diff --git a/node_modules/inherits/inherits.js b/node_modules/inherits/inherits.js
deleted file mode 100644
index f71f2d9..0000000
--- a/node_modules/inherits/inherits.js
+++ /dev/null
@@ -1,9 +0,0 @@
-try {
- var util = require('util');
- /* istanbul ignore next */
- if (typeof util.inherits !== 'function') throw '';
- module.exports = util.inherits;
-} catch (e) {
- /* istanbul ignore next */
- module.exports = require('./inherits_browser.js');
-}
diff --git a/node_modules/inherits/inherits_browser.js b/node_modules/inherits/inherits_browser.js
deleted file mode 100644
index 86bbb3d..0000000
--- a/node_modules/inherits/inherits_browser.js
+++ /dev/null
@@ -1,27 +0,0 @@
-if (typeof Object.create === 'function') {
- // implementation from standard node.js 'util' module
- module.exports = function inherits(ctor, superCtor) {
- if (superCtor) {
- ctor.super_ = superCtor
- ctor.prototype = Object.create(superCtor.prototype, {
- constructor: {
- value: ctor,
- enumerable: false,
- writable: true,
- configurable: true
- }
- })
- }
- };
-} else {
- // old school shim for old browsers
- module.exports = function inherits(ctor, superCtor) {
- if (superCtor) {
- ctor.super_ = superCtor
- var TempCtor = function () {}
- TempCtor.prototype = superCtor.prototype
- ctor.prototype = new TempCtor()
- ctor.prototype.constructor = ctor
- }
- }
-}
diff --git a/node_modules/inherits/package.json b/node_modules/inherits/package.json
deleted file mode 100644
index 37b4366..0000000
--- a/node_modules/inherits/package.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "name": "inherits",
- "description": "Browser-friendly inheritance fully compatible with standard node.js inherits()",
- "version": "2.0.4",
- "keywords": [
- "inheritance",
- "class",
- "klass",
- "oop",
- "object-oriented",
- "inherits",
- "browser",
- "browserify"
- ],
- "main": "./inherits.js",
- "browser": "./inherits_browser.js",
- "repository": "git://github.com/isaacs/inherits",
- "license": "ISC",
- "scripts": {
- "test": "tap"
- },
- "devDependencies": {
- "tap": "^14.2.4"
- },
- "files": [
- "inherits.js",
- "inherits_browser.js"
- ]
-}
diff --git a/node_modules/ini/LICENSE b/node_modules/ini/LICENSE
deleted file mode 100644
index 19129e3..0000000
--- a/node_modules/ini/LICENSE
+++ /dev/null
@@ -1,15 +0,0 @@
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/node_modules/ini/README.md b/node_modules/ini/README.md
deleted file mode 100644
index 33df258..0000000
--- a/node_modules/ini/README.md
+++ /dev/null
@@ -1,102 +0,0 @@
-An ini format parser and serializer for node.
-
-Sections are treated as nested objects. Items before the first
-heading are saved on the object directly.
-
-## Usage
-
-Consider an ini-file `config.ini` that looks like this:
-
- ; this comment is being ignored
- scope = global
-
- [database]
- user = dbuser
- password = dbpassword
- database = use_this_database
-
- [paths.default]
- datadir = /var/lib/data
- array[] = first value
- array[] = second value
- array[] = third value
-
-You can read, manipulate and write the ini-file like so:
-
- var fs = require('fs')
- , ini = require('ini')
-
- var config = ini.parse(fs.readFileSync('./config.ini', 'utf-8'))
-
- config.scope = 'local'
- config.database.database = 'use_another_database'
- config.paths.default.tmpdir = '/tmp'
- delete config.paths.default.datadir
- config.paths.default.array.push('fourth value')
-
- fs.writeFileSync('./config_modified.ini', ini.stringify(config, { section: 'section' }))
-
-This will result in a file called `config_modified.ini` being written
-to the filesystem with the following content:
-
- [section]
- scope=local
- [section.database]
- user=dbuser
- password=dbpassword
- database=use_another_database
- [section.paths.default]
- tmpdir=/tmp
- array[]=first value
- array[]=second value
- array[]=third value
- array[]=fourth value
-
-
-## API
-
-### decode(inistring)
-
-Decode the ini-style formatted `inistring` into a nested object.
-
-### parse(inistring)
-
-Alias for `decode(inistring)`
-
-### encode(object, [options])
-
-Encode the object `object` into an ini-style formatted string. If the
-optional parameter `section` is given, then all top-level properties
-of the object are put into this section and the `section`-string is
-prepended to all sub-sections, see the usage example above.
-
-The `options` object may contain the following:
-
-* `section` A string which will be the first `section` in the encoded
- ini data. Defaults to none.
-* `whitespace` Boolean to specify whether to put whitespace around the
- `=` character. By default, whitespace is omitted, to be friendly to
- some persnickety old parsers that don't tolerate it well. But some
- find that it's more human-readable and pretty with the whitespace.
-
-For backwards compatibility reasons, if a `string` options is passed
-in, then it is assumed to be the `section` value.
-
-### stringify(object, [options])
-
-Alias for `encode(object, [options])`
-
-### safe(val)
-
-Escapes the string `val` such that it is safe to be used as a key or
-value in an ini-file. Basically escapes quotes. For example
-
- ini.safe('"unsafe string"')
-
-would result in
-
- "\"unsafe string\""
-
-### unsafe(val)
-
-Unescapes the string `val`
diff --git a/node_modules/ini/ini.js b/node_modules/ini/ini.js
deleted file mode 100644
index b576f08..0000000
--- a/node_modules/ini/ini.js
+++ /dev/null
@@ -1,206 +0,0 @@
-exports.parse = exports.decode = decode
-
-exports.stringify = exports.encode = encode
-
-exports.safe = safe
-exports.unsafe = unsafe
-
-var eol = typeof process !== 'undefined' &&
- process.platform === 'win32' ? '\r\n' : '\n'
-
-function encode (obj, opt) {
- var children = []
- var out = ''
-
- if (typeof opt === 'string') {
- opt = {
- section: opt,
- whitespace: false,
- }
- } else {
- opt = opt || {}
- opt.whitespace = opt.whitespace === true
- }
-
- var separator = opt.whitespace ? ' = ' : '='
-
- Object.keys(obj).forEach(function (k, _, __) {
- var val = obj[k]
- if (val && Array.isArray(val)) {
- val.forEach(function (item) {
- out += safe(k + '[]') + separator + safe(item) + '\n'
- })
- } else if (val && typeof val === 'object')
- children.push(k)
- else
- out += safe(k) + separator + safe(val) + eol
- })
-
- if (opt.section && out.length)
- out = '[' + safe(opt.section) + ']' + eol + out
-
- children.forEach(function (k, _, __) {
- var nk = dotSplit(k).join('\\.')
- var section = (opt.section ? opt.section + '.' : '') + nk
- var child = encode(obj[k], {
- section: section,
- whitespace: opt.whitespace,
- })
- if (out.length && child.length)
- out += eol
-
- out += child
- })
-
- return out
-}
-
-function dotSplit (str) {
- return str.replace(/\1/g, '\u0002LITERAL\\1LITERAL\u0002')
- .replace(/\\\./g, '\u0001')
- .split(/\./).map(function (part) {
- return part.replace(/\1/g, '\\.')
- .replace(/\2LITERAL\\1LITERAL\2/g, '\u0001')
- })
-}
-
-function decode (str) {
- var out = {}
- var p = out
- var section = null
- // section |key = value
- var re = /^\[([^\]]*)\]$|^([^=]+)(=(.*))?$/i
- var lines = str.split(/[\r\n]+/g)
-
- lines.forEach(function (line, _, __) {
- if (!line || line.match(/^\s*[;#]/))
- return
- var match = line.match(re)
- if (!match)
- return
- if (match[1] !== undefined) {
- section = unsafe(match[1])
- if (section === '__proto__') {
- // not allowed
- // keep parsing the section, but don't attach it.
- p = {}
- return
- }
- p = out[section] = out[section] || {}
- return
- }
- var key = unsafe(match[2])
- if (key === '__proto__')
- return
- var value = match[3] ? unsafe(match[4]) : true
- switch (value) {
- case 'true':
- case 'false':
- case 'null': value = JSON.parse(value)
- }
-
- // Convert keys with '[]' suffix to an array
- if (key.length > 2 && key.slice(-2) === '[]') {
- key = key.substring(0, key.length - 2)
- if (key === '__proto__')
- return
- if (!p[key])
- p[key] = []
- else if (!Array.isArray(p[key]))
- p[key] = [p[key]]
- }
-
- // safeguard against resetting a previously defined
- // array by accidentally forgetting the brackets
- if (Array.isArray(p[key]))
- p[key].push(value)
- else
- p[key] = value
- })
-
- // {a:{y:1},"a.b":{x:2}} --> {a:{y:1,b:{x:2}}}
- // use a filter to return the keys that have to be deleted.
- Object.keys(out).filter(function (k, _, __) {
- if (!out[k] ||
- typeof out[k] !== 'object' ||
- Array.isArray(out[k]))
- return false
-
- // see if the parent section is also an object.
- // if so, add it to that, and mark this one for deletion
- var parts = dotSplit(k)
- var p = out
- var l = parts.pop()
- var nl = l.replace(/\\\./g, '.')
- parts.forEach(function (part, _, __) {
- if (part === '__proto__')
- return
- if (!p[part] || typeof p[part] !== 'object')
- p[part] = {}
- p = p[part]
- })
- if (p === out && nl === l)
- return false
-
- p[nl] = out[k]
- return true
- }).forEach(function (del, _, __) {
- delete out[del]
- })
-
- return out
-}
-
-function isQuoted (val) {
- return (val.charAt(0) === '"' && val.slice(-1) === '"') ||
- (val.charAt(0) === "'" && val.slice(-1) === "'")
-}
-
-function safe (val) {
- return (typeof val !== 'string' ||
- val.match(/[=\r\n]/) ||
- val.match(/^\[/) ||
- (val.length > 1 &&
- isQuoted(val)) ||
- val !== val.trim())
- ? JSON.stringify(val)
- : val.replace(/;/g, '\\;').replace(/#/g, '\\#')
-}
-
-function unsafe (val, doUnesc) {
- val = (val || '').trim()
- if (isQuoted(val)) {
- // remove the single quotes before calling JSON.parse
- if (val.charAt(0) === "'")
- val = val.substr(1, val.length - 2)
-
- try {
- val = JSON.parse(val)
- } catch (_) {}
- } else {
- // walk the val to find the first not-escaped ; character
- var esc = false
- var unesc = ''
- for (var i = 0, l = val.length; i < l; i++) {
- var c = val.charAt(i)
- if (esc) {
- if ('\\;#'.indexOf(c) !== -1)
- unesc += c
- else
- unesc += '\\' + c
-
- esc = false
- } else if (';#'.indexOf(c) !== -1)
- break
- else if (c === '\\')
- esc = true
- else
- unesc += c
- }
- if (esc)
- unesc += '\\'
-
- return unesc.trim()
- }
- return val
-}
diff --git a/node_modules/ini/package.json b/node_modules/ini/package.json
deleted file mode 100644
index c830a35..0000000
--- a/node_modules/ini/package.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- "author": "Isaac Z. Schlueter (http://blog.izs.me/)",
- "name": "ini",
- "description": "An ini encoder/decoder for node",
- "version": "1.3.8",
- "repository": {
- "type": "git",
- "url": "git://github.com/isaacs/ini.git"
- },
- "main": "ini.js",
- "scripts": {
- "eslint": "eslint",
- "lint": "npm run eslint -- ini.js test/*.js",
- "lintfix": "npm run lint -- --fix",
- "test": "tap",
- "posttest": "npm run lint",
- "preversion": "npm test",
- "postversion": "npm publish",
- "prepublishOnly": "git push origin --follow-tags"
- },
- "devDependencies": {
- "eslint": "^7.9.0",
- "eslint-plugin-import": "^2.22.0",
- "eslint-plugin-node": "^11.1.0",
- "eslint-plugin-promise": "^4.2.1",
- "eslint-plugin-standard": "^4.0.1",
- "tap": "14"
- },
- "license": "ISC",
- "files": [
- "ini.js"
- ]
-}
diff --git a/node_modules/interpret/CHANGELOG b/node_modules/interpret/CHANGELOG
deleted file mode 100644
index cbc8a8a..0000000
--- a/node_modules/interpret/CHANGELOG
+++ /dev/null
@@ -1,115 +0,0 @@
-v1.0.3:
- date: 2017-04-18
- changes:
- - fix buble support
-v1.0.2:
- date: 2017-03-29
- changes:
- - add support for coffeescript (now with no hyphen)
-v1.0.1:
- date: 2016-05-01
- changes:
- - add support for buble
-v1.0.0:
- date: 2015-11-18
- changes:
- - add support for babel-register
- - go stable!
-v0.6.6:
- date: 2015-09-21
- changes:
- - add support for ts-node (formerly typescript-node)
-v0.6.5:
- date: 2015-07-22
- changes:
- - add support for typescript 1.5 via typescript-node
-v0.6.4:
- date: 2015-07-07
- changes:
- - add support for earlgrey
-v0.6.3:
- date: 2015-07-03
- changes:
- - prefer babel/core to babel
-v0.6.2:
- date: 2015-05-20
- changes:
- - update module list for iced coffee-script
-v0.6.1:
- date: 2015-05-20
- changes:
- - Fix toml loader.
-v0.6.0:
- date: 2015-05-19
- changes:
- - Combine fallbacks and loaders into `extensions`.
- - Provide implementation guidance.
-v0.5.1:
- date: 2015-03-01
- changes:
- - Add support for CirruScript.
-v0.5.0:
- date: 2015-02-27
- changes:
- - Refactor es6 support via Babel (formerly 6to5)
-v0.4.3:
- date: 2015-02-09
- changes:
- - Switch support from typescript-require to typescript-register.
-v0.4.2:
- date: 2015-01-16
- changes:
- - Add support for wisp.
-v0.4.1:
- date: 2015-01-10
- changes:
- - Add support for 6to5 (es6)
-v0.4.0:
- date: 2014-01-09
- changes:
- - Add support for fallback (legacy) modules
- - Add support for module configurations
-v0.3.10:
- date: 2014-12-17
- changes:
- - Add support for json5.
-v0.3.9:
- date: 2014-12-08
- changes:
- - Add support for literate iced coffee.
-v0.3.8:
- date: 2014-11-20
- changes:
- - Add support for [cjsx](https://github.com/jsdf/coffee-react).
-v0.3.7:
- date: 2014-09-08
- changes:
- - Add support for [TypeScript](http://www.typescriptlang.org/).
-v0.3.6:
- date: 2014-08-25
- changes:
- - Add support for coffee.md.
-v0.3.5:
- date: 2014-07-03
- changes:
- - Add support for jsx.
-v0.3.4:
- date: 2014-06-27
- changes:
- - Make .js first jsVariant entry.
-v0.3.3:
- date: 2014-06-02
- changes:
- - Fix casing on livescript dependency.
-v0.3.0:
- date: 2014-04-20
- changes:
- - Simplify loading of coffee-script and iced-coffee-script.
-v0.2.0:
- date: 2014-04-20
- changes:
- - Move module loading into rechoir.
-v0.1.0:
- date: 2014-04-20
- changes:
- - Initial public release.
diff --git a/node_modules/interpret/LICENSE b/node_modules/interpret/LICENSE
deleted file mode 100644
index 7d7525d..0000000
--- a/node_modules/interpret/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2014-2018 Tyler Kellen , Blaine Bublitz , and Eric Schoffstall
-
-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/interpret/README.md b/node_modules/interpret/README.md
deleted file mode 100644
index 4dffc99..0000000
--- a/node_modules/interpret/README.md
+++ /dev/null
@@ -1,187 +0,0 @@
-
-
-
-
-
-
-# interpret
-
-[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Travis Build Status][travis-image]][travis-url] [![AppVeyor Build Status][appveyor-image]][appveyor-url] [![Coveralls Status][coveralls-image]][coveralls-url] [![Gitter chat][gitter-image]][gitter-url]
-
-A dictionary of file extensions and associated module loaders.
-
-## What is it
-This is used by [Liftoff](http://github.com/tkellen/node-liftoff) to automatically require dependencies for configuration files, and by [rechoir](http://github.com/tkellen/node-rechoir) for registering module loaders.
-
-## API
-
-### extensions
-Map file types to modules which provide a [require.extensions] loader.
-
-```js
-{
- '.babel.js': [
- {
- module: '@babel/register',
- register: function(hook) {
- // register on .js extension due to https://github.com/joyent/node/blob/v0.12.0/lib/module.js#L353
- // which only captures the final extension (.babel.js -> .js)
- hook({ extensions: '.js' });
- },
- },
- {
- module: 'babel-register',
- register: function(hook) {
- hook({ extensions: '.js' });
- },
- },
- {
- module: 'babel-core/register',
- register: function(hook) {
- hook({ extensions: '.js' });
- },
- },
- {
- module: 'babel/register',
- register: function(hook) {
- hook({ extensions: '.js' });
- },
- },
- ],
- '.babel.ts': [
- {
- module: '@babel/register',
- register: function(hook) {
- hook({ extensions: '.ts' });
- },
- },
- ],
- '.buble.js': 'buble/register',
- '.cirru': 'cirru-script/lib/register',
- '.cjsx': 'node-cjsx/register',
- '.co': 'coco',
- '.coffee': ['coffeescript/register', 'coffee-script/register', 'coffeescript', 'coffee-script'],
- '.coffee.md': ['coffeescript/register', 'coffee-script/register', 'coffeescript', 'coffee-script'],
- '.csv': 'require-csv',
- '.eg': 'earlgrey/register',
- '.esm.js': {
- module: 'esm',
- register: function(hook) {
- // register on .js extension due to https://github.com/joyent/node/blob/v0.12.0/lib/module.js#L353
- // which only captures the final extension (.babel.js -> .js)
- var esmLoader = hook(module);
- require.extensions['.js'] = esmLoader('module')._extensions['.js'];
- },
- },
- '.iced': ['iced-coffee-script/register', 'iced-coffee-script'],
- '.iced.md': 'iced-coffee-script/register',
- '.ini': 'require-ini',
- '.js': null,
- '.json': null,
- '.json5': 'json5/lib/require',
- '.jsx': [
- {
- module: '@babel/register',
- register: function(hook) {
- hook({ extensions: '.jsx' });
- },
- },
- {
- module: 'babel-register',
- register: function(hook) {
- hook({ extensions: '.jsx' });
- },
- },
- {
- module: 'babel-core/register',
- register: function(hook) {
- hook({ extensions: '.jsx' });
- },
- },
- {
- module: 'babel/register',
- register: function(hook) {
- hook({ extensions: '.jsx' });
- },
- },
- {
- module: 'node-jsx',
- register: function(hook) {
- hook.install({ extension: '.jsx', harmony: true });
- },
- },
- ],
- '.litcoffee': ['coffeescript/register', 'coffee-script/register', 'coffeescript', 'coffee-script'],
- '.liticed': 'iced-coffee-script/register',
- '.ls': ['livescript', 'LiveScript'],
- '.mjs': '/absolute/path/to/interpret/mjs-stub.js',
- '.node': null,
- '.toml': {
- module: 'toml-require',
- register: function(hook) {
- hook.install();
- },
- },
- '.ts': [
- 'ts-node/register',
- 'typescript-node/register',
- 'typescript-register',
- 'typescript-require',
- 'sucrase/register/ts',
- {
- module: '@babel/register',
- register: function(hook) {
- hook({ extensions: '.ts' });
- },
- },
- ],
- '.tsx': [
- 'ts-node/register',
- 'typescript-node/register',
- 'sucrase/register',
- {
- module: '@babel/register',
- register: function(hook) {
- hook({ extensions: '.tsx' });
- },
- },
- ],
- '.wisp': 'wisp/engine/node',
- '.xml': 'require-xml',
- '.yaml': 'require-yaml',
- '.yml': 'require-yaml',
-}
-```
-
-### jsVariants
-Same as above, but only include the extensions which are javascript variants.
-
-## How to use it
-
-Consumers should use the exported `extensions` or `jsVariants` object to determine which module should be loaded for a given extension. If a matching extension is found, consumers should do the following:
-
-1. If the value is null, do nothing.
-
-2. If the value is a string, try to require it.
-
-3. If the value is an object, try to require the `module` property. If successful, the `register` property (a function) should be called with the module passed as the first argument.
-
-4. If the value is an array, iterate over it, attempting step #2 or #3 until one of the attempts does not throw.
-
-[require.extensions]: http://nodejs.org/api/globals.html#globals_require_extensions
-
-[downloads-image]: http://img.shields.io/npm/dm/interpret.svg
-[npm-url]: https://www.npmjs.com/package/interpret
-[npm-image]: http://img.shields.io/npm/v/interpret.svg
-
-[travis-url]: https://travis-ci.org/gulpjs/interpret
-[travis-image]: http://img.shields.io/travis/gulpjs/interpret.svg?label=travis-ci
-
-[appveyor-url]: https://ci.appveyor.com/project/gulpjs/interpret
-[appveyor-image]: https://img.shields.io/appveyor/ci/gulpjs/interpret.svg?label=appveyor
-
-[coveralls-url]: https://coveralls.io/r/gulpjs/interpret
-[coveralls-image]: http://img.shields.io/coveralls/gulpjs/interpret/master.svg
-
-[gitter-url]: https://gitter.im/gulpjs/gulp
-[gitter-image]: https://badges.gitter.im/gulpjs/gulp.svg
diff --git a/node_modules/interpret/index.js b/node_modules/interpret/index.js
deleted file mode 100644
index a5c04f7..0000000
--- a/node_modules/interpret/index.js
+++ /dev/null
@@ -1,168 +0,0 @@
-var path = require('path');
-
-var mjsStub = path.join(__dirname, 'mjs-stub');
-
-var extensions = {
- '.babel.js': [
- {
- module: '@babel/register',
- register: function(hook) {
- // register on .js extension due to https://github.com/joyent/node/blob/v0.12.0/lib/module.js#L353
- // which only captures the final extension (.babel.js -> .js)
- hook({ extensions: '.js' });
- },
- },
- {
- module: 'babel-register',
- register: function(hook) {
- hook({ extensions: '.js' });
- },
- },
- {
- module: 'babel-core/register',
- register: function(hook) {
- hook({ extensions: '.js' });
- },
- },
- {
- module: 'babel/register',
- register: function(hook) {
- hook({ extensions: '.js' });
- },
- },
- ],
- '.babel.ts': [
- {
- module: '@babel/register',
- register: function(hook) {
- hook({ extensions: '.ts' });
- },
- },
- ],
- '.buble.js': 'buble/register',
- '.cirru': 'cirru-script/lib/register',
- '.cjsx': 'node-cjsx/register',
- '.co': 'coco',
- '.coffee': ['coffeescript/register', 'coffee-script/register', 'coffeescript', 'coffee-script'],
- '.coffee.md': ['coffeescript/register', 'coffee-script/register', 'coffeescript', 'coffee-script'],
- '.csv': 'require-csv',
- '.eg': 'earlgrey/register',
- '.esm.js': {
- module: 'esm',
- register: function(hook) {
- // register on .js extension due to https://github.com/joyent/node/blob/v0.12.0/lib/module.js#L353
- // which only captures the final extension (.babel.js -> .js)
- var esmLoader = hook(module);
- require.extensions['.js'] = esmLoader('module')._extensions['.js'];
- },
- },
- '.iced': ['iced-coffee-script/register', 'iced-coffee-script'],
- '.iced.md': 'iced-coffee-script/register',
- '.ini': 'require-ini',
- '.js': null,
- '.json': null,
- '.json5': 'json5/lib/require',
- '.jsx': [
- {
- module: '@babel/register',
- register: function(hook) {
- hook({ extensions: '.jsx' });
- },
- },
- {
- module: 'babel-register',
- register: function(hook) {
- hook({ extensions: '.jsx' });
- },
- },
- {
- module: 'babel-core/register',
- register: function(hook) {
- hook({ extensions: '.jsx' });
- },
- },
- {
- module: 'babel/register',
- register: function(hook) {
- hook({ extensions: '.jsx' });
- },
- },
- {
- module: 'node-jsx',
- register: function(hook) {
- hook.install({ extension: '.jsx', harmony: true });
- },
- },
- ],
- '.litcoffee': ['coffeescript/register', 'coffee-script/register', 'coffeescript', 'coffee-script'],
- '.liticed': 'iced-coffee-script/register',
- '.ls': ['livescript', 'LiveScript'],
- '.mjs': mjsStub,
- '.node': null,
- '.toml': {
- module: 'toml-require',
- register: function(hook) {
- hook.install();
- },
- },
- '.ts': [
- 'ts-node/register',
- 'typescript-node/register',
- 'typescript-register',
- 'typescript-require',
- 'sucrase/register/ts',
- {
- module: '@babel/register',
- register: function(hook) {
- hook({ extensions: '.ts' });
- },
- },
- ],
- '.tsx': [
- 'ts-node/register',
- 'typescript-node/register',
- 'sucrase/register',
- {
- module: '@babel/register',
- register: function(hook) {
- hook({ extensions: '.tsx' });
- },
- },
- ],
- '.wisp': 'wisp/engine/node',
- '.xml': 'require-xml',
- '.yaml': 'require-yaml',
- '.yml': 'require-yaml',
-};
-
-var jsVariantExtensions = [
- '.js',
- '.babel.js',
- '.babel.ts',
- '.buble.js',
- '.cirru',
- '.cjsx',
- '.co',
- '.coffee',
- '.coffee.md',
- '.eg',
- '.esm.js',
- '.iced',
- '.iced.md',
- '.jsx',
- '.litcoffee',
- '.liticed',
- '.ls',
- '.mjs',
- '.ts',
- '.tsx',
- '.wisp',
-];
-
-module.exports = {
- extensions: extensions,
- jsVariants: jsVariantExtensions.reduce(function(result, ext) {
- result[ext] = extensions[ext];
- return result;
- }, {}),
-};
diff --git a/node_modules/interpret/mjs-stub.js b/node_modules/interpret/mjs-stub.js
deleted file mode 100644
index 6a1af95..0000000
--- a/node_modules/interpret/mjs-stub.js
+++ /dev/null
@@ -1 +0,0 @@
-require.extensions['.mjs'] = null;
diff --git a/node_modules/interpret/package.json b/node_modules/interpret/package.json
deleted file mode 100644
index 0653516..0000000
--- a/node_modules/interpret/package.json
+++ /dev/null
@@ -1,75 +0,0 @@
-{
- "name": "interpret",
- "version": "1.4.0",
- "description": "A dictionary of file extensions and associated module loaders.",
- "author": "Gulp Team (http://gulpjs.com/)",
- "contributors": [
- "Blaine Bublitz ",
- "Tyler Kellen (http://goingslowly.com/)"
- ],
- "repository": "gulpjs/interpret",
- "license": "MIT",
- "engines": {
- "node": ">= 0.10"
- },
- "main": "index.js",
- "files": [
- "LICENSE",
- "index.js",
- "mjs-stub.js"
- ],
- "scripts": {
- "lint": "eslint .",
- "pretest": "rm -rf tmp/ && npm run lint",
- "test": "mocha --async-only",
- "cover": "istanbul cover _mocha --report lcovonly",
- "coveralls": "npm run cover && istanbul-coveralls"
- },
- "dependencies": {},
- "devDependencies": {
- "eslint": "^2.13.0",
- "eslint-config-gulp": "^3.0.1",
- "expect": "^1.20.2",
- "istanbul": "^0.4.3",
- "istanbul-coveralls": "^1.0.3",
- "mocha": "^3.5.3",
- "parse-node-version": "^1.0.0",
- "rechoir": "^0.6.2",
- "shelljs": "0.7.5",
- "trash-cli": "^3.0.0"
- },
- "keywords": [
- "cirru-script",
- "cjsx",
- "co",
- "coco",
- "coffee",
- "coffee-script",
- "coffee.md",
- "coffeescript",
- "csv",
- "earlgrey",
- "es",
- "es6",
- "iced",
- "iced.md",
- "iced-coffee-script",
- "ini",
- "js",
- "json",
- "json5",
- "jsx",
- "react",
- "litcoffee",
- "liticed",
- "ls",
- "livescript",
- "toml",
- "ts",
- "typescript",
- "wisp",
- "xml",
- "yaml",
- "yml"
- ]
-}
diff --git a/node_modules/invert-kv/index.js b/node_modules/invert-kv/index.js
deleted file mode 100644
index 61e2196..0000000
--- a/node_modules/invert-kv/index.js
+++ /dev/null
@@ -1,15 +0,0 @@
-'use strict';
-module.exports = function (obj) {
- if (typeof obj !== 'object') {
- throw new TypeError('Expected an object');
- }
-
- var ret = {};
-
- for (var key in obj) {
- var val = obj[key];
- ret[val] = key;
- }
-
- return ret;
-};
diff --git a/node_modules/invert-kv/package.json b/node_modules/invert-kv/package.json
deleted file mode 100644
index 1e85d9b..0000000
--- a/node_modules/invert-kv/package.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- "name": "invert-kv",
- "version": "1.0.0",
- "description": "Invert the key/value of an object. Example: {foo: 'bar'} → {bar: 'foo'}",
- "license": "MIT",
- "repository": "sindresorhus/invert-kv",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "http://sindresorhus.com"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "files": [
- "index.js"
- ],
- "keywords": [
- "object",
- "obj",
- "key",
- "value",
- "val",
- "kv",
- "invert"
- ],
- "devDependencies": {
- "mocha": "*"
- }
-}
diff --git a/node_modules/invert-kv/readme.md b/node_modules/invert-kv/readme.md
deleted file mode 100644
index 039fc7c..0000000
--- a/node_modules/invert-kv/readme.md
+++ /dev/null
@@ -1,25 +0,0 @@
-# invert-kv [![Build Status](https://travis-ci.org/sindresorhus/invert-kv.svg?branch=master)](https://travis-ci.org/sindresorhus/invert-kv)
-
-> Invert the key/value of an object. Example: `{foo: 'bar'}` → `{bar: 'foo'}`
-
-
-## Install
-
-```sh
-$ npm install --save invert-kv
-```
-
-
-## Usage
-
-```js
-var invertKv = require('invert-kv');
-
-invertKv({foo: 'bar', unicorn: 'rainbow'});
-//=> {bar: 'foo', rainbow: 'unicorn'}
-```
-
-
-## License
-
-MIT © [Sindre Sorhus](http://sindresorhus.com)
diff --git a/node_modules/is-absolute/LICENSE b/node_modules/is-absolute/LICENSE
deleted file mode 100644
index 44cf43b..0000000
--- a/node_modules/is-absolute/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, Jon Schlinkert.
-Copyright (c) 2009-2014, TJ Holowaychuk
-
-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/is-absolute/README.md b/node_modules/is-absolute/README.md
deleted file mode 100644
index edc1ceb..0000000
--- a/node_modules/is-absolute/README.md
+++ /dev/null
@@ -1,114 +0,0 @@
-# is-absolute [![NPM version](https://img.shields.io/npm/v/is-absolute.svg?style=flat)](https://www.npmjs.com/package/is-absolute) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-absolute.svg?style=flat)](https://npmjs.org/package/is-absolute) [![NPM total downloads](https://img.shields.io/npm/dt/is-absolute.svg?style=flat)](https://npmjs.org/package/is-absolute) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-absolute.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-absolute)
-
-> Returns true if a file path is absolute. Does not rely on the path module and can be used as a polyfill for node.js native `path.isAbolute`.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save is-absolute
-```
-
-Originally based on the `isAbsolute` utility method in [express](https://github.com/visionmedia/express).
-
-## Usage
-
-```js
-var isAbsolute = require('is-absolute');
-
-isAbsolute('a/b/c.js');
-//=> 'false'
-isAbsolute('/a/b/c.js');
-//=> 'true'
-```
-
-**Explicitly test windows paths**
-
-```js
-isAbsolute.posix('/foo/bar');
-isAbsolute.posix('/user/docs/Letter.txt');
-//=> true
-
-isAbsolute.posix('foo/bar');
-//=> false
-```
-
-**Explicitly test windows paths**
-
-```js
-var isAbsolute = require('is-absolute');
-
-isAbsolute.win32('c:\\');
-isAbsolute.win32('//C://user\\docs\\Letter.txt');
-isAbsolute.win32('\\\\unc\\share');
-isAbsolute.win32('\\\\unc\\share\\foo');
-isAbsolute.win32('\\\\unc\\share\\foo\\');
-isAbsolute.win32('\\\\unc\\share\\foo\\bar');
-isAbsolute.win32('\\\\unc\\share\\foo\\bar\\');
-isAbsolute.win32('\\\\unc\\share\\foo\\bar\\baz');
-//=> true
-
-isAbsolute.win32('a:foo/a/b/c/d');
-isAbsolute.win32(':\\');
-isAbsolute.win32('foo\\bar\\baz');
-isAbsolute.win32('foo\\bar\\baz\\');
-//=> false
-```
-
-## About
-
-### Related projects
-
-* [is-dotfile](https://www.npmjs.com/package/is-dotfile): Return true if a file path is (or has) a dotfile. Returns false if the… [more](https://github.com/jonschlinkert/is-dotfile) | [homepage](https://github.com/jonschlinkert/is-dotfile "Return true if a file path is (or has) a dotfile. Returns false if the path is a dot directory.")
-* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/jonschlinkert/is-glob) | [homepage](https://github.com/jonschlinkert/is-glob "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet")
-* [is-relative](https://www.npmjs.com/package/is-relative): Returns `true` if the path appears to be relative. | [homepage](https://github.com/jonschlinkert/is-relative "Returns `true` if the path appears to be relative.")
-* [is-unc-path](https://www.npmjs.com/package/is-unc-path): Returns true if a filepath is a windows UNC file path. | [homepage](https://github.com/jonschlinkert/is-unc-path "Returns true if a filepath is a windows UNC file path.")
-* [is-valid-glob](https://www.npmjs.com/package/is-valid-glob): Return true if a value is a valid glob pattern or patterns. | [homepage](https://github.com/jonschlinkert/is-valid-glob "Return true if a value is a valid glob pattern or patterns.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 35 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 1 | [es128](https://github.com/es128) |
-| 1 | [shinnn](https://github.com/shinnn) |
-| 1 | [Sobak](https://github.com/Sobak) |
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on July 13, 2017._
\ No newline at end of file
diff --git a/node_modules/is-absolute/index.js b/node_modules/is-absolute/index.js
deleted file mode 100644
index 06d6731..0000000
--- a/node_modules/is-absolute/index.js
+++ /dev/null
@@ -1,47 +0,0 @@
-'use strict';
-
-var isRelative = require('is-relative');
-var isWindows = require('is-windows');
-
-/**
- * Expose `isAbsolute`
- */
-
-module.exports = isAbsolute;
-
-/**
- * Returns true if a file path is absolute.
- *
- * @param {String} `fp`
- * @return {Boolean}
- */
-
-function isAbsolute(fp) {
- if (typeof fp !== 'string') {
- throw new TypeError('isAbsolute expects a string.');
- }
- return isWindows() ? isAbsolute.win32(fp) : isAbsolute.posix(fp);
-}
-
-/**
- * Test posix paths.
- */
-
-isAbsolute.posix = function posixPath(fp) {
- return fp.charAt(0) === '/';
-};
-
-/**
- * Test windows paths.
- */
-
-isAbsolute.win32 = function win32(fp) {
- if (/[a-z]/i.test(fp.charAt(0)) && fp.charAt(1) === ':' && fp.charAt(2) === '\\') {
- return true;
- }
- // Microsoft Azure absolute filepath
- if (fp.slice(0, 2) === '\\\\') {
- return true;
- }
- return !isRelative(fp);
-};
diff --git a/node_modules/is-absolute/package.json b/node_modules/is-absolute/package.json
deleted file mode 100644
index d0cb992..0000000
--- a/node_modules/is-absolute/package.json
+++ /dev/null
@@ -1,91 +0,0 @@
-{
- "name": "is-absolute",
- "description": "Returns true if a file path is absolute. Does not rely on the path module and can be used as a polyfill for node.js native `path.isAbolute`.",
- "version": "1.0.0",
- "homepage": "https://github.com/jonschlinkert/is-absolute",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Elan Shanker (https://github.com/es128)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Shinnosuke Watanabe (https://shinnn.github.io)",
- "(http://sobak.pl)"
- ],
- "repository": "jonschlinkert/is-absolute",
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-absolute/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "is-relative": "^1.0.0",
- "is-windows": "^1.0.1"
- },
- "devDependencies": {
- "gulp-format-md": "^1.0.0",
- "mocha": "^3.4.2"
- },
- "keywords": [
- "absolute",
- "built",
- "built-in",
- "check",
- "core",
- "detect",
- "dir",
- "file",
- "filepath",
- "is",
- "is-absolute",
- "isabsolute",
- "normalize",
- "path",
- "path-absolute",
- "path-is-absolute",
- "paths",
- "polyfill",
- "relative",
- "resolve",
- "shim",
- "slash",
- "slashes",
- "uri",
- "url",
- "util",
- "utils"
- ],
- "verb": {
- "run": true,
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "is-dotfile",
- "is-glob",
- "is-relative",
- "is-unc-path",
- "is-valid-glob"
- ]
- },
- "reflinks": [
- "verb"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/is-accessor-descriptor/LICENSE b/node_modules/is-accessor-descriptor/LICENSE
deleted file mode 100644
index e33d14b..0000000
--- a/node_modules/is-accessor-descriptor/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015-2017, 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/is-accessor-descriptor/README.md b/node_modules/is-accessor-descriptor/README.md
deleted file mode 100644
index d198e1f..0000000
--- a/node_modules/is-accessor-descriptor/README.md
+++ /dev/null
@@ -1,144 +0,0 @@
-# is-accessor-descriptor [![NPM version](https://img.shields.io/npm/v/is-accessor-descriptor.svg?style=flat)](https://www.npmjs.com/package/is-accessor-descriptor) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-accessor-descriptor.svg?style=flat)](https://npmjs.org/package/is-accessor-descriptor) [![NPM total downloads](https://img.shields.io/npm/dt/is-accessor-descriptor.svg?style=flat)](https://npmjs.org/package/is-accessor-descriptor) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-accessor-descriptor.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-accessor-descriptor)
-
-> Returns true if a value has the characteristics of a valid JavaScript accessor descriptor.
-
-Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save is-accessor-descriptor
-```
-
-## Usage
-
-```js
-var isAccessor = require('is-accessor-descriptor');
-
-isAccessor({get: function() {}});
-//=> true
-```
-
-You may also pass an object and property name to check if the property is an accessor:
-
-```js
-isAccessor(foo, 'bar');
-```
-
-## Examples
-
-`false` when not an object
-
-```js
-isAccessor('a')
-isAccessor(null)
-isAccessor([])
-//=> false
-```
-
-`true` when the object has valid properties
-
-and the properties all have the correct JavaScript types:
-
-```js
-isAccessor({get: noop, set: noop})
-isAccessor({get: noop})
-isAccessor({set: noop})
-//=> true
-```
-
-`false` when the object has invalid properties
-
-```js
-isAccessor({get: noop, set: noop, bar: 'baz'})
-isAccessor({get: noop, writable: true})
-isAccessor({get: noop, value: true})
-//=> false
-```
-
-`false` when an accessor is not a function
-
-```js
-isAccessor({get: noop, set: 'baz'})
-isAccessor({get: 'foo', set: noop})
-isAccessor({get: 'foo', bar: 'baz'})
-isAccessor({get: 'foo', set: 'baz'})
-//=> false
-```
-
-`false` when a value is not the correct type
-
-```js
-isAccessor({get: noop, set: noop, enumerable: 'foo'})
-isAccessor({set: noop, configurable: 'foo'})
-isAccessor({get: noop, configurable: 'foo'})
-//=> false
-```
-
-## About
-
-
-Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-
-
-
-Running Tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-
-
-
-Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-
-
-### Related projects
-
-You might also be interested in these projects:
-
-* [is-accessor-descriptor](https://www.npmjs.com/package/is-accessor-descriptor): Returns true if a value has the characteristics of a valid JavaScript accessor descriptor. | [homepage](https://github.com/jonschlinkert/is-accessor-descriptor "Returns true if a value has the characteristics of a valid JavaScript accessor descriptor.")
-* [is-data-descriptor](https://www.npmjs.com/package/is-data-descriptor): Returns true if a value has the characteristics of a valid JavaScript data descriptor. | [homepage](https://github.com/jonschlinkert/is-data-descriptor "Returns true if a value has the characteristics of a valid JavaScript data descriptor.")
-* [is-descriptor](https://www.npmjs.com/package/is-descriptor): Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for… [more](https://github.com/jonschlinkert/is-descriptor) | [homepage](https://github.com/jonschlinkert/is-descriptor "Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for data descriptors and accessor descriptors.")
-* [is-plain-object](https://www.npmjs.com/package/is-plain-object): Returns true if an object was created by the `Object` constructor. | [homepage](https://github.com/jonschlinkert/is-plain-object "Returns true if an object was created by the `Object` constructor.")
-* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.")
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 22 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 2 | [realityking](https://github.com/realityking) |
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on November 01, 2017._
\ No newline at end of file
diff --git a/node_modules/is-accessor-descriptor/index.js b/node_modules/is-accessor-descriptor/index.js
deleted file mode 100644
index d2e6fe8..0000000
--- a/node_modules/is-accessor-descriptor/index.js
+++ /dev/null
@@ -1,69 +0,0 @@
-/*!
- * 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/is-accessor-descriptor/node_modules/kind-of/CHANGELOG.md b/node_modules/is-accessor-descriptor/node_modules/kind-of/CHANGELOG.md
deleted file mode 100644
index 01687d5..0000000
--- a/node_modules/is-accessor-descriptor/node_modules/kind-of/CHANGELOG.md
+++ /dev/null
@@ -1,160 +0,0 @@
-# Release history
-
-All notable changes to this project will be documented in this file.
-
-The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
-and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
-
-
- Guiding Principles
-
-- Changelogs are for humans, not machines.
-- There should be an entry for every single version.
-- The same types of changes should be grouped.
-- Versions and sections should be linkable.
-- The latest version comes first.
-- The release date of each versions is displayed.
-- Mention whether you follow Semantic Versioning.
-
-
-
-
- Types of changes
-
-Changelog entries are classified using the following labels _(from [keep-a-changelog](http://keepachangelog.com/)_):
-
-- `Added` for new features.
-- `Changed` for changes in existing functionality.
-- `Deprecated` for soon-to-be removed features.
-- `Removed` for now removed features.
-- `Fixed` for any bug fixes.
-- `Security` in case of vulnerabilities.
-
-
-
-## [6.0.3] - 2020-01-16
-
-- Merge pull request #31 for issue #30
-
-## [6.0.0] - 2017-10-13
-
-- refactor code to be more performant
-- refactor benchmarks
-
-## [5.1.0] - 2017-10-13
-
-**Added**
-
-- Merge pull request #15 from aretecode/patch-1
-- adds support and tests for string & array iterators
-
-**Changed**
-
-- updates benchmarks
-
-## [5.0.2] - 2017-08-02
-
-- Merge pull request #14 from struct78/master
-- Added `undefined` check
-
-## [5.0.0] - 2017-06-21
-
-- Merge pull request #12 from aretecode/iterator
-- Set Iterator + Map Iterator
-- streamline `isbuffer`, minor edits
-
-## [4.0.0] - 2017-05-19
-
-- Merge pull request #8 from tunnckoCore/master
-- update deps
-
-## [3.2.2] - 2017-05-16
-
-- fix version
-
-## [3.2.1] - 2017-05-16
-
-- add browserify
-
-## [3.2.0] - 2017-04-25
-
-- Merge pull request #10 from ksheedlo/unrequire-buffer
-- add `promise` support and tests
-- Remove unnecessary `Buffer` check
-
-## [3.1.0] - 2016-12-07
-
-- Merge pull request #7 from laggingreflex/err
-- add support for `error` and tests
-- run update
-
-## [3.0.4] - 2016-07-29
-
-- move tests
-- run update
-
-## [3.0.3] - 2016-05-03
-
-- fix prepublish script
-- remove unused dep
-
-## [3.0.0] - 2015-11-17
-
-- add typed array support
-- Merge pull request #5 from miguelmota/typed-arrays
-- adds new tests
-
-## [2.0.1] - 2015-08-21
-
-- use `is-buffer` module
-
-## [2.0.0] - 2015-05-31
-
-- Create fallback for `Array.isArray` if used as a browser package
-- Merge pull request #2 from dtothefp/patch-1
-- Merge pull request #3 from pdehaan/patch-1
-- Merge branch 'master' of https://github.com/chorks/kind-of into chorks-master
-- optimizations, mostly date and regex
-
-## [1.1.0] - 2015-02-09
-
-- adds `buffer` support
-- adds tests for `buffer`
-
-## [1.0.0] - 2015-01-19
-
-- update benchmarks
-- optimizations based on benchmarks
-
-## [0.1.2] - 2014-10-26
-
-- return `typeof` value if it's not an object. very slight speed improvement
-- use `.slice`
-- adds benchmarks
-
-## [0.1.0] - 2014-9-26
-
-- first commit
-
-[6.0.0]: https://github.com/jonschlinkert/kind-of/compare/5.1.0...6.0.0
-[5.1.0]: https://github.com/jonschlinkert/kind-of/compare/5.0.2...5.1.0
-[5.0.2]: https://github.com/jonschlinkert/kind-of/compare/5.0.1...5.0.2
-[5.0.1]: https://github.com/jonschlinkert/kind-of/compare/5.0.0...5.0.1
-[5.0.0]: https://github.com/jonschlinkert/kind-of/compare/4.0.0...5.0.0
-[4.0.0]: https://github.com/jonschlinkert/kind-of/compare/3.2.2...4.0.0
-[3.2.2]: https://github.com/jonschlinkert/kind-of/compare/3.2.1...3.2.2
-[3.2.1]: https://github.com/jonschlinkert/kind-of/compare/3.2.0...3.2.1
-[3.2.0]: https://github.com/jonschlinkert/kind-of/compare/3.1.0...3.2.0
-[3.1.0]: https://github.com/jonschlinkert/kind-of/compare/3.0.4...3.1.0
-[3.0.4]: https://github.com/jonschlinkert/kind-of/compare/3.0.3...3.0.4
-[3.0.3]: https://github.com/jonschlinkert/kind-of/compare/3.0.0...3.0.3
-[3.0.0]: https://github.com/jonschlinkert/kind-of/compare/2.0.1...3.0.0
-[2.0.1]: https://github.com/jonschlinkert/kind-of/compare/2.0.0...2.0.1
-[2.0.0]: https://github.com/jonschlinkert/kind-of/compare/1.1.0...2.0.0
-[1.1.0]: https://github.com/jonschlinkert/kind-of/compare/1.0.0...1.1.0
-[1.0.0]: https://github.com/jonschlinkert/kind-of/compare/0.1.2...1.0.0
-[0.1.2]: https://github.com/jonschlinkert/kind-of/compare/0.1.0...0.1.2
-[0.1.0]: https://github.com/jonschlinkert/kind-of/commit/2fae09b0b19b1aadb558e9be39f0c3ef6034eb87
-
-[Unreleased]: https://github.com/jonschlinkert/kind-of/compare/0.1.2...HEAD
-[keep-a-changelog]: https://github.com/olivierlacan/keep-a-changelog
\ No newline at end of file
diff --git a/node_modules/is-accessor-descriptor/node_modules/kind-of/LICENSE b/node_modules/is-accessor-descriptor/node_modules/kind-of/LICENSE
deleted file mode 100644
index 3f2eca1..0000000
--- a/node_modules/is-accessor-descriptor/node_modules/kind-of/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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/is-accessor-descriptor/node_modules/kind-of/README.md b/node_modules/is-accessor-descriptor/node_modules/kind-of/README.md
deleted file mode 100644
index 0411dc5..0000000
--- a/node_modules/is-accessor-descriptor/node_modules/kind-of/README.md
+++ /dev/null
@@ -1,367 +0,0 @@
-# kind-of [![NPM version](https://img.shields.io/npm/v/kind-of.svg?style=flat)](https://www.npmjs.com/package/kind-of) [![NPM monthly downloads](https://img.shields.io/npm/dm/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![NPM total downloads](https://img.shields.io/npm/dt/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/kind-of.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/kind-of)
-
-> Get the native type of a value.
-
-Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save kind-of
-```
-
-Install with [bower](https://bower.io/)
-
-```sh
-$ bower install kind-of --save
-```
-
-## Why use this?
-
-1. [it's fast](#benchmarks) | [optimizations](#optimizations)
-2. [better type checking](#better-type-checking)
-
-## Usage
-
-> es5, es6, and browser ready
-
-```js
-var kindOf = require('kind-of');
-
-kindOf(undefined);
-//=> 'undefined'
-
-kindOf(null);
-//=> 'null'
-
-kindOf(true);
-//=> 'boolean'
-
-kindOf(false);
-//=> 'boolean'
-
-kindOf(new Buffer(''));
-//=> 'buffer'
-
-kindOf(42);
-//=> 'number'
-
-kindOf('str');
-//=> 'string'
-
-kindOf(arguments);
-//=> 'arguments'
-
-kindOf({});
-//=> 'object'
-
-kindOf(Object.create(null));
-//=> 'object'
-
-kindOf(new Test());
-//=> 'object'
-
-kindOf(new Date());
-//=> 'date'
-
-kindOf([1, 2, 3]);
-//=> 'array'
-
-kindOf(/foo/);
-//=> 'regexp'
-
-kindOf(new RegExp('foo'));
-//=> 'regexp'
-
-kindOf(new Error('error'));
-//=> 'error'
-
-kindOf(function () {});
-//=> 'function'
-
-kindOf(function * () {});
-//=> 'generatorfunction'
-
-kindOf(Symbol('str'));
-//=> 'symbol'
-
-kindOf(new Map());
-//=> 'map'
-
-kindOf(new WeakMap());
-//=> 'weakmap'
-
-kindOf(new Set());
-//=> 'set'
-
-kindOf(new WeakSet());
-//=> 'weakset'
-
-kindOf(new Int8Array());
-//=> 'int8array'
-
-kindOf(new Uint8Array());
-//=> 'uint8array'
-
-kindOf(new Uint8ClampedArray());
-//=> 'uint8clampedarray'
-
-kindOf(new Int16Array());
-//=> 'int16array'
-
-kindOf(new Uint16Array());
-//=> 'uint16array'
-
-kindOf(new Int32Array());
-//=> 'int32array'
-
-kindOf(new Uint32Array());
-//=> 'uint32array'
-
-kindOf(new Float32Array());
-//=> 'float32array'
-
-kindOf(new Float64Array());
-//=> 'float64array'
-```
-
-## Benchmarks
-
-Benchmarked against [typeof](http://github.com/CodingFu/typeof) and [type-of](https://github.com/ForbesLindesay/type-of).
-
-```bash
-# arguments (32 bytes)
- kind-of x 17,024,098 ops/sec ±1.90% (86 runs sampled)
- lib-type-of x 11,926,235 ops/sec ±1.34% (83 runs sampled)
- lib-typeof x 9,245,257 ops/sec ±1.22% (87 runs sampled)
-
- fastest is kind-of (by 161% avg)
-
-# array (22 bytes)
- kind-of x 17,196,492 ops/sec ±1.07% (88 runs sampled)
- lib-type-of x 8,838,283 ops/sec ±1.02% (87 runs sampled)
- lib-typeof x 8,677,848 ops/sec ±0.87% (87 runs sampled)
-
- fastest is kind-of (by 196% avg)
-
-# boolean (24 bytes)
- kind-of x 16,841,600 ops/sec ±1.10% (86 runs sampled)
- lib-type-of x 8,096,787 ops/sec ±0.95% (87 runs sampled)
- lib-typeof x 8,423,345 ops/sec ±1.15% (86 runs sampled)
-
- fastest is kind-of (by 204% avg)
-
-# buffer (38 bytes)
- kind-of x 14,848,060 ops/sec ±1.05% (86 runs sampled)
- lib-type-of x 3,671,577 ops/sec ±1.49% (87 runs sampled)
- lib-typeof x 8,360,236 ops/sec ±1.24% (86 runs sampled)
-
- fastest is kind-of (by 247% avg)
-
-# date (30 bytes)
- kind-of x 16,067,761 ops/sec ±1.58% (86 runs sampled)
- lib-type-of x 8,954,436 ops/sec ±1.40% (87 runs sampled)
- lib-typeof x 8,488,307 ops/sec ±1.51% (84 runs sampled)
-
- fastest is kind-of (by 184% avg)
-
-# error (36 bytes)
- kind-of x 9,634,090 ops/sec ±1.12% (89 runs sampled)
- lib-type-of x 7,735,624 ops/sec ±1.32% (86 runs sampled)
- lib-typeof x 7,442,160 ops/sec ±1.11% (90 runs sampled)
-
- fastest is kind-of (by 127% avg)
-
-# function (34 bytes)
- kind-of x 10,031,494 ops/sec ±1.27% (86 runs sampled)
- lib-type-of x 9,502,757 ops/sec ±1.17% (89 runs sampled)
- lib-typeof x 8,278,985 ops/sec ±1.08% (88 runs sampled)
-
- fastest is kind-of (by 113% avg)
-
-# null (24 bytes)
- kind-of x 18,159,808 ops/sec ±1.92% (86 runs sampled)
- lib-type-of x 12,927,635 ops/sec ±1.01% (88 runs sampled)
- lib-typeof x 7,958,234 ops/sec ±1.21% (89 runs sampled)
-
- fastest is kind-of (by 174% avg)
-
-# number (22 bytes)
- kind-of x 17,846,779 ops/sec ±0.91% (85 runs sampled)
- lib-type-of x 3,316,636 ops/sec ±1.19% (86 runs sampled)
- lib-typeof x 2,329,477 ops/sec ±2.21% (85 runs sampled)
-
- fastest is kind-of (by 632% avg)
-
-# object-plain (47 bytes)
- kind-of x 7,085,155 ops/sec ±1.05% (88 runs sampled)
- lib-type-of x 8,870,930 ops/sec ±1.06% (83 runs sampled)
- lib-typeof x 8,716,024 ops/sec ±1.05% (87 runs sampled)
-
- fastest is lib-type-of (by 112% avg)
-
-# regex (25 bytes)
- kind-of x 14,196,052 ops/sec ±1.65% (84 runs sampled)
- lib-type-of x 9,554,164 ops/sec ±1.25% (88 runs sampled)
- lib-typeof x 8,359,691 ops/sec ±1.07% (87 runs sampled)
-
- fastest is kind-of (by 158% avg)
-
-# string (33 bytes)
- kind-of x 16,131,428 ops/sec ±1.41% (85 runs sampled)
- lib-type-of x 7,273,172 ops/sec ±1.05% (87 runs sampled)
- lib-typeof x 7,382,635 ops/sec ±1.17% (85 runs sampled)
-
- fastest is kind-of (by 220% avg)
-
-# symbol (34 bytes)
- kind-of x 17,011,537 ops/sec ±1.24% (86 runs sampled)
- lib-type-of x 3,492,454 ops/sec ±1.23% (89 runs sampled)
- lib-typeof x 7,471,235 ops/sec ±2.48% (87 runs sampled)
-
- fastest is kind-of (by 310% avg)
-
-# template-strings (36 bytes)
- kind-of x 15,434,250 ops/sec ±1.46% (83 runs sampled)
- lib-type-of x 7,157,907 ops/sec ±0.97% (87 runs sampled)
- lib-typeof x 7,517,986 ops/sec ±0.92% (86 runs sampled)
-
- fastest is kind-of (by 210% avg)
-
-# undefined (29 bytes)
- kind-of x 19,167,115 ops/sec ±1.71% (87 runs sampled)
- lib-type-of x 15,477,740 ops/sec ±1.63% (85 runs sampled)
- lib-typeof x 19,075,495 ops/sec ±1.17% (83 runs sampled)
-
- fastest is lib-typeof,kind-of
-
-```
-
-## Optimizations
-
-In 7 out of 8 cases, this library is 2x-10x faster than other top libraries included in the benchmarks. There are a few things that lead to this performance advantage, none of them hard and fast rules, but all of them simple and repeatable in almost any code library:
-
-1. Optimize around the fastest and most common use cases first. Of course, this will change from project-to-project, but I took some time to understand how and why `typeof` checks were being used in my own libraries and other libraries I use a lot.
-2. Optimize around bottlenecks - In other words, the order in which conditionals are implemented is significant, because each check is only as fast as the failing checks that came before it. Here, the biggest bottleneck by far is checking for plain objects (an object that was created by the `Object` constructor). I opted to make this check happen by process of elimination rather than brute force up front (e.g. by using something like `val.constructor.name`), so that every other type check would not be penalized it.
-3. Don't do uneccessary processing - why do `.slice(8, -1).toLowerCase();` just to get the word `regex`? It's much faster to do `if (type === '[object RegExp]') return 'regex'`
-4. There is no reason to make the code in a microlib as terse as possible, just to win points for making it shorter. It's always better to favor performant code over terse code. You will always only be using a single `require()` statement to use the library anyway, regardless of how the code is written.
-
-## Better type checking
-
-kind-of seems to be more consistently "correct" than other type checking libs I've looked at. For example, here are some differing results from other popular libs:
-
-### [typeof](https://github.com/CodingFu/typeof) lib
-
-Incorrectly identifies instances of custom constructors (pretty common):
-
-```js
-var typeOf = require('typeof');
-function Test() {}
-console.log(typeOf(new Test()));
-//=> 'test'
-```
-
-Returns `object` instead of `arguments`:
-
-```js
-function foo() {
- console.log(typeOf(arguments)) //=> 'object'
-}
-foo();
-```
-
-### [type-of](https://github.com/ForbesLindesay/type-of) lib
-
-Incorrectly returns `object` for generator functions, buffers, `Map`, `Set`, `WeakMap` and `WeakSet`:
-
-```js
-function * foo() {}
-console.log(typeOf(foo));
-//=> 'object'
-console.log(typeOf(new Buffer('')));
-//=> 'object'
-console.log(typeOf(new Map()));
-//=> 'object'
-console.log(typeOf(new Set()));
-//=> 'object'
-console.log(typeOf(new WeakMap()));
-//=> 'object'
-console.log(typeOf(new WeakSet()));
-//=> 'object'
-```
-
-## About
-
-
-Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-
-
-
-Running Tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-
-
-
-Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-
-
-### Related projects
-
-You might also be interested in these projects:
-
-* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/micromatch/is-glob) | [homepage](https://github.com/micromatch/is-glob "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet")
-* [is-number](https://www.npmjs.com/package/is-number): Returns true if a number or string value is a finite number. Useful for regex… [more](https://github.com/jonschlinkert/is-number) | [homepage](https://github.com/jonschlinkert/is-number "Returns true if a number or string value is a finite number. Useful for regex matches, parsing, user input, etc.")
-* [is-primitive](https://www.npmjs.com/package/is-primitive): Returns `true` if the value is a primitive. | [homepage](https://github.com/jonschlinkert/is-primitive "Returns `true` if the value is a primitive. ")
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 102 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 3 | [aretecode](https://github.com/aretecode) |
-| 2 | [miguelmota](https://github.com/miguelmota) |
-| 1 | [doowb](https://github.com/doowb) |
-| 1 | [dtothefp](https://github.com/dtothefp) |
-| 1 | [ianstormtaylor](https://github.com/ianstormtaylor) |
-| 1 | [ksheedlo](https://github.com/ksheedlo) |
-| 1 | [pdehaan](https://github.com/pdehaan) |
-| 1 | [laggingreflex](https://github.com/laggingreflex) |
-| 1 | [tunnckoCore](https://github.com/tunnckoCore) |
-| 1 | [xiaofen9](https://github.com/xiaofen9) |
-
-### Author
-
-**Jon Schlinkert**
-
-* [GitHub Profile](https://github.com/jonschlinkert)
-* [Twitter Profile](https://twitter.com/jonschlinkert)
-* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert)
-
-### License
-
-Copyright © 2020, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on January 16, 2020._
\ No newline at end of file
diff --git a/node_modules/is-accessor-descriptor/node_modules/kind-of/index.js b/node_modules/is-accessor-descriptor/node_modules/kind-of/index.js
deleted file mode 100644
index dfa799b..0000000
--- a/node_modules/is-accessor-descriptor/node_modules/kind-of/index.js
+++ /dev/null
@@ -1,129 +0,0 @@
-var toString = Object.prototype.toString;
-
-module.exports = function kindOf(val) {
- if (val === void 0) return 'undefined';
- if (val === null) return 'null';
-
- var type = typeof val;
- if (type === 'boolean') return 'boolean';
- if (type === 'string') return 'string';
- if (type === 'number') return 'number';
- if (type === 'symbol') return 'symbol';
- if (type === 'function') {
- return isGeneratorFn(val) ? 'generatorfunction' : 'function';
- }
-
- if (isArray(val)) return 'array';
- if (isBuffer(val)) return 'buffer';
- if (isArguments(val)) return 'arguments';
- if (isDate(val)) return 'date';
- if (isError(val)) return 'error';
- if (isRegexp(val)) return 'regexp';
-
- switch (ctorName(val)) {
- case 'Symbol': return 'symbol';
- case 'Promise': return 'promise';
-
- // Set, Map, WeakSet, WeakMap
- case 'WeakMap': return 'weakmap';
- case 'WeakSet': return 'weakset';
- case 'Map': return 'map';
- case 'Set': return 'set';
-
- // 8-bit typed arrays
- case 'Int8Array': return 'int8array';
- case 'Uint8Array': return 'uint8array';
- case 'Uint8ClampedArray': return 'uint8clampedarray';
-
- // 16-bit typed arrays
- case 'Int16Array': return 'int16array';
- case 'Uint16Array': return 'uint16array';
-
- // 32-bit typed arrays
- case 'Int32Array': return 'int32array';
- case 'Uint32Array': return 'uint32array';
- case 'Float32Array': return 'float32array';
- case 'Float64Array': return 'float64array';
- }
-
- if (isGeneratorObj(val)) {
- return 'generator';
- }
-
- // Non-plain objects
- type = toString.call(val);
- switch (type) {
- case '[object Object]': return 'object';
- // iterators
- case '[object Map Iterator]': return 'mapiterator';
- case '[object Set Iterator]': return 'setiterator';
- case '[object String Iterator]': return 'stringiterator';
- case '[object Array Iterator]': return 'arrayiterator';
- }
-
- // other
- return type.slice(8, -1).toLowerCase().replace(/\s/g, '');
-};
-
-function ctorName(val) {
- return typeof val.constructor === 'function' ? val.constructor.name : null;
-}
-
-function isArray(val) {
- if (Array.isArray) return Array.isArray(val);
- return val instanceof Array;
-}
-
-function isError(val) {
- return val instanceof Error || (typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number');
-}
-
-function isDate(val) {
- if (val instanceof Date) return true;
- return typeof val.toDateString === 'function'
- && typeof val.getDate === 'function'
- && typeof val.setDate === 'function';
-}
-
-function isRegexp(val) {
- if (val instanceof RegExp) return true;
- return typeof val.flags === 'string'
- && typeof val.ignoreCase === 'boolean'
- && typeof val.multiline === 'boolean'
- && typeof val.global === 'boolean';
-}
-
-function isGeneratorFn(name, val) {
- return ctorName(name) === 'GeneratorFunction';
-}
-
-function isGeneratorObj(val) {
- return typeof val.throw === 'function'
- && typeof val.return === 'function'
- && typeof val.next === 'function';
-}
-
-function isArguments(val) {
- try {
- if (typeof val.length === 'number' && typeof val.callee === 'function') {
- return true;
- }
- } catch (err) {
- if (err.message.indexOf('callee') !== -1) {
- return true;
- }
- }
- return false;
-}
-
-/**
- * If you need to support Safari 5-7 (8-10 yr-old browser),
- * take a look at https://github.com/feross/is-buffer
- */
-
-function isBuffer(val) {
- if (val.constructor && typeof val.constructor.isBuffer === 'function') {
- return val.constructor.isBuffer(val);
- }
- return false;
-}
diff --git a/node_modules/is-accessor-descriptor/node_modules/kind-of/package.json b/node_modules/is-accessor-descriptor/node_modules/kind-of/package.json
deleted file mode 100644
index 5820cad..0000000
--- a/node_modules/is-accessor-descriptor/node_modules/kind-of/package.json
+++ /dev/null
@@ -1,88 +0,0 @@
-{
- "name": "kind-of",
- "description": "Get the native type of a value.",
- "version": "6.0.3",
- "homepage": "https://github.com/jonschlinkert/kind-of",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "David Fox-Powell (https://dtothefp.github.io/me)",
- "James (https://twitter.com/aretecode)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Ken Sheedlo (kensheedlo.com)",
- "laggingreflex (https://github.com/laggingreflex)",
- "Miguel Mota (https://miguelmota.com)",
- "Peter deHaan (http://about.me/peterdehaan)",
- "tunnckoCore (https://i.am.charlike.online)"
- ],
- "repository": "jonschlinkert/kind-of",
- "bugs": {
- "url": "https://github.com/jonschlinkert/kind-of/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha",
- "prepublish": "browserify -o browser.js -e index.js -s index --bare"
- },
- "devDependencies": {
- "benchmarked": "^2.0.0",
- "browserify": "^14.4.0",
- "gulp-format-md": "^1.0.0",
- "mocha": "^4.0.1",
- "write": "^1.0.3"
- },
- "keywords": [
- "arguments",
- "array",
- "boolean",
- "check",
- "date",
- "function",
- "is",
- "is-type",
- "is-type-of",
- "kind",
- "kind-of",
- "number",
- "object",
- "of",
- "regexp",
- "string",
- "test",
- "type",
- "type-of",
- "typeof",
- "types"
- ],
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- },
- "related": {
- "list": [
- "is-glob",
- "is-number",
- "is-primitive"
- ]
- },
- "reflinks": [
- "type-of",
- "typeof",
- "verb"
- ]
- }
-}
diff --git a/node_modules/is-accessor-descriptor/package.json b/node_modules/is-accessor-descriptor/package.json
deleted file mode 100644
index 47b97ac..0000000
--- a/node_modules/is-accessor-descriptor/package.json
+++ /dev/null
@@ -1,73 +0,0 @@
-{
- "name": "is-accessor-descriptor",
- "description": "Returns true if a value has the characteristics of a valid JavaScript accessor descriptor.",
- "version": "1.0.0",
- "homepage": "https://github.com/jonschlinkert/is-accessor-descriptor",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Rouven Weßling (www.rouvenwessling.de)"
- ],
- "repository": "jonschlinkert/is-accessor-descriptor",
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-accessor-descriptor/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "kind-of": "^6.0.0"
- },
- "devDependencies": {
- "gulp-format-md": "^1.0.0",
- "mocha": "^3.5.3"
- },
- "keywords": [
- "accessor",
- "check",
- "data",
- "descriptor",
- "get",
- "getter",
- "is",
- "keys",
- "object",
- "properties",
- "property",
- "set",
- "setter",
- "type",
- "valid",
- "value"
- ],
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "is-accessor-descriptor",
- "is-data-descriptor",
- "is-descriptor",
- "is-plain-object",
- "isobject"
- ]
- },
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/is-arrayish/.editorconfig b/node_modules/is-arrayish/.editorconfig
deleted file mode 100644
index 4c017f8..0000000
--- a/node_modules/is-arrayish/.editorconfig
+++ /dev/null
@@ -1,18 +0,0 @@
-root = true
-
-[*]
-indent_style = tab
-end_of_line = lf
-charset = utf-8
-trim_trailing_whitespace = true
-insert_final_newline = true
-
-[*.coffee]
-indent_style = space
-
-[{package.json,*.yml}]
-indent_style = space
-indent_size = 2
-
-[*.md]
-trim_trailing_whitespace = false
diff --git a/node_modules/is-arrayish/.istanbul.yml b/node_modules/is-arrayish/.istanbul.yml
deleted file mode 100644
index 19fbec3..0000000
--- a/node_modules/is-arrayish/.istanbul.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-instrumentation:
- excludes:
- - test.js
- - test/**/*
diff --git a/node_modules/is-arrayish/.npmignore b/node_modules/is-arrayish/.npmignore
deleted file mode 100644
index 8d5eacb..0000000
--- a/node_modules/is-arrayish/.npmignore
+++ /dev/null
@@ -1,5 +0,0 @@
-/coverage/
-/test.js
-/test/
-*.sw[a-p]
-/node_modules/
diff --git a/node_modules/is-arrayish/.travis.yml b/node_modules/is-arrayish/.travis.yml
deleted file mode 100644
index 5a04243..0000000
--- a/node_modules/is-arrayish/.travis.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-language: node_js
-
-script:
- - node_modules/.bin/istanbul cover node_modules/.bin/_mocha -- --compilers coffee:coffee-script/register
- - cat coverage/lcov.info | node_modules/.bin/coveralls
-node_js:
- - "0.10"
- - "0.11"
- - "0.12"
- - "iojs"
-os:
- - linux
- - osx
-
-notifications:
- slack:
- secure: oOt8QGzdrPDsTMcyahtIq5Q+0U1iwfgJgFCxBLsomQ0bpIMn+y5m4viJydA2UinHPGc944HS3LMZS9iKQyv+DjTgbhUyNXqeVjtxCwRe37f5rKQlXVvdfmjHk2kln4H8DcK3r5Qd/+2hd9BeMsp2GImTrkRSud1CZQlhhe5IgZOboSoWpGVMMy1iazWT06tAtiB2LRVhmsdUaFZDWAhGZ+UAvCPf+mnBOAylIj+U0GDrofhfTi25RK0gddG2f/p2M1HCu49O6wECGWkt2hVei233DkNJyLLLJVcvmhf+aXkV5TjMyaoxh/HdcV4DrA7KvYuWmWWKsINa9hlwAsdd/FYmJ6PjRkKWas2JoQ1C+qOzDxyQvn3CaUZFKD99pdsq0rBBZujqXQKZZ/hWb/CE74BI6fKmqQkiEPaD/7uADj04FEg6HVBZaMCyauOaK5b3VC97twbALZ1qVxYV6mU+zSEvnUbpnjjvRO0fSl9ZHA+rzkW73kX3GmHY0wAozEZbSy7QLuZlQ2QtHmBLr+APaGMdL1sFF9qFfzqKy0WDbSE0WS6hpAEJpTsjYmeBrnI8UmK3m++iEgyQPvZoH9LhUT+ek7XIfHZMe04BmC6wuO24/RfpmR6bQK9VMarFCYlBiWxg/z30vkP0KTpUi3o/cqFm7/Noxc0i2LVqM3E0Sy4=
diff --git a/node_modules/is-arrayish/LICENSE b/node_modules/is-arrayish/LICENSE
deleted file mode 100644
index 0a5f461..0000000
--- a/node_modules/is-arrayish/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015 JD Ballard
-
-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/is-arrayish/README.md b/node_modules/is-arrayish/README.md
deleted file mode 100644
index 7d36072..0000000
--- a/node_modules/is-arrayish/README.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# node-is-arrayish [![Travis-CI.org Build Status](https://img.shields.io/travis/Qix-/node-is-arrayish.svg?style=flat-square)](https://travis-ci.org/Qix-/node-is-arrayish) [![Coveralls.io Coverage Rating](https://img.shields.io/coveralls/Qix-/node-is-arrayish.svg?style=flat-square)](https://coveralls.io/r/Qix-/node-is-arrayish)
-> Determines if an object can be used like an Array
-
-## Example
-```javascript
-var isArrayish = require('is-arrayish');
-
-isArrayish([]); // true
-isArrayish({__proto__: []}); // true
-isArrayish({}); // false
-isArrayish({length:10}); // false
-```
-
-## License
-Licensed under the [MIT License](http://opensource.org/licenses/MIT).
-You can find a copy of it in [LICENSE](LICENSE).
diff --git a/node_modules/is-arrayish/index.js b/node_modules/is-arrayish/index.js
deleted file mode 100644
index 5b97186..0000000
--- a/node_modules/is-arrayish/index.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-
-module.exports = function isArrayish(obj) {
- if (!obj) {
- return false;
- }
-
- return obj instanceof Array || Array.isArray(obj) ||
- (obj.length >= 0 && obj.splice instanceof Function);
-};
diff --git a/node_modules/is-arrayish/package.json b/node_modules/is-arrayish/package.json
deleted file mode 100644
index 8b2d1c3..0000000
--- a/node_modules/is-arrayish/package.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "name": "is-arrayish",
- "description": "Determines if an object can be used as an array",
- "version": "0.2.1",
- "author": "Qix (http://github.com/qix-)",
- "keywords": [
- "is",
- "array",
- "duck",
- "type",
- "arrayish",
- "similar",
- "proto",
- "prototype",
- "type"
- ],
- "license": "MIT",
- "scripts": {
- "pretest": "xo",
- "test": "mocha --compilers coffee:coffee-script/register"
- },
- "repository": {
- "type": "git",
- "url": "https://github.com/qix-/node-is-arrayish.git"
- },
- "devDependencies": {
- "coffee-script": "^1.9.3",
- "coveralls": "^2.11.2",
- "istanbul": "^0.3.17",
- "mocha": "^2.2.5",
- "should": "^7.0.1",
- "xo": "^0.6.1"
- }
-}
diff --git a/node_modules/is-binary-path/index.js b/node_modules/is-binary-path/index.js
deleted file mode 100644
index 6c8c7e7..0000000
--- a/node_modules/is-binary-path/index.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-var path = require('path');
-var binaryExtensions = require('binary-extensions');
-var exts = Object.create(null);
-
-binaryExtensions.forEach(function (el) {
- exts[el] = true;
-});
-
-module.exports = function (filepath) {
- return path.extname(filepath).slice(1).toLowerCase() in exts;
-};
diff --git a/node_modules/is-binary-path/license b/node_modules/is-binary-path/license
deleted file mode 100644
index 654d0bf..0000000
--- a/node_modules/is-binary-path/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus (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/is-binary-path/package.json b/node_modules/is-binary-path/package.json
deleted file mode 100644
index cd21d88..0000000
--- a/node_modules/is-binary-path/package.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "name": "is-binary-path",
- "version": "1.0.1",
- "description": "Check if a filepath is a binary file",
- "license": "MIT",
- "repository": "sindresorhus/is-binary-path",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "node test.js"
- },
- "files": [
- "index.js"
- ],
- "keywords": [
- "bin",
- "binary",
- "ext",
- "extensions",
- "extension",
- "file",
- "path",
- "check",
- "detect",
- "is"
- ],
- "dependencies": {
- "binary-extensions": "^1.0.0"
- },
- "devDependencies": {
- "ava": "0.0.4"
- }
-}
diff --git a/node_modules/is-binary-path/readme.md b/node_modules/is-binary-path/readme.md
deleted file mode 100644
index a17d6a2..0000000
--- a/node_modules/is-binary-path/readme.md
+++ /dev/null
@@ -1,34 +0,0 @@
-# is-binary-path [![Build Status](https://travis-ci.org/sindresorhus/is-binary-path.svg?branch=master)](https://travis-ci.org/sindresorhus/is-binary-path)
-
-> Check if a filepath is a binary file
-
-
-## Install
-
-```
-$ npm install --save is-binary-path
-```
-
-
-## Usage
-
-```js
-var isBinaryPath = require('is-binary-path');
-
-isBinaryPath('src/unicorn.png');
-//=> true
-
-isBinaryPath('src/unicorn.txt');
-//=> false
-```
-
-
-## Related
-
-- [`binary-extensions`](https://github.com/sindresorhus/binary-extensions) - List of binary file extensions
-- [`is-text-path`](https://github.com/sindresorhus/is-text-path) - Check if a filepath is a text file
-
-
-## License
-
-MIT © [Sindre Sorhus](http://sindresorhus.com)
diff --git a/node_modules/is-buffer/LICENSE b/node_modules/is-buffer/LICENSE
deleted file mode 100644
index 0c068ce..0000000
--- a/node_modules/is-buffer/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Feross Aboukhadijeh
-
-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/is-buffer/README.md b/node_modules/is-buffer/README.md
deleted file mode 100644
index cce0a8c..0000000
--- a/node_modules/is-buffer/README.md
+++ /dev/null
@@ -1,53 +0,0 @@
-# is-buffer [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url]
-
-[travis-image]: https://img.shields.io/travis/feross/is-buffer/master.svg
-[travis-url]: https://travis-ci.org/feross/is-buffer
-[npm-image]: https://img.shields.io/npm/v/is-buffer.svg
-[npm-url]: https://npmjs.org/package/is-buffer
-[downloads-image]: https://img.shields.io/npm/dm/is-buffer.svg
-[downloads-url]: https://npmjs.org/package/is-buffer
-[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg
-[standard-url]: https://standardjs.com
-
-#### Determine if an object is a [`Buffer`](http://nodejs.org/api/buffer.html) (including the [browserify Buffer](https://github.com/feross/buffer))
-
-[![saucelabs][saucelabs-image]][saucelabs-url]
-
-[saucelabs-image]: https://saucelabs.com/browser-matrix/is-buffer.svg
-[saucelabs-url]: https://saucelabs.com/u/is-buffer
-
-## Why not use `Buffer.isBuffer`?
-
-This module lets you check if an object is a `Buffer` without using `Buffer.isBuffer` (which includes the whole [buffer](https://github.com/feross/buffer) module in [browserify](http://browserify.org/)).
-
-It's future-proof and works in node too!
-
-## install
-
-```bash
-npm install is-buffer
-```
-
-## usage
-
-```js
-var isBuffer = require('is-buffer')
-
-isBuffer(new Buffer(4)) // true
-
-isBuffer(undefined) // false
-isBuffer(null) // false
-isBuffer('') // false
-isBuffer(true) // false
-isBuffer(false) // false
-isBuffer(0) // false
-isBuffer(1) // false
-isBuffer(1.0) // false
-isBuffer('string') // false
-isBuffer({}) // false
-isBuffer(function foo () {}) // false
-```
-
-## license
-
-MIT. Copyright (C) [Feross Aboukhadijeh](http://feross.org).
diff --git a/node_modules/is-buffer/index.js b/node_modules/is-buffer/index.js
deleted file mode 100644
index 9cce396..0000000
--- a/node_modules/is-buffer/index.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/*!
- * Determine if an object is a Buffer
- *
- * @author Feross Aboukhadijeh
- * @license MIT
- */
-
-// The _isBuffer check is for Safari 5-7 support, because it's missing
-// Object.prototype.constructor. Remove this eventually
-module.exports = function (obj) {
- return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
-}
-
-function isBuffer (obj) {
- return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
-}
-
-// For Node v0.10 support. Remove this eventually.
-function isSlowBuffer (obj) {
- return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))
-}
diff --git a/node_modules/is-buffer/package.json b/node_modules/is-buffer/package.json
deleted file mode 100644
index ea12137..0000000
--- a/node_modules/is-buffer/package.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
- "name": "is-buffer",
- "description": "Determine if an object is a Buffer",
- "version": "1.1.6",
- "author": {
- "name": "Feross Aboukhadijeh",
- "email": "feross@feross.org",
- "url": "http://feross.org/"
- },
- "bugs": {
- "url": "https://github.com/feross/is-buffer/issues"
- },
- "dependencies": {},
- "devDependencies": {
- "standard": "*",
- "tape": "^4.0.0",
- "zuul": "^3.0.0"
- },
- "keywords": [
- "buffer",
- "buffers",
- "type",
- "core buffer",
- "browser buffer",
- "browserify",
- "typed array",
- "uint32array",
- "int16array",
- "int32array",
- "float32array",
- "float64array",
- "browser",
- "arraybuffer",
- "dataview"
- ],
- "license": "MIT",
- "main": "index.js",
- "repository": {
- "type": "git",
- "url": "git://github.com/feross/is-buffer.git"
- },
- "scripts": {
- "test": "standard && npm run test-node && npm run test-browser",
- "test-browser": "zuul -- test/*.js",
- "test-browser-local": "zuul --local -- test/*.js",
- "test-node": "tape test/*.js"
- },
- "testling": {
- "files": "test/*.js"
- }
-}
diff --git a/node_modules/is-buffer/test/basic.js b/node_modules/is-buffer/test/basic.js
deleted file mode 100644
index be4f8e4..0000000
--- a/node_modules/is-buffer/test/basic.js
+++ /dev/null
@@ -1,24 +0,0 @@
-var isBuffer = require('../')
-var test = require('tape')
-
-test('is-buffer', function (t) {
- t.equal(isBuffer(Buffer.alloc(4)), true, 'new Buffer(4)')
- t.equal(isBuffer(Buffer.allocUnsafeSlow(100)), true, 'SlowBuffer(100)')
-
- t.equal(isBuffer(undefined), false, 'undefined')
- t.equal(isBuffer(null), false, 'null')
- t.equal(isBuffer(''), false, 'empty string')
- t.equal(isBuffer(true), false, 'true')
- t.equal(isBuffer(false), false, 'false')
- t.equal(isBuffer(0), false, '0')
- t.equal(isBuffer(1), false, '1')
- t.equal(isBuffer(1.0), false, '1.0')
- t.equal(isBuffer('string'), false, 'string')
- t.equal(isBuffer({}), false, '{}')
- t.equal(isBuffer([]), false, '[]')
- t.equal(isBuffer(function foo () {}), false, 'function foo () {}')
- t.equal(isBuffer({ isBuffer: null }), false, '{ isBuffer: null }')
- t.equal(isBuffer({ isBuffer: function () { throw new Error() } }), false, '{ isBuffer: function () { throw new Error() } }')
-
- t.end()
-})
diff --git a/node_modules/is-core-module/.eslintignore b/node_modules/is-core-module/.eslintignore
deleted file mode 100644
index 404abb2..0000000
--- a/node_modules/is-core-module/.eslintignore
+++ /dev/null
@@ -1 +0,0 @@
-coverage/
diff --git a/node_modules/is-core-module/.eslintrc b/node_modules/is-core-module/.eslintrc
deleted file mode 100644
index 9c7d516..0000000
--- a/node_modules/is-core-module/.eslintrc
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "extends": "@ljharb",
- "root": true,
- "rules": {
- "func-style": 1,
- "operator-linebreak": [2, "before"],
- },
- "overrides": [
- {
- "files": "test/**",
- "rules": {
- "global-require": 0,
- "max-lines-per-function": 0,
- "no-negated-condition": 0,
- },
- },
- ],
-}
diff --git a/node_modules/is-core-module/.nycrc b/node_modules/is-core-module/.nycrc
deleted file mode 100644
index bdd626c..0000000
--- a/node_modules/is-core-module/.nycrc
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "all": true,
- "check-coverage": false,
- "reporter": ["text-summary", "text", "html", "json"],
- "exclude": [
- "coverage",
- "test"
- ]
-}
diff --git a/node_modules/is-core-module/CHANGELOG.md b/node_modules/is-core-module/CHANGELOG.md
deleted file mode 100644
index 1445627..0000000
--- a/node_modules/is-core-module/CHANGELOG.md
+++ /dev/null
@@ -1,90 +0,0 @@
-# Changelog
-
-All notable changes to this project will be documented in this file.
-
-The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
-and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-
-## [v2.5.0](https://github.com/inspect-js/is-core-module/compare/v2.4.0...v2.5.0) - 2021-07-12
-
-### Commits
-
-- [Dev Deps] update `auto-changelog`, `eslint` [`6334cc9`](https://github.com/inspect-js/is-core-module/commit/6334cc94f3af7469685bd8f236740991baaf2705)
-- [New] add `stream/web` to node v16.5+ [`17ac59b`](https://github.com/inspect-js/is-core-module/commit/17ac59b662d63e220a2e5728625f005c24f177b2)
-
-## [v2.4.0](https://github.com/inspect-js/is-core-module/compare/v2.3.0...v2.4.0) - 2021-05-09
-
-### Commits
-
-- [readme] add actions and codecov badges [`82b7faa`](https://github.com/inspect-js/is-core-module/commit/82b7faa12b56dbe47fbea67e1a5b9e447027ba40)
-- [Dev Deps] update `@ljharb/eslint-config`, `aud` [`8096868`](https://github.com/inspect-js/is-core-module/commit/8096868c024a161ccd4d44110b136763e92eace8)
-- [Dev Deps] update `eslint` [`6726824`](https://github.com/inspect-js/is-core-module/commit/67268249b88230018c510f6532a8046d7326346f)
-- [New] add `diagnostics_channel` to node `^14.17` [`86c6563`](https://github.com/inspect-js/is-core-module/commit/86c65634201b8ff9b3e48a9a782594579c7f5c3c)
-- [meta] fix prepublish script [`697a01e`](https://github.com/inspect-js/is-core-module/commit/697a01e3c9c0be074066520954f30fb28532ec57)
-
-## [v2.3.0](https://github.com/inspect-js/is-core-module/compare/v2.2.0...v2.3.0) - 2021-04-24
-
-### Commits
-
-- [meta] do not publish github action workflow files [`060d4bb`](https://github.com/inspect-js/is-core-module/commit/060d4bb971a29451c19ff336eb56bee27f9fa95a)
-- [New] add support for `node:` prefix, in node 16+ [`7341223`](https://github.com/inspect-js/is-core-module/commit/73412230a769f6e81c05eea50b6520cebf54ed2f)
-- [actions] use `node/install` instead of `node/run`; use `codecov` action [`016269a`](https://github.com/inspect-js/is-core-module/commit/016269abae9f6657a5254adfbb813f09a05067f9)
-- [patch] remove unneeded `.0` in version ranges [`cb466a6`](https://github.com/inspect-js/is-core-module/commit/cb466a6d89e52b8389e5c12715efcd550c41cea3)
-- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`c9f9c39`](https://github.com/inspect-js/is-core-module/commit/c9f9c396ace60ef81906f98059c064e6452473ed)
-- [actions] update workflows [`3ee4a89`](https://github.com/inspect-js/is-core-module/commit/3ee4a89fd5a02fccd43882d905448ea6a98e9a3c)
-- [Dev Deps] update `eslint`, `@ljharb/eslint-config` [`dee4fed`](https://github.com/inspect-js/is-core-module/commit/dee4fed79690c1d43a22f7fa9426abebdc6d727f)
-- [Dev Deps] update `eslint`, `@ljharb/eslint-config` [`7d046ba`](https://github.com/inspect-js/is-core-module/commit/7d046ba07ae8c9292e43652694ca808d7b309de8)
-- [meta] use `prepublishOnly` script for npm 7+ [`149e677`](https://github.com/inspect-js/is-core-module/commit/149e6771a5ede6d097e71785b467a9c4b4977cc7)
-- [readme] remove travis badge [`903b51d`](https://github.com/inspect-js/is-core-module/commit/903b51d6b69b98abeabfbc3695c345b02646f19c)
-
-## [v2.2.0](https://github.com/inspect-js/is-core-module/compare/v2.1.0...v2.2.0) - 2020-11-26
-
-### Commits
-
-- [Tests] migrate tests to Github Actions [`c919f57`](https://github.com/inspect-js/is-core-module/commit/c919f573c0a92d10a0acad0b650b5aecb033d426)
-- [patch] `core.json`: %s/ /\t/g [`db3f685`](https://github.com/inspect-js/is-core-module/commit/db3f68581f53e73cc09cd675955eb1bdd6a5a39b)
-- [Tests] run `nyc` on all tests [`b2f925f`](https://github.com/inspect-js/is-core-module/commit/b2f925f8866f210ef441f39fcc8cc42692ab89b1)
-- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`; add `safe-publish-latest` [`89f02a2`](https://github.com/inspect-js/is-core-module/commit/89f02a2b4162246dea303a6ee31bb9a550b05c72)
-- [New] add `path/posix`, `path/win32`, `util/types` [`77f94f1`](https://github.com/inspect-js/is-core-module/commit/77f94f1e90ffd7c0be2a3f1aa8574ebf7fd981b3)
-
-## [v2.1.0](https://github.com/inspect-js/is-core-module/compare/v2.0.0...v2.1.0) - 2020-11-04
-
-### Commits
-
-- [Dev Deps] update `eslint` [`5e0034e`](https://github.com/inspect-js/is-core-module/commit/5e0034eae57c09c8f1bd769f502486a00f56c6e4)
-- [New] Add `diagnostics_channel` [`c2d83d0`](https://github.com/inspect-js/is-core-module/commit/c2d83d0a0225a1a658945d9bab7036ea347d29ec)
-
-## [v2.0.0](https://github.com/inspect-js/is-core-module/compare/v1.0.2...v2.0.0) - 2020-09-29
-
-### Commits
-
-- v2 implementation [`865aeb5`](https://github.com/inspect-js/is-core-module/commit/865aeb5ca0e90248a3dfff5d7622e4751fdeb9cd)
-- Only apps should have lockfiles [`5a5e660`](https://github.com/inspect-js/is-core-module/commit/5a5e660d568e37eb44e17fb1ebb12a105205fc2b)
-- Initial commit for v2 [`5a51524`](https://github.com/inspect-js/is-core-module/commit/5a51524e06f92adece5fbb138c69b7b9748a2348)
-- Tests [`116eae4`](https://github.com/inspect-js/is-core-module/commit/116eae4fccd01bc72c1fd3cc4b7561c387afc496)
-- [meta] add `auto-changelog` [`c24388b`](https://github.com/inspect-js/is-core-module/commit/c24388bee828d223040519d1f5b226ca35beee63)
-- [actions] add "Automatic Rebase" and "require allow edits" actions [`34292db`](https://github.com/inspect-js/is-core-module/commit/34292dbcbadae0868aff03c22dbd8b7b8a11558a)
-- [Tests] add `npm run lint` [`4f9eeee`](https://github.com/inspect-js/is-core-module/commit/4f9eeee7ddff10698bbf528620f4dc8d4fa3e697)
-- [readme] fix travis badges, https all URLs [`e516a73`](https://github.com/inspect-js/is-core-module/commit/e516a73b0dccce20938c432b1ba512eae8eff9e9)
-- [meta] create FUNDING.yml [`1aabebc`](https://github.com/inspect-js/is-core-module/commit/1aabebca98d01f8a04e46bc2e2520fa93cf21ac6)
-- [Fix] `domain`: domain landed sometime > v0.7.7 and <= v0.7.12 [`2df7d37`](https://github.com/inspect-js/is-core-module/commit/2df7d37595d41b15eeada732b706b926c2771655)
-- [Fix] `sys`: worked in 0.6, not 0.7, and 0.8+ [`a75c134`](https://github.com/inspect-js/is-core-module/commit/a75c134229e1e9441801f6b73f6a52489346eb65)
-
-## [v1.0.2](https://github.com/inspect-js/is-core-module/compare/v1.0.1...v1.0.2) - 2014-09-28
-
-### Commits
-
-- simpler [`66fe90f`](https://github.com/inspect-js/is-core-module/commit/66fe90f9771581b9adc0c3900baa52c21b5baea2)
-
-## [v1.0.1](https://github.com/inspect-js/is-core-module/compare/v1.0.0...v1.0.1) - 2014-09-28
-
-### Commits
-
-- remove stupid [`f21f906`](https://github.com/inspect-js/is-core-module/commit/f21f906f882c2bd656a5fc5ed6fbe48ddaffb2ac)
-- update readme [`1eff0ec`](https://github.com/inspect-js/is-core-module/commit/1eff0ec69798d1ec65771552d1562911e90a8027)
-
-## v1.0.0 - 2014-09-28
-
-### Commits
-
-- init [`48e5e76`](https://github.com/inspect-js/is-core-module/commit/48e5e76cac378fddb8c1f7d4055b8dfc943d6b96)
diff --git a/node_modules/is-core-module/LICENSE b/node_modules/is-core-module/LICENSE
deleted file mode 100644
index 2e50287..0000000
--- a/node_modules/is-core-module/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014 Dave Justice
-
-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.
\ No newline at end of file
diff --git a/node_modules/is-core-module/README.md b/node_modules/is-core-module/README.md
deleted file mode 100644
index 062d906..0000000
--- a/node_modules/is-core-module/README.md
+++ /dev/null
@@ -1,40 +0,0 @@
-# is-core-module [![Version Badge][2]][1]
-
-[![github actions][actions-image]][actions-url]
-[![coverage][codecov-image]][codecov-url]
-[![dependency status][5]][6]
-[![dev dependency status][7]][8]
-[![License][license-image]][license-url]
-[![Downloads][downloads-image]][downloads-url]
-
-[![npm badge][11]][1]
-
-Is this specifier a node.js core module? Optionally provide a node version to check; defaults to the current node version.
-
-## Example
-
-```js
-var isCore = require('is-core-module');
-var assert = require('assert');
-assert(isCore('fs'));
-assert(!isCore('butts'));
-```
-
-## Tests
-Clone the repo, `npm install`, and run `npm test`
-
-[1]: https://npmjs.org/package/is-core-module
-[2]: https://versionbadg.es/inspect-js/is-core-module.svg
-[5]: https://david-dm.org/inspect-js/is-core-module.svg
-[6]: https://david-dm.org/inspect-js/is-core-module
-[7]: https://david-dm.org/inspect-js/is-core-module/dev-status.svg
-[8]: https://david-dm.org/inspect-js/is-core-module#info=devDependencies
-[11]: https://nodei.co/npm/is-core-module.png?downloads=true&stars=true
-[license-image]: https://img.shields.io/npm/l/is-core-module.svg
-[license-url]: LICENSE
-[downloads-image]: https://img.shields.io/npm/dm/is-core-module.svg
-[downloads-url]: https://npm-stat.com/charts.html?package=is-core-module
-[codecov-image]: https://codecov.io/gh/inspect-js/is-core-module/branch/main/graphs/badge.svg
-[codecov-url]: https://app.codecov.io/gh/inspect-js/is-core-module/
-[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-core-module
-[actions-url]: https://github.com/inspect-js/is-core-module/actions
diff --git a/node_modules/is-core-module/core.json b/node_modules/is-core-module/core.json
deleted file mode 100644
index 773222f..0000000
--- a/node_modules/is-core-module/core.json
+++ /dev/null
@@ -1,148 +0,0 @@
-{
- "assert": true,
- "node:assert": ">= 16",
- "assert/strict": ">= 15",
- "node:assert/strict": ">= 16",
- "async_hooks": ">= 8",
- "node:async_hooks": ">= 16",
- "buffer_ieee754": "< 0.9.7",
- "buffer": true,
- "node:buffer": ">= 16",
- "child_process": true,
- "node:child_process": ">= 16",
- "cluster": true,
- "node:cluster": ">= 16",
- "console": true,
- "node:console": ">= 16",
- "constants": true,
- "node:constants": ">= 16",
- "crypto": true,
- "node:crypto": ">= 16",
- "_debug_agent": ">= 1 && < 8",
- "_debugger": "< 8",
- "dgram": true,
- "node:dgram": ">= 16",
- "diagnostics_channel": [">= 14.17 && < 15", ">= 15.1"],
- "node:diagnostics_channel": ">= 16",
- "dns": true,
- "node:dns": ">= 16",
- "dns/promises": ">= 15",
- "node:dns/promises": ">= 16",
- "domain": ">= 0.7.12",
- "node:domain": ">= 16",
- "events": true,
- "node:events": ">= 16",
- "freelist": "< 6",
- "fs": true,
- "node:fs": ">= 16",
- "fs/promises": [">= 10 && < 10.1", ">= 14"],
- "node:fs/promises": ">= 16",
- "_http_agent": ">= 0.11.1",
- "node:_http_agent": ">= 16",
- "_http_client": ">= 0.11.1",
- "node:_http_client": ">= 16",
- "_http_common": ">= 0.11.1",
- "node:_http_common": ">= 16",
- "_http_incoming": ">= 0.11.1",
- "node:_http_incoming": ">= 16",
- "_http_outgoing": ">= 0.11.1",
- "node:_http_outgoing": ">= 16",
- "_http_server": ">= 0.11.1",
- "node:_http_server": ">= 16",
- "http": true,
- "node:http": ">= 16",
- "http2": ">= 8.8",
- "node:http2": ">= 16",
- "https": true,
- "node:https": ">= 16",
- "inspector": ">= 8",
- "node:inspector": ">= 16",
- "_linklist": "< 8",
- "module": true,
- "node:module": ">= 16",
- "net": true,
- "node:net": ">= 16",
- "node-inspect/lib/_inspect": ">= 7.6 && < 12",
- "node-inspect/lib/internal/inspect_client": ">= 7.6 && < 12",
- "node-inspect/lib/internal/inspect_repl": ">= 7.6 && < 12",
- "os": true,
- "node:os": ">= 16",
- "path": true,
- "node:path": ">= 16",
- "path/posix": ">= 15.3",
- "node:path/posix": ">= 16",
- "path/win32": ">= 15.3",
- "node:path/win32": ">= 16",
- "perf_hooks": ">= 8.5",
- "node:perf_hooks": ">= 16",
- "process": ">= 1",
- "node:process": ">= 16",
- "punycode": true,
- "node:punycode": ">= 16",
- "querystring": true,
- "node:querystring": ">= 16",
- "readline": true,
- "node:readline": ">= 16",
- "repl": true,
- "node:repl": ">= 16",
- "smalloc": ">= 0.11.5 && < 3",
- "_stream_duplex": ">= 0.9.4",
- "node:_stream_duplex": ">= 16",
- "_stream_transform": ">= 0.9.4",
- "node:_stream_transform": ">= 16",
- "_stream_wrap": ">= 1.4.1",
- "node:_stream_wrap": ">= 16",
- "_stream_passthrough": ">= 0.9.4",
- "node:_stream_passthrough": ">= 16",
- "_stream_readable": ">= 0.9.4",
- "node:_stream_readable": ">= 16",
- "_stream_writable": ">= 0.9.4",
- "node:_stream_writable": ">= 16",
- "stream": true,
- "node:stream": ">= 16",
- "stream/promises": ">= 15",
- "node:stream/promises": ">= 16",
- "stream/web": ">= 16.5",
- "node:stream/web": ">= 16.5",
- "string_decoder": true,
- "node:string_decoder": ">= 16",
- "sys": [">= 0.6 && < 0.7", ">= 0.8"],
- "node:sys": ">= 16",
- "timers": true,
- "node:timers": ">= 16",
- "timers/promises": ">= 15",
- "node:timers/promises": ">= 16",
- "_tls_common": ">= 0.11.13",
- "node:_tls_common": ">= 16",
- "_tls_legacy": ">= 0.11.3 && < 10",
- "_tls_wrap": ">= 0.11.3",
- "node:_tls_wrap": ">= 16",
- "tls": true,
- "node:tls": ">= 16",
- "trace_events": ">= 10",
- "node:trace_events": ">= 16",
- "tty": true,
- "node:tty": ">= 16",
- "url": true,
- "node:url": ">= 16",
- "util": true,
- "node:util": ">= 16",
- "util/types": ">= 15.3",
- "node:util/types": ">= 16",
- "v8/tools/arguments": ">= 10 && < 12",
- "v8/tools/codemap": [">= 4.4 && < 5", ">= 5.2 && < 12"],
- "v8/tools/consarray": [">= 4.4 && < 5", ">= 5.2 && < 12"],
- "v8/tools/csvparser": [">= 4.4 && < 5", ">= 5.2 && < 12"],
- "v8/tools/logreader": [">= 4.4 && < 5", ">= 5.2 && < 12"],
- "v8/tools/profile_view": [">= 4.4 && < 5", ">= 5.2 && < 12"],
- "v8/tools/splaytree": [">= 4.4 && < 5", ">= 5.2 && < 12"],
- "v8": ">= 1",
- "node:v8": ">= 16",
- "vm": true,
- "node:vm": ">= 16",
- "wasi": ">= 13.4 && < 13.5",
- "worker_threads": ">= 11.7",
- "node:worker_threads": ">= 16",
- "zlib": true,
- "node:zlib": ">= 16"
-}
diff --git a/node_modules/is-core-module/index.js b/node_modules/is-core-module/index.js
deleted file mode 100644
index f5a69cf..0000000
--- a/node_modules/is-core-module/index.js
+++ /dev/null
@@ -1,69 +0,0 @@
-'use strict';
-
-var has = require('has');
-
-function specifierIncluded(current, specifier) {
- var nodeParts = current.split('.');
- var parts = specifier.split(' ');
- var op = parts.length > 1 ? parts[0] : '=';
- var versionParts = (parts.length > 1 ? parts[1] : parts[0]).split('.');
-
- for (var i = 0; i < 3; ++i) {
- var cur = parseInt(nodeParts[i] || 0, 10);
- var ver = parseInt(versionParts[i] || 0, 10);
- if (cur === ver) {
- continue; // eslint-disable-line no-restricted-syntax, no-continue
- }
- if (op === '<') {
- return cur < ver;
- }
- if (op === '>=') {
- return cur >= ver;
- }
- return false;
- }
- return op === '>=';
-}
-
-function matchesRange(current, range) {
- var specifiers = range.split(/ ?&& ?/);
- if (specifiers.length === 0) {
- return false;
- }
- for (var i = 0; i < specifiers.length; ++i) {
- if (!specifierIncluded(current, specifiers[i])) {
- return false;
- }
- }
- return true;
-}
-
-function versionIncluded(nodeVersion, specifierValue) {
- if (typeof specifierValue === 'boolean') {
- return specifierValue;
- }
-
- var current = typeof nodeVersion === 'undefined'
- ? process.versions && process.versions.node && process.versions.node
- : nodeVersion;
-
- if (typeof current !== 'string') {
- throw new TypeError(typeof nodeVersion === 'undefined' ? 'Unable to determine current node version' : 'If provided, a valid node version is required');
- }
-
- if (specifierValue && typeof specifierValue === 'object') {
- for (var i = 0; i < specifierValue.length; ++i) {
- if (matchesRange(current, specifierValue[i])) {
- return true;
- }
- }
- return false;
- }
- return matchesRange(current, specifierValue);
-}
-
-var data = require('./core.json');
-
-module.exports = function isCore(x, nodeVersion) {
- return has(data, x) && versionIncluded(nodeVersion, data[x]);
-};
diff --git a/node_modules/is-core-module/package.json b/node_modules/is-core-module/package.json
deleted file mode 100644
index 464294e..0000000
--- a/node_modules/is-core-module/package.json
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- "name": "is-core-module",
- "version": "2.5.0",
- "description": "Is this specifier a node.js core module?",
- "main": "index.js",
- "exports": {
- ".": [
- {
- "default": "./index.js"
- },
- "./index.js"
- ],
- "./package.json": "./package.json"
- },
- "scripts": {
- "prepublish": "not-in-publish || npm run prepublishOnly",
- "prepublishOnly": "safe-publish-latest",
- "lint": "eslint .",
- "pretest": "npm run lint",
- "tests-only": "tape 'test/**/*.js'",
- "test": "nyc npm run tests-only",
- "posttest": "aud --production",
- "version": "auto-changelog && git add CHANGELOG.md",
- "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\""
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/inspect-js/is-core-module.git"
- },
- "keywords": [
- "core",
- "modules",
- "module",
- "npm",
- "node",
- "dependencies"
- ],
- "author": "Jordan Harband ",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- },
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/inspect-js/is-core-module/issues"
- },
- "homepage": "https://github.com/inspect-js/is-core-module",
- "dependencies": {
- "has": "^1.0.3"
- },
- "devDependencies": {
- "@ljharb/eslint-config": "^17.6.0",
- "aud": "^1.1.5",
- "auto-changelog": "^2.3.0",
- "eslint": "^7.30.0",
- "nyc": "^10.3.2",
- "safe-publish-latest": "^1.1.4",
- "semver": "^6.3.0",
- "tape": "^5.2.2"
- },
- "auto-changelog": {
- "output": "CHANGELOG.md",
- "template": "keepachangelog",
- "unreleased": false,
- "commitLimit": false,
- "backfillLimit": false,
- "hideCredit": true
- }
-}
diff --git a/node_modules/is-core-module/test/index.js b/node_modules/is-core-module/test/index.js
deleted file mode 100644
index 281c7e9..0000000
--- a/node_modules/is-core-module/test/index.js
+++ /dev/null
@@ -1,108 +0,0 @@
-'use strict';
-
-var test = require('tape');
-var keys = require('object-keys');
-var semver = require('semver');
-var isCore = require('../');
-var data = require('../core.json');
-
-var supportsNodePrefix = semver.satisfies(process.versions.node, '>= 16');
-
-test('core modules', function (t) {
- t.test('isCore()', function (st) {
- st.ok(isCore('fs'));
- st.ok(isCore('net'));
- st.ok(isCore('http'));
-
- st.ok(!isCore('seq'));
- st.ok(!isCore('../'));
-
- st.ok(!isCore('toString'));
-
- st.end();
- });
-
- t.test('core list', function (st) {
- var cores = keys(data);
- st.plan(cores.length);
-
- for (var i = 0; i < cores.length; ++i) {
- var mod = cores[i];
- var requireFunc = function () { require(mod); }; // eslint-disable-line no-loop-func
- if (isCore(mod)) {
- st.doesNotThrow(requireFunc, mod + ' supported; requiring does not throw');
- } else {
- st['throws'](requireFunc, mod + ' not supported; requiring throws');
- }
- }
-
- st.end();
- });
-
- t.test('core via repl module', { skip: !data.repl }, function (st) {
- var libs = require('repl')._builtinLibs; // eslint-disable-line no-underscore-dangle
- if (!libs) {
- st.skip('module.builtinModules does not exist');
- } else {
- for (var i = 0; i < libs.length; ++i) {
- var mod = libs[i];
- st.ok(data[mod], mod + ' is a core module');
- st.doesNotThrow(
- function () { require(mod); }, // eslint-disable-line no-loop-func
- 'requiring ' + mod + ' does not throw'
- );
- if (supportsNodePrefix) {
- st.doesNotThrow(
- function () { require('node:' + mod); }, // eslint-disable-line no-loop-func
- 'requiring node:' + mod + ' does not throw'
- );
- } else {
- st['throws'](
- function () { require('node:' + mod); }, // eslint-disable-line no-loop-func
- 'requiring node:' + mod + ' throws'
- );
- }
- }
- }
- st.end();
- });
-
- t.test('core via builtinModules list', { skip: !data.module }, function (st) {
- var libs = require('module').builtinModules;
- if (!libs) {
- st.skip('module.builtinModules does not exist');
- } else {
- var excludeList = [
- '_debug_agent',
- 'v8/tools/tickprocessor-driver',
- 'v8/tools/SourceMap',
- 'v8/tools/tickprocessor',
- 'v8/tools/profile'
- ];
- for (var i = 0; i < libs.length; ++i) {
- var mod = libs[i];
- if (excludeList.indexOf(mod) === -1) {
- st.ok(data[mod], mod + ' is a core module');
- st.doesNotThrow(
- function () { require(mod); }, // eslint-disable-line no-loop-func
- 'requiring ' + mod + ' does not throw'
- );
- if (supportsNodePrefix) {
- st.doesNotThrow(
- function () { require('node:' + mod); }, // eslint-disable-line no-loop-func
- 'requiring node:' + mod + ' does not throw'
- );
- } else {
- st['throws'](
- function () { require('node:' + mod); }, // eslint-disable-line no-loop-func
- 'requiring node:' + mod + ' throws'
- );
- }
- }
- }
- }
- st.end();
- });
-
- t.end();
-});
diff --git a/node_modules/is-data-descriptor/LICENSE b/node_modules/is-data-descriptor/LICENSE
deleted file mode 100644
index e33d14b..0000000
--- a/node_modules/is-data-descriptor/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015-2017, 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/is-data-descriptor/README.md b/node_modules/is-data-descriptor/README.md
deleted file mode 100644
index 42b0714..0000000
--- a/node_modules/is-data-descriptor/README.md
+++ /dev/null
@@ -1,161 +0,0 @@
-# is-data-descriptor [![NPM version](https://img.shields.io/npm/v/is-data-descriptor.svg?style=flat)](https://www.npmjs.com/package/is-data-descriptor) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-data-descriptor.svg?style=flat)](https://npmjs.org/package/is-data-descriptor) [![NPM total downloads](https://img.shields.io/npm/dt/is-data-descriptor.svg?style=flat)](https://npmjs.org/package/is-data-descriptor) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-data-descriptor.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-data-descriptor)
-
-> Returns true if a value has the characteristics of a valid JavaScript data descriptor.
-
-Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save is-data-descriptor
-```
-
-## Usage
-
-```js
-var isDataDesc = require('is-data-descriptor');
-```
-
-## Examples
-
-`true` when the descriptor has valid properties with valid values.
-
-```js
-// `value` can be anything
-isDataDesc({value: 'foo'})
-isDataDesc({value: function() {}})
-isDataDesc({value: true})
-//=> true
-```
-
-`false` when not an object
-
-```js
-isDataDesc('a')
-//=> false
-isDataDesc(null)
-//=> false
-isDataDesc([])
-//=> false
-```
-
-`false` when the object has invalid properties
-
-```js
-isDataDesc({value: 'foo', bar: 'baz'})
-//=> false
-isDataDesc({value: 'foo', bar: 'baz'})
-//=> false
-isDataDesc({value: 'foo', get: function(){}})
-//=> false
-isDataDesc({get: function(){}, value: 'foo'})
-//=> false
-```
-
-`false` when a value is not the correct type
-
-```js
-isDataDesc({value: 'foo', enumerable: 'foo'})
-//=> false
-isDataDesc({value: 'foo', configurable: 'foo'})
-//=> false
-isDataDesc({value: 'foo', writable: 'foo'})
-//=> false
-```
-
-## Valid properties
-
-The only valid data descriptor properties are the following:
-
-* `configurable` (required)
-* `enumerable` (required)
-* `value` (optional)
-* `writable` (optional)
-
-To be a valid data descriptor, either `value` or `writable` must be defined.
-
-**Invalid properties**
-
-A descriptor may have additional _invalid_ properties (an error will **not** be thrown).
-
-```js
-var foo = {};
-
-Object.defineProperty(foo, 'bar', {
- enumerable: true,
- whatever: 'blah', // invalid, but doesn't cause an error
- get: function() {
- return 'baz';
- }
-});
-
-console.log(foo.bar);
-//=> 'baz'
-```
-
-## About
-
-
-Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-
-
-
-Running Tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-
-
-
-Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-
-
-### Related projects
-
-You might also be interested in these projects:
-
-* [is-accessor-descriptor](https://www.npmjs.com/package/is-accessor-descriptor): Returns true if a value has the characteristics of a valid JavaScript accessor descriptor. | [homepage](https://github.com/jonschlinkert/is-accessor-descriptor "Returns true if a value has the characteristics of a valid JavaScript accessor descriptor.")
-* [is-data-descriptor](https://www.npmjs.com/package/is-data-descriptor): Returns true if a value has the characteristics of a valid JavaScript data descriptor. | [homepage](https://github.com/jonschlinkert/is-data-descriptor "Returns true if a value has the characteristics of a valid JavaScript data descriptor.")
-* [is-descriptor](https://www.npmjs.com/package/is-descriptor): Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for… [more](https://github.com/jonschlinkert/is-descriptor) | [homepage](https://github.com/jonschlinkert/is-descriptor "Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for data descriptors and accessor descriptors.")
-* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.")
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 21 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 2 | [realityking](https://github.com/realityking) |
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on November 01, 2017._
\ No newline at end of file
diff --git a/node_modules/is-data-descriptor/index.js b/node_modules/is-data-descriptor/index.js
deleted file mode 100644
index cfeae36..0000000
--- a/node_modules/is-data-descriptor/index.js
+++ /dev/null
@@ -1,49 +0,0 @@
-/*!
- * is-data-descriptor
- *
- * Copyright (c) 2015-2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-var typeOf = require('kind-of');
-
-module.exports = function isDataDescriptor(obj, prop) {
- // data descriptor properties
- var data = {
- configurable: 'boolean',
- enumerable: 'boolean',
- writable: 'boolean'
- };
-
- if (typeOf(obj) !== 'object') {
- return false;
- }
-
- if (typeof prop === 'string') {
- var val = Object.getOwnPropertyDescriptor(obj, prop);
- return typeof val !== 'undefined';
- }
-
- if (!('value' in obj) && !('writable' in obj)) {
- return false;
- }
-
- for (var key in obj) {
- if (key === 'value') continue;
-
- if (!data.hasOwnProperty(key)) {
- continue;
- }
-
- if (typeOf(obj[key]) === data[key]) {
- continue;
- }
-
- if (typeof obj[key] !== 'undefined') {
- return false;
- }
- }
- return true;
-};
diff --git a/node_modules/is-data-descriptor/node_modules/kind-of/CHANGELOG.md b/node_modules/is-data-descriptor/node_modules/kind-of/CHANGELOG.md
deleted file mode 100644
index 01687d5..0000000
--- a/node_modules/is-data-descriptor/node_modules/kind-of/CHANGELOG.md
+++ /dev/null
@@ -1,160 +0,0 @@
-# Release history
-
-All notable changes to this project will be documented in this file.
-
-The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
-and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
-
-
- Guiding Principles
-
-- Changelogs are for humans, not machines.
-- There should be an entry for every single version.
-- The same types of changes should be grouped.
-- Versions and sections should be linkable.
-- The latest version comes first.
-- The release date of each versions is displayed.
-- Mention whether you follow Semantic Versioning.
-
-
-
-
- Types of changes
-
-Changelog entries are classified using the following labels _(from [keep-a-changelog](http://keepachangelog.com/)_):
-
-- `Added` for new features.
-- `Changed` for changes in existing functionality.
-- `Deprecated` for soon-to-be removed features.
-- `Removed` for now removed features.
-- `Fixed` for any bug fixes.
-- `Security` in case of vulnerabilities.
-
-
-
-## [6.0.3] - 2020-01-16
-
-- Merge pull request #31 for issue #30
-
-## [6.0.0] - 2017-10-13
-
-- refactor code to be more performant
-- refactor benchmarks
-
-## [5.1.0] - 2017-10-13
-
-**Added**
-
-- Merge pull request #15 from aretecode/patch-1
-- adds support and tests for string & array iterators
-
-**Changed**
-
-- updates benchmarks
-
-## [5.0.2] - 2017-08-02
-
-- Merge pull request #14 from struct78/master
-- Added `undefined` check
-
-## [5.0.0] - 2017-06-21
-
-- Merge pull request #12 from aretecode/iterator
-- Set Iterator + Map Iterator
-- streamline `isbuffer`, minor edits
-
-## [4.0.0] - 2017-05-19
-
-- Merge pull request #8 from tunnckoCore/master
-- update deps
-
-## [3.2.2] - 2017-05-16
-
-- fix version
-
-## [3.2.1] - 2017-05-16
-
-- add browserify
-
-## [3.2.0] - 2017-04-25
-
-- Merge pull request #10 from ksheedlo/unrequire-buffer
-- add `promise` support and tests
-- Remove unnecessary `Buffer` check
-
-## [3.1.0] - 2016-12-07
-
-- Merge pull request #7 from laggingreflex/err
-- add support for `error` and tests
-- run update
-
-## [3.0.4] - 2016-07-29
-
-- move tests
-- run update
-
-## [3.0.3] - 2016-05-03
-
-- fix prepublish script
-- remove unused dep
-
-## [3.0.0] - 2015-11-17
-
-- add typed array support
-- Merge pull request #5 from miguelmota/typed-arrays
-- adds new tests
-
-## [2.0.1] - 2015-08-21
-
-- use `is-buffer` module
-
-## [2.0.0] - 2015-05-31
-
-- Create fallback for `Array.isArray` if used as a browser package
-- Merge pull request #2 from dtothefp/patch-1
-- Merge pull request #3 from pdehaan/patch-1
-- Merge branch 'master' of https://github.com/chorks/kind-of into chorks-master
-- optimizations, mostly date and regex
-
-## [1.1.0] - 2015-02-09
-
-- adds `buffer` support
-- adds tests for `buffer`
-
-## [1.0.0] - 2015-01-19
-
-- update benchmarks
-- optimizations based on benchmarks
-
-## [0.1.2] - 2014-10-26
-
-- return `typeof` value if it's not an object. very slight speed improvement
-- use `.slice`
-- adds benchmarks
-
-## [0.1.0] - 2014-9-26
-
-- first commit
-
-[6.0.0]: https://github.com/jonschlinkert/kind-of/compare/5.1.0...6.0.0
-[5.1.0]: https://github.com/jonschlinkert/kind-of/compare/5.0.2...5.1.0
-[5.0.2]: https://github.com/jonschlinkert/kind-of/compare/5.0.1...5.0.2
-[5.0.1]: https://github.com/jonschlinkert/kind-of/compare/5.0.0...5.0.1
-[5.0.0]: https://github.com/jonschlinkert/kind-of/compare/4.0.0...5.0.0
-[4.0.0]: https://github.com/jonschlinkert/kind-of/compare/3.2.2...4.0.0
-[3.2.2]: https://github.com/jonschlinkert/kind-of/compare/3.2.1...3.2.2
-[3.2.1]: https://github.com/jonschlinkert/kind-of/compare/3.2.0...3.2.1
-[3.2.0]: https://github.com/jonschlinkert/kind-of/compare/3.1.0...3.2.0
-[3.1.0]: https://github.com/jonschlinkert/kind-of/compare/3.0.4...3.1.0
-[3.0.4]: https://github.com/jonschlinkert/kind-of/compare/3.0.3...3.0.4
-[3.0.3]: https://github.com/jonschlinkert/kind-of/compare/3.0.0...3.0.3
-[3.0.0]: https://github.com/jonschlinkert/kind-of/compare/2.0.1...3.0.0
-[2.0.1]: https://github.com/jonschlinkert/kind-of/compare/2.0.0...2.0.1
-[2.0.0]: https://github.com/jonschlinkert/kind-of/compare/1.1.0...2.0.0
-[1.1.0]: https://github.com/jonschlinkert/kind-of/compare/1.0.0...1.1.0
-[1.0.0]: https://github.com/jonschlinkert/kind-of/compare/0.1.2...1.0.0
-[0.1.2]: https://github.com/jonschlinkert/kind-of/compare/0.1.0...0.1.2
-[0.1.0]: https://github.com/jonschlinkert/kind-of/commit/2fae09b0b19b1aadb558e9be39f0c3ef6034eb87
-
-[Unreleased]: https://github.com/jonschlinkert/kind-of/compare/0.1.2...HEAD
-[keep-a-changelog]: https://github.com/olivierlacan/keep-a-changelog
\ No newline at end of file
diff --git a/node_modules/is-data-descriptor/node_modules/kind-of/LICENSE b/node_modules/is-data-descriptor/node_modules/kind-of/LICENSE
deleted file mode 100644
index 3f2eca1..0000000
--- a/node_modules/is-data-descriptor/node_modules/kind-of/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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/is-data-descriptor/node_modules/kind-of/README.md b/node_modules/is-data-descriptor/node_modules/kind-of/README.md
deleted file mode 100644
index 0411dc5..0000000
--- a/node_modules/is-data-descriptor/node_modules/kind-of/README.md
+++ /dev/null
@@ -1,367 +0,0 @@
-# kind-of [![NPM version](https://img.shields.io/npm/v/kind-of.svg?style=flat)](https://www.npmjs.com/package/kind-of) [![NPM monthly downloads](https://img.shields.io/npm/dm/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![NPM total downloads](https://img.shields.io/npm/dt/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/kind-of.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/kind-of)
-
-> Get the native type of a value.
-
-Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save kind-of
-```
-
-Install with [bower](https://bower.io/)
-
-```sh
-$ bower install kind-of --save
-```
-
-## Why use this?
-
-1. [it's fast](#benchmarks) | [optimizations](#optimizations)
-2. [better type checking](#better-type-checking)
-
-## Usage
-
-> es5, es6, and browser ready
-
-```js
-var kindOf = require('kind-of');
-
-kindOf(undefined);
-//=> 'undefined'
-
-kindOf(null);
-//=> 'null'
-
-kindOf(true);
-//=> 'boolean'
-
-kindOf(false);
-//=> 'boolean'
-
-kindOf(new Buffer(''));
-//=> 'buffer'
-
-kindOf(42);
-//=> 'number'
-
-kindOf('str');
-//=> 'string'
-
-kindOf(arguments);
-//=> 'arguments'
-
-kindOf({});
-//=> 'object'
-
-kindOf(Object.create(null));
-//=> 'object'
-
-kindOf(new Test());
-//=> 'object'
-
-kindOf(new Date());
-//=> 'date'
-
-kindOf([1, 2, 3]);
-//=> 'array'
-
-kindOf(/foo/);
-//=> 'regexp'
-
-kindOf(new RegExp('foo'));
-//=> 'regexp'
-
-kindOf(new Error('error'));
-//=> 'error'
-
-kindOf(function () {});
-//=> 'function'
-
-kindOf(function * () {});
-//=> 'generatorfunction'
-
-kindOf(Symbol('str'));
-//=> 'symbol'
-
-kindOf(new Map());
-//=> 'map'
-
-kindOf(new WeakMap());
-//=> 'weakmap'
-
-kindOf(new Set());
-//=> 'set'
-
-kindOf(new WeakSet());
-//=> 'weakset'
-
-kindOf(new Int8Array());
-//=> 'int8array'
-
-kindOf(new Uint8Array());
-//=> 'uint8array'
-
-kindOf(new Uint8ClampedArray());
-//=> 'uint8clampedarray'
-
-kindOf(new Int16Array());
-//=> 'int16array'
-
-kindOf(new Uint16Array());
-//=> 'uint16array'
-
-kindOf(new Int32Array());
-//=> 'int32array'
-
-kindOf(new Uint32Array());
-//=> 'uint32array'
-
-kindOf(new Float32Array());
-//=> 'float32array'
-
-kindOf(new Float64Array());
-//=> 'float64array'
-```
-
-## Benchmarks
-
-Benchmarked against [typeof](http://github.com/CodingFu/typeof) and [type-of](https://github.com/ForbesLindesay/type-of).
-
-```bash
-# arguments (32 bytes)
- kind-of x 17,024,098 ops/sec ±1.90% (86 runs sampled)
- lib-type-of x 11,926,235 ops/sec ±1.34% (83 runs sampled)
- lib-typeof x 9,245,257 ops/sec ±1.22% (87 runs sampled)
-
- fastest is kind-of (by 161% avg)
-
-# array (22 bytes)
- kind-of x 17,196,492 ops/sec ±1.07% (88 runs sampled)
- lib-type-of x 8,838,283 ops/sec ±1.02% (87 runs sampled)
- lib-typeof x 8,677,848 ops/sec ±0.87% (87 runs sampled)
-
- fastest is kind-of (by 196% avg)
-
-# boolean (24 bytes)
- kind-of x 16,841,600 ops/sec ±1.10% (86 runs sampled)
- lib-type-of x 8,096,787 ops/sec ±0.95% (87 runs sampled)
- lib-typeof x 8,423,345 ops/sec ±1.15% (86 runs sampled)
-
- fastest is kind-of (by 204% avg)
-
-# buffer (38 bytes)
- kind-of x 14,848,060 ops/sec ±1.05% (86 runs sampled)
- lib-type-of x 3,671,577 ops/sec ±1.49% (87 runs sampled)
- lib-typeof x 8,360,236 ops/sec ±1.24% (86 runs sampled)
-
- fastest is kind-of (by 247% avg)
-
-# date (30 bytes)
- kind-of x 16,067,761 ops/sec ±1.58% (86 runs sampled)
- lib-type-of x 8,954,436 ops/sec ±1.40% (87 runs sampled)
- lib-typeof x 8,488,307 ops/sec ±1.51% (84 runs sampled)
-
- fastest is kind-of (by 184% avg)
-
-# error (36 bytes)
- kind-of x 9,634,090 ops/sec ±1.12% (89 runs sampled)
- lib-type-of x 7,735,624 ops/sec ±1.32% (86 runs sampled)
- lib-typeof x 7,442,160 ops/sec ±1.11% (90 runs sampled)
-
- fastest is kind-of (by 127% avg)
-
-# function (34 bytes)
- kind-of x 10,031,494 ops/sec ±1.27% (86 runs sampled)
- lib-type-of x 9,502,757 ops/sec ±1.17% (89 runs sampled)
- lib-typeof x 8,278,985 ops/sec ±1.08% (88 runs sampled)
-
- fastest is kind-of (by 113% avg)
-
-# null (24 bytes)
- kind-of x 18,159,808 ops/sec ±1.92% (86 runs sampled)
- lib-type-of x 12,927,635 ops/sec ±1.01% (88 runs sampled)
- lib-typeof x 7,958,234 ops/sec ±1.21% (89 runs sampled)
-
- fastest is kind-of (by 174% avg)
-
-# number (22 bytes)
- kind-of x 17,846,779 ops/sec ±0.91% (85 runs sampled)
- lib-type-of x 3,316,636 ops/sec ±1.19% (86 runs sampled)
- lib-typeof x 2,329,477 ops/sec ±2.21% (85 runs sampled)
-
- fastest is kind-of (by 632% avg)
-
-# object-plain (47 bytes)
- kind-of x 7,085,155 ops/sec ±1.05% (88 runs sampled)
- lib-type-of x 8,870,930 ops/sec ±1.06% (83 runs sampled)
- lib-typeof x 8,716,024 ops/sec ±1.05% (87 runs sampled)
-
- fastest is lib-type-of (by 112% avg)
-
-# regex (25 bytes)
- kind-of x 14,196,052 ops/sec ±1.65% (84 runs sampled)
- lib-type-of x 9,554,164 ops/sec ±1.25% (88 runs sampled)
- lib-typeof x 8,359,691 ops/sec ±1.07% (87 runs sampled)
-
- fastest is kind-of (by 158% avg)
-
-# string (33 bytes)
- kind-of x 16,131,428 ops/sec ±1.41% (85 runs sampled)
- lib-type-of x 7,273,172 ops/sec ±1.05% (87 runs sampled)
- lib-typeof x 7,382,635 ops/sec ±1.17% (85 runs sampled)
-
- fastest is kind-of (by 220% avg)
-
-# symbol (34 bytes)
- kind-of x 17,011,537 ops/sec ±1.24% (86 runs sampled)
- lib-type-of x 3,492,454 ops/sec ±1.23% (89 runs sampled)
- lib-typeof x 7,471,235 ops/sec ±2.48% (87 runs sampled)
-
- fastest is kind-of (by 310% avg)
-
-# template-strings (36 bytes)
- kind-of x 15,434,250 ops/sec ±1.46% (83 runs sampled)
- lib-type-of x 7,157,907 ops/sec ±0.97% (87 runs sampled)
- lib-typeof x 7,517,986 ops/sec ±0.92% (86 runs sampled)
-
- fastest is kind-of (by 210% avg)
-
-# undefined (29 bytes)
- kind-of x 19,167,115 ops/sec ±1.71% (87 runs sampled)
- lib-type-of x 15,477,740 ops/sec ±1.63% (85 runs sampled)
- lib-typeof x 19,075,495 ops/sec ±1.17% (83 runs sampled)
-
- fastest is lib-typeof,kind-of
-
-```
-
-## Optimizations
-
-In 7 out of 8 cases, this library is 2x-10x faster than other top libraries included in the benchmarks. There are a few things that lead to this performance advantage, none of them hard and fast rules, but all of them simple and repeatable in almost any code library:
-
-1. Optimize around the fastest and most common use cases first. Of course, this will change from project-to-project, but I took some time to understand how and why `typeof` checks were being used in my own libraries and other libraries I use a lot.
-2. Optimize around bottlenecks - In other words, the order in which conditionals are implemented is significant, because each check is only as fast as the failing checks that came before it. Here, the biggest bottleneck by far is checking for plain objects (an object that was created by the `Object` constructor). I opted to make this check happen by process of elimination rather than brute force up front (e.g. by using something like `val.constructor.name`), so that every other type check would not be penalized it.
-3. Don't do uneccessary processing - why do `.slice(8, -1).toLowerCase();` just to get the word `regex`? It's much faster to do `if (type === '[object RegExp]') return 'regex'`
-4. There is no reason to make the code in a microlib as terse as possible, just to win points for making it shorter. It's always better to favor performant code over terse code. You will always only be using a single `require()` statement to use the library anyway, regardless of how the code is written.
-
-## Better type checking
-
-kind-of seems to be more consistently "correct" than other type checking libs I've looked at. For example, here are some differing results from other popular libs:
-
-### [typeof](https://github.com/CodingFu/typeof) lib
-
-Incorrectly identifies instances of custom constructors (pretty common):
-
-```js
-var typeOf = require('typeof');
-function Test() {}
-console.log(typeOf(new Test()));
-//=> 'test'
-```
-
-Returns `object` instead of `arguments`:
-
-```js
-function foo() {
- console.log(typeOf(arguments)) //=> 'object'
-}
-foo();
-```
-
-### [type-of](https://github.com/ForbesLindesay/type-of) lib
-
-Incorrectly returns `object` for generator functions, buffers, `Map`, `Set`, `WeakMap` and `WeakSet`:
-
-```js
-function * foo() {}
-console.log(typeOf(foo));
-//=> 'object'
-console.log(typeOf(new Buffer('')));
-//=> 'object'
-console.log(typeOf(new Map()));
-//=> 'object'
-console.log(typeOf(new Set()));
-//=> 'object'
-console.log(typeOf(new WeakMap()));
-//=> 'object'
-console.log(typeOf(new WeakSet()));
-//=> 'object'
-```
-
-## About
-
-
-Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-
-
-
-Running Tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-
-
-
-Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-
-
-### Related projects
-
-You might also be interested in these projects:
-
-* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/micromatch/is-glob) | [homepage](https://github.com/micromatch/is-glob "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet")
-* [is-number](https://www.npmjs.com/package/is-number): Returns true if a number or string value is a finite number. Useful for regex… [more](https://github.com/jonschlinkert/is-number) | [homepage](https://github.com/jonschlinkert/is-number "Returns true if a number or string value is a finite number. Useful for regex matches, parsing, user input, etc.")
-* [is-primitive](https://www.npmjs.com/package/is-primitive): Returns `true` if the value is a primitive. | [homepage](https://github.com/jonschlinkert/is-primitive "Returns `true` if the value is a primitive. ")
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 102 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 3 | [aretecode](https://github.com/aretecode) |
-| 2 | [miguelmota](https://github.com/miguelmota) |
-| 1 | [doowb](https://github.com/doowb) |
-| 1 | [dtothefp](https://github.com/dtothefp) |
-| 1 | [ianstormtaylor](https://github.com/ianstormtaylor) |
-| 1 | [ksheedlo](https://github.com/ksheedlo) |
-| 1 | [pdehaan](https://github.com/pdehaan) |
-| 1 | [laggingreflex](https://github.com/laggingreflex) |
-| 1 | [tunnckoCore](https://github.com/tunnckoCore) |
-| 1 | [xiaofen9](https://github.com/xiaofen9) |
-
-### Author
-
-**Jon Schlinkert**
-
-* [GitHub Profile](https://github.com/jonschlinkert)
-* [Twitter Profile](https://twitter.com/jonschlinkert)
-* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert)
-
-### License
-
-Copyright © 2020, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on January 16, 2020._
\ No newline at end of file
diff --git a/node_modules/is-data-descriptor/node_modules/kind-of/index.js b/node_modules/is-data-descriptor/node_modules/kind-of/index.js
deleted file mode 100644
index dfa799b..0000000
--- a/node_modules/is-data-descriptor/node_modules/kind-of/index.js
+++ /dev/null
@@ -1,129 +0,0 @@
-var toString = Object.prototype.toString;
-
-module.exports = function kindOf(val) {
- if (val === void 0) return 'undefined';
- if (val === null) return 'null';
-
- var type = typeof val;
- if (type === 'boolean') return 'boolean';
- if (type === 'string') return 'string';
- if (type === 'number') return 'number';
- if (type === 'symbol') return 'symbol';
- if (type === 'function') {
- return isGeneratorFn(val) ? 'generatorfunction' : 'function';
- }
-
- if (isArray(val)) return 'array';
- if (isBuffer(val)) return 'buffer';
- if (isArguments(val)) return 'arguments';
- if (isDate(val)) return 'date';
- if (isError(val)) return 'error';
- if (isRegexp(val)) return 'regexp';
-
- switch (ctorName(val)) {
- case 'Symbol': return 'symbol';
- case 'Promise': return 'promise';
-
- // Set, Map, WeakSet, WeakMap
- case 'WeakMap': return 'weakmap';
- case 'WeakSet': return 'weakset';
- case 'Map': return 'map';
- case 'Set': return 'set';
-
- // 8-bit typed arrays
- case 'Int8Array': return 'int8array';
- case 'Uint8Array': return 'uint8array';
- case 'Uint8ClampedArray': return 'uint8clampedarray';
-
- // 16-bit typed arrays
- case 'Int16Array': return 'int16array';
- case 'Uint16Array': return 'uint16array';
-
- // 32-bit typed arrays
- case 'Int32Array': return 'int32array';
- case 'Uint32Array': return 'uint32array';
- case 'Float32Array': return 'float32array';
- case 'Float64Array': return 'float64array';
- }
-
- if (isGeneratorObj(val)) {
- return 'generator';
- }
-
- // Non-plain objects
- type = toString.call(val);
- switch (type) {
- case '[object Object]': return 'object';
- // iterators
- case '[object Map Iterator]': return 'mapiterator';
- case '[object Set Iterator]': return 'setiterator';
- case '[object String Iterator]': return 'stringiterator';
- case '[object Array Iterator]': return 'arrayiterator';
- }
-
- // other
- return type.slice(8, -1).toLowerCase().replace(/\s/g, '');
-};
-
-function ctorName(val) {
- return typeof val.constructor === 'function' ? val.constructor.name : null;
-}
-
-function isArray(val) {
- if (Array.isArray) return Array.isArray(val);
- return val instanceof Array;
-}
-
-function isError(val) {
- return val instanceof Error || (typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number');
-}
-
-function isDate(val) {
- if (val instanceof Date) return true;
- return typeof val.toDateString === 'function'
- && typeof val.getDate === 'function'
- && typeof val.setDate === 'function';
-}
-
-function isRegexp(val) {
- if (val instanceof RegExp) return true;
- return typeof val.flags === 'string'
- && typeof val.ignoreCase === 'boolean'
- && typeof val.multiline === 'boolean'
- && typeof val.global === 'boolean';
-}
-
-function isGeneratorFn(name, val) {
- return ctorName(name) === 'GeneratorFunction';
-}
-
-function isGeneratorObj(val) {
- return typeof val.throw === 'function'
- && typeof val.return === 'function'
- && typeof val.next === 'function';
-}
-
-function isArguments(val) {
- try {
- if (typeof val.length === 'number' && typeof val.callee === 'function') {
- return true;
- }
- } catch (err) {
- if (err.message.indexOf('callee') !== -1) {
- return true;
- }
- }
- return false;
-}
-
-/**
- * If you need to support Safari 5-7 (8-10 yr-old browser),
- * take a look at https://github.com/feross/is-buffer
- */
-
-function isBuffer(val) {
- if (val.constructor && typeof val.constructor.isBuffer === 'function') {
- return val.constructor.isBuffer(val);
- }
- return false;
-}
diff --git a/node_modules/is-data-descriptor/node_modules/kind-of/package.json b/node_modules/is-data-descriptor/node_modules/kind-of/package.json
deleted file mode 100644
index 5820cad..0000000
--- a/node_modules/is-data-descriptor/node_modules/kind-of/package.json
+++ /dev/null
@@ -1,88 +0,0 @@
-{
- "name": "kind-of",
- "description": "Get the native type of a value.",
- "version": "6.0.3",
- "homepage": "https://github.com/jonschlinkert/kind-of",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "David Fox-Powell (https://dtothefp.github.io/me)",
- "James (https://twitter.com/aretecode)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Ken Sheedlo (kensheedlo.com)",
- "laggingreflex (https://github.com/laggingreflex)",
- "Miguel Mota (https://miguelmota.com)",
- "Peter deHaan (http://about.me/peterdehaan)",
- "tunnckoCore (https://i.am.charlike.online)"
- ],
- "repository": "jonschlinkert/kind-of",
- "bugs": {
- "url": "https://github.com/jonschlinkert/kind-of/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha",
- "prepublish": "browserify -o browser.js -e index.js -s index --bare"
- },
- "devDependencies": {
- "benchmarked": "^2.0.0",
- "browserify": "^14.4.0",
- "gulp-format-md": "^1.0.0",
- "mocha": "^4.0.1",
- "write": "^1.0.3"
- },
- "keywords": [
- "arguments",
- "array",
- "boolean",
- "check",
- "date",
- "function",
- "is",
- "is-type",
- "is-type-of",
- "kind",
- "kind-of",
- "number",
- "object",
- "of",
- "regexp",
- "string",
- "test",
- "type",
- "type-of",
- "typeof",
- "types"
- ],
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- },
- "related": {
- "list": [
- "is-glob",
- "is-number",
- "is-primitive"
- ]
- },
- "reflinks": [
- "type-of",
- "typeof",
- "verb"
- ]
- }
-}
diff --git a/node_modules/is-data-descriptor/package.json b/node_modules/is-data-descriptor/package.json
deleted file mode 100644
index 0b09383..0000000
--- a/node_modules/is-data-descriptor/package.json
+++ /dev/null
@@ -1,72 +0,0 @@
-{
- "name": "is-data-descriptor",
- "description": "Returns true if a value has the characteristics of a valid JavaScript data descriptor.",
- "version": "1.0.0",
- "homepage": "https://github.com/jonschlinkert/is-data-descriptor",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Rouven Weßling (www.rouvenwessling.de)"
- ],
- "repository": "jonschlinkert/is-data-descriptor",
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-data-descriptor/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "kind-of": "^6.0.0"
- },
- "devDependencies": {
- "gulp-format-md": "^1.0.0",
- "mocha": "^3.5.3"
- },
- "keywords": [
- "accessor",
- "check",
- "data",
- "descriptor",
- "get",
- "getter",
- "is",
- "keys",
- "object",
- "properties",
- "property",
- "set",
- "setter",
- "type",
- "valid",
- "value"
- ],
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "is-accessor-descriptor",
- "is-data-descriptor",
- "is-descriptor",
- "isobject"
- ]
- },
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/is-descriptor/LICENSE b/node_modules/is-descriptor/LICENSE
deleted file mode 100644
index c0d7f13..0000000
--- a/node_modules/is-descriptor/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015-2017, 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.
\ No newline at end of file
diff --git a/node_modules/is-descriptor/README.md b/node_modules/is-descriptor/README.md
deleted file mode 100644
index 658e533..0000000
--- a/node_modules/is-descriptor/README.md
+++ /dev/null
@@ -1,193 +0,0 @@
-# is-descriptor [![NPM version](https://img.shields.io/npm/v/is-descriptor.svg?style=flat)](https://www.npmjs.com/package/is-descriptor) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-descriptor.svg?style=flat)](https://npmjs.org/package/is-descriptor) [![NPM total downloads](https://img.shields.io/npm/dt/is-descriptor.svg?style=flat)](https://npmjs.org/package/is-descriptor) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-descriptor.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-descriptor)
-
-> Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for data descriptors and accessor descriptors.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save is-descriptor
-```
-
-## Usage
-
-```js
-var isDescriptor = require('is-descriptor');
-
-isDescriptor({value: 'foo'})
-//=> true
-isDescriptor({get: function(){}, set: function(){}})
-//=> true
-isDescriptor({get: 'foo', set: function(){}})
-//=> false
-```
-
-You may also check for a descriptor by passing an object as the first argument and property name (`string`) as the second argument.
-
-```js
-var obj = {};
-obj.foo = 'abc';
-
-Object.defineProperty(obj, 'bar', {
- value: 'xyz'
-});
-
-isDescriptor(obj, 'foo');
-//=> true
-isDescriptor(obj, 'bar');
-//=> true
-```
-
-## Examples
-
-### value type
-
-`false` when not an object
-
-```js
-isDescriptor('a');
-//=> false
-isDescriptor(null);
-//=> false
-isDescriptor([]);
-//=> false
-```
-
-### data descriptor
-
-`true` when the object has valid properties with valid values.
-
-```js
-isDescriptor({value: 'foo'});
-//=> true
-isDescriptor({value: noop});
-//=> true
-```
-
-`false` when the object has invalid properties
-
-```js
-isDescriptor({value: 'foo', bar: 'baz'});
-//=> false
-isDescriptor({value: 'foo', bar: 'baz'});
-//=> false
-isDescriptor({value: 'foo', get: noop});
-//=> false
-isDescriptor({get: noop, value: noop});
-//=> false
-```
-
-`false` when a value is not the correct type
-
-```js
-isDescriptor({value: 'foo', enumerable: 'foo'});
-//=> false
-isDescriptor({value: 'foo', configurable: 'foo'});
-//=> false
-isDescriptor({value: 'foo', writable: 'foo'});
-//=> false
-```
-
-### accessor descriptor
-
-`true` when the object has valid properties with valid values.
-
-```js
-isDescriptor({get: noop, set: noop});
-//=> true
-isDescriptor({get: noop});
-//=> true
-isDescriptor({set: noop});
-//=> true
-```
-
-`false` when the object has invalid properties
-
-```js
-isDescriptor({get: noop, set: noop, bar: 'baz'});
-//=> false
-isDescriptor({get: noop, writable: true});
-//=> false
-isDescriptor({get: noop, value: true});
-//=> false
-```
-
-`false` when an accessor is not a function
-
-```js
-isDescriptor({get: noop, set: 'baz'});
-//=> false
-isDescriptor({get: 'foo', set: noop});
-//=> false
-isDescriptor({get: 'foo', bar: 'baz'});
-//=> false
-isDescriptor({get: 'foo', set: 'baz'});
-//=> false
-```
-
-`false` when a value is not the correct type
-
-```js
-isDescriptor({get: noop, set: noop, enumerable: 'foo'});
-//=> false
-isDescriptor({set: noop, configurable: 'foo'});
-//=> false
-isDescriptor({get: noop, configurable: 'foo'});
-//=> false
-```
-
-## About
-
-### Related projects
-
-* [is-accessor-descriptor](https://www.npmjs.com/package/is-accessor-descriptor): Returns true if a value has the characteristics of a valid JavaScript accessor descriptor. | [homepage](https://github.com/jonschlinkert/is-accessor-descriptor "Returns true if a value has the characteristics of a valid JavaScript accessor descriptor.")
-* [is-data-descriptor](https://www.npmjs.com/package/is-data-descriptor): Returns true if a value has the characteristics of a valid JavaScript data descriptor. | [homepage](https://github.com/jonschlinkert/is-data-descriptor "Returns true if a value has the characteristics of a valid JavaScript data descriptor.")
-* [is-descriptor](https://www.npmjs.com/package/is-descriptor): Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for… [more](https://github.com/jonschlinkert/is-descriptor) | [homepage](https://github.com/jonschlinkert/is-descriptor "Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for data descriptors and accessor descriptors.")
-* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 24 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 1 | [doowb](https://github.com/doowb) |
-| 1 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) |
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on July 22, 2017._
\ No newline at end of file
diff --git a/node_modules/is-descriptor/index.js b/node_modules/is-descriptor/index.js
deleted file mode 100644
index c9b91d7..0000000
--- a/node_modules/is-descriptor/index.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/*!
- * is-descriptor
- *
- * Copyright (c) 2015-2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-var typeOf = require('kind-of');
-var isAccessor = require('is-accessor-descriptor');
-var isData = require('is-data-descriptor');
-
-module.exports = function isDescriptor(obj, key) {
- if (typeOf(obj) !== 'object') {
- return false;
- }
- if ('get' in obj) {
- return isAccessor(obj, key);
- }
- return isData(obj, key);
-};
diff --git a/node_modules/is-descriptor/node_modules/kind-of/CHANGELOG.md b/node_modules/is-descriptor/node_modules/kind-of/CHANGELOG.md
deleted file mode 100644
index 01687d5..0000000
--- a/node_modules/is-descriptor/node_modules/kind-of/CHANGELOG.md
+++ /dev/null
@@ -1,160 +0,0 @@
-# Release history
-
-All notable changes to this project will be documented in this file.
-
-The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
-and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
-
-
- Guiding Principles
-
-- Changelogs are for humans, not machines.
-- There should be an entry for every single version.
-- The same types of changes should be grouped.
-- Versions and sections should be linkable.
-- The latest version comes first.
-- The release date of each versions is displayed.
-- Mention whether you follow Semantic Versioning.
-
-
-
-
- Types of changes
-
-Changelog entries are classified using the following labels _(from [keep-a-changelog](http://keepachangelog.com/)_):
-
-- `Added` for new features.
-- `Changed` for changes in existing functionality.
-- `Deprecated` for soon-to-be removed features.
-- `Removed` for now removed features.
-- `Fixed` for any bug fixes.
-- `Security` in case of vulnerabilities.
-
-
-
-## [6.0.3] - 2020-01-16
-
-- Merge pull request #31 for issue #30
-
-## [6.0.0] - 2017-10-13
-
-- refactor code to be more performant
-- refactor benchmarks
-
-## [5.1.0] - 2017-10-13
-
-**Added**
-
-- Merge pull request #15 from aretecode/patch-1
-- adds support and tests for string & array iterators
-
-**Changed**
-
-- updates benchmarks
-
-## [5.0.2] - 2017-08-02
-
-- Merge pull request #14 from struct78/master
-- Added `undefined` check
-
-## [5.0.0] - 2017-06-21
-
-- Merge pull request #12 from aretecode/iterator
-- Set Iterator + Map Iterator
-- streamline `isbuffer`, minor edits
-
-## [4.0.0] - 2017-05-19
-
-- Merge pull request #8 from tunnckoCore/master
-- update deps
-
-## [3.2.2] - 2017-05-16
-
-- fix version
-
-## [3.2.1] - 2017-05-16
-
-- add browserify
-
-## [3.2.0] - 2017-04-25
-
-- Merge pull request #10 from ksheedlo/unrequire-buffer
-- add `promise` support and tests
-- Remove unnecessary `Buffer` check
-
-## [3.1.0] - 2016-12-07
-
-- Merge pull request #7 from laggingreflex/err
-- add support for `error` and tests
-- run update
-
-## [3.0.4] - 2016-07-29
-
-- move tests
-- run update
-
-## [3.0.3] - 2016-05-03
-
-- fix prepublish script
-- remove unused dep
-
-## [3.0.0] - 2015-11-17
-
-- add typed array support
-- Merge pull request #5 from miguelmota/typed-arrays
-- adds new tests
-
-## [2.0.1] - 2015-08-21
-
-- use `is-buffer` module
-
-## [2.0.0] - 2015-05-31
-
-- Create fallback for `Array.isArray` if used as a browser package
-- Merge pull request #2 from dtothefp/patch-1
-- Merge pull request #3 from pdehaan/patch-1
-- Merge branch 'master' of https://github.com/chorks/kind-of into chorks-master
-- optimizations, mostly date and regex
-
-## [1.1.0] - 2015-02-09
-
-- adds `buffer` support
-- adds tests for `buffer`
-
-## [1.0.0] - 2015-01-19
-
-- update benchmarks
-- optimizations based on benchmarks
-
-## [0.1.2] - 2014-10-26
-
-- return `typeof` value if it's not an object. very slight speed improvement
-- use `.slice`
-- adds benchmarks
-
-## [0.1.0] - 2014-9-26
-
-- first commit
-
-[6.0.0]: https://github.com/jonschlinkert/kind-of/compare/5.1.0...6.0.0
-[5.1.0]: https://github.com/jonschlinkert/kind-of/compare/5.0.2...5.1.0
-[5.0.2]: https://github.com/jonschlinkert/kind-of/compare/5.0.1...5.0.2
-[5.0.1]: https://github.com/jonschlinkert/kind-of/compare/5.0.0...5.0.1
-[5.0.0]: https://github.com/jonschlinkert/kind-of/compare/4.0.0...5.0.0
-[4.0.0]: https://github.com/jonschlinkert/kind-of/compare/3.2.2...4.0.0
-[3.2.2]: https://github.com/jonschlinkert/kind-of/compare/3.2.1...3.2.2
-[3.2.1]: https://github.com/jonschlinkert/kind-of/compare/3.2.0...3.2.1
-[3.2.0]: https://github.com/jonschlinkert/kind-of/compare/3.1.0...3.2.0
-[3.1.0]: https://github.com/jonschlinkert/kind-of/compare/3.0.4...3.1.0
-[3.0.4]: https://github.com/jonschlinkert/kind-of/compare/3.0.3...3.0.4
-[3.0.3]: https://github.com/jonschlinkert/kind-of/compare/3.0.0...3.0.3
-[3.0.0]: https://github.com/jonschlinkert/kind-of/compare/2.0.1...3.0.0
-[2.0.1]: https://github.com/jonschlinkert/kind-of/compare/2.0.0...2.0.1
-[2.0.0]: https://github.com/jonschlinkert/kind-of/compare/1.1.0...2.0.0
-[1.1.0]: https://github.com/jonschlinkert/kind-of/compare/1.0.0...1.1.0
-[1.0.0]: https://github.com/jonschlinkert/kind-of/compare/0.1.2...1.0.0
-[0.1.2]: https://github.com/jonschlinkert/kind-of/compare/0.1.0...0.1.2
-[0.1.0]: https://github.com/jonschlinkert/kind-of/commit/2fae09b0b19b1aadb558e9be39f0c3ef6034eb87
-
-[Unreleased]: https://github.com/jonschlinkert/kind-of/compare/0.1.2...HEAD
-[keep-a-changelog]: https://github.com/olivierlacan/keep-a-changelog
\ No newline at end of file
diff --git a/node_modules/is-descriptor/node_modules/kind-of/LICENSE b/node_modules/is-descriptor/node_modules/kind-of/LICENSE
deleted file mode 100644
index 3f2eca1..0000000
--- a/node_modules/is-descriptor/node_modules/kind-of/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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/is-descriptor/node_modules/kind-of/README.md b/node_modules/is-descriptor/node_modules/kind-of/README.md
deleted file mode 100644
index 0411dc5..0000000
--- a/node_modules/is-descriptor/node_modules/kind-of/README.md
+++ /dev/null
@@ -1,367 +0,0 @@
-# kind-of [![NPM version](https://img.shields.io/npm/v/kind-of.svg?style=flat)](https://www.npmjs.com/package/kind-of) [![NPM monthly downloads](https://img.shields.io/npm/dm/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![NPM total downloads](https://img.shields.io/npm/dt/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/kind-of.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/kind-of)
-
-> Get the native type of a value.
-
-Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save kind-of
-```
-
-Install with [bower](https://bower.io/)
-
-```sh
-$ bower install kind-of --save
-```
-
-## Why use this?
-
-1. [it's fast](#benchmarks) | [optimizations](#optimizations)
-2. [better type checking](#better-type-checking)
-
-## Usage
-
-> es5, es6, and browser ready
-
-```js
-var kindOf = require('kind-of');
-
-kindOf(undefined);
-//=> 'undefined'
-
-kindOf(null);
-//=> 'null'
-
-kindOf(true);
-//=> 'boolean'
-
-kindOf(false);
-//=> 'boolean'
-
-kindOf(new Buffer(''));
-//=> 'buffer'
-
-kindOf(42);
-//=> 'number'
-
-kindOf('str');
-//=> 'string'
-
-kindOf(arguments);
-//=> 'arguments'
-
-kindOf({});
-//=> 'object'
-
-kindOf(Object.create(null));
-//=> 'object'
-
-kindOf(new Test());
-//=> 'object'
-
-kindOf(new Date());
-//=> 'date'
-
-kindOf([1, 2, 3]);
-//=> 'array'
-
-kindOf(/foo/);
-//=> 'regexp'
-
-kindOf(new RegExp('foo'));
-//=> 'regexp'
-
-kindOf(new Error('error'));
-//=> 'error'
-
-kindOf(function () {});
-//=> 'function'
-
-kindOf(function * () {});
-//=> 'generatorfunction'
-
-kindOf(Symbol('str'));
-//=> 'symbol'
-
-kindOf(new Map());
-//=> 'map'
-
-kindOf(new WeakMap());
-//=> 'weakmap'
-
-kindOf(new Set());
-//=> 'set'
-
-kindOf(new WeakSet());
-//=> 'weakset'
-
-kindOf(new Int8Array());
-//=> 'int8array'
-
-kindOf(new Uint8Array());
-//=> 'uint8array'
-
-kindOf(new Uint8ClampedArray());
-//=> 'uint8clampedarray'
-
-kindOf(new Int16Array());
-//=> 'int16array'
-
-kindOf(new Uint16Array());
-//=> 'uint16array'
-
-kindOf(new Int32Array());
-//=> 'int32array'
-
-kindOf(new Uint32Array());
-//=> 'uint32array'
-
-kindOf(new Float32Array());
-//=> 'float32array'
-
-kindOf(new Float64Array());
-//=> 'float64array'
-```
-
-## Benchmarks
-
-Benchmarked against [typeof](http://github.com/CodingFu/typeof) and [type-of](https://github.com/ForbesLindesay/type-of).
-
-```bash
-# arguments (32 bytes)
- kind-of x 17,024,098 ops/sec ±1.90% (86 runs sampled)
- lib-type-of x 11,926,235 ops/sec ±1.34% (83 runs sampled)
- lib-typeof x 9,245,257 ops/sec ±1.22% (87 runs sampled)
-
- fastest is kind-of (by 161% avg)
-
-# array (22 bytes)
- kind-of x 17,196,492 ops/sec ±1.07% (88 runs sampled)
- lib-type-of x 8,838,283 ops/sec ±1.02% (87 runs sampled)
- lib-typeof x 8,677,848 ops/sec ±0.87% (87 runs sampled)
-
- fastest is kind-of (by 196% avg)
-
-# boolean (24 bytes)
- kind-of x 16,841,600 ops/sec ±1.10% (86 runs sampled)
- lib-type-of x 8,096,787 ops/sec ±0.95% (87 runs sampled)
- lib-typeof x 8,423,345 ops/sec ±1.15% (86 runs sampled)
-
- fastest is kind-of (by 204% avg)
-
-# buffer (38 bytes)
- kind-of x 14,848,060 ops/sec ±1.05% (86 runs sampled)
- lib-type-of x 3,671,577 ops/sec ±1.49% (87 runs sampled)
- lib-typeof x 8,360,236 ops/sec ±1.24% (86 runs sampled)
-
- fastest is kind-of (by 247% avg)
-
-# date (30 bytes)
- kind-of x 16,067,761 ops/sec ±1.58% (86 runs sampled)
- lib-type-of x 8,954,436 ops/sec ±1.40% (87 runs sampled)
- lib-typeof x 8,488,307 ops/sec ±1.51% (84 runs sampled)
-
- fastest is kind-of (by 184% avg)
-
-# error (36 bytes)
- kind-of x 9,634,090 ops/sec ±1.12% (89 runs sampled)
- lib-type-of x 7,735,624 ops/sec ±1.32% (86 runs sampled)
- lib-typeof x 7,442,160 ops/sec ±1.11% (90 runs sampled)
-
- fastest is kind-of (by 127% avg)
-
-# function (34 bytes)
- kind-of x 10,031,494 ops/sec ±1.27% (86 runs sampled)
- lib-type-of x 9,502,757 ops/sec ±1.17% (89 runs sampled)
- lib-typeof x 8,278,985 ops/sec ±1.08% (88 runs sampled)
-
- fastest is kind-of (by 113% avg)
-
-# null (24 bytes)
- kind-of x 18,159,808 ops/sec ±1.92% (86 runs sampled)
- lib-type-of x 12,927,635 ops/sec ±1.01% (88 runs sampled)
- lib-typeof x 7,958,234 ops/sec ±1.21% (89 runs sampled)
-
- fastest is kind-of (by 174% avg)
-
-# number (22 bytes)
- kind-of x 17,846,779 ops/sec ±0.91% (85 runs sampled)
- lib-type-of x 3,316,636 ops/sec ±1.19% (86 runs sampled)
- lib-typeof x 2,329,477 ops/sec ±2.21% (85 runs sampled)
-
- fastest is kind-of (by 632% avg)
-
-# object-plain (47 bytes)
- kind-of x 7,085,155 ops/sec ±1.05% (88 runs sampled)
- lib-type-of x 8,870,930 ops/sec ±1.06% (83 runs sampled)
- lib-typeof x 8,716,024 ops/sec ±1.05% (87 runs sampled)
-
- fastest is lib-type-of (by 112% avg)
-
-# regex (25 bytes)
- kind-of x 14,196,052 ops/sec ±1.65% (84 runs sampled)
- lib-type-of x 9,554,164 ops/sec ±1.25% (88 runs sampled)
- lib-typeof x 8,359,691 ops/sec ±1.07% (87 runs sampled)
-
- fastest is kind-of (by 158% avg)
-
-# string (33 bytes)
- kind-of x 16,131,428 ops/sec ±1.41% (85 runs sampled)
- lib-type-of x 7,273,172 ops/sec ±1.05% (87 runs sampled)
- lib-typeof x 7,382,635 ops/sec ±1.17% (85 runs sampled)
-
- fastest is kind-of (by 220% avg)
-
-# symbol (34 bytes)
- kind-of x 17,011,537 ops/sec ±1.24% (86 runs sampled)
- lib-type-of x 3,492,454 ops/sec ±1.23% (89 runs sampled)
- lib-typeof x 7,471,235 ops/sec ±2.48% (87 runs sampled)
-
- fastest is kind-of (by 310% avg)
-
-# template-strings (36 bytes)
- kind-of x 15,434,250 ops/sec ±1.46% (83 runs sampled)
- lib-type-of x 7,157,907 ops/sec ±0.97% (87 runs sampled)
- lib-typeof x 7,517,986 ops/sec ±0.92% (86 runs sampled)
-
- fastest is kind-of (by 210% avg)
-
-# undefined (29 bytes)
- kind-of x 19,167,115 ops/sec ±1.71% (87 runs sampled)
- lib-type-of x 15,477,740 ops/sec ±1.63% (85 runs sampled)
- lib-typeof x 19,075,495 ops/sec ±1.17% (83 runs sampled)
-
- fastest is lib-typeof,kind-of
-
-```
-
-## Optimizations
-
-In 7 out of 8 cases, this library is 2x-10x faster than other top libraries included in the benchmarks. There are a few things that lead to this performance advantage, none of them hard and fast rules, but all of them simple and repeatable in almost any code library:
-
-1. Optimize around the fastest and most common use cases first. Of course, this will change from project-to-project, but I took some time to understand how and why `typeof` checks were being used in my own libraries and other libraries I use a lot.
-2. Optimize around bottlenecks - In other words, the order in which conditionals are implemented is significant, because each check is only as fast as the failing checks that came before it. Here, the biggest bottleneck by far is checking for plain objects (an object that was created by the `Object` constructor). I opted to make this check happen by process of elimination rather than brute force up front (e.g. by using something like `val.constructor.name`), so that every other type check would not be penalized it.
-3. Don't do uneccessary processing - why do `.slice(8, -1).toLowerCase();` just to get the word `regex`? It's much faster to do `if (type === '[object RegExp]') return 'regex'`
-4. There is no reason to make the code in a microlib as terse as possible, just to win points for making it shorter. It's always better to favor performant code over terse code. You will always only be using a single `require()` statement to use the library anyway, regardless of how the code is written.
-
-## Better type checking
-
-kind-of seems to be more consistently "correct" than other type checking libs I've looked at. For example, here are some differing results from other popular libs:
-
-### [typeof](https://github.com/CodingFu/typeof) lib
-
-Incorrectly identifies instances of custom constructors (pretty common):
-
-```js
-var typeOf = require('typeof');
-function Test() {}
-console.log(typeOf(new Test()));
-//=> 'test'
-```
-
-Returns `object` instead of `arguments`:
-
-```js
-function foo() {
- console.log(typeOf(arguments)) //=> 'object'
-}
-foo();
-```
-
-### [type-of](https://github.com/ForbesLindesay/type-of) lib
-
-Incorrectly returns `object` for generator functions, buffers, `Map`, `Set`, `WeakMap` and `WeakSet`:
-
-```js
-function * foo() {}
-console.log(typeOf(foo));
-//=> 'object'
-console.log(typeOf(new Buffer('')));
-//=> 'object'
-console.log(typeOf(new Map()));
-//=> 'object'
-console.log(typeOf(new Set()));
-//=> 'object'
-console.log(typeOf(new WeakMap()));
-//=> 'object'
-console.log(typeOf(new WeakSet()));
-//=> 'object'
-```
-
-## About
-
-
-Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-
-
-
-Running Tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-
-
-
-Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-
-
-### Related projects
-
-You might also be interested in these projects:
-
-* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/micromatch/is-glob) | [homepage](https://github.com/micromatch/is-glob "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet")
-* [is-number](https://www.npmjs.com/package/is-number): Returns true if a number or string value is a finite number. Useful for regex… [more](https://github.com/jonschlinkert/is-number) | [homepage](https://github.com/jonschlinkert/is-number "Returns true if a number or string value is a finite number. Useful for regex matches, parsing, user input, etc.")
-* [is-primitive](https://www.npmjs.com/package/is-primitive): Returns `true` if the value is a primitive. | [homepage](https://github.com/jonschlinkert/is-primitive "Returns `true` if the value is a primitive. ")
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 102 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 3 | [aretecode](https://github.com/aretecode) |
-| 2 | [miguelmota](https://github.com/miguelmota) |
-| 1 | [doowb](https://github.com/doowb) |
-| 1 | [dtothefp](https://github.com/dtothefp) |
-| 1 | [ianstormtaylor](https://github.com/ianstormtaylor) |
-| 1 | [ksheedlo](https://github.com/ksheedlo) |
-| 1 | [pdehaan](https://github.com/pdehaan) |
-| 1 | [laggingreflex](https://github.com/laggingreflex) |
-| 1 | [tunnckoCore](https://github.com/tunnckoCore) |
-| 1 | [xiaofen9](https://github.com/xiaofen9) |
-
-### Author
-
-**Jon Schlinkert**
-
-* [GitHub Profile](https://github.com/jonschlinkert)
-* [Twitter Profile](https://twitter.com/jonschlinkert)
-* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert)
-
-### License
-
-Copyright © 2020, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on January 16, 2020._
\ No newline at end of file
diff --git a/node_modules/is-descriptor/node_modules/kind-of/index.js b/node_modules/is-descriptor/node_modules/kind-of/index.js
deleted file mode 100644
index dfa799b..0000000
--- a/node_modules/is-descriptor/node_modules/kind-of/index.js
+++ /dev/null
@@ -1,129 +0,0 @@
-var toString = Object.prototype.toString;
-
-module.exports = function kindOf(val) {
- if (val === void 0) return 'undefined';
- if (val === null) return 'null';
-
- var type = typeof val;
- if (type === 'boolean') return 'boolean';
- if (type === 'string') return 'string';
- if (type === 'number') return 'number';
- if (type === 'symbol') return 'symbol';
- if (type === 'function') {
- return isGeneratorFn(val) ? 'generatorfunction' : 'function';
- }
-
- if (isArray(val)) return 'array';
- if (isBuffer(val)) return 'buffer';
- if (isArguments(val)) return 'arguments';
- if (isDate(val)) return 'date';
- if (isError(val)) return 'error';
- if (isRegexp(val)) return 'regexp';
-
- switch (ctorName(val)) {
- case 'Symbol': return 'symbol';
- case 'Promise': return 'promise';
-
- // Set, Map, WeakSet, WeakMap
- case 'WeakMap': return 'weakmap';
- case 'WeakSet': return 'weakset';
- case 'Map': return 'map';
- case 'Set': return 'set';
-
- // 8-bit typed arrays
- case 'Int8Array': return 'int8array';
- case 'Uint8Array': return 'uint8array';
- case 'Uint8ClampedArray': return 'uint8clampedarray';
-
- // 16-bit typed arrays
- case 'Int16Array': return 'int16array';
- case 'Uint16Array': return 'uint16array';
-
- // 32-bit typed arrays
- case 'Int32Array': return 'int32array';
- case 'Uint32Array': return 'uint32array';
- case 'Float32Array': return 'float32array';
- case 'Float64Array': return 'float64array';
- }
-
- if (isGeneratorObj(val)) {
- return 'generator';
- }
-
- // Non-plain objects
- type = toString.call(val);
- switch (type) {
- case '[object Object]': return 'object';
- // iterators
- case '[object Map Iterator]': return 'mapiterator';
- case '[object Set Iterator]': return 'setiterator';
- case '[object String Iterator]': return 'stringiterator';
- case '[object Array Iterator]': return 'arrayiterator';
- }
-
- // other
- return type.slice(8, -1).toLowerCase().replace(/\s/g, '');
-};
-
-function ctorName(val) {
- return typeof val.constructor === 'function' ? val.constructor.name : null;
-}
-
-function isArray(val) {
- if (Array.isArray) return Array.isArray(val);
- return val instanceof Array;
-}
-
-function isError(val) {
- return val instanceof Error || (typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number');
-}
-
-function isDate(val) {
- if (val instanceof Date) return true;
- return typeof val.toDateString === 'function'
- && typeof val.getDate === 'function'
- && typeof val.setDate === 'function';
-}
-
-function isRegexp(val) {
- if (val instanceof RegExp) return true;
- return typeof val.flags === 'string'
- && typeof val.ignoreCase === 'boolean'
- && typeof val.multiline === 'boolean'
- && typeof val.global === 'boolean';
-}
-
-function isGeneratorFn(name, val) {
- return ctorName(name) === 'GeneratorFunction';
-}
-
-function isGeneratorObj(val) {
- return typeof val.throw === 'function'
- && typeof val.return === 'function'
- && typeof val.next === 'function';
-}
-
-function isArguments(val) {
- try {
- if (typeof val.length === 'number' && typeof val.callee === 'function') {
- return true;
- }
- } catch (err) {
- if (err.message.indexOf('callee') !== -1) {
- return true;
- }
- }
- return false;
-}
-
-/**
- * If you need to support Safari 5-7 (8-10 yr-old browser),
- * take a look at https://github.com/feross/is-buffer
- */
-
-function isBuffer(val) {
- if (val.constructor && typeof val.constructor.isBuffer === 'function') {
- return val.constructor.isBuffer(val);
- }
- return false;
-}
diff --git a/node_modules/is-descriptor/node_modules/kind-of/package.json b/node_modules/is-descriptor/node_modules/kind-of/package.json
deleted file mode 100644
index 5820cad..0000000
--- a/node_modules/is-descriptor/node_modules/kind-of/package.json
+++ /dev/null
@@ -1,88 +0,0 @@
-{
- "name": "kind-of",
- "description": "Get the native type of a value.",
- "version": "6.0.3",
- "homepage": "https://github.com/jonschlinkert/kind-of",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "David Fox-Powell (https://dtothefp.github.io/me)",
- "James (https://twitter.com/aretecode)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Ken Sheedlo (kensheedlo.com)",
- "laggingreflex (https://github.com/laggingreflex)",
- "Miguel Mota (https://miguelmota.com)",
- "Peter deHaan (http://about.me/peterdehaan)",
- "tunnckoCore (https://i.am.charlike.online)"
- ],
- "repository": "jonschlinkert/kind-of",
- "bugs": {
- "url": "https://github.com/jonschlinkert/kind-of/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha",
- "prepublish": "browserify -o browser.js -e index.js -s index --bare"
- },
- "devDependencies": {
- "benchmarked": "^2.0.0",
- "browserify": "^14.4.0",
- "gulp-format-md": "^1.0.0",
- "mocha": "^4.0.1",
- "write": "^1.0.3"
- },
- "keywords": [
- "arguments",
- "array",
- "boolean",
- "check",
- "date",
- "function",
- "is",
- "is-type",
- "is-type-of",
- "kind",
- "kind-of",
- "number",
- "object",
- "of",
- "regexp",
- "string",
- "test",
- "type",
- "type-of",
- "typeof",
- "types"
- ],
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- },
- "related": {
- "list": [
- "is-glob",
- "is-number",
- "is-primitive"
- ]
- },
- "reflinks": [
- "type-of",
- "typeof",
- "verb"
- ]
- }
-}
diff --git a/node_modules/is-descriptor/package.json b/node_modules/is-descriptor/package.json
deleted file mode 100644
index 87b2975..0000000
--- a/node_modules/is-descriptor/package.json
+++ /dev/null
@@ -1,75 +0,0 @@
-{
- "name": "is-descriptor",
- "description": "Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for data descriptors and accessor descriptors.",
- "version": "1.0.2",
- "homepage": "https://github.com/jonschlinkert/is-descriptor",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Brian Woodward (https://twitter.com/doowb)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "(https://github.com/wtgtybhertgeghgtwtg)"
- ],
- "repository": "jonschlinkert/is-descriptor",
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-descriptor/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- },
- "devDependencies": {
- "gulp-format-md": "^1.0.0",
- "mocha": "^3.5.3"
- },
- "keywords": [
- "accessor",
- "check",
- "data",
- "descriptor",
- "get",
- "getter",
- "is",
- "keys",
- "object",
- "properties",
- "property",
- "set",
- "setter",
- "type",
- "valid",
- "value"
- ],
- "verb": {
- "related": {
- "list": [
- "is-accessor-descriptor",
- "is-data-descriptor",
- "is-descriptor",
- "isobject"
- ]
- },
- "plugins": [
- "gulp-format-md"
- ],
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/is-extendable/LICENSE b/node_modules/is-extendable/LICENSE
deleted file mode 100644
index 65f90ac..0000000
--- a/node_modules/is-extendable/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015, 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/is-extendable/README.md b/node_modules/is-extendable/README.md
deleted file mode 100644
index e4cfaeb..0000000
--- a/node_modules/is-extendable/README.md
+++ /dev/null
@@ -1,72 +0,0 @@
-# is-extendable [![NPM version](https://badge.fury.io/js/is-extendable.svg)](http://badge.fury.io/js/is-extendable)
-
-> Returns true if a value is any of the object types: array, regexp, plain object, function or date. This is useful for determining if a value can be extended, e.g. "can the value have keys?"
-
-## Install
-
-Install with [npm](https://www.npmjs.com/)
-
-```sh
-$ npm i is-extendable --save
-```
-
-## Usage
-
-```js
-var isExtendable = require('is-extendable');
-```
-
-Returns true if the value is any of the following:
-
-* `array`
-* `regexp`
-* `plain object`
-* `function`
-* `date`
-* `error`
-
-## Notes
-
-All objects in JavaScript can have keys, but it's a pain to check for this, since we ether need to verify that the value is not `null` or `undefined` and:
-
-* the value is not a primitive, or
-* that the object is an `object`, `function`
-
-Also note that an `extendable` object is not the same as an [extensible object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isExtensible), which is one that (in es6) is not sealed, frozen, or marked as non-extensible using `preventExtensions`.
-
-## Related projects
-
-* [assign-deep](https://github.com/jonschlinkert/assign-deep): Deeply assign the enumerable properties of source objects to a destination object.
-* [extend-shallow](https://github.com/jonschlinkert/extend-shallow): Extend an object with the properties of additional objects. node.js/javascript util.
-* [isobject](https://github.com/jonschlinkert/isobject): Returns true if the value is an object and not an array or null.
-* [is-plain-object](https://github.com/jonschlinkert/is-plain-object): Returns true if an object was created by the `Object` constructor.
-* [is-equal-shallow](https://github.com/jonschlinkert/is-equal-shallow): Does a shallow comparison of two objects, returning false if the keys or values differ.
-* [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
-```
-
-## Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/is-extendable/issues/new)
-
-## 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 July 04, 2015._
\ No newline at end of file
diff --git a/node_modules/is-extendable/index.js b/node_modules/is-extendable/index.js
deleted file mode 100644
index 4ee71a4..0000000
--- a/node_modules/is-extendable/index.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*!
- * is-extendable
- *
- * Copyright (c) 2015, Jon Schlinkert.
- * Licensed under the MIT License.
- */
-
-'use strict';
-
-module.exports = function isExtendable(val) {
- return typeof val !== 'undefined' && val !== null
- && (typeof val === 'object' || typeof val === 'function');
-};
diff --git a/node_modules/is-extendable/package.json b/node_modules/is-extendable/package.json
deleted file mode 100644
index 5dd006e..0000000
--- a/node_modules/is-extendable/package.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
- "name": "is-extendable",
- "description": "Returns true if a value is any of the object types: array, regexp, plain object, function or date. This is useful for determining if a value can be extended, e.g. \"can the value have keys?\"",
- "version": "0.1.1",
- "homepage": "https://github.com/jonschlinkert/is-extendable",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/is-extendable",
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-extendable/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "devDependencies": {
- "mocha": "*"
- },
- "keywords": [
- "array",
- "assign",
- "check",
- "date",
- "extend",
- "extensible",
- "function",
- "is",
- "object",
- "regex",
- "test"
- ],
- "verbiage": {
- "related": {
- "list": [
- "isobject",
- "is-plain-object",
- "kind-of",
- "is-extendable",
- "is-equal-shallow",
- "extend-shallow",
- "assign-deep"
- ]
- }
- }
-}
diff --git a/node_modules/is-extglob/LICENSE b/node_modules/is-extglob/LICENSE
deleted file mode 100644
index 842218c..0000000
--- a/node_modules/is-extglob/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2016, 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/is-extglob/README.md b/node_modules/is-extglob/README.md
deleted file mode 100644
index 0416af5..0000000
--- a/node_modules/is-extglob/README.md
+++ /dev/null
@@ -1,107 +0,0 @@
-# is-extglob [![NPM version](https://img.shields.io/npm/v/is-extglob.svg?style=flat)](https://www.npmjs.com/package/is-extglob) [![NPM downloads](https://img.shields.io/npm/dm/is-extglob.svg?style=flat)](https://npmjs.org/package/is-extglob) [![Build Status](https://img.shields.io/travis/jonschlinkert/is-extglob.svg?style=flat)](https://travis-ci.org/jonschlinkert/is-extglob)
-
-> Returns true if a string has an extglob.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save is-extglob
-```
-
-## Usage
-
-```js
-var isExtglob = require('is-extglob');
-```
-
-**True**
-
-```js
-isExtglob('?(abc)');
-isExtglob('@(abc)');
-isExtglob('!(abc)');
-isExtglob('*(abc)');
-isExtglob('+(abc)');
-```
-
-**False**
-
-Escaped extglobs:
-
-```js
-isExtglob('\\?(abc)');
-isExtglob('\\@(abc)');
-isExtglob('\\!(abc)');
-isExtglob('\\*(abc)');
-isExtglob('\\+(abc)');
-```
-
-Everything else...
-
-```js
-isExtglob('foo.js');
-isExtglob('!foo.js');
-isExtglob('*.js');
-isExtglob('**/abc.js');
-isExtglob('abc/*.js');
-isExtglob('abc/(aaa|bbb).js');
-isExtglob('abc/[a-z].js');
-isExtglob('abc/{a,b}.js');
-isExtglob('abc/?.js');
-isExtglob('abc.js');
-isExtglob('abc/def/ghi.js');
-```
-
-## History
-
-**v2.0**
-
-Adds support for escaping. Escaped exglobs no longer return true.
-
-## About
-
-### Related projects
-
-* [has-glob](https://www.npmjs.com/package/has-glob): Returns `true` if an array has a glob pattern. | [homepage](https://github.com/jonschlinkert/has-glob "Returns `true` if an array has a glob pattern.")
-* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/jonschlinkert/is-glob) | [homepage](https://github.com/jonschlinkert/is-glob "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet")
-* [micromatch](https://www.npmjs.com/package/micromatch): Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch. | [homepage](https://github.com/jonschlinkert/micromatch "Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Building docs
-
-_(This document was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme) (a [verb](https://github.com/verbose/verb) generator), please don't edit the readme directly. Any changes to the readme must be made in [.verb.md](.verb.md).)_
-
-To generate the readme and API documentation with [verb](https://github.com/verbose/verb):
-
-```sh
-$ npm install -g verb verb-generate-readme && verb
-```
-
-### Running tests
-
-Install dev dependencies:
-
-```sh
-$ npm install -d && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT license](https://github.com/jonschlinkert/is-extglob/blob/master/LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.1.31, on October 12, 2016._
\ No newline at end of file
diff --git a/node_modules/is-extglob/index.js b/node_modules/is-extglob/index.js
deleted file mode 100644
index c1d986f..0000000
--- a/node_modules/is-extglob/index.js
+++ /dev/null
@@ -1,20 +0,0 @@
-/*!
- * is-extglob
- *
- * Copyright (c) 2014-2016, Jon Schlinkert.
- * Licensed under the MIT License.
- */
-
-module.exports = function isExtglob(str) {
- if (typeof str !== 'string' || str === '') {
- return false;
- }
-
- var match;
- while ((match = /(\\).|([@?!+*]\(.*\))/g.exec(str))) {
- if (match[2]) return true;
- str = str.slice(match.index + match[0].length);
- }
-
- return false;
-};
diff --git a/node_modules/is-extglob/package.json b/node_modules/is-extglob/package.json
deleted file mode 100644
index 7a90836..0000000
--- a/node_modules/is-extglob/package.json
+++ /dev/null
@@ -1,69 +0,0 @@
-{
- "name": "is-extglob",
- "description": "Returns true if a string has an extglob.",
- "version": "2.1.1",
- "homepage": "https://github.com/jonschlinkert/is-extglob",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/is-extglob",
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-extglob/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "devDependencies": {
- "gulp-format-md": "^0.1.10",
- "mocha": "^3.0.2"
- },
- "keywords": [
- "bash",
- "braces",
- "check",
- "exec",
- "expression",
- "extglob",
- "glob",
- "globbing",
- "globstar",
- "is",
- "match",
- "matches",
- "pattern",
- "regex",
- "regular",
- "string",
- "test"
- ],
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "has-glob",
- "is-glob",
- "micromatch"
- ]
- },
- "reflinks": [
- "verb",
- "verb-generate-readme"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/is-fullwidth-code-point/index.js b/node_modules/is-fullwidth-code-point/index.js
deleted file mode 100644
index a7d3e38..0000000
--- a/node_modules/is-fullwidth-code-point/index.js
+++ /dev/null
@@ -1,46 +0,0 @@
-'use strict';
-var numberIsNan = require('number-is-nan');
-
-module.exports = function (x) {
- if (numberIsNan(x)) {
- return false;
- }
-
- // https://github.com/nodejs/io.js/blob/cff7300a578be1b10001f2d967aaedc88aee6402/lib/readline.js#L1369
-
- // code points are derived from:
- // http://www.unix.org/Public/UNIDATA/EastAsianWidth.txt
- if (x >= 0x1100 && (
- x <= 0x115f || // Hangul Jamo
- 0x2329 === x || // LEFT-POINTING ANGLE BRACKET
- 0x232a === x || // RIGHT-POINTING ANGLE BRACKET
- // CJK Radicals Supplement .. Enclosed CJK Letters and Months
- (0x2e80 <= x && x <= 0x3247 && x !== 0x303f) ||
- // Enclosed CJK Letters and Months .. CJK Unified Ideographs Extension A
- 0x3250 <= x && x <= 0x4dbf ||
- // CJK Unified Ideographs .. Yi Radicals
- 0x4e00 <= x && x <= 0xa4c6 ||
- // Hangul Jamo Extended-A
- 0xa960 <= x && x <= 0xa97c ||
- // Hangul Syllables
- 0xac00 <= x && x <= 0xd7a3 ||
- // CJK Compatibility Ideographs
- 0xf900 <= x && x <= 0xfaff ||
- // Vertical Forms
- 0xfe10 <= x && x <= 0xfe19 ||
- // CJK Compatibility Forms .. Small Form Variants
- 0xfe30 <= x && x <= 0xfe6b ||
- // Halfwidth and Fullwidth Forms
- 0xff01 <= x && x <= 0xff60 ||
- 0xffe0 <= x && x <= 0xffe6 ||
- // Kana Supplement
- 0x1b000 <= x && x <= 0x1b001 ||
- // Enclosed Ideographic Supplement
- 0x1f200 <= x && x <= 0x1f251 ||
- // CJK Unified Ideographs Extension B .. Tertiary Ideographic Plane
- 0x20000 <= x && x <= 0x3fffd)) {
- return true;
- }
-
- return false;
-}
diff --git a/node_modules/is-fullwidth-code-point/license b/node_modules/is-fullwidth-code-point/license
deleted file mode 100644
index 654d0bf..0000000
--- a/node_modules/is-fullwidth-code-point/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus (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/is-fullwidth-code-point/package.json b/node_modules/is-fullwidth-code-point/package.json
deleted file mode 100644
index b678d40..0000000
--- a/node_modules/is-fullwidth-code-point/package.json
+++ /dev/null
@@ -1,45 +0,0 @@
-{
- "name": "is-fullwidth-code-point",
- "version": "1.0.0",
- "description": "Check if the character represented by a given Unicode code point is fullwidth",
- "license": "MIT",
- "repository": "sindresorhus/is-fullwidth-code-point",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "node test.js"
- },
- "files": [
- "index.js"
- ],
- "keywords": [
- "fullwidth",
- "full-width",
- "full",
- "width",
- "unicode",
- "character",
- "char",
- "string",
- "str",
- "codepoint",
- "code",
- "point",
- "is",
- "detect",
- "check"
- ],
- "dependencies": {
- "number-is-nan": "^1.0.0"
- },
- "devDependencies": {
- "ava": "0.0.4",
- "code-point-at": "^1.0.0"
- }
-}
diff --git a/node_modules/is-fullwidth-code-point/readme.md b/node_modules/is-fullwidth-code-point/readme.md
deleted file mode 100644
index 4936464..0000000
--- a/node_modules/is-fullwidth-code-point/readme.md
+++ /dev/null
@@ -1,39 +0,0 @@
-# is-fullwidth-code-point [![Build Status](https://travis-ci.org/sindresorhus/is-fullwidth-code-point.svg?branch=master)](https://travis-ci.org/sindresorhus/is-fullwidth-code-point)
-
-> Check if the character represented by a given [Unicode code point](https://en.wikipedia.org/wiki/Code_point) is [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms)
-
-
-## Install
-
-```
-$ npm install --save is-fullwidth-code-point
-```
-
-
-## Usage
-
-```js
-var isFullwidthCodePoint = require('is-fullwidth-code-point');
-
-isFullwidthCodePoint('谢'.codePointAt());
-//=> true
-
-isFullwidthCodePoint('a'.codePointAt());
-//=> false
-```
-
-
-## API
-
-### isFullwidthCodePoint(input)
-
-#### input
-
-Type: `number`
-
-[Code point](https://en.wikipedia.org/wiki/Code_point) of a character.
-
-
-## License
-
-MIT © [Sindre Sorhus](http://sindresorhus.com)
diff --git a/node_modules/is-glob/LICENSE b/node_modules/is-glob/LICENSE
deleted file mode 100644
index 3f2eca1..0000000
--- a/node_modules/is-glob/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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/is-glob/README.md b/node_modules/is-glob/README.md
deleted file mode 100644
index 59444eb..0000000
--- a/node_modules/is-glob/README.md
+++ /dev/null
@@ -1,206 +0,0 @@
-# is-glob [![NPM version](https://img.shields.io/npm/v/is-glob.svg?style=flat)](https://www.npmjs.com/package/is-glob) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-glob.svg?style=flat)](https://npmjs.org/package/is-glob) [![NPM total downloads](https://img.shields.io/npm/dt/is-glob.svg?style=flat)](https://npmjs.org/package/is-glob) [![Linux Build Status](https://img.shields.io/travis/micromatch/is-glob.svg?style=flat&label=Travis)](https://travis-ci.org/micromatch/is-glob) [![Windows Build Status](https://img.shields.io/appveyor/ci/micromatch/is-glob.svg?style=flat&label=AppVeyor)](https://ci.appveyor.com/project/micromatch/is-glob)
-
-> Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a better user experience.
-
-Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save is-glob
-```
-
-You might also be interested in [is-valid-glob](https://github.com/jonschlinkert/is-valid-glob) and [has-glob](https://github.com/jonschlinkert/has-glob).
-
-## Usage
-
-```js
-var isGlob = require('is-glob');
-```
-
-### Default behavior
-
-**True**
-
-Patterns that have glob characters or regex patterns will return `true`:
-
-```js
-isGlob('!foo.js');
-isGlob('*.js');
-isGlob('**/abc.js');
-isGlob('abc/*.js');
-isGlob('abc/(aaa|bbb).js');
-isGlob('abc/[a-z].js');
-isGlob('abc/{a,b}.js');
-//=> true
-```
-
-Extglobs
-
-```js
-isGlob('abc/@(a).js');
-isGlob('abc/!(a).js');
-isGlob('abc/+(a).js');
-isGlob('abc/*(a).js');
-isGlob('abc/?(a).js');
-//=> true
-```
-
-**False**
-
-Escaped globs or extglobs return `false`:
-
-```js
-isGlob('abc/\\@(a).js');
-isGlob('abc/\\!(a).js');
-isGlob('abc/\\+(a).js');
-isGlob('abc/\\*(a).js');
-isGlob('abc/\\?(a).js');
-isGlob('\\!foo.js');
-isGlob('\\*.js');
-isGlob('\\*\\*/abc.js');
-isGlob('abc/\\*.js');
-isGlob('abc/\\(aaa|bbb).js');
-isGlob('abc/\\[a-z].js');
-isGlob('abc/\\{a,b}.js');
-//=> false
-```
-
-Patterns that do not have glob patterns return `false`:
-
-```js
-isGlob('abc.js');
-isGlob('abc/def/ghi.js');
-isGlob('foo.js');
-isGlob('abc/@.js');
-isGlob('abc/+.js');
-isGlob('abc/?.js');
-isGlob();
-isGlob(null);
-//=> false
-```
-
-Arrays are also `false` (If you want to check if an array has a glob pattern, use [has-glob](https://github.com/jonschlinkert/has-glob)):
-
-```js
-isGlob(['**/*.js']);
-isGlob(['foo.js']);
-//=> false
-```
-
-### Option strict
-
-When `options.strict === false` the behavior is less strict in determining if a pattern is a glob. Meaning that
-some patterns that would return `false` may return `true`. This is done so that matching libraries like [micromatch](https://github.com/micromatch/micromatch) have a chance at determining if the pattern is a glob or not.
-
-**True**
-
-Patterns that have glob characters or regex patterns will return `true`:
-
-```js
-isGlob('!foo.js', {strict: false});
-isGlob('*.js', {strict: false});
-isGlob('**/abc.js', {strict: false});
-isGlob('abc/*.js', {strict: false});
-isGlob('abc/(aaa|bbb).js', {strict: false});
-isGlob('abc/[a-z].js', {strict: false});
-isGlob('abc/{a,b}.js', {strict: false});
-//=> true
-```
-
-Extglobs
-
-```js
-isGlob('abc/@(a).js', {strict: false});
-isGlob('abc/!(a).js', {strict: false});
-isGlob('abc/+(a).js', {strict: false});
-isGlob('abc/*(a).js', {strict: false});
-isGlob('abc/?(a).js', {strict: false});
-//=> true
-```
-
-**False**
-
-Escaped globs or extglobs return `false`:
-
-```js
-isGlob('\\!foo.js', {strict: false});
-isGlob('\\*.js', {strict: false});
-isGlob('\\*\\*/abc.js', {strict: false});
-isGlob('abc/\\*.js', {strict: false});
-isGlob('abc/\\(aaa|bbb).js', {strict: false});
-isGlob('abc/\\[a-z].js', {strict: false});
-isGlob('abc/\\{a,b}.js', {strict: false});
-//=> false
-```
-
-## About
-
-
-Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-
-
-
-Running Tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-
-
-
-Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-
-
-### Related projects
-
-You might also be interested in these projects:
-
-* [assemble](https://www.npmjs.com/package/assemble): Get the rocks out of your socks! Assemble makes you fast at creating web projects… [more](https://github.com/assemble/assemble) | [homepage](https://github.com/assemble/assemble "Get the rocks out of your socks! Assemble makes you fast at creating web projects. Assemble is used by thousands of projects for rapid prototyping, creating themes, scaffolds, boilerplates, e-books, UI components, API documentation, blogs, building websit")
-* [base](https://www.npmjs.com/package/base): Framework for rapidly creating high quality, server-side node.js applications, using plugins like building blocks | [homepage](https://github.com/node-base/base "Framework for rapidly creating high quality, server-side node.js applications, using plugins like building blocks")
-* [update](https://www.npmjs.com/package/update): Be scalable! Update is a new, open source developer framework and CLI for automating updates… [more](https://github.com/update/update) | [homepage](https://github.com/update/update "Be scalable! Update is a new, open source developer framework and CLI for automating updates of any kind in code projects.")
-* [verb](https://www.npmjs.com/package/verb): Documentation generator for GitHub projects. Verb is extremely powerful, easy to use, and is used… [more](https://github.com/verbose/verb) | [homepage](https://github.com/verbose/verb "Documentation generator for GitHub projects. Verb is extremely powerful, easy to use, and is used on hundreds of projects of all sizes to generate everything from API docs to readmes.")
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 47 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 5 | [doowb](https://github.com/doowb) |
-| 1 | [phated](https://github.com/phated) |
-| 1 | [danhper](https://github.com/danhper) |
-| 1 | [paulmillr](https://github.com/paulmillr) |
-
-### Author
-
-**Jon Schlinkert**
-
-* [GitHub Profile](https://github.com/jonschlinkert)
-* [Twitter Profile](https://twitter.com/jonschlinkert)
-* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert)
-
-### License
-
-Copyright © 2019, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on March 27, 2019._
\ No newline at end of file
diff --git a/node_modules/is-glob/index.js b/node_modules/is-glob/index.js
deleted file mode 100644
index 5582651..0000000
--- a/node_modules/is-glob/index.js
+++ /dev/null
@@ -1,48 +0,0 @@
-/*!
- * is-glob
- *
- * Copyright (c) 2014-2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-var isExtglob = require('is-extglob');
-var chars = { '{': '}', '(': ')', '[': ']'};
-var strictRegex = /\\(.)|(^!|\*|[\].+)]\?|\[[^\\\]]+\]|\{[^\\}]+\}|\(\?[:!=][^\\)]+\)|\([^|]+\|[^\\)]+\))/;
-var relaxedRegex = /\\(.)|(^!|[*?{}()[\]]|\(\?)/;
-
-module.exports = function isGlob(str, options) {
- if (typeof str !== 'string' || str === '') {
- return false;
- }
-
- if (isExtglob(str)) {
- return true;
- }
-
- var regex = strictRegex;
- var match;
-
- // optionally relax regex
- if (options && options.strict === false) {
- regex = relaxedRegex;
- }
-
- while ((match = regex.exec(str))) {
- if (match[2]) return true;
- var idx = match.index + match[0].length;
-
- // if an open bracket/brace/paren is escaped,
- // set the index to the next closing character
- var open = match[1];
- var close = open ? chars[open] : null;
- if (open && close) {
- var n = str.indexOf(close, idx);
- if (n !== -1) {
- idx = n + 1;
- }
- }
-
- str = str.slice(idx);
- }
- return false;
-};
diff --git a/node_modules/is-glob/package.json b/node_modules/is-glob/package.json
deleted file mode 100644
index 806000d..0000000
--- a/node_modules/is-glob/package.json
+++ /dev/null
@@ -1,81 +0,0 @@
-{
- "name": "is-glob",
- "description": "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a better user experience.",
- "version": "4.0.1",
- "homepage": "https://github.com/micromatch/is-glob",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Brian Woodward (https://twitter.com/doowb)",
- "Daniel Perez (https://tuvistavie.com)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)"
- ],
- "repository": "micromatch/is-glob",
- "bugs": {
- "url": "https://github.com/micromatch/is-glob/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "is-extglob": "^2.1.1"
- },
- "devDependencies": {
- "gulp-format-md": "^0.1.10",
- "mocha": "^3.0.2"
- },
- "keywords": [
- "bash",
- "braces",
- "check",
- "exec",
- "expression",
- "extglob",
- "glob",
- "globbing",
- "globstar",
- "is",
- "match",
- "matches",
- "pattern",
- "regex",
- "regular",
- "string",
- "test"
- ],
- "verb": {
- "layout": "default",
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "assemble",
- "base",
- "update",
- "verb"
- ]
- },
- "reflinks": [
- "assemble",
- "bach",
- "base",
- "composer",
- "gulp",
- "has-glob",
- "is-valid-glob",
- "micromatch",
- "npm",
- "scaffold",
- "verb",
- "vinyl"
- ]
- }
-}
diff --git a/node_modules/is-negated-glob/LICENSE b/node_modules/is-negated-glob/LICENSE
deleted file mode 100644
index 66ae69c..0000000
--- a/node_modules/is-negated-glob/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2016 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/is-negated-glob/README.md b/node_modules/is-negated-glob/README.md
deleted file mode 100644
index c909408..0000000
--- a/node_modules/is-negated-glob/README.md
+++ /dev/null
@@ -1,73 +0,0 @@
-# is-negated-glob [![NPM version](https://img.shields.io/npm/v/is-negated-glob.svg?style=flat)](https://www.npmjs.com/package/is-negated-glob) [![NPM downloads](https://img.shields.io/npm/dm/is-negated-glob.svg?style=flat)](https://npmjs.org/package/is-negated-glob) [![Build Status](https://img.shields.io/travis/jonschlinkert/is-negated-glob.svg?style=flat)](https://travis-ci.org/jonschlinkert/is-negated-glob)
-
-> Returns an object with a `negated` boolean and the `!` stripped from negation patterns. Also respects extglobs.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save is-negated-glob
-```
-
-## Usage
-
-```js
-var isNegatedGlob = require('is-negated-glob');
-
-console.log(isNegatedGlob('foo'));
-// { pattern: 'foo', negated: false }
-
-console.log(isNegatedGlob('!foo'));
-// { pattern: 'foo', negated: true }
-
-console.log(isNegatedGlob('!(foo)'));
-// extglob patterns are ignored
-// { pattern: '!(foo)', negated: false }
-```
-
-## About
-
-### Related projects
-
-* [is-extglob](https://www.npmjs.com/package/is-extglob): Returns true if a string has an extglob. | [homepage](https://github.com/jonschlinkert/is-extglob "Returns true if a string has an extglob.")
-* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/jonschlinkert/is-glob) | [homepage](https://github.com/jonschlinkert/is-glob "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet")
-* [to-absolute-glob](https://www.npmjs.com/package/to-absolute-glob): Make a glob pattern absolute, ensuring that negative globs and patterns with trailing slashes are… [more](https://github.com/jonschlinkert/to-absolute-glob) | [homepage](https://github.com/jonschlinkert/to-absolute-glob "Make a glob pattern absolute, ensuring that negative globs and patterns with trailing slashes are correctly handled.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Building docs
-
-_(This document was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme) (a [verb](https://github.com/verbose/verb) generator), please don't edit the readme directly. Any changes to the readme must be made in [.verb.md](.verb.md).)_
-
-To generate the readme and API documentation with [verb](https://github.com/verbose/verb):
-
-```sh
-$ npm install -g verb verb-generate-readme && verb
-```
-
-### Running tests
-
-Install dev dependencies:
-
-```sh
-$ npm install -d && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT license](https://github.com/jonschlinkert/is-negated-glob/blob/master/LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.1.30, on September 08, 2016._
\ No newline at end of file
diff --git a/node_modules/is-negated-glob/index.js b/node_modules/is-negated-glob/index.js
deleted file mode 100644
index d1c060d..0000000
--- a/node_modules/is-negated-glob/index.js
+++ /dev/null
@@ -1,15 +0,0 @@
-'use strict';
-
-module.exports = function(pattern) {
- if (typeof pattern !== 'string') {
- throw new TypeError('expected a string');
- }
-
- var glob = { negated: false, pattern: pattern, original: pattern };
- if (pattern.charAt(0) === '!' && pattern.charAt(1) !== '(') {
- glob.negated = true;
- glob.pattern = pattern.slice(1);
- }
-
- return glob;
-};
diff --git a/node_modules/is-negated-glob/package.json b/node_modules/is-negated-glob/package.json
deleted file mode 100644
index f3c569f..0000000
--- a/node_modules/is-negated-glob/package.json
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- "name": "is-negated-glob",
- "description": "Returns an object with a `negated` boolean and the `!` stripped from negation patterns. Also respects extglobs.",
- "version": "1.0.0",
- "homepage": "https://github.com/jonschlinkert/is-negated-glob",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/is-negated-glob",
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-negated-glob/issues"
- },
- "license": "MIT",
- "files": [
- "index.js",
- "LICENSE",
- "README.md"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "devDependencies": {
- "gulp-format-md": "^0.1.10",
- "mocha": "^3.0.2"
- },
- "keywords": [
- "extglob",
- "glob",
- "inverse",
- "inverted",
- "is",
- "is-glob",
- "match",
- "micromatch",
- "negate",
- "negated",
- "negation",
- "negative",
- "pattern",
- "test"
- ],
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "is-extglob",
- "is-glob",
- "to-absolute-glob"
- ]
- },
- "reflinks": [
- "verb",
- "verb-generate-readme"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/is-number/LICENSE b/node_modules/is-number/LICENSE
deleted file mode 100644
index 842218c..0000000
--- a/node_modules/is-number/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2016, 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/is-number/README.md b/node_modules/is-number/README.md
deleted file mode 100644
index 281165d..0000000
--- a/node_modules/is-number/README.md
+++ /dev/null
@@ -1,115 +0,0 @@
-# is-number [![NPM version](https://img.shields.io/npm/v/is-number.svg?style=flat)](https://www.npmjs.com/package/is-number) [![NPM downloads](https://img.shields.io/npm/dm/is-number.svg?style=flat)](https://npmjs.org/package/is-number) [![Build Status](https://img.shields.io/travis/jonschlinkert/is-number.svg?style=flat)](https://travis-ci.org/jonschlinkert/is-number)
-
-> Returns true if the value is a number. comprehensive tests.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save is-number
-```
-
-## Usage
-
-To understand some of the rationale behind the decisions made in this library (and to learn about some oddities of number evaluation in JavaScript), [see this gist](https://gist.github.com/jonschlinkert/e30c70c713da325d0e81).
-
-```js
-var isNumber = require('is-number');
-```
-
-### true
-
-See the [tests](./test.js) for more examples.
-
-```js
-isNumber(5e3) //=> 'true'
-isNumber(0xff) //=> 'true'
-isNumber(-1.1) //=> 'true'
-isNumber(0) //=> 'true'
-isNumber(1) //=> 'true'
-isNumber(1.1) //=> 'true'
-isNumber(10) //=> 'true'
-isNumber(10.10) //=> 'true'
-isNumber(100) //=> 'true'
-isNumber('-1.1') //=> 'true'
-isNumber('0') //=> 'true'
-isNumber('012') //=> 'true'
-isNumber('0xff') //=> 'true'
-isNumber('1') //=> 'true'
-isNumber('1.1') //=> 'true'
-isNumber('10') //=> 'true'
-isNumber('10.10') //=> 'true'
-isNumber('100') //=> 'true'
-isNumber('5e3') //=> 'true'
-isNumber(parseInt('012')) //=> 'true'
-isNumber(parseFloat('012')) //=> 'true'
-```
-
-### False
-
-See the [tests](./test.js) for more examples.
-
-```js
-isNumber('foo') //=> 'false'
-isNumber([1]) //=> 'false'
-isNumber([]) //=> 'false'
-isNumber(function () {}) //=> 'false'
-isNumber(Infinity) //=> 'false'
-isNumber(NaN) //=> 'false'
-isNumber(new Array('abc')) //=> 'false'
-isNumber(new Array(2)) //=> 'false'
-isNumber(new Buffer('abc')) //=> 'false'
-isNumber(null) //=> 'false'
-isNumber(undefined) //=> 'false'
-isNumber({abc: 'abc'}) //=> 'false'
-```
-
-## About
-
-### Related projects
-
-* [even](https://www.npmjs.com/package/even): Get the even numbered items from an array. | [homepage](https://github.com/jonschlinkert/even "Get the even numbered items from an array.")
-* [is-even](https://www.npmjs.com/package/is-even): Return true if the given number is even. | [homepage](https://github.com/jonschlinkert/is-even "Return true if the given number is even.")
-* [is-odd](https://www.npmjs.com/package/is-odd): Returns true if the given number is odd. | [homepage](https://github.com/jonschlinkert/is-odd "Returns true if the given number is odd.")
-* [is-primitive](https://www.npmjs.com/package/is-primitive): Returns `true` if the value is a primitive. | [homepage](https://github.com/jonschlinkert/is-primitive "Returns `true` if the value is a primitive. ")
-* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.")
-* [odd](https://www.npmjs.com/package/odd): Get the odd numbered items from an array. | [homepage](https://github.com/jonschlinkert/odd "Get the odd numbered items from an array.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Building docs
-
-_(This document was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme) (a [verb](https://github.com/verbose/verb) generator), please don't edit the readme directly. Any changes to the readme must be made in [.verb.md](.verb.md).)_
-
-To generate the readme and API documentation with [verb](https://github.com/verbose/verb):
-
-```sh
-$ npm install -g verb verb-generate-readme && verb
-```
-
-### Running tests
-
-Install dev dependencies:
-
-```sh
-$ npm install -d && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT license](https://github.com/jonschlinkert/is-number/blob/master/LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.1.30, on September 10, 2016._
\ No newline at end of file
diff --git a/node_modules/is-number/index.js b/node_modules/is-number/index.js
deleted file mode 100644
index 7a2a45b..0000000
--- a/node_modules/is-number/index.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/*!
- * is-number
- *
- * Copyright (c) 2014-2015, Jon Schlinkert.
- * Licensed under the MIT License.
- */
-
-'use strict';
-
-var typeOf = require('kind-of');
-
-module.exports = function isNumber(num) {
- var type = typeOf(num);
-
- if (type === 'string') {
- if (!num.trim()) return false;
- } else if (type !== 'number') {
- return false;
- }
-
- return (num - num + 1) >= 0;
-};
diff --git a/node_modules/is-number/node_modules/kind-of/LICENSE b/node_modules/is-number/node_modules/kind-of/LICENSE
deleted file mode 100644
index d734237..0000000
--- a/node_modules/is-number/node_modules/kind-of/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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/is-number/node_modules/kind-of/README.md b/node_modules/is-number/node_modules/kind-of/README.md
deleted file mode 100644
index 6a9df36..0000000
--- a/node_modules/is-number/node_modules/kind-of/README.md
+++ /dev/null
@@ -1,261 +0,0 @@
-# kind-of [![NPM version](https://img.shields.io/npm/v/kind-of.svg?style=flat)](https://www.npmjs.com/package/kind-of) [![NPM monthly downloads](https://img.shields.io/npm/dm/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![NPM total downloads](https://img.shields.io/npm/dt/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/kind-of.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/kind-of)
-
-> Get the native type of a value.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save kind-of
-```
-
-## Install
-
-Install with [bower](https://bower.io/)
-
-```sh
-$ bower install kind-of --save
-```
-
-## Usage
-
-> es5, browser and es6 ready
-
-```js
-var kindOf = require('kind-of');
-
-kindOf(undefined);
-//=> 'undefined'
-
-kindOf(null);
-//=> 'null'
-
-kindOf(true);
-//=> 'boolean'
-
-kindOf(false);
-//=> 'boolean'
-
-kindOf(new Boolean(true));
-//=> 'boolean'
-
-kindOf(new Buffer(''));
-//=> 'buffer'
-
-kindOf(42);
-//=> 'number'
-
-kindOf(new Number(42));
-//=> 'number'
-
-kindOf('str');
-//=> 'string'
-
-kindOf(new String('str'));
-//=> 'string'
-
-kindOf(arguments);
-//=> 'arguments'
-
-kindOf({});
-//=> 'object'
-
-kindOf(Object.create(null));
-//=> 'object'
-
-kindOf(new Test());
-//=> 'object'
-
-kindOf(new Date());
-//=> 'date'
-
-kindOf([]);
-//=> 'array'
-
-kindOf([1, 2, 3]);
-//=> 'array'
-
-kindOf(new Array());
-//=> 'array'
-
-kindOf(/foo/);
-//=> 'regexp'
-
-kindOf(new RegExp('foo'));
-//=> 'regexp'
-
-kindOf(function () {});
-//=> 'function'
-
-kindOf(function * () {});
-//=> 'function'
-
-kindOf(new Function());
-//=> 'function'
-
-kindOf(new Map());
-//=> 'map'
-
-kindOf(new WeakMap());
-//=> 'weakmap'
-
-kindOf(new Set());
-//=> 'set'
-
-kindOf(new WeakSet());
-//=> 'weakset'
-
-kindOf(Symbol('str'));
-//=> 'symbol'
-
-kindOf(new Int8Array());
-//=> 'int8array'
-
-kindOf(new Uint8Array());
-//=> 'uint8array'
-
-kindOf(new Uint8ClampedArray());
-//=> 'uint8clampedarray'
-
-kindOf(new Int16Array());
-//=> 'int16array'
-
-kindOf(new Uint16Array());
-//=> 'uint16array'
-
-kindOf(new Int32Array());
-//=> 'int32array'
-
-kindOf(new Uint32Array());
-//=> 'uint32array'
-
-kindOf(new Float32Array());
-//=> 'float32array'
-
-kindOf(new Float64Array());
-//=> 'float64array'
-```
-
-## Benchmarks
-
-Benchmarked against [typeof](http://github.com/CodingFu/typeof) and [type-of](https://github.com/ForbesLindesay/type-of).
-Note that performaces is slower for es6 features `Map`, `WeakMap`, `Set` and `WeakSet`.
-
-```bash
-#1: array
- current x 23,329,397 ops/sec ±0.82% (94 runs sampled)
- lib-type-of x 4,170,273 ops/sec ±0.55% (94 runs sampled)
- lib-typeof x 9,686,935 ops/sec ±0.59% (98 runs sampled)
-
-#2: boolean
- current x 27,197,115 ops/sec ±0.85% (94 runs sampled)
- lib-type-of x 3,145,791 ops/sec ±0.73% (97 runs sampled)
- lib-typeof x 9,199,562 ops/sec ±0.44% (99 runs sampled)
-
-#3: date
- current x 20,190,117 ops/sec ±0.86% (92 runs sampled)
- lib-type-of x 5,166,970 ops/sec ±0.74% (94 runs sampled)
- lib-typeof x 9,610,821 ops/sec ±0.50% (96 runs sampled)
-
-#4: function
- current x 23,855,460 ops/sec ±0.60% (97 runs sampled)
- lib-type-of x 5,667,740 ops/sec ±0.54% (100 runs sampled)
- lib-typeof x 10,010,644 ops/sec ±0.44% (100 runs sampled)
-
-#5: null
- current x 27,061,047 ops/sec ±0.97% (96 runs sampled)
- lib-type-of x 13,965,573 ops/sec ±0.62% (97 runs sampled)
- lib-typeof x 8,460,194 ops/sec ±0.61% (97 runs sampled)
-
-#6: number
- current x 25,075,682 ops/sec ±0.53% (99 runs sampled)
- lib-type-of x 2,266,405 ops/sec ±0.41% (98 runs sampled)
- lib-typeof x 9,821,481 ops/sec ±0.45% (99 runs sampled)
-
-#7: object
- current x 3,348,980 ops/sec ±0.49% (99 runs sampled)
- lib-type-of x 3,245,138 ops/sec ±0.60% (94 runs sampled)
- lib-typeof x 9,262,952 ops/sec ±0.59% (99 runs sampled)
-
-#8: regex
- current x 21,284,827 ops/sec ±0.72% (96 runs sampled)
- lib-type-of x 4,689,241 ops/sec ±0.43% (100 runs sampled)
- lib-typeof x 8,957,593 ops/sec ±0.62% (98 runs sampled)
-
-#9: string
- current x 25,379,234 ops/sec ±0.58% (96 runs sampled)
- lib-type-of x 3,635,148 ops/sec ±0.76% (93 runs sampled)
- lib-typeof x 9,494,134 ops/sec ±0.49% (98 runs sampled)
-
-#10: undef
- current x 27,459,221 ops/sec ±1.01% (93 runs sampled)
- lib-type-of x 14,360,433 ops/sec ±0.52% (99 runs sampled)
- lib-typeof x 23,202,868 ops/sec ±0.59% (94 runs sampled)
-
-```
-
-## Optimizations
-
-In 7 out of 8 cases, this library is 2x-10x faster than other top libraries included in the benchmarks. There are a few things that lead to this performance advantage, none of them hard and fast rules, but all of them simple and repeatable in almost any code library:
-
-1. Optimize around the fastest and most common use cases first. Of course, this will change from project-to-project, but I took some time to understand how and why `typeof` checks were being used in my own libraries and other libraries I use a lot.
-2. Optimize around bottlenecks - In other words, the order in which conditionals are implemented is significant, because each check is only as fast as the failing checks that came before it. Here, the biggest bottleneck by far is checking for plain objects (an object that was created by the `Object` constructor). I opted to make this check happen by process of elimination rather than brute force up front (e.g. by using something like `val.constructor.name`), so that every other type check would not be penalized it.
-3. Don't do uneccessary processing - why do `.slice(8, -1).toLowerCase();` just to get the word `regex`? It's much faster to do `if (type === '[object RegExp]') return 'regex'`
-
-## About
-
-### Related projects
-
-* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/jonschlinkert/is-glob) | [homepage](https://github.com/jonschlinkert/is-glob "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet")
-* [is-number](https://www.npmjs.com/package/is-number): Returns true if the value is a number. comprehensive tests. | [homepage](https://github.com/jonschlinkert/is-number "Returns true if the value is a number. comprehensive tests.")
-* [is-primitive](https://www.npmjs.com/package/is-primitive): Returns `true` if the value is a primitive. | [homepage](https://github.com/jonschlinkert/is-primitive "Returns `true` if the value is a primitive. ")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 59 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 2 | [miguelmota](https://github.com/miguelmota) |
-| 1 | [dtothefp](https://github.com/dtothefp) |
-| 1 | [ksheedlo](https://github.com/ksheedlo) |
-| 1 | [pdehaan](https://github.com/pdehaan) |
-| 1 | [laggingreflex](https://github.com/laggingreflex) |
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on May 16, 2017._
\ No newline at end of file
diff --git a/node_modules/is-number/node_modules/kind-of/index.js b/node_modules/is-number/node_modules/kind-of/index.js
deleted file mode 100644
index b52c291..0000000
--- a/node_modules/is-number/node_modules/kind-of/index.js
+++ /dev/null
@@ -1,116 +0,0 @@
-var isBuffer = require('is-buffer');
-var toString = Object.prototype.toString;
-
-/**
- * Get the native `typeof` a value.
- *
- * @param {*} `val`
- * @return {*} Native javascript type
- */
-
-module.exports = function kindOf(val) {
- // primitivies
- if (typeof val === 'undefined') {
- return 'undefined';
- }
- if (val === null) {
- return 'null';
- }
- if (val === true || val === false || val instanceof Boolean) {
- return 'boolean';
- }
- if (typeof val === 'string' || val instanceof String) {
- return 'string';
- }
- if (typeof val === 'number' || val instanceof Number) {
- return 'number';
- }
-
- // functions
- if (typeof val === 'function' || val instanceof Function) {
- return 'function';
- }
-
- // array
- if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) {
- return 'array';
- }
-
- // check for instances of RegExp and Date before calling `toString`
- if (val instanceof RegExp) {
- return 'regexp';
- }
- if (val instanceof Date) {
- return 'date';
- }
-
- // other objects
- var type = toString.call(val);
-
- if (type === '[object RegExp]') {
- return 'regexp';
- }
- if (type === '[object Date]') {
- return 'date';
- }
- if (type === '[object Arguments]') {
- return 'arguments';
- }
- if (type === '[object Error]') {
- return 'error';
- }
-
- // buffer
- if (isBuffer(val)) {
- return 'buffer';
- }
-
- // es6: Map, WeakMap, Set, WeakSet
- if (type === '[object Set]') {
- return 'set';
- }
- if (type === '[object WeakSet]') {
- return 'weakset';
- }
- if (type === '[object Map]') {
- return 'map';
- }
- if (type === '[object WeakMap]') {
- return 'weakmap';
- }
- if (type === '[object Symbol]') {
- return 'symbol';
- }
-
- // typed arrays
- if (type === '[object Int8Array]') {
- return 'int8array';
- }
- if (type === '[object Uint8Array]') {
- return 'uint8array';
- }
- if (type === '[object Uint8ClampedArray]') {
- return 'uint8clampedarray';
- }
- if (type === '[object Int16Array]') {
- return 'int16array';
- }
- if (type === '[object Uint16Array]') {
- return 'uint16array';
- }
- if (type === '[object Int32Array]') {
- return 'int32array';
- }
- if (type === '[object Uint32Array]') {
- return 'uint32array';
- }
- if (type === '[object Float32Array]') {
- return 'float32array';
- }
- if (type === '[object Float64Array]') {
- return 'float64array';
- }
-
- // must be a plain object
- return 'object';
-};
diff --git a/node_modules/is-number/node_modules/kind-of/package.json b/node_modules/is-number/node_modules/kind-of/package.json
deleted file mode 100644
index 5de879e..0000000
--- a/node_modules/is-number/node_modules/kind-of/package.json
+++ /dev/null
@@ -1,90 +0,0 @@
-{
- "name": "kind-of",
- "description": "Get the native type of a value.",
- "version": "3.2.2",
- "homepage": "https://github.com/jonschlinkert/kind-of",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "David Fox-Powell (https://dtothefp.github.io/me)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Ken Sheedlo (kensheedlo.com)",
- "laggingreflex (https://github.com/laggingreflex)",
- "Miguel Mota (https://miguelmota.com)",
- "Peter deHaan (http://about.me/peterdehaan)"
- ],
- "repository": "jonschlinkert/kind-of",
- "bugs": {
- "url": "https://github.com/jonschlinkert/kind-of/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha",
- "prepublish": "browserify -o browser.js -e index.js -s index --bare"
- },
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "devDependencies": {
- "ansi-bold": "^0.1.1",
- "benchmarked": "^1.0.0",
- "browserify": "^14.3.0",
- "glob": "^7.1.1",
- "gulp-format-md": "^0.1.12",
- "mocha": "^3.3.0",
- "type-of": "^2.0.1",
- "typeof": "^1.0.0"
- },
- "keywords": [
- "arguments",
- "array",
- "boolean",
- "check",
- "date",
- "function",
- "is",
- "is-type",
- "is-type-of",
- "kind",
- "kind-of",
- "number",
- "object",
- "of",
- "regexp",
- "string",
- "test",
- "type",
- "type-of",
- "typeof",
- "types"
- ],
- "verb": {
- "related": {
- "list": [
- "is-glob",
- "is-number",
- "is-primitive"
- ]
- },
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- },
- "reflinks": [
- "verb"
- ]
- }
-}
diff --git a/node_modules/is-number/package.json b/node_modules/is-number/package.json
deleted file mode 100644
index 8c1f9ab..0000000
--- a/node_modules/is-number/package.json
+++ /dev/null
@@ -1,83 +0,0 @@
-{
- "name": "is-number",
- "description": "Returns true if the value is a number. comprehensive tests.",
- "version": "3.0.0",
- "homepage": "https://github.com/jonschlinkert/is-number",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Charlike Mike Reagent (http://www.tunnckocore.tk)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)"
- ],
- "repository": "jonschlinkert/is-number",
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-number/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "devDependencies": {
- "benchmarked": "^0.2.5",
- "chalk": "^1.1.3",
- "gulp-format-md": "^0.1.10",
- "mocha": "^3.0.2"
- },
- "keywords": [
- "check",
- "coerce",
- "coercion",
- "integer",
- "is",
- "is-nan",
- "is-num",
- "is-number",
- "istype",
- "kind",
- "math",
- "nan",
- "num",
- "number",
- "numeric",
- "test",
- "type",
- "typeof",
- "value"
- ],
- "verb": {
- "related": {
- "list": [
- "even",
- "is-even",
- "is-odd",
- "is-primitive",
- "kind-of",
- "odd"
- ]
- },
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- },
- "reflinks": [
- "verb",
- "verb-generate-readme"
- ]
- }
-}
\ No newline at end of file
diff --git a/node_modules/is-plain-object/LICENSE b/node_modules/is-plain-object/LICENSE
deleted file mode 100644
index 3f2eca1..0000000
--- a/node_modules/is-plain-object/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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/is-plain-object/README.md b/node_modules/is-plain-object/README.md
deleted file mode 100644
index 5c074ab..0000000
--- a/node_modules/is-plain-object/README.md
+++ /dev/null
@@ -1,125 +0,0 @@
-# is-plain-object [![NPM version](https://img.shields.io/npm/v/is-plain-object.svg?style=flat)](https://www.npmjs.com/package/is-plain-object) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-plain-object.svg?style=flat)](https://npmjs.org/package/is-plain-object) [![NPM total downloads](https://img.shields.io/npm/dt/is-plain-object.svg?style=flat)](https://npmjs.org/package/is-plain-object) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-plain-object.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-plain-object)
-
-> Returns true if an object was created by the `Object` constructor, or Object.create(null).
-
-Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save is-plain-object
-```
-
-Use [isobject](https://github.com/jonschlinkert/isobject) if you only want to check if the value is an object and not an array or null.
-
-## Usage
-
-with es modules
-```js
-import { isPlainObject } from 'is-plain-object';
-```
-
-or with commonjs
-```js
-const { isPlainObject } = require('is-plain-object');
-```
-
-**true** when created by the `Object` constructor, or Object.create(null).
-
-```js
-isPlainObject(Object.create({}));
-//=> true
-isPlainObject(Object.create(Object.prototype));
-//=> true
-isPlainObject({foo: 'bar'});
-//=> true
-isPlainObject({});
-//=> true
-isPlainObject(null);
-//=> true
-```
-
-**false** when not created by the `Object` constructor.
-
-```js
-isPlainObject(1);
-//=> false
-isPlainObject(['foo', 'bar']);
-//=> false
-isPlainObject([]);
-//=> false
-isPlainObject(new Foo);
-//=> false
-isPlainObject(Object.create(null));
-//=> false
-```
-
-## About
-
-
-Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-
-
-
-Running Tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-
-
-
-Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-
-
-### Related projects
-
-You might also be interested in these projects:
-
-* [is-number](https://www.npmjs.com/package/is-number): Returns true if a number or string value is a finite number. Useful for regex… [more](https://github.com/jonschlinkert/is-number) | [homepage](https://github.com/jonschlinkert/is-number "Returns true if a number or string value is a finite number. Useful for regex matches, parsing, user input, etc.")
-* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.")
-* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.")
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 19 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 6 | [TrySound](https://github.com/TrySound) |
-| 6 | [stevenvachon](https://github.com/stevenvachon) |
-| 3 | [onokumus](https://github.com/onokumus) |
-| 1 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) |
-
-### Author
-
-**Jon Schlinkert**
-
-* [GitHub Profile](https://github.com/jonschlinkert)
-* [Twitter Profile](https://twitter.com/jonschlinkert)
-* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert)
-
-### License
-
-Copyright © 2019, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on April 28, 2019._
diff --git a/node_modules/is-plain-object/dist/is-plain-object.js b/node_modules/is-plain-object/dist/is-plain-object.js
deleted file mode 100644
index d134e4f..0000000
--- a/node_modules/is-plain-object/dist/is-plain-object.js
+++ /dev/null
@@ -1,38 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-/*!
- * is-plain-object
- *
- * Copyright (c) 2014-2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-function isObject(o) {
- return Object.prototype.toString.call(o) === '[object Object]';
-}
-
-function isPlainObject(o) {
- var ctor,prot;
-
- if (isObject(o) === false) return false;
-
- // If has modified constructor
- ctor = o.constructor;
- if (ctor === undefined) return true;
-
- // If has modified prototype
- prot = ctor.prototype;
- if (isObject(prot) === false) return false;
-
- // If constructor does not have an Object-specific method
- if (prot.hasOwnProperty('isPrototypeOf') === false) {
- return false;
- }
-
- // Most likely a plain Object
- return true;
-}
-
-exports.isPlainObject = isPlainObject;
diff --git a/node_modules/is-plain-object/dist/is-plain-object.mjs b/node_modules/is-plain-object/dist/is-plain-object.mjs
deleted file mode 100644
index c2d9f35..0000000
--- a/node_modules/is-plain-object/dist/is-plain-object.mjs
+++ /dev/null
@@ -1,34 +0,0 @@
-/*!
- * is-plain-object
- *
- * Copyright (c) 2014-2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-function isObject(o) {
- return Object.prototype.toString.call(o) === '[object Object]';
-}
-
-function isPlainObject(o) {
- var ctor,prot;
-
- if (isObject(o) === false) return false;
-
- // If has modified constructor
- ctor = o.constructor;
- if (ctor === undefined) return true;
-
- // If has modified prototype
- prot = ctor.prototype;
- if (isObject(prot) === false) return false;
-
- // If constructor does not have an Object-specific method
- if (prot.hasOwnProperty('isPrototypeOf') === false) {
- return false;
- }
-
- // Most likely a plain Object
- return true;
-}
-
-export { isPlainObject };
diff --git a/node_modules/is-plain-object/is-plain-object.d.ts b/node_modules/is-plain-object/is-plain-object.d.ts
deleted file mode 100644
index a359940..0000000
--- a/node_modules/is-plain-object/is-plain-object.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export function isPlainObject(o: any): boolean;
diff --git a/node_modules/is-plain-object/package.json b/node_modules/is-plain-object/package.json
deleted file mode 100644
index 3ea169a..0000000
--- a/node_modules/is-plain-object/package.json
+++ /dev/null
@@ -1,85 +0,0 @@
-{
- "name": "is-plain-object",
- "description": "Returns true if an object was created by the `Object` constructor, or Object.create(null).",
- "version": "5.0.0",
- "homepage": "https://github.com/jonschlinkert/is-plain-object",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Osman Nuri Okumuş (http://onokumus.com)",
- "Steven Vachon (https://svachon.com)",
- "(https://github.com/wtgtybhertgeghgtwtg)",
- "Bogdan Chadkin (https://github.com/TrySound)"
- ],
- "repository": "jonschlinkert/is-plain-object",
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-plain-object/issues"
- },
- "license": "MIT",
- "main": "dist/is-plain-object.js",
- "module": "dist/is-plain-object.mjs",
- "types": "is-plain-object.d.ts",
- "files": [
- "is-plain-object.d.ts",
- "dist"
- ],
- "exports": {
- ".": {
- "import": "./dist/is-plain-object.mjs",
- "require": "./dist/is-plain-object.js"
- },
- "./package.json": "./package.json"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "build": "rollup -c",
- "test_browser": "mocha-headless-chrome --args=disable-web-security -f test/browser.html",
- "test_node": "mocha -r esm",
- "test": "npm run test_node && npm run build && npm run test_browser",
- "prepare": "rollup -c"
- },
- "devDependencies": {
- "chai": "^4.2.0",
- "esm": "^3.2.22",
- "gulp-format-md": "^1.0.0",
- "mocha": "^6.1.4",
- "mocha-headless-chrome": "^3.1.0",
- "rollup": "^2.22.1"
- },
- "keywords": [
- "check",
- "is",
- "is-object",
- "isobject",
- "javascript",
- "kind",
- "kind-of",
- "object",
- "plain",
- "type",
- "typeof",
- "value"
- ],
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "is-number",
- "isobject",
- "kind-of"
- ]
- },
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/is-relative/LICENSE b/node_modules/is-relative/LICENSE
deleted file mode 100644
index 3f2eca1..0000000
--- a/node_modules/is-relative/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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/is-relative/README.md b/node_modules/is-relative/README.md
deleted file mode 100644
index eff8c74..0000000
--- a/node_modules/is-relative/README.md
+++ /dev/null
@@ -1,77 +0,0 @@
-# is-relative [![NPM version](https://img.shields.io/npm/v/is-relative.svg?style=flat)](https://www.npmjs.com/package/is-relative) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-relative.svg?style=flat)](https://npmjs.org/package/is-relative) [![NPM total downloads](https://img.shields.io/npm/dt/is-relative.svg?style=flat)](https://npmjs.org/package/is-relative) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-relative.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-relative)
-
-> Returns `true` if the path appears to be relative.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save is-relative
-```
-
-## Usage
-
-```js
-var isRelative = require('is-relative');
-console.log(isRelative('README.md'));
-//=> true
-
-console.log(isRelative('/User/dev/foo/README.md'));
-//=> false
-```
-
-## About
-
-### Related projects
-
-* [is-absolute](https://www.npmjs.com/package/is-absolute): Polyfill for node.js `path.isAbolute`. Returns true if a file path is absolute. | [homepage](https://github.com/jonschlinkert/is-absolute "Polyfill for node.js `path.isAbolute`. Returns true if a file path is absolute.")
-* [is-dotfile](https://www.npmjs.com/package/is-dotfile): Return true if a file path is (or has) a dotfile. Returns false if the… [more](https://github.com/jonschlinkert/is-dotfile) | [homepage](https://github.com/jonschlinkert/is-dotfile "Return true if a file path is (or has) a dotfile. Returns false if the path is a dot directory.")
-* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/jonschlinkert/is-glob) | [homepage](https://github.com/jonschlinkert/is-glob "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet")
-* [is-relative](https://www.npmjs.com/package/is-relative): Returns `true` if the path appears to be relative. | [homepage](https://github.com/jonschlinkert/is-relative "Returns `true` if the path appears to be relative.")
-* [is-unc-path](https://www.npmjs.com/package/is-unc-path): Returns true if a filepath is a windows UNC file path. | [homepage](https://github.com/jonschlinkert/is-unc-path "Returns true if a filepath is a windows UNC file path.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 13 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 3 | [shinnn](https://github.com/shinnn) |
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on July 13, 2017._
\ No newline at end of file
diff --git a/node_modules/is-relative/index.js b/node_modules/is-relative/index.js
deleted file mode 100644
index 3756357..0000000
--- a/node_modules/is-relative/index.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-
-var isUncPath = require('is-unc-path');
-
-module.exports = function isRelative(filepath) {
- if (typeof filepath !== 'string') {
- throw new TypeError('expected filepath to be a string');
- }
-
- // Windows UNC paths are always considered to be absolute.
- return !isUncPath(filepath) && !/^([a-z]:)?[\\\/]/i.test(filepath);
-};
diff --git a/node_modules/is-relative/package.json b/node_modules/is-relative/package.json
deleted file mode 100644
index 260b95d..0000000
--- a/node_modules/is-relative/package.json
+++ /dev/null
@@ -1,71 +0,0 @@
-{
- "name": "is-relative",
- "description": "Returns `true` if the path appears to be relative.",
- "version": "1.0.0",
- "homepage": "https://github.com/jonschlinkert/is-relative",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Shinnosuke Watanabe (https://shinnn.github.io)"
- ],
- "repository": "jonschlinkert/is-relative",
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-relative/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "is-unc-path": "^1.0.0"
- },
- "devDependencies": {
- "gulp-format-md": "^1.0.0",
- "mocha": "^3.4.2"
- },
- "keywords": [
- "absolute",
- "check",
- "file",
- "filepath",
- "is",
- "normalize",
- "path",
- "path.relative",
- "relative",
- "resolve",
- "slash",
- "slashes",
- "uri",
- "url"
- ],
- "verb": {
- "related": {
- "list": [
- "is-absolute",
- "is-dotfile",
- "is-glob",
- "is-relative",
- "is-unc-path"
- ]
- },
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/is-unc-path/LICENSE b/node_modules/is-unc-path/LICENSE
deleted file mode 100644
index c0d7f13..0000000
--- a/node_modules/is-unc-path/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015-2017, 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.
\ No newline at end of file
diff --git a/node_modules/is-unc-path/README.md b/node_modules/is-unc-path/README.md
deleted file mode 100644
index ba95910..0000000
--- a/node_modules/is-unc-path/README.md
+++ /dev/null
@@ -1,115 +0,0 @@
-# is-unc-path [![NPM version](https://img.shields.io/npm/v/is-unc-path.svg?style=flat)](https://www.npmjs.com/package/is-unc-path) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-unc-path.svg?style=flat)](https://npmjs.org/package/is-unc-path) [![NPM total downloads](https://img.shields.io/npm/dt/is-unc-path.svg?style=flat)](https://npmjs.org/package/is-unc-path) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-unc-path.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-unc-path)
-
-> Returns true if a filepath is a windows UNC file path.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save is-unc-path
-```
-
-## Usage
-
-```js
-var isUncPath = require('is-unc-path');
-```
-
-**true**
-
-Returns true for windows UNC paths:
-
-```js
-isUncPath('\\/foo/bar');
-isUncPath('\\\\foo/bar');
-isUncPath('\\\\foo\\admin$');
-isUncPath('\\\\foo\\admin$\\system32');
-isUncPath('\\\\foo\\temp');
-isUncPath('\\\\/foo/bar');
-isUncPath('\\\\\\/foo/bar');
-```
-
-**false**
-
-Returns false for non-UNC paths:
-
-```js
-isUncPath('/foo/bar');
-isUncPath('/');
-isUncPath('/foo');
-isUncPath('/foo/');
-isUncPath('c:');
-isUncPath('c:.');
-isUncPath('c:./');
-isUncPath('c:./file');
-isUncPath('c:/');
-isUncPath('c:/file');
-```
-
-**Customization**
-
-Use `.source` to use the regex as a component of another regex:
-
-```js
-var myRegex = new RegExp(isUncPath.source + 'foo');
-```
-
-**[Rules for UNC paths](http://resources.esri.com/help/9.3/ArcGISDesktop/com/Gp_ToolRef/sharing_tools_and_toolboxes/pathnames_explained_colon_absolute_relative_unc_and_url.htm)**
-
-* The computer name is always preceded by a double backward-slash (`\\`).
-* UNC paths cannot contain a drive letter (such as `D:`)
-
-## Release history
-
-### v1.0.0 - 2017-07-12
-
-**Changes**
-
-* now throws a `TypeError` if value is not a string
-
-## About
-
-### Related projects
-
-* [is-absolute](https://www.npmjs.com/package/is-absolute): Polyfill for node.js `path.isAbolute`. Returns true if a file path is absolute. | [homepage](https://github.com/jonschlinkert/is-absolute "Polyfill for node.js `path.isAbolute`. Returns true if a file path is absolute.")
-* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/jonschlinkert/is-glob) | [homepage](https://github.com/jonschlinkert/is-glob "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet")
-* [is-relative](https://www.npmjs.com/package/is-relative): Returns `true` if the path appears to be relative. | [homepage](https://github.com/jonschlinkert/is-relative "Returns `true` if the path appears to be relative.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on July 13, 2017._
\ No newline at end of file
diff --git a/node_modules/is-unc-path/index.js b/node_modules/is-unc-path/index.js
deleted file mode 100644
index a9b839e..0000000
--- a/node_modules/is-unc-path/index.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-
-var regex = require('unc-path-regex')();
-
-module.exports = function(filepath) {
- if (typeof filepath !== 'string') {
- throw new TypeError('expected a string');
- }
- return regex.test(filepath);
-};
diff --git a/node_modules/is-unc-path/package.json b/node_modules/is-unc-path/package.json
deleted file mode 100644
index b4bacdd..0000000
--- a/node_modules/is-unc-path/package.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "name": "is-unc-path",
- "description": "Returns true if a filepath is a windows UNC file path.",
- "version": "1.0.0",
- "homepage": "https://github.com/jonschlinkert/is-unc-path",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/is-unc-path",
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-unc-path/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "unc-path-regex": "^0.1.2"
- },
- "devDependencies": {
- "gulp-format-md": "^1.0.0",
- "mocha": "^3.4.2"
- },
- "keywords": [
- "absolute",
- "expression",
- "file",
- "filepath",
- "is",
- "match",
- "matching",
- "path",
- "regex",
- "regexp",
- "regular",
- "unc",
- "win",
- "windows"
- ],
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- },
- "related": {
- "list": [
- "is-relative",
- "is-absolute",
- "is-glob"
- ]
- }
- }
-}
diff --git a/node_modules/is-utf8/LICENSE b/node_modules/is-utf8/LICENSE
deleted file mode 100644
index 2c8d4b9..0000000
--- a/node_modules/is-utf8/LICENSE
+++ /dev/null
@@ -1,9 +0,0 @@
-The MIT License (MIT)
-
-Copyright (C) 2014 Wei Fanzhe
-
-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/is-utf8/README.md b/node_modules/is-utf8/README.md
deleted file mode 100644
index b62ddde..0000000
--- a/node_modules/is-utf8/README.md
+++ /dev/null
@@ -1,16 +0,0 @@
-#utf8 detector
-
-Detect if a Buffer is utf8 encoded.
-It need The minimum amount of bytes is 4.
-
-
-```javascript
- var fs = require('fs');
- var isUtf8 = require('is-utf8');
- var ansi = fs.readFileSync('ansi.txt');
- var utf8 = fs.readFileSync('utf8.txt');
-
- console.log('ansi.txt is utf8: '+isUtf8(ansi)); //false
- console.log('utf8.txt is utf8: '+isUtf8(utf8)); //true
-```
-
diff --git a/node_modules/is-utf8/is-utf8.js b/node_modules/is-utf8/is-utf8.js
deleted file mode 100644
index 8a5f15d..0000000
--- a/node_modules/is-utf8/is-utf8.js
+++ /dev/null
@@ -1,76 +0,0 @@
-
-exports = module.exports = function(bytes)
-{
- var i = 0;
- while(i < bytes.length)
- {
- if( (// ASCII
- bytes[i] == 0x09 ||
- bytes[i] == 0x0A ||
- bytes[i] == 0x0D ||
- (0x20 <= bytes[i] && bytes[i] <= 0x7E)
- )
- ) {
- i += 1;
- continue;
- }
-
- if( (// non-overlong 2-byte
- (0xC2 <= bytes[i] && bytes[i] <= 0xDF) &&
- (0x80 <= bytes[i+1] && bytes[i+1] <= 0xBF)
- )
- ) {
- i += 2;
- continue;
- }
-
- if( (// excluding overlongs
- bytes[i] == 0xE0 &&
- (0xA0 <= bytes[i + 1] && bytes[i + 1] <= 0xBF) &&
- (0x80 <= bytes[i + 2] && bytes[i + 2] <= 0xBF)
- ) ||
- (// straight 3-byte
- ((0xE1 <= bytes[i] && bytes[i] <= 0xEC) ||
- bytes[i] == 0xEE ||
- bytes[i] == 0xEF) &&
- (0x80 <= bytes[i + 1] && bytes[i+1] <= 0xBF) &&
- (0x80 <= bytes[i+2] && bytes[i+2] <= 0xBF)
- ) ||
- (// excluding surrogates
- bytes[i] == 0xED &&
- (0x80 <= bytes[i+1] && bytes[i+1] <= 0x9F) &&
- (0x80 <= bytes[i+2] && bytes[i+2] <= 0xBF)
- )
- ) {
- i += 3;
- continue;
- }
-
- if( (// planes 1-3
- bytes[i] == 0xF0 &&
- (0x90 <= bytes[i + 1] && bytes[i + 1] <= 0xBF) &&
- (0x80 <= bytes[i + 2] && bytes[i + 2] <= 0xBF) &&
- (0x80 <= bytes[i + 3] && bytes[i + 3] <= 0xBF)
- ) ||
- (// planes 4-15
- (0xF1 <= bytes[i] && bytes[i] <= 0xF3) &&
- (0x80 <= bytes[i + 1] && bytes[i + 1] <= 0xBF) &&
- (0x80 <= bytes[i + 2] && bytes[i + 2] <= 0xBF) &&
- (0x80 <= bytes[i + 3] && bytes[i + 3] <= 0xBF)
- ) ||
- (// plane 16
- bytes[i] == 0xF4 &&
- (0x80 <= bytes[i + 1] && bytes[i + 1] <= 0x8F) &&
- (0x80 <= bytes[i + 2] && bytes[i + 2] <= 0xBF) &&
- (0x80 <= bytes[i + 3] && bytes[i + 3] <= 0xBF)
- )
- ) {
- i += 4;
- continue;
- }
-
- return false;
- }
-
- return true;
-}
diff --git a/node_modules/is-utf8/package.json b/node_modules/is-utf8/package.json
deleted file mode 100644
index dab1234..0000000
--- a/node_modules/is-utf8/package.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "name": "is-utf8",
- "version": "0.2.1",
- "description": "Detect if a buffer is utf8 encoded.",
- "main": "is-utf8.js",
- "scripts": {
- "test": "node test.js"
- },
- "repository": "https://github.com/wayfind/is-utf8.git",
- "keywords": [
- "utf8",
- "charset"
- ],
- "files": [
- "is-utf8.js"
- ],
- "author": "wayfind",
- "license": "MIT"
-}
diff --git a/node_modules/is-valid-glob/LICENSE b/node_modules/is-valid-glob/LICENSE
deleted file mode 100644
index 83b56e7..0000000
--- a/node_modules/is-valid-glob/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015-2017, 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/is-valid-glob/README.md b/node_modules/is-valid-glob/README.md
deleted file mode 100644
index 80100a6..0000000
--- a/node_modules/is-valid-glob/README.md
+++ /dev/null
@@ -1,103 +0,0 @@
-# is-valid-glob [![NPM version](https://img.shields.io/npm/v/is-valid-glob.svg?style=flat)](https://www.npmjs.com/package/is-valid-glob) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-valid-glob.svg?style=flat)](https://npmjs.org/package/is-valid-glob) [![NPM total downloads](https://img.shields.io/npm/dt/is-valid-glob.svg?style=flat)](https://npmjs.org/package/is-valid-glob) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-valid-glob.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-valid-glob)
-
-> Return true if a value is a valid glob pattern or patterns.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save is-valid-glob
-```
-
-## Usage
-
-This really just checks to make sure that a pattern is either a string or array, and if it's an array it's either empty or consists of only strings.
-
-```js
-var isValidGlob = require('is-valid-glob');
-
-isValidGlob('foo/*.js');
-//=> true
-```
-
-**Valid patterns**
-
-```js
-isValidGlob('a');
-isValidGlob('a.js');
-isValidGlob('*.js');
-isValidGlob(['a', 'b']);
-//=> all true
-```
-
-**Invalid patterns**
-
-```js
-isValidGlob();
-isValidGlob('');
-isValidGlob(null);
-isValidGlob(undefined);
-isValidGlob(new Buffer('foo'));
-isValidGlob(['foo', [[]]]);
-isValidGlob(['foo', [['bar']]]);
-isValidGlob(['foo', {}]);
-isValidGlob({});
-isValidGlob([]);
-isValidGlob(['']);
-//=> all false
-```
-
-## About
-
-### Related projects
-
-* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/jonschlinkert/is-glob) | [homepage](https://github.com/jonschlinkert/is-glob "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet")
-* [micromatch](https://www.npmjs.com/package/micromatch): Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch. | [homepage](https://github.com/micromatch/micromatch "Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch.")
-* [vinyl-fs](https://www.npmjs.com/package/vinyl-fs): Vinyl adapter for the file system | [homepage](http://github.com/wearefractal/vinyl-fs "Vinyl adapter for the file system")
-* [vinyl](https://www.npmjs.com/package/vinyl): Virtual file format. | [homepage](https://github.com/gulpjs/vinyl#readme "Virtual file format.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 9 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 2 | [contra](https://github.com/contra) |
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on June 21, 2017._
\ No newline at end of file
diff --git a/node_modules/is-valid-glob/index.js b/node_modules/is-valid-glob/index.js
deleted file mode 100644
index 6b1899f..0000000
--- a/node_modules/is-valid-glob/index.js
+++ /dev/null
@@ -1,21 +0,0 @@
-'use strict';
-
-module.exports = function isValidGlob(glob) {
- if (typeof glob === 'string' && glob.length > 0) {
- return true;
- }
- if (Array.isArray(glob)) {
- return glob.length !== 0 && every(glob);
- }
- return false;
-};
-
-function every(arr) {
- var len = arr.length;
- while (len--) {
- if (typeof arr[len] !== 'string' || arr[len].length <= 0) {
- return false;
- }
- }
- return true;
-}
diff --git a/node_modules/is-valid-glob/package.json b/node_modules/is-valid-glob/package.json
deleted file mode 100644
index e356d04..0000000
--- a/node_modules/is-valid-glob/package.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{
- "name": "is-valid-glob",
- "description": "Return true if a value is a valid glob pattern or patterns.",
- "version": "1.0.0",
- "homepage": "https://github.com/jonschlinkert/is-valid-glob",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "contra (http://contra.io)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)"
- ],
- "repository": "jonschlinkert/is-valid-glob",
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-valid-glob/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "devDependencies": {
- "gulp-format-md": "^0.1.12",
- "mocha": "^3.4.2"
- },
- "keywords": [
- "array",
- "check",
- "glob",
- "is",
- "match",
- "pattern",
- "patterns",
- "read",
- "test",
- "valid",
- "validate"
- ],
- "verb": {
- "related": {
- "list": [
- "is-glob",
- "micromatch",
- "vinyl-fs",
- "vinyl"
- ]
- },
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/is-windows/LICENSE b/node_modules/is-windows/LICENSE
deleted file mode 100644
index f8de063..0000000
--- a/node_modules/is-windows/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015-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/is-windows/README.md b/node_modules/is-windows/README.md
deleted file mode 100644
index 485bfde..0000000
--- a/node_modules/is-windows/README.md
+++ /dev/null
@@ -1,95 +0,0 @@
-# is-windows [![NPM version](https://img.shields.io/npm/v/is-windows.svg?style=flat)](https://www.npmjs.com/package/is-windows) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-windows.svg?style=flat)](https://npmjs.org/package/is-windows) [![NPM total downloads](https://img.shields.io/npm/dt/is-windows.svg?style=flat)](https://npmjs.org/package/is-windows) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-windows.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-windows)
-
-> Returns true if the platform is windows. UMD module, works with node.js, commonjs, browser, AMD, electron, etc.
-
-Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save is-windows
-```
-
-## Heads up!
-
-As of `v0.2.0` this module always returns a function.
-
-## Node.js usage
-
-```js
-var isWindows = require('is-windows');
-
-console.log(isWindows());
-//=> returns true if the platform is windows
-```
-
-## About
-
-
-Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-
-
-
-Running Tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-
-
-
-Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-
-
-### Related projects
-
-You might also be interested in these projects:
-
-* [is-absolute](https://www.npmjs.com/package/is-absolute): Returns true if a file path is absolute. Does not rely on the path module… [more](https://github.com/jonschlinkert/is-absolute) | [homepage](https://github.com/jonschlinkert/is-absolute "Returns true if a file path is absolute. Does not rely on the path module and can be used as a polyfill for node.js native `path.isAbolute`.")
-* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/jonschlinkert/is-glob) | [homepage](https://github.com/jonschlinkert/is-glob "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet")
-* [is-relative](https://www.npmjs.com/package/is-relative): Returns `true` if the path appears to be relative. | [homepage](https://github.com/jonschlinkert/is-relative "Returns `true` if the path appears to be relative.")
-* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.")
-* [window-size](https://www.npmjs.com/package/window-size): Reliable way to get the height and width of terminal/console, since it's not calculated or… [more](https://github.com/jonschlinkert/window-size) | [homepage](https://github.com/jonschlinkert/window-size "Reliable way to get the height and width of terminal/console, since it's not calculated or updated the same way on all platforms, environments and node.js versions.")
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 11 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 4 | [doowb](https://github.com/doowb) |
-| 1 | [SimenB](https://github.com/SimenB) |
-| 1 | [gucong3000](https://github.com/gucong3000) |
-
-### Author
-
-**Jon Schlinkert**
-
-* [linkedin/in/jonschlinkert](https://linkedin.com/in/jonschlinkert)
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2018, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on February 14, 2018._
\ No newline at end of file
diff --git a/node_modules/is-windows/index.js b/node_modules/is-windows/index.js
deleted file mode 100644
index 55d43e0..0000000
--- a/node_modules/is-windows/index.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/*!
- * is-windows
- *
- * Copyright © 2015-2018, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-(function(factory) {
- if (exports && typeof exports === 'object' && typeof module !== 'undefined') {
- module.exports = factory();
- } else if (typeof define === 'function' && define.amd) {
- define([], factory);
- } else if (typeof window !== 'undefined') {
- window.isWindows = factory();
- } else if (typeof global !== 'undefined') {
- global.isWindows = factory();
- } else if (typeof self !== 'undefined') {
- self.isWindows = factory();
- } else {
- this.isWindows = factory();
- }
-})(function() {
- 'use strict';
- return function isWindows() {
- return process && (process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE));
- };
-});
diff --git a/node_modules/is-windows/package.json b/node_modules/is-windows/package.json
deleted file mode 100644
index fca09f9..0000000
--- a/node_modules/is-windows/package.json
+++ /dev/null
@@ -1,71 +0,0 @@
-{
- "name": "is-windows",
- "description": "Returns true if the platform is windows. UMD module, works with node.js, commonjs, browser, AMD, electron, etc.",
- "version": "1.0.2",
- "homepage": "https://github.com/jonschlinkert/is-windows",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Simen Bekkhus (https://github.com/SimenB)",
- "刘祺 (gucong.co.cc)"
- ],
- "repository": "jonschlinkert/is-windows",
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-windows/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "devDependencies": {
- "gulp-format-md": "^1.0.0",
- "mocha": "^3.5.3"
- },
- "keywords": [
- "check",
- "cywin",
- "is",
- "is-windows",
- "nix",
- "operating system",
- "os",
- "platform",
- "process",
- "unix",
- "win",
- "win32",
- "windows"
- ],
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "is-absolute",
- "is-glob",
- "is-relative",
- "isobject",
- "window-size"
- ]
- },
- "lint": {
- "reflinks": true
- },
- "reflinks": [
- "verb"
- ]
- }
-}
diff --git a/node_modules/isarray/.npmignore b/node_modules/isarray/.npmignore
deleted file mode 100644
index 3c3629e..0000000
--- a/node_modules/isarray/.npmignore
+++ /dev/null
@@ -1 +0,0 @@
-node_modules
diff --git a/node_modules/isarray/.travis.yml b/node_modules/isarray/.travis.yml
deleted file mode 100644
index cc4dba2..0000000
--- a/node_modules/isarray/.travis.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-language: node_js
-node_js:
- - "0.8"
- - "0.10"
diff --git a/node_modules/isarray/Makefile b/node_modules/isarray/Makefile
deleted file mode 100644
index 787d56e..0000000
--- a/node_modules/isarray/Makefile
+++ /dev/null
@@ -1,6 +0,0 @@
-
-test:
- @node_modules/.bin/tape test.js
-
-.PHONY: test
-
diff --git a/node_modules/isarray/README.md b/node_modules/isarray/README.md
deleted file mode 100644
index 16d2c59..0000000
--- a/node_modules/isarray/README.md
+++ /dev/null
@@ -1,60 +0,0 @@
-
-# isarray
-
-`Array#isArray` for older browsers.
-
-[![build status](https://secure.travis-ci.org/juliangruber/isarray.svg)](http://travis-ci.org/juliangruber/isarray)
-[![downloads](https://img.shields.io/npm/dm/isarray.svg)](https://www.npmjs.org/package/isarray)
-
-[![browser support](https://ci.testling.com/juliangruber/isarray.png)
-](https://ci.testling.com/juliangruber/isarray)
-
-## Usage
-
-```js
-var isArray = require('isarray');
-
-console.log(isArray([])); // => true
-console.log(isArray({})); // => false
-```
-
-## Installation
-
-With [npm](http://npmjs.org) do
-
-```bash
-$ npm install isarray
-```
-
-Then bundle for the browser with
-[browserify](https://github.com/substack/browserify).
-
-With [component](http://component.io) do
-
-```bash
-$ component install juliangruber/isarray
-```
-
-## License
-
-(MIT)
-
-Copyright (c) 2013 Julian Gruber <julian@juliangruber.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/isarray/component.json b/node_modules/isarray/component.json
deleted file mode 100644
index 9e31b68..0000000
--- a/node_modules/isarray/component.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "name" : "isarray",
- "description" : "Array#isArray for older browsers",
- "version" : "0.0.1",
- "repository" : "juliangruber/isarray",
- "homepage": "https://github.com/juliangruber/isarray",
- "main" : "index.js",
- "scripts" : [
- "index.js"
- ],
- "dependencies" : {},
- "keywords": ["browser","isarray","array"],
- "author": {
- "name": "Julian Gruber",
- "email": "mail@juliangruber.com",
- "url": "http://juliangruber.com"
- },
- "license": "MIT"
-}
diff --git a/node_modules/isarray/index.js b/node_modules/isarray/index.js
deleted file mode 100644
index a57f634..0000000
--- a/node_modules/isarray/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var toString = {}.toString;
-
-module.exports = Array.isArray || function (arr) {
- return toString.call(arr) == '[object Array]';
-};
diff --git a/node_modules/isarray/package.json b/node_modules/isarray/package.json
deleted file mode 100644
index 1a4317a..0000000
--- a/node_modules/isarray/package.json
+++ /dev/null
@@ -1,45 +0,0 @@
-{
- "name": "isarray",
- "description": "Array#isArray for older browsers",
- "version": "1.0.0",
- "repository": {
- "type": "git",
- "url": "git://github.com/juliangruber/isarray.git"
- },
- "homepage": "https://github.com/juliangruber/isarray",
- "main": "index.js",
- "dependencies": {},
- "devDependencies": {
- "tape": "~2.13.4"
- },
- "keywords": [
- "browser",
- "isarray",
- "array"
- ],
- "author": {
- "name": "Julian Gruber",
- "email": "mail@juliangruber.com",
- "url": "http://juliangruber.com"
- },
- "license": "MIT",
- "testling": {
- "files": "test.js",
- "browsers": [
- "ie/8..latest",
- "firefox/17..latest",
- "firefox/nightly",
- "chrome/22..latest",
- "chrome/canary",
- "opera/12..latest",
- "opera/next",
- "safari/5.1..latest",
- "ipad/6.0..latest",
- "iphone/6.0..latest",
- "android-browser/4.2..latest"
- ]
- },
- "scripts": {
- "test": "tape test.js"
- }
-}
diff --git a/node_modules/isarray/test.js b/node_modules/isarray/test.js
deleted file mode 100644
index e0c3444..0000000
--- a/node_modules/isarray/test.js
+++ /dev/null
@@ -1,20 +0,0 @@
-var isArray = require('./');
-var test = require('tape');
-
-test('is array', function(t){
- t.ok(isArray([]));
- t.notOk(isArray({}));
- t.notOk(isArray(null));
- t.notOk(isArray(false));
-
- var obj = {};
- obj[0] = true;
- t.notOk(isArray(obj));
-
- var arr = [];
- arr.foo = 'bar';
- t.ok(isArray(arr));
-
- t.end();
-});
-
diff --git a/node_modules/isexe/.npmignore b/node_modules/isexe/.npmignore
deleted file mode 100644
index c1cb757..0000000
--- a/node_modules/isexe/.npmignore
+++ /dev/null
@@ -1,2 +0,0 @@
-.nyc_output/
-coverage/
diff --git a/node_modules/isexe/LICENSE b/node_modules/isexe/LICENSE
deleted file mode 100644
index 19129e3..0000000
--- a/node_modules/isexe/LICENSE
+++ /dev/null
@@ -1,15 +0,0 @@
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/node_modules/isexe/README.md b/node_modules/isexe/README.md
deleted file mode 100644
index 35769e8..0000000
--- a/node_modules/isexe/README.md
+++ /dev/null
@@ -1,51 +0,0 @@
-# isexe
-
-Minimal module to check if a file is executable, and a normal file.
-
-Uses `fs.stat` and tests against the `PATHEXT` environment variable on
-Windows.
-
-## USAGE
-
-```javascript
-var isexe = require('isexe')
-isexe('some-file-name', function (err, isExe) {
- if (err) {
- console.error('probably file does not exist or something', err)
- } else if (isExe) {
- console.error('this thing can be run')
- } else {
- console.error('cannot be run')
- }
-})
-
-// same thing but synchronous, throws errors
-var isExe = isexe.sync('some-file-name')
-
-// treat errors as just "not executable"
-isexe('maybe-missing-file', { ignoreErrors: true }, callback)
-var isExe = isexe.sync('maybe-missing-file', { ignoreErrors: true })
-```
-
-## API
-
-### `isexe(path, [options], [callback])`
-
-Check if the path is executable. If no callback provided, and a
-global `Promise` object is available, then a Promise will be returned.
-
-Will raise whatever errors may be raised by `fs.stat`, unless
-`options.ignoreErrors` is set to true.
-
-### `isexe.sync(path, [options])`
-
-Same as `isexe` but returns the value and throws any errors raised.
-
-### Options
-
-* `ignoreErrors` Treat all errors as "no, this is not executable", but
- don't raise them.
-* `uid` Number to use as the user id
-* `gid` Number to use as the group id
-* `pathExt` List of path extensions to use instead of `PATHEXT`
- environment variable on Windows.
diff --git a/node_modules/isexe/index.js b/node_modules/isexe/index.js
deleted file mode 100644
index 553fb32..0000000
--- a/node_modules/isexe/index.js
+++ /dev/null
@@ -1,57 +0,0 @@
-var fs = require('fs')
-var core
-if (process.platform === 'win32' || global.TESTING_WINDOWS) {
- core = require('./windows.js')
-} else {
- core = require('./mode.js')
-}
-
-module.exports = isexe
-isexe.sync = sync
-
-function isexe (path, options, cb) {
- if (typeof options === 'function') {
- cb = options
- options = {}
- }
-
- if (!cb) {
- if (typeof Promise !== 'function') {
- throw new TypeError('callback not provided')
- }
-
- return new Promise(function (resolve, reject) {
- isexe(path, options || {}, function (er, is) {
- if (er) {
- reject(er)
- } else {
- resolve(is)
- }
- })
- })
- }
-
- core(path, options || {}, function (er, is) {
- // ignore EACCES because that just means we aren't allowed to run it
- if (er) {
- if (er.code === 'EACCES' || options && options.ignoreErrors) {
- er = null
- is = false
- }
- }
- cb(er, is)
- })
-}
-
-function sync (path, options) {
- // my kingdom for a filtered catch
- try {
- return core.sync(path, options || {})
- } catch (er) {
- if (options && options.ignoreErrors || er.code === 'EACCES') {
- return false
- } else {
- throw er
- }
- }
-}
diff --git a/node_modules/isexe/mode.js b/node_modules/isexe/mode.js
deleted file mode 100644
index 1995ea4..0000000
--- a/node_modules/isexe/mode.js
+++ /dev/null
@@ -1,41 +0,0 @@
-module.exports = isexe
-isexe.sync = sync
-
-var fs = require('fs')
-
-function isexe (path, options, cb) {
- fs.stat(path, function (er, stat) {
- cb(er, er ? false : checkStat(stat, options))
- })
-}
-
-function sync (path, options) {
- return checkStat(fs.statSync(path), options)
-}
-
-function checkStat (stat, options) {
- return stat.isFile() && checkMode(stat, options)
-}
-
-function checkMode (stat, options) {
- var mod = stat.mode
- var uid = stat.uid
- var gid = stat.gid
-
- var myUid = options.uid !== undefined ?
- options.uid : process.getuid && process.getuid()
- var myGid = options.gid !== undefined ?
- options.gid : process.getgid && process.getgid()
-
- var u = parseInt('100', 8)
- var g = parseInt('010', 8)
- var o = parseInt('001', 8)
- var ug = u | g
-
- var ret = (mod & o) ||
- (mod & g) && gid === myGid ||
- (mod & u) && uid === myUid ||
- (mod & ug) && myUid === 0
-
- return ret
-}
diff --git a/node_modules/isexe/package.json b/node_modules/isexe/package.json
deleted file mode 100644
index e452689..0000000
--- a/node_modules/isexe/package.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "name": "isexe",
- "version": "2.0.0",
- "description": "Minimal module to check if a file is executable.",
- "main": "index.js",
- "directories": {
- "test": "test"
- },
- "devDependencies": {
- "mkdirp": "^0.5.1",
- "rimraf": "^2.5.0",
- "tap": "^10.3.0"
- },
- "scripts": {
- "test": "tap test/*.js --100",
- "preversion": "npm test",
- "postversion": "npm publish",
- "postpublish": "git push origin --all; git push origin --tags"
- },
- "author": "Isaac Z. Schlueter (http://blog.izs.me/)",
- "license": "ISC",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/isaacs/isexe.git"
- },
- "keywords": [],
- "bugs": {
- "url": "https://github.com/isaacs/isexe/issues"
- },
- "homepage": "https://github.com/isaacs/isexe#readme"
-}
diff --git a/node_modules/isexe/test/basic.js b/node_modules/isexe/test/basic.js
deleted file mode 100644
index d926df6..0000000
--- a/node_modules/isexe/test/basic.js
+++ /dev/null
@@ -1,221 +0,0 @@
-var t = require('tap')
-var fs = require('fs')
-var path = require('path')
-var fixture = path.resolve(__dirname, 'fixtures')
-var meow = fixture + '/meow.cat'
-var mine = fixture + '/mine.cat'
-var ours = fixture + '/ours.cat'
-var fail = fixture + '/fail.false'
-var noent = fixture + '/enoent.exe'
-var mkdirp = require('mkdirp')
-var rimraf = require('rimraf')
-
-var isWindows = process.platform === 'win32'
-var hasAccess = typeof fs.access === 'function'
-var winSkip = isWindows && 'windows'
-var accessSkip = !hasAccess && 'no fs.access function'
-var hasPromise = typeof Promise === 'function'
-var promiseSkip = !hasPromise && 'no global Promise'
-
-function reset () {
- delete require.cache[require.resolve('../')]
- return require('../')
-}
-
-t.test('setup fixtures', function (t) {
- rimraf.sync(fixture)
- mkdirp.sync(fixture)
- fs.writeFileSync(meow, '#!/usr/bin/env cat\nmeow\n')
- fs.chmodSync(meow, parseInt('0755', 8))
- fs.writeFileSync(fail, '#!/usr/bin/env false\n')
- fs.chmodSync(fail, parseInt('0644', 8))
- fs.writeFileSync(mine, '#!/usr/bin/env cat\nmine\n')
- fs.chmodSync(mine, parseInt('0744', 8))
- fs.writeFileSync(ours, '#!/usr/bin/env cat\nours\n')
- fs.chmodSync(ours, parseInt('0754', 8))
- t.end()
-})
-
-t.test('promise', { skip: promiseSkip }, function (t) {
- var isexe = reset()
- t.test('meow async', function (t) {
- isexe(meow).then(function (is) {
- t.ok(is)
- t.end()
- })
- })
- t.test('fail async', function (t) {
- isexe(fail).then(function (is) {
- t.notOk(is)
- t.end()
- })
- })
- t.test('noent async', function (t) {
- isexe(noent).catch(function (er) {
- t.ok(er)
- t.end()
- })
- })
- t.test('noent ignore async', function (t) {
- isexe(noent, { ignoreErrors: true }).then(function (is) {
- t.notOk(is)
- t.end()
- })
- })
- t.end()
-})
-
-t.test('no promise', function (t) {
- global.Promise = null
- var isexe = reset()
- t.throws('try to meow a promise', function () {
- isexe(meow)
- })
- t.end()
-})
-
-t.test('access', { skip: accessSkip || winSkip }, function (t) {
- runTest(t)
-})
-
-t.test('mode', { skip: winSkip }, function (t) {
- delete fs.access
- delete fs.accessSync
- var isexe = reset()
- t.ok(isexe.sync(ours, { uid: 0, gid: 0 }))
- t.ok(isexe.sync(mine, { uid: 0, gid: 0 }))
- runTest(t)
-})
-
-t.test('windows', function (t) {
- global.TESTING_WINDOWS = true
- var pathExt = '.EXE;.CAT;.CMD;.COM'
- t.test('pathExt option', function (t) {
- runTest(t, { pathExt: '.EXE;.CAT;.CMD;.COM' })
- })
- t.test('pathExt env', function (t) {
- process.env.PATHEXT = pathExt
- runTest(t)
- })
- t.test('no pathExt', function (t) {
- // with a pathExt of '', any filename is fine.
- // so the "fail" one would still pass.
- runTest(t, { pathExt: '', skipFail: true })
- })
- t.test('pathext with empty entry', function (t) {
- // with a pathExt of '', any filename is fine.
- // so the "fail" one would still pass.
- runTest(t, { pathExt: ';' + pathExt, skipFail: true })
- })
- t.end()
-})
-
-t.test('cleanup', function (t) {
- rimraf.sync(fixture)
- t.end()
-})
-
-function runTest (t, options) {
- var isexe = reset()
-
- var optionsIgnore = Object.create(options || {})
- optionsIgnore.ignoreErrors = true
-
- if (!options || !options.skipFail) {
- t.notOk(isexe.sync(fail, options))
- }
- t.notOk(isexe.sync(noent, optionsIgnore))
- if (!options) {
- t.ok(isexe.sync(meow))
- } else {
- t.ok(isexe.sync(meow, options))
- }
-
- t.ok(isexe.sync(mine, options))
- t.ok(isexe.sync(ours, options))
- t.throws(function () {
- isexe.sync(noent, options)
- })
-
- t.test('meow async', function (t) {
- if (!options) {
- isexe(meow, function (er, is) {
- if (er) {
- throw er
- }
- t.ok(is)
- t.end()
- })
- } else {
- isexe(meow, options, function (er, is) {
- if (er) {
- throw er
- }
- t.ok(is)
- t.end()
- })
- }
- })
-
- t.test('mine async', function (t) {
- isexe(mine, options, function (er, is) {
- if (er) {
- throw er
- }
- t.ok(is)
- t.end()
- })
- })
-
- t.test('ours async', function (t) {
- isexe(ours, options, function (er, is) {
- if (er) {
- throw er
- }
- t.ok(is)
- t.end()
- })
- })
-
- if (!options || !options.skipFail) {
- t.test('fail async', function (t) {
- isexe(fail, options, function (er, is) {
- if (er) {
- throw er
- }
- t.notOk(is)
- t.end()
- })
- })
- }
-
- t.test('noent async', function (t) {
- isexe(noent, options, function (er, is) {
- t.ok(er)
- t.notOk(is)
- t.end()
- })
- })
-
- t.test('noent ignore async', function (t) {
- isexe(noent, optionsIgnore, function (er, is) {
- if (er) {
- throw er
- }
- t.notOk(is)
- t.end()
- })
- })
-
- t.test('directory is not executable', function (t) {
- isexe(__dirname, options, function (er, is) {
- if (er) {
- throw er
- }
- t.notOk(is)
- t.end()
- })
- })
-
- t.end()
-}
diff --git a/node_modules/isexe/windows.js b/node_modules/isexe/windows.js
deleted file mode 100644
index 3499673..0000000
--- a/node_modules/isexe/windows.js
+++ /dev/null
@@ -1,42 +0,0 @@
-module.exports = isexe
-isexe.sync = sync
-
-var fs = require('fs')
-
-function checkPathExt (path, options) {
- var pathext = options.pathExt !== undefined ?
- options.pathExt : process.env.PATHEXT
-
- if (!pathext) {
- return true
- }
-
- pathext = pathext.split(';')
- if (pathext.indexOf('') !== -1) {
- return true
- }
- for (var i = 0; i < pathext.length; i++) {
- var p = pathext[i].toLowerCase()
- if (p && path.substr(-p.length).toLowerCase() === p) {
- return true
- }
- }
- return false
-}
-
-function checkStat (stat, path, options) {
- if (!stat.isSymbolicLink() && !stat.isFile()) {
- return false
- }
- return checkPathExt(path, options)
-}
-
-function isexe (path, options, cb) {
- fs.stat(path, function (er, stat) {
- cb(er, er ? false : checkStat(stat, path, options))
- })
-}
-
-function sync (path, options) {
- return checkStat(fs.statSync(path), path, options)
-}
diff --git a/node_modules/isobject/LICENSE b/node_modules/isobject/LICENSE
deleted file mode 100644
index 943e71d..0000000
--- a/node_modules/isobject/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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.
\ No newline at end of file
diff --git a/node_modules/isobject/README.md b/node_modules/isobject/README.md
deleted file mode 100644
index d01feaa..0000000
--- a/node_modules/isobject/README.md
+++ /dev/null
@@ -1,122 +0,0 @@
-# isobject [![NPM version](https://img.shields.io/npm/v/isobject.svg?style=flat)](https://www.npmjs.com/package/isobject) [![NPM monthly downloads](https://img.shields.io/npm/dm/isobject.svg?style=flat)](https://npmjs.org/package/isobject) [![NPM total downloads](https://img.shields.io/npm/dt/isobject.svg?style=flat)](https://npmjs.org/package/isobject) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/isobject.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/isobject)
-
-> Returns true if the value is an object and not an array or null.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save isobject
-```
-
-Install with [yarn](https://yarnpkg.com):
-
-```sh
-$ yarn add isobject
-```
-
-Use [is-plain-object](https://github.com/jonschlinkert/is-plain-object) if you want only objects that are created by the `Object` constructor.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install isobject
-```
-Install with [bower](https://bower.io/)
-
-```sh
-$ bower install isobject
-```
-
-## Usage
-
-```js
-var isObject = require('isobject');
-```
-
-**True**
-
-All of the following return `true`:
-
-```js
-isObject({});
-isObject(Object.create({}));
-isObject(Object.create(Object.prototype));
-isObject(Object.create(null));
-isObject({});
-isObject(new Foo);
-isObject(/foo/);
-```
-
-**False**
-
-All of the following return `false`:
-
-```js
-isObject();
-isObject(function () {});
-isObject(1);
-isObject([]);
-isObject(undefined);
-isObject(null);
-```
-
-## About
-
-### Related projects
-
-* [extend-shallow](https://www.npmjs.com/package/extend-shallow): Extend an object with the properties of additional objects. node.js/javascript util. | [homepage](https://github.com/jonschlinkert/extend-shallow "Extend an object with the properties of additional objects. node.js/javascript util.")
-* [is-plain-object](https://www.npmjs.com/package/is-plain-object): Returns true if an object was created by the `Object` constructor. | [homepage](https://github.com/jonschlinkert/is-plain-object "Returns true if an object was created by the `Object` constructor.")
-* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.")
-* [merge-deep](https://www.npmjs.com/package/merge-deep): Recursively merge values in a javascript object. | [homepage](https://github.com/jonschlinkert/merge-deep "Recursively merge values in a javascript object.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 29 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 4 | [doowb](https://github.com/doowb) |
-| 1 | [magnudae](https://github.com/magnudae) |
-| 1 | [LeSuisse](https://github.com/LeSuisse) |
-| 1 | [tmcw](https://github.com/tmcw) |
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on June 30, 2017._
\ No newline at end of file
diff --git a/node_modules/isobject/index.d.ts b/node_modules/isobject/index.d.ts
deleted file mode 100644
index 55f81c2..0000000
--- a/node_modules/isobject/index.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export = isObject;
-
-declare function isObject(val: any): boolean;
-
-declare namespace isObject {}
diff --git a/node_modules/isobject/index.js b/node_modules/isobject/index.js
deleted file mode 100644
index 2d59958..0000000
--- a/node_modules/isobject/index.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/*!
- * isobject
- *
- * Copyright (c) 2014-2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-module.exports = function isObject(val) {
- return val != null && typeof val === 'object' && Array.isArray(val) === false;
-};
diff --git a/node_modules/isobject/package.json b/node_modules/isobject/package.json
deleted file mode 100644
index 62aa8c1..0000000
--- a/node_modules/isobject/package.json
+++ /dev/null
@@ -1,74 +0,0 @@
-{
- "name": "isobject",
- "description": "Returns true if the value is an object and not an array or null.",
- "version": "3.0.1",
- "homepage": "https://github.com/jonschlinkert/isobject",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "(https://github.com/LeSuisse)",
- "Brian Woodward (https://twitter.com/doowb)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Magnús Dæhlen (https://github.com/magnudae)",
- "Tom MacWright (https://macwright.org)"
- ],
- "repository": "jonschlinkert/isobject",
- "bugs": {
- "url": "https://github.com/jonschlinkert/isobject/issues"
- },
- "license": "MIT",
- "files": [
- "index.d.ts",
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {},
- "devDependencies": {
- "gulp-format-md": "^0.1.9",
- "mocha": "^2.4.5"
- },
- "keywords": [
- "check",
- "is",
- "is-object",
- "isobject",
- "kind",
- "kind-of",
- "kindof",
- "native",
- "object",
- "type",
- "typeof",
- "value"
- ],
- "types": "index.d.ts",
- "verb": {
- "related": {
- "list": [
- "extend-shallow",
- "is-plain-object",
- "kind-of",
- "merge-deep"
- ]
- },
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- },
- "reflinks": [
- "verb"
- ]
- }
-}
diff --git a/node_modules/json-stable-stringify-without-jsonify/.npmignore b/node_modules/json-stable-stringify-without-jsonify/.npmignore
deleted file mode 100644
index 3c3629e..0000000
--- a/node_modules/json-stable-stringify-without-jsonify/.npmignore
+++ /dev/null
@@ -1 +0,0 @@
-node_modules
diff --git a/node_modules/json-stable-stringify-without-jsonify/.travis.yml b/node_modules/json-stable-stringify-without-jsonify/.travis.yml
deleted file mode 100644
index cc4dba2..0000000
--- a/node_modules/json-stable-stringify-without-jsonify/.travis.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-language: node_js
-node_js:
- - "0.8"
- - "0.10"
diff --git a/node_modules/json-stable-stringify-without-jsonify/LICENSE b/node_modules/json-stable-stringify-without-jsonify/LICENSE
deleted file mode 100644
index ee27ba4..0000000
--- a/node_modules/json-stable-stringify-without-jsonify/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/json-stable-stringify-without-jsonify/example/key_cmp.js b/node_modules/json-stable-stringify-without-jsonify/example/key_cmp.js
deleted file mode 100644
index d5f6675..0000000
--- a/node_modules/json-stable-stringify-without-jsonify/example/key_cmp.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var stringify = require('../');
-
-var obj = { c: 8, b: [{z:6,y:5,x:4},7], a: 3 };
-var s = stringify(obj, function (a, b) {
- return a.key < b.key ? 1 : -1;
-});
-console.log(s);
diff --git a/node_modules/json-stable-stringify-without-jsonify/example/nested.js b/node_modules/json-stable-stringify-without-jsonify/example/nested.js
deleted file mode 100644
index 9a672fc..0000000
--- a/node_modules/json-stable-stringify-without-jsonify/example/nested.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var stringify = require('../');
-var obj = { c: 8, b: [{z:6,y:5,x:4},7], a: 3 };
-console.log(stringify(obj));
diff --git a/node_modules/json-stable-stringify-without-jsonify/example/str.js b/node_modules/json-stable-stringify-without-jsonify/example/str.js
deleted file mode 100644
index 9b4b3cd..0000000
--- a/node_modules/json-stable-stringify-without-jsonify/example/str.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var stringify = require('../');
-var obj = { c: 6, b: [4,5], a: 3 };
-console.log(stringify(obj));
diff --git a/node_modules/json-stable-stringify-without-jsonify/example/value_cmp.js b/node_modules/json-stable-stringify-without-jsonify/example/value_cmp.js
deleted file mode 100644
index 09f1c5f..0000000
--- a/node_modules/json-stable-stringify-without-jsonify/example/value_cmp.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var stringify = require('../');
-
-var obj = { d: 6, c: 5, b: [{z:3,y:2,x:1},9], a: 10 };
-var s = stringify(obj, function (a, b) {
- return a.value < b.value ? 1 : -1;
-});
-console.log(s);
diff --git a/node_modules/json-stable-stringify-without-jsonify/index.js b/node_modules/json-stable-stringify-without-jsonify/index.js
deleted file mode 100644
index a6f40c7..0000000
--- a/node_modules/json-stable-stringify-without-jsonify/index.js
+++ /dev/null
@@ -1,82 +0,0 @@
-module.exports = function (obj, opts) {
- if (!opts) opts = {};
- if (typeof opts === 'function') opts = { cmp: opts };
- var space = opts.space || '';
- if (typeof space === 'number') space = Array(space+1).join(' ');
- var cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false;
- var replacer = opts.replacer || function(key, value) { return value; };
-
- var cmp = opts.cmp && (function (f) {
- return function (node) {
- return function (a, b) {
- var aobj = { key: a, value: node[a] };
- var bobj = { key: b, value: node[b] };
- return f(aobj, bobj);
- };
- };
- })(opts.cmp);
-
- var seen = [];
- return (function stringify (parent, key, node, level) {
- var indent = space ? ('\n' + new Array(level + 1).join(space)) : '';
- var colonSeparator = space ? ': ' : ':';
-
- if (node && node.toJSON && typeof node.toJSON === 'function') {
- node = node.toJSON();
- }
-
- node = replacer.call(parent, key, node);
-
- if (node === undefined) {
- return;
- }
- if (typeof node !== 'object' || node === null) {
- return JSON.stringify(node);
- }
- if (isArray(node)) {
- var out = [];
- for (var i = 0; i < node.length; i++) {
- var item = stringify(node, i, node[i], level+1) || JSON.stringify(null);
- out.push(indent + space + item);
- }
- return '[' + out.join(',') + indent + ']';
- }
- else {
- if (seen.indexOf(node) !== -1) {
- if (cycles) return JSON.stringify('__cycle__');
- throw new TypeError('Converting circular structure to JSON');
- }
- else seen.push(node);
-
- var keys = objectKeys(node).sort(cmp && cmp(node));
- var out = [];
- for (var i = 0; i < keys.length; i++) {
- var key = keys[i];
- var value = stringify(node, key, node[key], level+1);
-
- if(!value) continue;
-
- var keyValue = JSON.stringify(key)
- + colonSeparator
- + value;
- ;
- out.push(indent + space + keyValue);
- }
- seen.splice(seen.indexOf(node), 1);
- return '{' + out.join(',') + indent + '}';
- }
- })({ '': obj }, '', obj, 0);
-};
-
-var isArray = Array.isArray || function (x) {
- return {}.toString.call(x) === '[object Array]';
-};
-
-var objectKeys = Object.keys || function (obj) {
- var has = Object.prototype.hasOwnProperty || function () { return true };
- var keys = [];
- for (var key in obj) {
- if (has.call(obj, key)) keys.push(key);
- }
- return keys;
-};
diff --git a/node_modules/json-stable-stringify-without-jsonify/package.json b/node_modules/json-stable-stringify-without-jsonify/package.json
deleted file mode 100644
index c59c87e..0000000
--- a/node_modules/json-stable-stringify-without-jsonify/package.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "name": "json-stable-stringify-without-jsonify",
- "version": "1.0.1",
- "description": "deterministic JSON.stringify() with custom sorting to get deterministic hashes from stringified results, with no public domain dependencies",
- "main": "index.js",
- "dependencies": {
- },
- "devDependencies": {
- "tape": "~1.0.4"
- },
- "scripts": {
- "test": "tape test/*.js"
- },
- "testling": {
- "files": "test/*.js",
- "browsers": [
- "ie/8..latest",
- "ff/5", "ff/latest",
- "chrome/15", "chrome/latest",
- "safari/latest",
- "opera/latest"
- ]
- },
- "repository": {
- "type": "git",
- "url": "git://github.com/samn/json-stable-stringify.git"
- },
- "homepage": "https://github.com/samn/json-stable-stringify",
- "keywords": [
- "json",
- "stringify",
- "deterministic",
- "hash",
- "sort",
- "stable"
- ],
- "author": {
- "name": "James Halliday",
- "email": "mail@substack.net",
- "url": "http://substack.net"
- },
- "license": "MIT"
-}
diff --git a/node_modules/json-stable-stringify-without-jsonify/readme.markdown b/node_modules/json-stable-stringify-without-jsonify/readme.markdown
deleted file mode 100644
index e95b468..0000000
--- a/node_modules/json-stable-stringify-without-jsonify/readme.markdown
+++ /dev/null
@@ -1,132 +0,0 @@
-# json-stable-stringify
-
-This is the same as https://github.com/substack/json-stable-stringify but it doesn't depend on libraries without licenses (jsonify).
-
-deterministic version of `JSON.stringify()` so you can get a consistent hash
-from stringified results
-
-You can also pass in a custom comparison function.
-
-[![browser support](https://ci.testling.com/substack/json-stable-stringify.png)](https://ci.testling.com/substack/json-stable-stringify)
-
-[![build status](https://secure.travis-ci.org/substack/json-stable-stringify.png)](http://travis-ci.org/substack/json-stable-stringify)
-
-# example
-
-``` js
-var stringify = require('json-stable-stringify');
-var obj = { c: 8, b: [{z:6,y:5,x:4},7], a: 3 };
-console.log(stringify(obj));
-```
-
-output:
-
-```
-{"a":3,"b":[{"x":4,"y":5,"z":6},7],"c":8}
-```
-
-# methods
-
-``` js
-var stringify = require('json-stable-stringify')
-```
-
-## var str = stringify(obj, opts)
-
-Return a deterministic stringified string `str` from the object `obj`.
-
-## options
-
-### cmp
-
-If `opts` is given, you can supply an `opts.cmp` to have a custom comparison
-function for object keys. Your function `opts.cmp` is called with these
-parameters:
-
-``` js
-opts.cmp({ key: akey, value: avalue }, { key: bkey, value: bvalue })
-```
-
-For example, to sort on the object key names in reverse order you could write:
-
-``` js
-var stringify = require('json-stable-stringify');
-
-var obj = { c: 8, b: [{z:6,y:5,x:4},7], a: 3 };
-var s = stringify(obj, function (a, b) {
- return a.key < b.key ? 1 : -1;
-});
-console.log(s);
-```
-
-which results in the output string:
-
-```
-{"c":8,"b":[{"z":6,"y":5,"x":4},7],"a":3}
-```
-
-Or if you wanted to sort on the object values in reverse order, you could write:
-
-```
-var stringify = require('json-stable-stringify');
-
-var obj = { d: 6, c: 5, b: [{z:3,y:2,x:1},9], a: 10 };
-var s = stringify(obj, function (a, b) {
- return a.value < b.value ? 1 : -1;
-});
-console.log(s);
-```
-
-which outputs:
-
-```
-{"d":6,"c":5,"b":[{"z":3,"y":2,"x":1},9],"a":10}
-```
-
-### space
-
-If you specify `opts.space`, it will indent the output for pretty-printing.
-Valid values are strings (e.g. `{space: \t}`) or a number of spaces
-(`{space: 3}`).
-
-For example:
-
-```js
-var obj = { b: 1, a: { foo: 'bar', and: [1, 2, 3] } };
-var s = stringify(obj, { space: ' ' });
-console.log(s);
-```
-
-which outputs:
-
-```
-{
- "a": {
- "and": [
- 1,
- 2,
- 3
- ],
- "foo": "bar"
- },
- "b": 1
-}
-```
-
-### replacer
-
-The replacer parameter is a function `opts.replacer(key, value)` that behaves
-the same as the replacer
-[from the core JSON object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_native_JSON#The_replacer_parameter).
-
-# install
-
-With [npm](https://npmjs.org) do:
-
-```
-npm install json-stable-stringify
-```
-
-# license
-
-MIT
diff --git a/node_modules/json-stable-stringify-without-jsonify/test/cmp.js b/node_modules/json-stable-stringify-without-jsonify/test/cmp.js
deleted file mode 100644
index 2dbb393..0000000
--- a/node_modules/json-stable-stringify-without-jsonify/test/cmp.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var test = require('tape');
-var stringify = require('../');
-
-test('custom comparison function', function (t) {
- t.plan(1);
- var obj = { c: 8, b: [{z:6,y:5,x:4},7], a: 3 };
- var s = stringify(obj, function (a, b) {
- return a.key < b.key ? 1 : -1;
- });
- t.equal(s, '{"c":8,"b":[{"z":6,"y":5,"x":4},7],"a":3}');
-});
diff --git a/node_modules/json-stable-stringify-without-jsonify/test/nested.js b/node_modules/json-stable-stringify-without-jsonify/test/nested.js
deleted file mode 100644
index 052c7d6..0000000
--- a/node_modules/json-stable-stringify-without-jsonify/test/nested.js
+++ /dev/null
@@ -1,42 +0,0 @@
-var test = require('tape');
-var stringify = require('../');
-
-test('nested', function (t) {
- t.plan(1);
- var obj = { c: 8, b: [{z:6,y:5,x:4},7], a: 3 };
- t.equal(stringify(obj), '{"a":3,"b":[{"x":4,"y":5,"z":6},7],"c":8}');
-});
-
-test('cyclic (default)', function (t) {
- t.plan(1);
- var one = { a: 1 };
- var two = { a: 2, one: one };
- one.two = two;
- try {
- stringify(one);
- } catch (ex) {
- t.equal(ex.toString(), 'TypeError: Converting circular structure to JSON');
- }
-});
-
-test('cyclic (specifically allowed)', function (t) {
- t.plan(1);
- var one = { a: 1 };
- var two = { a: 2, one: one };
- one.two = two;
- t.equal(stringify(one, {cycles:true}), '{"a":1,"two":{"a":2,"one":"__cycle__"}}');
-});
-
-test('repeated non-cyclic value', function(t) {
- t.plan(1);
- var one = { x: 1 };
- var two = { a: one, b: one };
- t.equal(stringify(two), '{"a":{"x":1},"b":{"x":1}}');
-});
-
-test('acyclic but with reused obj-property pointers', function (t) {
- t.plan(1);
- var x = { a: 1 }
- var y = { b: x, c: x }
- t.equal(stringify(y), '{"b":{"a":1},"c":{"a":1}}');
-});
diff --git a/node_modules/json-stable-stringify-without-jsonify/test/replacer.js b/node_modules/json-stable-stringify-without-jsonify/test/replacer.js
deleted file mode 100644
index 98802a7..0000000
--- a/node_modules/json-stable-stringify-without-jsonify/test/replacer.js
+++ /dev/null
@@ -1,74 +0,0 @@
-var test = require('tape');
-var stringify = require('../');
-
-test('replace root', function (t) {
- t.plan(1);
-
- var obj = { a: 1, b: 2, c: false };
- var replacer = function(key, value) { return 'one'; };
-
- t.equal(stringify(obj, { replacer: replacer }), '"one"');
-});
-
-test('replace numbers', function (t) {
- t.plan(1);
-
- var obj = { a: 1, b: 2, c: false };
- var replacer = function(key, value) {
- if(value === 1) return 'one';
- if(value === 2) return 'two';
- return value;
- };
-
- t.equal(stringify(obj, { replacer: replacer }), '{"a":"one","b":"two","c":false}');
-});
-
-test('replace with object', function (t) {
- t.plan(1);
-
- var obj = { a: 1, b: 2, c: false };
- var replacer = function(key, value) {
- if(key === 'b') return { d: 1 };
- if(value === 1) return 'one';
- return value;
- };
-
- t.equal(stringify(obj, { replacer: replacer }), '{"a":"one","b":{"d":"one"},"c":false}');
-});
-
-test('replace with undefined', function (t) {
- t.plan(1);
-
- var obj = { a: 1, b: 2, c: false };
- var replacer = function(key, value) {
- if(value === false) return;
- return value;
- };
-
- t.equal(stringify(obj, { replacer: replacer }), '{"a":1,"b":2}');
-});
-
-test('replace with array', function (t) {
- t.plan(1);
-
- var obj = { a: 1, b: 2, c: false };
- var replacer = function(key, value) {
- if(key === 'b') return ['one', 'two'];
- return value;
- };
-
- t.equal(stringify(obj, { replacer: replacer }), '{"a":1,"b":["one","two"],"c":false}');
-});
-
-test('replace array item', function (t) {
- t.plan(1);
-
- var obj = { a: 1, b: 2, c: [1,2] };
- var replacer = function(key, value) {
- if(value === 1) return 'one';
- if(value === 2) return 'two';
- return value;
- };
-
- t.equal(stringify(obj, { replacer: replacer }), '{"a":"one","b":"two","c":["one","two"]}');
-});
diff --git a/node_modules/json-stable-stringify-without-jsonify/test/space.js b/node_modules/json-stable-stringify-without-jsonify/test/space.js
deleted file mode 100644
index 2621122..0000000
--- a/node_modules/json-stable-stringify-without-jsonify/test/space.js
+++ /dev/null
@@ -1,59 +0,0 @@
-var test = require('tape');
-var stringify = require('../');
-
-test('space parameter', function (t) {
- t.plan(1);
- var obj = { one: 1, two: 2 };
- t.equal(stringify(obj, {space: ' '}), ''
- + '{\n'
- + ' "one": 1,\n'
- + ' "two": 2\n'
- + '}'
- );
-});
-
-test('space parameter (with tabs)', function (t) {
- t.plan(1);
- var obj = { one: 1, two: 2 };
- t.equal(stringify(obj, {space: '\t'}), ''
- + '{\n'
- + '\t"one": 1,\n'
- + '\t"two": 2\n'
- + '}'
- );
-});
-
-test('space parameter (with a number)', function (t) {
- t.plan(1);
- var obj = { one: 1, two: 2 };
- t.equal(stringify(obj, {space: 3}), ''
- + '{\n'
- + ' "one": 1,\n'
- + ' "two": 2\n'
- + '}'
- );
-});
-
-test('space parameter (nested objects)', function (t) {
- t.plan(1);
- var obj = { one: 1, two: { b: 4, a: [2,3] } };
- t.equal(stringify(obj, {space: ' '}), ''
- + '{\n'
- + ' "one": 1,\n'
- + ' "two": {\n'
- + ' "a": [\n'
- + ' 2,\n'
- + ' 3\n'
- + ' ],\n'
- + ' "b": 4\n'
- + ' }\n'
- + '}'
- );
-});
-
-test('space parameter (same as native)', function (t) {
- t.plan(1);
- // for this test, properties need to be in alphabetical order
- var obj = { one: 1, two: { a: [2,3], b: 4 } };
- t.equal(stringify(obj, {space: ' '}), JSON.stringify(obj, null, ' '));
-});
diff --git a/node_modules/json-stable-stringify-without-jsonify/test/str.js b/node_modules/json-stable-stringify-without-jsonify/test/str.js
deleted file mode 100644
index 67426b9..0000000
--- a/node_modules/json-stable-stringify-without-jsonify/test/str.js
+++ /dev/null
@@ -1,32 +0,0 @@
-var test = require('tape');
-var stringify = require('../');
-
-test('simple object', function (t) {
- t.plan(1);
- var obj = { c: 6, b: [4,5], a: 3, z: null };
- t.equal(stringify(obj), '{"a":3,"b":[4,5],"c":6,"z":null}');
-});
-
-test('object with undefined', function (t) {
- t.plan(1);
- var obj = { a: 3, z: undefined };
- t.equal(stringify(obj), '{"a":3}');
-});
-
-test('array with undefined', function (t) {
- t.plan(1);
- var obj = [4, undefined, 6];
- t.equal(stringify(obj), '[4,null,6]');
-});
-
-test('object with empty string', function (t) {
- t.plan(1);
- var obj = { a: 3, z: '' };
- t.equal(stringify(obj), '{"a":3,"z":""}');
-});
-
-test('array with empty string', function (t) {
- t.plan(1);
- var obj = [4, '', 6];
- t.equal(stringify(obj), '[4,"",6]');
-});
diff --git a/node_modules/json-stable-stringify-without-jsonify/test/to-json.js b/node_modules/json-stable-stringify-without-jsonify/test/to-json.js
deleted file mode 100644
index ef9a980..0000000
--- a/node_modules/json-stable-stringify-without-jsonify/test/to-json.js
+++ /dev/null
@@ -1,20 +0,0 @@
-var test = require('tape');
-var stringify = require('../');
-
-test('toJSON function', function (t) {
- t.plan(1);
- var obj = { one: 1, two: 2, toJSON: function() { return { one: 1 }; } };
- t.equal(stringify(obj), '{"one":1}' );
-});
-
-test('toJSON returns string', function (t) {
- t.plan(1);
- var obj = { one: 1, two: 2, toJSON: function() { return 'one'; } };
- t.equal(stringify(obj), '"one"');
-});
-
-test('toJSON returns array', function (t) {
- t.plan(1);
- var obj = { one: 1, two: 2, toJSON: function() { return ['one']; } };
- t.equal(stringify(obj), '["one"]');
-});
diff --git a/node_modules/just-debounce/.eslintrc b/node_modules/just-debounce/.eslintrc
deleted file mode 100644
index 11b3647..0000000
--- a/node_modules/just-debounce/.eslintrc
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "plugins": ["prettier"],
- "rules": {
- "prettier/prettier": "error"
- }
-}
diff --git a/node_modules/just-debounce/.travis.yml b/node_modules/just-debounce/.travis.yml
deleted file mode 100644
index 6e5919d..0000000
--- a/node_modules/just-debounce/.travis.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-language: node_js
-node_js:
- - "0.10"
diff --git a/node_modules/just-debounce/LICENSE b/node_modules/just-debounce/LICENSE
deleted file mode 100644
index 00c53d8..0000000
--- a/node_modules/just-debounce/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014 Michael Hayes
-
-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.
\ No newline at end of file
diff --git a/node_modules/just-debounce/README.md b/node_modules/just-debounce/README.md
deleted file mode 100644
index b4cce28..0000000
--- a/node_modules/just-debounce/README.md
+++ /dev/null
@@ -1,75 +0,0 @@
-# just-debounce
-
-just a basic debounce function
-
-# changes
-
-- `1.1.0`: added typescript definitions
-
-# Why?
-
-I searched npm and the first 3 pages of results for "debounce" did not have a small correctly
-implemented version of debounce
-
-# Usage
-
-### arguments
-
-- `fn`: the function to debounce
-- `delay`: debounce delay in ms
-- `atStart:` if true, the function will be called at the beginning of the delay rather than the end
-- `guarantee`: additional calls to debounced function will not reset they `delay`. This guarantees
- that if the function is called frequently, it will fire once every `delay` rather than waiting for
- a break in calls.
-
-```javascript
-var db = require('just-debounce');
-
-var debounced = db(function (v) {
- console.log(v);
-}, 100);
-
-debounced('hi');
-debounced('hi');
-// logs 'hi' once after 100ms
-```
-
-```javascript
-var db = require('just-debounce');
-
-var debounced = db(
- function (v) {
- console.log(v);
- },
- 100,
- true
-);
-
-debounced('hi');
-debounced('hi');
-// logs 'hi' once right away, but not a second time. calling after 100ms will log again
-```
-
-```javascript
-var db = require('just-debounce');
-
-var debounced = db(
- function (v) {
- console.log(v);
- },
- 100,
- false,
- true
-);
-
-debounced('hi');
-setTimeout(function () {
- debounced('hi2');
-}, 80);
-
-// logs 'hi2' once 100ms after the first call to debounced
-```
-
-# license
-
-MIT
diff --git a/node_modules/just-debounce/index.d.ts b/node_modules/just-debounce/index.d.ts
deleted file mode 100644
index 4d132c6..0000000
--- a/node_modules/just-debounce/index.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-declare function debounce void>(
- fn: T,
- delay: number,
- atStart?: boolean,
- guarantee?: boolean
-): (...args: Parameters) => void;
-
-export default debounce;
diff --git a/node_modules/just-debounce/index.js b/node_modules/just-debounce/index.js
deleted file mode 100644
index fb6ba61..0000000
--- a/node_modules/just-debounce/index.js
+++ /dev/null
@@ -1,34 +0,0 @@
-module.exports = debounce;
-
-function debounce(fn, delay, atStart, guarantee) {
- var timeout;
- var args;
- var self;
-
- return function debounced() {
- self = this;
- args = Array.prototype.slice.call(arguments);
-
- if (timeout && (atStart || guarantee)) {
- return;
- } else if (!atStart) {
- clear();
-
- timeout = setTimeout(run, delay);
- return timeout;
- }
-
- timeout = setTimeout(clear, delay);
- fn.apply(self, args);
-
- function run() {
- clear();
- fn.apply(self, args);
- }
-
- function clear() {
- clearTimeout(timeout);
- timeout = null;
- }
- };
-}
diff --git a/node_modules/just-debounce/package.json b/node_modules/just-debounce/package.json
deleted file mode 100644
index 2ce789c..0000000
--- a/node_modules/just-debounce/package.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "name": "just-debounce",
- "version": "1.1.0",
- "description": "a simple debounce with no dependencies or crazy defaults",
- "main": "index.js",
- "scripts": {
- "test": "node test.js && npm run lint",
- "lint": "eslint ."
- },
- "repository": {
- "type": "git",
- "url": "git://github.com/hayes/just-debounce.git"
- },
- "keywords": [
- "debounce"
- ],
- "author": "Michael Hayes",
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/hayes/just-debounce/issues"
- },
- "homepage": "https://github.com/hayes/just-debounce",
- "devDependencies": {
- "eslint": "^7.20.0",
- "eslint-plugin-prettier": "^3.3.1",
- "prettier": "^2.2.1",
- "tape": "^5.1.1"
- }
-}
diff --git a/node_modules/just-debounce/prettier.config.js b/node_modules/just-debounce/prettier.config.js
deleted file mode 100644
index 31ed03c..0000000
--- a/node_modules/just-debounce/prettier.config.js
+++ /dev/null
@@ -1,13 +0,0 @@
-module.exports = {
- arrowParens: 'always',
- bracketSpacing: true,
- endOfLine: 'lf',
- jsxBracketSameLine: false,
- printWidth: 100,
- proseWrap: 'always',
- semi: true,
- singleQuote: true,
- tabWidth: 2,
- trailingComma: 'none',
- useTabs: false
-};
diff --git a/node_modules/just-debounce/test.js b/node_modules/just-debounce/test.js
deleted file mode 100644
index 0e6261e..0000000
--- a/node_modules/just-debounce/test.js
+++ /dev/null
@@ -1,130 +0,0 @@
-var debounce = require('./index.js');
-var test = require('tape');
-
-test('debauce', function (t) {
- t.plan(3);
-
- var fn = debounce(function (a, b) {
- t.deepEqual(this, { call: 3 }, 'context should be preserved');
- t.equal(a, 30, 'should preserve args');
- t.equal(b, 300, 'should preserve args');
- }, 10);
-
- fn.call({ call: 1 }, 10, 100);
- fn.call({ call: 2 }, 20, 200);
-
- setTimeout(function () {
- fn.call({ call: 3 }, 30, 300);
- }, 3);
-});
-
-test('multiple calls should extend delay', function (t) {
- t.plan(4);
-
- var wasDelayed = false;
-
- var fn = debounce(function (a, b) {
- t.deepEqual(this, { call: 3 }, 'context should be preserved');
- t.equal(a, 30, 'should preserve args');
- t.equal(b, 300, 'should preserve args');
- t.ok(wasDelayed, 'should have waited longer than debounce period');
- }, 6);
-
- setTimeout(function longer() {
- wasDelayed = true;
- }, 9);
-
- fn.call({ call: 1 }, 10, 100);
-
- setTimeout(function () {
- fn.call({ call: 2 }, 20, 200);
-
- setTimeout(function () {
- fn.call({ call: 3 }, 30, 300);
- }, 5);
- }, 3);
-});
-
-test('multiple calls should not extend delay when guarantee is true', function (t) {
- t.plan(8);
-
- var first = true;
- var wasDelayed = false;
-
- var fn = debounce(
- function (a, b) {
- if (first) {
- t.deepEqual(this, { call: 2 }, '1st context should be preserved');
- t.equal(a, 20, '1st should preserve 1st args');
- t.equal(b, 200, '1st should preserve 2nd args');
- t.notOk(wasDelayed, 'should not have waited longer than debounce period');
- first = false;
- } else {
- t.deepEqual(this, { call: 3 }, 'context should be preserved');
- t.equal(a, 30, 'should preserve args');
- t.equal(b, 300, 'should preserve args');
- t.ok(wasDelayed, 'should have waited longer than debounce period');
- }
- },
- 6,
- false,
- true
- );
-
- setTimeout(function longer() {
- wasDelayed = true;
- }, 7);
-
- fn.call({ call: 1 }, 10, 100);
-
- setTimeout(function () {
- fn.call({ call: 2 }, 20, 200);
-
- setTimeout(function () {
- fn.call({ call: 3 }, 30, 300);
- }, 5);
- }, 3);
-});
-
-test('at start', function (t) {
- t.plan(9);
-
- var callCount = 0;
-
- var fn = debounce(
- function (a, b) {
- if (callCount === 0) {
- t.deepEqual(this, { call: 1 }, '1st context should be preserved');
- t.equal(a, 10, '1st should preserve 1st args');
- t.equal(b, 100, '1st should preserve 2nd args');
- } else if (callCount === 1) {
- t.deepEqual(this, { call: 3 }, 'context should be preserved');
- t.equal(a, 30, 'should preserve args');
- t.equal(b, 300, 'should preserve args');
- } else {
- t.deepEqual(this, { call: 4 }, 'context should be preserved');
- t.equal(a, 40, 'should preserve 1st args');
- t.equal(b, 400, 'should preserve 2nd args');
- }
-
- callCount += 1;
- },
- 6,
- true
- );
-
- fn.call({ call: 1 }, 10, 100);
- fn.call({ call: 2 }, 20, 200);
-
- setTimeout(function () {
- fn.call({ call: 3 }, 30, 300);
-
- setTimeout(function () {
- fn.call({ call: 4 }, 40, 400);
- }, 10);
-
- setTimeout(function () {
- fn.call({ call: 5 }, 50, 500);
- }, 3);
- }, 10);
-});
diff --git a/node_modules/kind-of/LICENSE b/node_modules/kind-of/LICENSE
deleted file mode 100644
index 3f2eca1..0000000
--- a/node_modules/kind-of/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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/kind-of/README.md b/node_modules/kind-of/README.md
deleted file mode 100644
index 170bf30..0000000
--- a/node_modules/kind-of/README.md
+++ /dev/null
@@ -1,342 +0,0 @@
-# kind-of [![NPM version](https://img.shields.io/npm/v/kind-of.svg?style=flat)](https://www.npmjs.com/package/kind-of) [![NPM monthly downloads](https://img.shields.io/npm/dm/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![NPM total downloads](https://img.shields.io/npm/dt/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/kind-of.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/kind-of)
-
-> Get the native type of a value.
-
-Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save kind-of
-```
-
-Install with [bower](https://bower.io/)
-
-```sh
-$ bower install kind-of --save
-```
-
-## Why use this?
-
-1. [it's fast](#benchmarks) | [optimizations](#optimizations)
-2. [better type checking](#better-type-checking)
-
-## Usage
-
-> es5, browser and es6 ready
-
-```js
-var kindOf = require('kind-of');
-
-kindOf(undefined);
-//=> 'undefined'
-
-kindOf(null);
-//=> 'null'
-
-kindOf(true);
-//=> 'boolean'
-
-kindOf(false);
-//=> 'boolean'
-
-kindOf(new Boolean(true));
-//=> 'boolean'
-
-kindOf(new Buffer(''));
-//=> 'buffer'
-
-kindOf(42);
-//=> 'number'
-
-kindOf(new Number(42));
-//=> 'number'
-
-kindOf('str');
-//=> 'string'
-
-kindOf(new String('str'));
-//=> 'string'
-
-kindOf(arguments);
-//=> 'arguments'
-
-kindOf({});
-//=> 'object'
-
-kindOf(Object.create(null));
-//=> 'object'
-
-kindOf(new Test());
-//=> 'object'
-
-kindOf(new Date());
-//=> 'date'
-
-kindOf([]);
-//=> 'array'
-
-kindOf([1, 2, 3]);
-//=> 'array'
-
-kindOf(new Array());
-//=> 'array'
-
-kindOf(/foo/);
-//=> 'regexp'
-
-kindOf(new RegExp('foo'));
-//=> 'regexp'
-
-kindOf(function () {});
-//=> 'function'
-
-kindOf(function * () {});
-//=> 'function'
-
-kindOf(new Function());
-//=> 'function'
-
-kindOf(new Map());
-//=> 'map'
-
-kindOf(new WeakMap());
-//=> 'weakmap'
-
-kindOf(new Set());
-//=> 'set'
-
-kindOf(new WeakSet());
-//=> 'weakset'
-
-kindOf(Symbol('str'));
-//=> 'symbol'
-
-kindOf(new Int8Array());
-//=> 'int8array'
-
-kindOf(new Uint8Array());
-//=> 'uint8array'
-
-kindOf(new Uint8ClampedArray());
-//=> 'uint8clampedarray'
-
-kindOf(new Int16Array());
-//=> 'int16array'
-
-kindOf(new Uint16Array());
-//=> 'uint16array'
-
-kindOf(new Int32Array());
-//=> 'int32array'
-
-kindOf(new Uint32Array());
-//=> 'uint32array'
-
-kindOf(new Float32Array());
-//=> 'float32array'
-
-kindOf(new Float64Array());
-//=> 'float64array'
-```
-
-## Release history
-
-### v4.0.0
-
-**Added**
-
-* `promise` support
-
-### v5.0.0
-
-**Added**
-
-* `Set Iterator` and `Map Iterator` support
-
-**Fixed**
-
-* Now returns `generatorfunction` for generator functions
-
-## Benchmarks
-
-Benchmarked against [typeof](http://github.com/CodingFu/typeof) and [type-of](https://github.com/ForbesLindesay/type-of).
-Note that performaces is slower for es6 features `Map`, `WeakMap`, `Set` and `WeakSet`.
-
-```bash
-#1: array
- current x 23,329,397 ops/sec ±0.82% (94 runs sampled)
- lib-type-of x 4,170,273 ops/sec ±0.55% (94 runs sampled)
- lib-typeof x 9,686,935 ops/sec ±0.59% (98 runs sampled)
-
-#2: boolean
- current x 27,197,115 ops/sec ±0.85% (94 runs sampled)
- lib-type-of x 3,145,791 ops/sec ±0.73% (97 runs sampled)
- lib-typeof x 9,199,562 ops/sec ±0.44% (99 runs sampled)
-
-#3: date
- current x 20,190,117 ops/sec ±0.86% (92 runs sampled)
- lib-type-of x 5,166,970 ops/sec ±0.74% (94 runs sampled)
- lib-typeof x 9,610,821 ops/sec ±0.50% (96 runs sampled)
-
-#4: function
- current x 23,855,460 ops/sec ±0.60% (97 runs sampled)
- lib-type-of x 5,667,740 ops/sec ±0.54% (100 runs sampled)
- lib-typeof x 10,010,644 ops/sec ±0.44% (100 runs sampled)
-
-#5: null
- current x 27,061,047 ops/sec ±0.97% (96 runs sampled)
- lib-type-of x 13,965,573 ops/sec ±0.62% (97 runs sampled)
- lib-typeof x 8,460,194 ops/sec ±0.61% (97 runs sampled)
-
-#6: number
- current x 25,075,682 ops/sec ±0.53% (99 runs sampled)
- lib-type-of x 2,266,405 ops/sec ±0.41% (98 runs sampled)
- lib-typeof x 9,821,481 ops/sec ±0.45% (99 runs sampled)
-
-#7: object
- current x 3,348,980 ops/sec ±0.49% (99 runs sampled)
- lib-type-of x 3,245,138 ops/sec ±0.60% (94 runs sampled)
- lib-typeof x 9,262,952 ops/sec ±0.59% (99 runs sampled)
-
-#8: regex
- current x 21,284,827 ops/sec ±0.72% (96 runs sampled)
- lib-type-of x 4,689,241 ops/sec ±0.43% (100 runs sampled)
- lib-typeof x 8,957,593 ops/sec ±0.62% (98 runs sampled)
-
-#9: string
- current x 25,379,234 ops/sec ±0.58% (96 runs sampled)
- lib-type-of x 3,635,148 ops/sec ±0.76% (93 runs sampled)
- lib-typeof x 9,494,134 ops/sec ±0.49% (98 runs sampled)
-
-#10: undef
- current x 27,459,221 ops/sec ±1.01% (93 runs sampled)
- lib-type-of x 14,360,433 ops/sec ±0.52% (99 runs sampled)
- lib-typeof x 23,202,868 ops/sec ±0.59% (94 runs sampled)
-
-```
-
-## Optimizations
-
-In 7 out of 8 cases, this library is 2x-10x faster than other top libraries included in the benchmarks. There are a few things that lead to this performance advantage, none of them hard and fast rules, but all of them simple and repeatable in almost any code library:
-
-1. Optimize around the fastest and most common use cases first. Of course, this will change from project-to-project, but I took some time to understand how and why `typeof` checks were being used in my own libraries and other libraries I use a lot.
-2. Optimize around bottlenecks - In other words, the order in which conditionals are implemented is significant, because each check is only as fast as the failing checks that came before it. Here, the biggest bottleneck by far is checking for plain objects (an object that was created by the `Object` constructor). I opted to make this check happen by process of elimination rather than brute force up front (e.g. by using something like `val.constructor.name`), so that every other type check would not be penalized it.
-3. Don't do uneccessary processing - why do `.slice(8, -1).toLowerCase();` just to get the word `regex`? It's much faster to do `if (type === '[object RegExp]') return 'regex'`
-4. There is no reason to make the code in a microlib as terse as possible, just to win points for making it shorter. It's always better to favor performant code over terse code. You will always only be using a single `require()` statement to use the library anyway, regardless of how the code is written.
-
-## Better type checking
-
-kind-of is more correct than other type checking libs I've looked at. For example, here are some differing results from other popular libs:
-
-### [typeof](https://github.com/CodingFu/typeof) lib
-
-Incorrectly tests instances of custom constructors (pretty common):
-
-```js
-var typeOf = require('typeof');
-function Test() {}
-console.log(typeOf(new Test()));
-//=> 'test'
-```
-
-Returns `object` instead of `arguments`:
-
-```js
-function foo() {
- console.log(typeOf(arguments)) //=> 'object'
-}
-foo();
-```
-
-### [type-of](https://github.com/ForbesLindesay/type-of) lib
-
-Incorrectly returns `object` for generator functions, buffers, `Map`, `Set`, `WeakMap` and `WeakSet`:
-
-```js
-function * foo() {}
-console.log(typeOf(foo));
-//=> 'object'
-console.log(typeOf(new Buffer('')));
-//=> 'object'
-console.log(typeOf(new Map()));
-//=> 'object'
-console.log(typeOf(new Set()));
-//=> 'object'
-console.log(typeOf(new WeakMap()));
-//=> 'object'
-console.log(typeOf(new WeakSet()));
-//=> 'object'
-```
-
-## About
-
-
-Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-
-
-
-Running Tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-
-
-
-Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-
-
-### Related projects
-
-You might also be interested in these projects:
-
-* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/jonschlinkert/is-glob) | [homepage](https://github.com/jonschlinkert/is-glob "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet")
-* [is-number](https://www.npmjs.com/package/is-number): Returns true if the value is a number. comprehensive tests. | [homepage](https://github.com/jonschlinkert/is-number "Returns true if the value is a number. comprehensive tests.")
-* [is-primitive](https://www.npmjs.com/package/is-primitive): Returns `true` if the value is a primitive. | [homepage](https://github.com/jonschlinkert/is-primitive "Returns `true` if the value is a primitive. ")
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 82 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 3 | [aretecode](https://github.com/aretecode) |
-| 2 | [miguelmota](https://github.com/miguelmota) |
-| 1 | [dtothefp](https://github.com/dtothefp) |
-| 1 | [ksheedlo](https://github.com/ksheedlo) |
-| 1 | [pdehaan](https://github.com/pdehaan) |
-| 1 | [laggingreflex](https://github.com/laggingreflex) |
-| 1 | [charlike](https://github.com/charlike) |
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on October 13, 2017._
\ No newline at end of file
diff --git a/node_modules/kind-of/index.js b/node_modules/kind-of/index.js
deleted file mode 100644
index fc5cde9..0000000
--- a/node_modules/kind-of/index.js
+++ /dev/null
@@ -1,147 +0,0 @@
-var toString = Object.prototype.toString;
-
-/**
- * Get the native `typeof` a value.
- *
- * @param {*} `val`
- * @return {*} Native javascript type
- */
-
-module.exports = function kindOf(val) {
- var type = typeof val;
-
- // primitivies
- if (type === 'undefined') {
- return 'undefined';
- }
- if (val === null) {
- return 'null';
- }
- if (val === true || val === false || val instanceof Boolean) {
- return 'boolean';
- }
- if (type === 'string' || val instanceof String) {
- return 'string';
- }
- if (type === 'number' || val instanceof Number) {
- return 'number';
- }
-
- // functions
- if (type === 'function' || val instanceof Function) {
- if (typeof val.constructor.name !== 'undefined' && val.constructor.name.slice(0, 9) === 'Generator') {
- return 'generatorfunction';
- }
- return 'function';
- }
-
- // array
- if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) {
- return 'array';
- }
-
- // check for instances of RegExp and Date before calling `toString`
- if (val instanceof RegExp) {
- return 'regexp';
- }
- if (val instanceof Date) {
- return 'date';
- }
-
- // other objects
- type = toString.call(val);
-
- if (type === '[object RegExp]') {
- return 'regexp';
- }
- if (type === '[object Date]') {
- return 'date';
- }
- if (type === '[object Arguments]') {
- return 'arguments';
- }
- if (type === '[object Error]') {
- return 'error';
- }
- if (type === '[object Promise]') {
- return 'promise';
- }
-
- // buffer
- if (isBuffer(val)) {
- return 'buffer';
- }
-
- // es6: Map, WeakMap, Set, WeakSet
- if (type === '[object Set]') {
- return 'set';
- }
- if (type === '[object WeakSet]') {
- return 'weakset';
- }
- if (type === '[object Map]') {
- return 'map';
- }
- if (type === '[object WeakMap]') {
- return 'weakmap';
- }
- if (type === '[object Symbol]') {
- return 'symbol';
- }
-
- if (type === '[object Map Iterator]') {
- return 'mapiterator';
- }
- if (type === '[object Set Iterator]') {
- return 'setiterator';
- }
- if (type === '[object String Iterator]') {
- return 'stringiterator';
- }
- if (type === '[object Array Iterator]') {
- return 'arrayiterator';
- }
-
- // typed arrays
- if (type === '[object Int8Array]') {
- return 'int8array';
- }
- if (type === '[object Uint8Array]') {
- return 'uint8array';
- }
- if (type === '[object Uint8ClampedArray]') {
- return 'uint8clampedarray';
- }
- if (type === '[object Int16Array]') {
- return 'int16array';
- }
- if (type === '[object Uint16Array]') {
- return 'uint16array';
- }
- if (type === '[object Int32Array]') {
- return 'int32array';
- }
- if (type === '[object Uint32Array]') {
- return 'uint32array';
- }
- if (type === '[object Float32Array]') {
- return 'float32array';
- }
- if (type === '[object Float64Array]') {
- return 'float64array';
- }
-
- // must be a plain object
- return 'object';
-};
-
-/**
- * If you need to support Safari 5-7 (8-10 yr-old browser),
- * take a look at https://github.com/feross/is-buffer
- */
-
-function isBuffer(val) {
- return val.constructor
- && typeof val.constructor.isBuffer === 'function'
- && val.constructor.isBuffer(val);
-}
diff --git a/node_modules/kind-of/package.json b/node_modules/kind-of/package.json
deleted file mode 100644
index 334235f..0000000
--- a/node_modules/kind-of/package.json
+++ /dev/null
@@ -1,91 +0,0 @@
-{
- "name": "kind-of",
- "description": "Get the native type of a value.",
- "version": "5.1.0",
- "homepage": "https://github.com/jonschlinkert/kind-of",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "David Fox-Powell (https://dtothefp.github.io/me)",
- "James (https://twitter.com/aretecode)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Ken Sheedlo (kensheedlo.com)",
- "laggingreflex (https://github.com/laggingreflex)",
- "Miguel Mota (https://miguelmota.com)",
- "Peter deHaan (http://about.me/peterdehaan)",
- "tunnckoCore (https://i.am.charlike.online)"
- ],
- "repository": "jonschlinkert/kind-of",
- "bugs": {
- "url": "https://github.com/jonschlinkert/kind-of/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha",
- "prepublish": "browserify -o browser.js -e index.js -s index --bare"
- },
- "devDependencies": {
- "ansi-bold": "^0.1.1",
- "benchmarked": "^1.1.1",
- "browserify": "^14.4.0",
- "gulp-format-md": "^0.1.12",
- "matched": "^0.4.4",
- "mocha": "^3.4.2",
- "type-of": "^2.0.1",
- "typeof": "^1.0.0"
- },
- "keywords": [
- "arguments",
- "array",
- "boolean",
- "check",
- "date",
- "function",
- "is",
- "is-type",
- "is-type-of",
- "kind",
- "kind-of",
- "number",
- "object",
- "of",
- "regexp",
- "string",
- "test",
- "type",
- "type-of",
- "typeof",
- "types"
- ],
- "verb": {
- "related": {
- "list": [
- "is-glob",
- "is-number",
- "is-primitive"
- ]
- },
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- },
- "reflinks": [
- "type-of",
- "typeof",
- "verb"
- ]
- }
-}
diff --git a/node_modules/last-run/LICENSE b/node_modules/last-run/LICENSE
deleted file mode 100644
index 9aedc0d..0000000
--- a/node_modules/last-run/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015 Blaine Bublitz, Eric Schoffstall and other contributors
-
-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/last-run/README.md b/node_modules/last-run/README.md
deleted file mode 100644
index 7b3c339..0000000
--- a/node_modules/last-run/README.md
+++ /dev/null
@@ -1,81 +0,0 @@
-
-
-
-
-
-
-# last-run
-
-[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Build Status][travis-image]][travis-url] [![AppVeyor Build Status][appveyor-image]][appveyor-url] [![Coveralls Status][coveralls-image]][coveralls-url] [![Gitter chat][gitter-image]][gitter-url]
-
-Capture and retrieve the last time a function was run.
-
-## Usage
-
-```js
-var lastRun = require('last-run');
-
-function myFunc(){}
-
-myFunc();
-// capture the run after (or before) calling the function
-lastRun.capture(myFunc);
-
-// retrieve the last run time
-lastRun(myFunc);
-//-> outputs the Date.now() when capture was called
-```
-
-## API
-
-__Note: this module uses a WeakMap shim, and throws on non-extensible functions on platforms that
-don't have a native WeakMap implementation__
-
-### lastRun(fn, [timeResolution]) => [Timestamp]
-
-Takes a function (`fn`) and returns a timestamp of the last time the function was captured.
-
-Returns undefined if the function has not been captured.
-
-The timestamp is always given in millisecond but the time resolution can be reduced (rounded down).
-The use case is to be able to compare a build time to a file time attribute.
-On node v0.10 or with file system like HFS or FAT, `fs.stat` time attributes like `mtime` precision is one second.
-
-Assuming `lastRun(fn)` returns 1426000001111, `lastRun(fn, 1000)` returns 1426000001000.
-
-The default time resolution is 1000 on node v0.10, 0 on node 0.11+ and iojs.
-More information at [`default-resolution`][default-resolution] and
-[undertaker PR #17][undertaker-17].
-
-### lastRun.capture(fn, [timestamp])
-
-Takes a function (`fn`) and captures the current timestamp with `Date.now()`.
-If passed the optional timestamp, captures that time instead of `Date.now()`.
-The captured timestamp can then be retrieved using the `lastRun` function.
-
-### lastRun.release(fn)
-
-Takes a function (`fn`) and removes the last run timestamp for it.
-
-## License
-
-MIT
-
-[default-resolution]: https://github.com/gulpjs/default-resolution
-[undertaker-17]: https://github.com/gulpjs/undertaker/pull/17#issuecomment-82374512
-
-[downloads-image]: http://img.shields.io/npm/dm/last-run.svg
-[npm-url]: https://www.npmjs.com/package/last-run
-[npm-image]: http://img.shields.io/npm/v/last-run.svg
-
-[travis-url]: https://travis-ci.org/gulpjs/last-run
-[travis-image]: http://img.shields.io/travis/gulpjs/last-run.svg?label=travis-ci
-
-[appveyor-url]: https://ci.appveyor.com/project/gulpjs/last-run
-[appveyor-image]: https://img.shields.io/appveyor/ci/gulpjs/last-run.svg?label=appveyor
-
-[coveralls-url]: https://coveralls.io/r/gulpjs/last-run
-[coveralls-image]: http://img.shields.io/coveralls/gulpjs/last-run/master.svg
-
-[gitter-url]: https://gitter.im/gulpjs/gulp
-[gitter-image]: https://badges.gitter.im/gulpjs/gulp.svg
diff --git a/node_modules/last-run/index.js b/node_modules/last-run/index.js
deleted file mode 100644
index 2157c5b..0000000
--- a/node_modules/last-run/index.js
+++ /dev/null
@@ -1,58 +0,0 @@
-'use strict';
-
-var assert = require('assert');
-
-var WM = require('es6-weak-map');
-var hasNativeWeakMap = require('es6-weak-map/is-native-implemented');
-var defaultResolution = require('default-resolution');
-
-var runtimes = new WM();
-
-function isFunction(fn) {
- return (typeof fn === 'function');
-}
-
-function isExtensible(fn) {
- if (hasNativeWeakMap) {
- // Native weakmap doesn't care about extensible
- return true;
- }
-
- return Object.isExtensible(fn);
-}
-
-function lastRun(fn, timeResolution) {
- assert(isFunction(fn), 'Only functions can check lastRun');
- assert(isExtensible(fn), 'Only extensible functions can check lastRun');
-
- var time = runtimes.get(fn);
-
- if (time == null) {
- return;
- }
-
- var resolution = defaultResolution(timeResolution);
-
- return time - (time % resolution);
-}
-
-function capture(fn, timestamp) {
- assert(isFunction(fn), 'Only functions can be captured');
- assert(isExtensible(fn), 'Only extensible functions can be captured');
-
- timestamp = timestamp || Date.now();
-
- runtimes.set(fn, timestamp);
-}
-
-function release(fn) {
- assert(isFunction(fn), 'Only functions can be captured');
- assert(isExtensible(fn), 'Only extensible functions can be captured');
-
- runtimes.delete(fn);
-}
-
-lastRun.capture = capture;
-lastRun.release = release;
-
-module.exports = lastRun;
diff --git a/node_modules/last-run/package.json b/node_modules/last-run/package.json
deleted file mode 100644
index e36cd9f..0000000
--- a/node_modules/last-run/package.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
- "name": "last-run",
- "version": "1.1.1",
- "description": "Capture and retrieve the last time a function was run",
- "author": "Gulp Team (http://gulpjs.com/)",
- "contributors": [
- "Blaine Bublitz "
- ],
- "repository": "gulpjs/last-run",
- "license": "MIT",
- "engines": {
- "node": ">= 0.10"
- },
- "main": "index.js",
- "files": [
- "LICENSE",
- "index.js"
- ],
- "scripts": {
- "lint": "eslint . && jscs index.js test/",
- "pretest": "npm run lint",
- "test": "mocha --async-only",
- "cover": "istanbul cover _mocha --report lcovonly",
- "coveralls": "npm run cover && istanbul-coveralls"
- },
- "dependencies": {
- "default-resolution": "^2.0.0",
- "es6-weak-map": "^2.0.1"
- },
- "devDependencies": {
- "eslint": "^1.7.3",
- "eslint-config-gulp": "^2.0.0",
- "expect": "^1.19.0",
- "istanbul": "^0.4.3",
- "istanbul-coveralls": "^1.0.3",
- "jscs": "^2.3.5",
- "jscs-preset-gulp": "^1.0.0",
- "mocha": "^2.4.5"
- },
- "keywords": [
- "execution",
- "function",
- "last run",
- "timing"
- ]
-}
diff --git a/node_modules/lazystream/.npmignore b/node_modules/lazystream/.npmignore
deleted file mode 100644
index baccd1c..0000000
--- a/node_modules/lazystream/.npmignore
+++ /dev/null
@@ -1,4 +0,0 @@
-.DS_Store
-npm-debug.log
-node_modules/
-test/tmp/
diff --git a/node_modules/lazystream/.travis.yml b/node_modules/lazystream/.travis.yml
deleted file mode 100644
index 01987d4..0000000
--- a/node_modules/lazystream/.travis.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-sudo: false
-language: node_js
-node_js:
- - "5.2"
- - "4.2"
- - "0.12"
- - "0.10"
-# - "0.8"
-# - "0.6"
diff --git a/node_modules/lazystream/LICENSE-MIT b/node_modules/lazystream/LICENSE-MIT
deleted file mode 100644
index 982db13..0000000
--- a/node_modules/lazystream/LICENSE-MIT
+++ /dev/null
@@ -1,23 +0,0 @@
-Copyright (c) 2013 J. Pommerening, contributors.
-
-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/lazystream/README.md b/node_modules/lazystream/README.md
deleted file mode 100644
index f42fbac..0000000
--- a/node_modules/lazystream/README.md
+++ /dev/null
@@ -1,110 +0,0 @@
-# Lazy Streams
-
-> *Create streams lazily when they are read from or written to.*
-> `lazystream: 1.0.0` [![Build Status](https://travis-ci.org/jpommerening/node-lazystream.png?branch=master)](https://travis-ci.org/jpommerening/node-lazystream)
-
-## Why?
-
-Sometimes you feel the itch to open *all the files* at once. You want to pass a bunch of streams around, so the consumer does not need to worry where the data comes from.
-From a software design point-of-view this sounds entirely reasonable. Then there is that neat little function `fs.createReadStream()` that opens a file and gives you a nice `fs.ReadStream` to pass around, so you use what the mighty creator deities of node bestowed upon you.
-
-> `Error: EMFILE, too many open files`
-> ─ *node*
-
-This package provides two classes based on the node's Streams3 API (courtesy of `readable-stream` to ensure a stable version).
-
-## Class: lazystream.Readable
-
-A wrapper for readable streams. Extends [`stream.PassThrough`](http://nodejs.org/api/stream.html#stream_class_stream_passthrough).
-
-### new lazystream.Readable(fn [, options])
-
-* `fn` *{Function}*
- The function that the lazy stream will call to obtain the stream to actually read from.
-* `options` *{Object}*
- Options for the underlying `PassThrough` stream, accessible by `fn`.
-
-Creates a new readable stream. Once the stream is accessed (for example when you call its `read()` method, or attach a `data`-event listener) the `fn` function is called with the outer `lazystream.Readable` instance bound to `this`.
-
-If you pass an `options` object to the constuctor, you can access it in your `fn` function.
-
-```javascript
-new lazystream.Readable(function (options) {
- return fs.createReadStream('/dev/urandom');
-});
-```
-
-## Class: lazystream.Writable
-
-A wrapper for writable streams. Extends [`stream.PassThrough`](http://nodejs.org/api/stream.html#stream_class_stream_passthrough).
-
-### new lazystream.Writable(fn [, options])
-
-* `fn` *{Function}*
- The function that the lazy stream will call to obtain the stream to actually write to.
-* `options` *{Object}*
- Options for the underlying `PassThrough` stream, accessible by `fn`.
-
-Creates a new writable stream. Just like the one above but for writable streams.
-
-```javascript
-new lazystream.Writable(function () {
- return fs.createWriteStream('/dev/null');
-});
-```
-
-## Install
-
-```console
-$ npm install lazystream --save
-lazystream@1.0.0 node_modules/lazystream
-└── readable-stream@2.0.5
-```
-
-## Changelog
-
-### v1.0.0
-
-- [#2](https://github.com/jpommerening/node-lazystream/pull/2): [unconditionally](https://r.va.gg/2014/06/why-i-dont-use-nodes-core-stream-module.html) use `readable-stream` _2.x_.
-
-### v0.2.0
-
-- [#1](https://github.com/jpommerening/node-lazystream/pull/1): error events are now propagated
-
-### v0.1.0
-
-- _(this was the first release)_
-
-## Contributing
-
-Fork it, branch it, send me a pull request. We'll work out the rest together.
-
-## Credits
-
-[Chris Talkington](https://github.com/ctalkington) and his [node-archiver](https://github.com/ctalkington/node-archiver) for providing a use-case.
-
-## [License](LICENSE-MIT)
-
-Copyright (c) 2013 J. Pommerening, contributors.
-
-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/lazystream/lib/lazystream.js b/node_modules/lazystream/lib/lazystream.js
deleted file mode 100644
index d9f6170..0000000
--- a/node_modules/lazystream/lib/lazystream.js
+++ /dev/null
@@ -1,54 +0,0 @@
-var util = require('util');
-var PassThrough = require('readable-stream/passthrough');
-
-module.exports = {
- Readable: Readable,
- Writable: Writable
-};
-
-util.inherits(Readable, PassThrough);
-util.inherits(Writable, PassThrough);
-
-// Patch the given method of instance so that the callback
-// is executed once, before the actual method is called the
-// first time.
-function beforeFirstCall(instance, method, callback) {
- instance[method] = function() {
- delete instance[method];
- callback.apply(this, arguments);
- return this[method].apply(this, arguments);
- };
-}
-
-function Readable(fn, options) {
- if (!(this instanceof Readable))
- return new Readable(fn, options);
-
- PassThrough.call(this, options);
-
- beforeFirstCall(this, '_read', function() {
- var source = fn.call(this, options);
- var emit = this.emit.bind(this, 'error');
- source.on('error', emit);
- source.pipe(this);
- });
-
- this.emit('readable');
-}
-
-function Writable(fn, options) {
- if (!(this instanceof Writable))
- return new Writable(fn, options);
-
- PassThrough.call(this, options);
-
- beforeFirstCall(this, '_write', function() {
- var destination = fn.call(this, options);
- var emit = this.emit.bind(this, 'error');
- destination.on('error', emit);
- this.pipe(destination);
- });
-
- this.emit('writable');
-}
-
diff --git a/node_modules/lazystream/package.json b/node_modules/lazystream/package.json
deleted file mode 100644
index a31a48c..0000000
--- a/node_modules/lazystream/package.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- "name": "lazystream",
- "version": "1.0.0",
- "description": "Open Node Streams on demand.",
- "homepage": "https://github.com/jpommerening/node-lazystream",
- "author": {
- "name": "Jonas Pommerening",
- "email": "jonas.pommerening@gmail.com",
- "url": "https://npmjs.org/~jpommerening"
- },
- "contributors": [
- "Mario Casciaro "
- ],
- "repository": {
- "type": "git",
- "url": "https://github.com/jpommerening/node-lazystream.git"
- },
- "bugs": {
- "url": "https://github.com/jpommerening/node-lazystream/issues"
- },
- "license": "MIT",
- "main": "lib/lazystream.js",
- "engines": {
- "node": ">= 0.6.3"
- },
- "scripts": {
- "test": "nodeunit test/readable_test.js test/writable_test.js test/pipe_test.js test/fs_test.js"
- },
- "dependencies": {
- "readable-stream": "^2.0.5"
- },
- "devDependencies": {
- "nodeunit": "^0.9.1"
- },
- "keywords": [
- "emfile",
- "lazy",
- "streams",
- "stream"
- ]
-}
diff --git a/node_modules/lazystream/secret b/node_modules/lazystream/secret
deleted file mode 100644
index 4ff7751..0000000
--- a/node_modules/lazystream/secret
+++ /dev/null
@@ -1,59 +0,0 @@
------BEGIN PGP PRIVATE KEY BLOCK-----
-Version: GnuPG v1
-
-lQO+BFRFUBsBCACycWpDBPLAf7Pfk3SjZPmFrV/uVJRKoetYDVWgMvmjlm5u/RQH
-CI7uMujKLLcWeVxwqRcsc65iqyfgGp/TpGpPg3N7ss9NJN7f5xou2KtZUWN2PTKa
-A09tnaBaKACyursPLRqHFRl565/ETiZ2/VpHFYuEw8fXlvo5L5rQFgh4oiSdwWHk
-yyCcUJuDa70rkfgmWF/3ZUkX3U57e8rrGQ2xezLk5cI5ijA8VCrXY+EPWTxWtyCb
-j1mJ0UjApWOPKjahdvR6K6kHebQLGhDIR+dlKb/VZqZSxj4Dta5jxId8DO6nSsqE
-Xt7Y69ud024YApyz22zg0LA+4KXde+SmYLLhABEBAAH+AwMCM3z5FykaX/xgLcWw
-RpUUMvwe+cPQBCB17LcP+JU3T/+CnTYpGviTc7T+kpggqq+77cz+9Pz+MXlLaQUG
-ztK/WzNUbd5HPjRxUAIbyvfnGXo8oqBd3Fmho/oE61e1jMmpveh2icipvrdXKF8/
-WJYWaThHlT9fwltqsfFzCW7dFW1txZgVD8RKY9/TNw68FHJyuGQNNPscg6Eda3W1
-wMO70c2lDUUnFdIFQT31UHcrDOoeVQ+/R4/P7MmqrumkVHbzQXkWktrMn7XCLYAV
-zvqI3HiEwH6/BHaSWuNhQJ2sUlFg8SauwAGUVU5y6rDUoKZQ7UvKLxa3RtJQcFNL
-26I4x3M+yy3/2gNHB5yx/C2Xik9QbmiJojfa3/u7NWp0Y6IIxDX9DS0Bd539F10C
-afuF6GgYZtTUBJzFBRhFtgD9xsl+joafnUddg+3euTIIJJhSF9JlvmMEm3DJTqSr
-FT7JfRXg4V0pFFyEzIpD8s9N06lkmj09YhaDWqqPgVrkiMgjrzikPMfrI8HJGZSx
-UbvWrSKVYFk6JPYSDDkI+mzZKtCjagd1ySg8GrzsQr/Z7RfgUAnde9McJKwcEj9o
-xXCFk/ncjSRyxsvBgTVGcQxQsIjixCIiQErBh1WeCxPlczW9VwF8Na/1pDyP6Pyu
-94L7MifTbECVlRlGBKQnnROlu9BtyoYqKm9QtBiNgPWF8J4c3eoMtagIffkklj3S
-wOCNIJwtTiXvU6x6FhE/QKDTCQkO4ogChN6XRbRwvPpWKurdx1z5is/i7F894jBr
-we9oql2vwnVVjHxTCWAdgpUDwfid3dQ5Iayl4+8OX+d3V6/fUFLsgTQP3Ad7Hcm0
-dKjZEXmDKXgbdvinyZL89RFLGdUv6PEl1XT/NYfr1kHtrhes+bqwvcN55vy1IU7T
-Z7QvSm9uYXMgUG9tbWVyZW5pbmcgPGpvbmFzLnBvbW1lcmVuaW5nQGdtYWlsLmNv
-bT6JAT4EEwECACgFAlRFUBsCGwMFCQlmAYAGCwkIBwMCBhUIAgkKCwQWAgMBAh4B
-AheAAAoJEEEwTQNB1Fp8riIH/2cDO1lrtRL5GgrvXoNNB5gXiT+I2TR2nw+S02d/
-vlP8vvJzTzMtAXSPR2A6SXWQy9NCFCs5mvnU/lQYMrgocDQWlKanD6mAYyWiZpSD
-g+XteALlh3NAvvXLkpvS+LaG4MMOh0qNvKUvcfyrmw4L4BOWhZmV9Ds424fg+Xtr
-+OUs7TRjEVzXxlxdq+tCUOidssfuaTmG1YxsnI0gR0IjIivGsGPs59ZiZTVX8jOi
-btzArvXq0rA+OhLLD98d7DpzycGLjamFvfwvMLWrm9BnpC3yGU0fxhWYnY0GnyI9
-PgEQy24UeVcctfI/12shK1GeZWnbQFM1y4qLuNpmROzxaLKdA74EVEVQGwEIAKC2
-jA+DhF/Yk2A5afioKUmvrOPzBlgaxeenuNAclI7HrrowElCoeqG+orQhGZFqV0Kd
-YnjKRzyzlhuKOsR8SO81KNf+KpFtBgaYbzb1HUvelLoLPlGVX26AxO87E25CFmdH
-+ItqmfINl83P8MytYvvQAkvEJ6FB1y+dyZiUPhrAYNZIaWeqNIMlNWnVbmLDBGwT
-1DPgFr2MCOMW6VnYn90riL8Q/ple8rsjLawXhW0VrM/PfZ4iW482CHN3ld6kf0U5
-Ev0rXLRw4nY7CSN1ixmI6k+G6tGpJG5rMYY32yfL7Q4zFsHp0Ns+jWLyfLLUE0rf
-tCvIovnJ98+Ns5RWjXcAEQEAAf4DAwIzfPkXKRpf/GD1MkUQi7s28hj+MseJaas2
-HK8k48TEXmGbfLbcxYoDWYJIGLOU55dxmmT7u+Fwea2lL0pImwdmCNXVitgDi9ZF
-AHPGscVM6LT9QTJIPZxJLT9fd1i+WADWw3MRQA480XRAEaEjBgdD0iwh8KrDqGH9
-40lRez7nRLZbOZkuEiliNcschKaJLp7fAEzFg584POFHuAOK8A2gd3VlbfFj8gep
-dN06KET2Rszm4hfYXAuxFvDdavwbKsmPOIHyhhv6+1FQJyd7iYE34ig2ejdlnloE
-6aofPmjAfZAsPnj2CkUqSk2Hp/2GvMKFIuoJt/bhUijvOpx9d58ULl3CmsLwfchs
-1h0lU9z/giPwbPxUy1nJuzrfwTvO/WQrhbb5iVsKeJ4Yy2GqwwmhCuBoW/XdlR87
-gr09/FzKN8m7FbTsRrbNoRugjldV/JEyunWMLRW/Qpvmd7tynEhAsYTcK/f1EDB/
-0lm/LpKDn6PCoReiSSqEAp3ZxH6egc6VoR3NDeColOd8Mk4QkG/JTC4SIDoxyYkH
-Eo0NU4dA8md7YUafZD28TkDNJVtnBkR1y2vede0Jks1M1yciqJONlvsnfPFdBQth
-48b4kvdvYYWA3BFVEiOvhjcJJ2UN2+0V07mZQnQ854eNKCkgmg57OVGlqePOd8j2
-lUKCy7f8G05NSHZxmsA/GPCkNviWNgp78oULxR+PBGkQNp7oyKvHFo0KesOAy406
-jXGccPrlTHQgGw2A5FEmPc080iCyz3D2Q9hPhU8UpmUNIyis50vRJZmJ+4146bXG
-nS1oAo/YpUVs6Olo6ffoJUgBpQKZISuMS+WW18gp0A66jALMX0yPhWrw1etX+XlD
-RDSP2PnV74Y9BrlFFSYeSN2vhQIJJvD9ARxP631Bsp0pu6VLiQElBBgBAgAPBQJU
-RVAbAhsMBQkJZgGAAAoJEEEwTQNB1Fp8BekH/jqCKoeA+ru4RNLFGifHXNjrhDQf
-XW2jdmPbpx5PQTLMOWV2l1DREwdnr3hb6jGj3xFFhSg0B3EGHCD45QUcsVHzJWzW
-DHo7Q0dHa2bj8d5fDgYF15XKGpZSe/f39YvI5TdDi6cK+3WCc48zoDycYN/5YxKm
-nHVvHa6TYPzuUpJFJFllrrFtoas9/5CnXcYSbjdKLKEbfBqj9YiD69p/raUY2rGB
-CVJMv2OTQbGzfnMPfse/4U1XgNUVpF3LMcVHG13KjutzTcBQ/7VbQnIctTg9WBTk
-R74+nLrZmKNgwwN6Y3jXEz2JZtxebyY6zG1EvNiO5sAJnCJAk8VGDnIB+sc=
-=EeYS
------END PGP PRIVATE KEY BLOCK-----
diff --git a/node_modules/lazystream/test/data.md b/node_modules/lazystream/test/data.md
deleted file mode 100644
index fc48222..0000000
--- a/node_modules/lazystream/test/data.md
+++ /dev/null
@@ -1,13 +0,0 @@
-> Never mind, hey, this is really exciting, so much to find out about, so much to
-> look forward to, I'm quite dizzy with anticipation . . . Or is it the wind?
->
-> There really is a lot of that now, isn't there? And wow! Hey! What's this thing
-> suddenly coming toward me very fast? Very, very fast. So big and flat and round,
-> it needs a big wide-sounding name like . . . ow . . . ound . . . round . . .
-> ground! That's it! That's a good name- ground!
->
-> I wonder if it will be friends with me?
->
-> Hello Ground!
-
-And the rest, after a sudden wet thud, was silence.
diff --git a/node_modules/lazystream/test/fs_test.js b/node_modules/lazystream/test/fs_test.js
deleted file mode 100644
index 149b1c4..0000000
--- a/node_modules/lazystream/test/fs_test.js
+++ /dev/null
@@ -1,69 +0,0 @@
-
-var stream = require('../lib/lazystream');
-var fs = require('fs');
-var tmpDir = 'test/tmp/';
-var readFile = 'test/data.md';
-var writeFile = tmpDir + 'data.md';
-
-exports.fs = {
- readwrite: function(test) {
- var readfd, writefd;
-
- var readable = new stream.Readable(function() {
- return fs.createReadStream(readFile)
- .on('open', function(fd) {
- readfd = fd;
- })
- .on('close', function() {
- readfd = undefined;
- step();
- });
- });
-
- var writable = new stream.Writable(function() {
- return fs.createWriteStream(writeFile)
- .on('open', function(fd) {
- writefd = fd;
- })
- .on('close', function() {
- writefd = undefined;
- step();
- });
- });
-
- test.expect(3);
-
- test.equal(readfd, undefined, 'Input file should not be opened until read');
- test.equal(writefd, undefined, 'Output file should not be opened until write');
-
- if (!fs.existsSync(tmpDir)) {
- fs.mkdirSync(tmpDir);
- }
- if (fs.existsSync(writeFile)) {
- fs.unlinkSync(writeFile);
- }
-
- readable.on('end', function() { step(); });
- writable.on('end', function() { step(); });
-
- var steps = 0;
- function step() {
- steps += 1;
- if (steps == 4) {
- var input = fs.readFileSync(readFile);
- var output = fs.readFileSync(writeFile);
-
- test.ok(input >= output && input <= output, 'Should be equal');
-
- fs.unlinkSync(writeFile);
- fs.rmdirSync(tmpDir);
-
- test.done();
- }
- };
-
- readable.pipe(writable);
- }
-};
-
-
diff --git a/node_modules/lazystream/test/helper.js b/node_modules/lazystream/test/helper.js
deleted file mode 100644
index 9d41191..0000000
--- a/node_modules/lazystream/test/helper.js
+++ /dev/null
@@ -1,39 +0,0 @@
-
-var _Readable = require('readable-stream/readable');
-var _Writable = require('readable-stream/writable');
-var util = require('util');
-
-module.exports = {
- DummyReadable: DummyReadable,
- DummyWritable: DummyWritable
-};
-
-function DummyReadable(strings) {
- _Readable.call(this);
- this.strings = strings;
- this.emit('readable');
-}
-
-util.inherits(DummyReadable, _Readable);
-
-DummyReadable.prototype._read = function _read(n) {
- if (this.strings.length) {
- this.push(new Buffer(this.strings.shift()));
- } else {
- this.push(null);
- }
-};
-
-function DummyWritable(strings) {
- _Writable.call(this);
- this.strings = strings;
- this.emit('writable');
-}
-
-util.inherits(DummyWritable, _Writable);
-
-DummyWritable.prototype._write = function _write(chunk, encoding, callback) {
- this.strings.push(chunk.toString());
- if (callback) callback();
-};
-
diff --git a/node_modules/lazystream/test/pipe_test.js b/node_modules/lazystream/test/pipe_test.js
deleted file mode 100644
index 7129e35..0000000
--- a/node_modules/lazystream/test/pipe_test.js
+++ /dev/null
@@ -1,36 +0,0 @@
-
-var stream = require('../lib/lazystream');
-var helper = require('./helper');
-
-exports.pipe = {
- readwrite: function(test) {
- var expected = [ 'line1\n', 'line2\n' ];
- var actual = [];
- var readableInstantiated = false;
- var writableInstantiated = false;
-
- test.expect(3);
-
- var readable = new stream.Readable(function() {
- readableInstantiated = true;
- return new helper.DummyReadable([].concat(expected));
- });
-
- var writable = new stream.Writable(function() {
- writableInstantiated = true;
- return new helper.DummyWritable(actual);
- });
-
- test.equal(readableInstantiated, false, 'DummyReadable should only be instantiated when it is needed');
- test.equal(writableInstantiated, false, 'DummyWritable should only be instantiated when it is needed');
-
- writable.on('end', function() {
- test.equal(actual.join(''), expected.join(''), 'Piping on demand streams should keep data intact');
- test.done();
- });
-
- readable.pipe(writable);
- }
-};
-
-
diff --git a/node_modules/lazystream/test/readable_test.js b/node_modules/lazystream/test/readable_test.js
deleted file mode 100644
index 9ae0636..0000000
--- a/node_modules/lazystream/test/readable_test.js
+++ /dev/null
@@ -1,90 +0,0 @@
-
-var Readable = require('../lib/lazystream').Readable;
-var DummyReadable = require('./helper').DummyReadable;
-
-exports.readable = {
- dummy: function(test) {
- var expected = [ 'line1\n', 'line2\n' ];
- var actual = [];
-
- test.expect(1);
-
- new DummyReadable([].concat(expected))
- .on('data', function(chunk) {
- actual.push(chunk.toString());
- })
- .on('end', function() {
- test.equal(actual.join(''), expected.join(''), 'DummyReadable should produce the data it was created with');
- test.done();
- });
- },
- options: function(test) {
- test.expect(3);
-
- var readable = new Readable(function(options) {
- test.ok(this instanceof Readable, "Readable should bind itself to callback's this");
- test.equal(options.encoding, "utf-8", "Readable should make options accessible to callback");
- this.ok = true;
- return new DummyReadable(["test"]);
- }, {encoding: "utf-8"});
-
- readable.read(4);
-
- test.ok(readable.ok);
-
- test.done();
- },
- streams2: function(test) {
- var expected = [ 'line1\n', 'line2\n' ];
- var actual = [];
- var instantiated = false;
-
- test.expect(2);
-
- var readable = new Readable(function() {
- instantiated = true;
- return new DummyReadable([].concat(expected));
- });
-
- test.equal(instantiated, false, 'DummyReadable should only be instantiated when it is needed');
-
- readable.on('readable', function() {
- var chunk;
- while ((chunk = readable.read())) {
- actual.push(chunk.toString());
- }
- });
- readable.on('end', function() {
- test.equal(actual.join(''), expected.join(''), 'Readable should not change the data of the underlying stream');
- test.done();
- });
-
- readable.read(0);
- },
- resume: function(test) {
- var expected = [ 'line1\n', 'line2\n' ];
- var actual = [];
- var instantiated = false;
-
- test.expect(2);
-
- var readable = new Readable(function() {
- instantiated = true;
- return new DummyReadable([].concat(expected));
- });
-
- readable.pause();
-
- readable.on('data', function(chunk) {
- actual.push(chunk.toString());
- });
- readable.on('end', function() {
- test.equal(actual.join(''), expected.join(''), 'Readable should not change the data of the underlying stream');
- test.done();
- });
-
- test.equal(instantiated, false, 'DummyReadable should only be instantiated when it is needed');
-
- readable.resume();
- }
-};
diff --git a/node_modules/lazystream/test/writable_test.js b/node_modules/lazystream/test/writable_test.js
deleted file mode 100644
index a663845..0000000
--- a/node_modules/lazystream/test/writable_test.js
+++ /dev/null
@@ -1,59 +0,0 @@
-
-var Writable = require('../lib/lazystream').Writable;
-var DummyWritable = require('./helper').DummyWritable;
-
-exports.writable = {
- options: function(test) {
- test.expect(3);
-
- var writable = new Writable(function(options) {
- test.ok(this instanceof Writable, "Writable should bind itself to callback's this");
- test.equal(options.encoding, "utf-8", "Writable should make options accessible to callback");
- this.ok = true;
- return new DummyWritable([]);
- }, {encoding: "utf-8"});
-
- writable.write("test");
-
- test.ok(writable.ok);
-
- test.done();
- },
- dummy: function(test) {
- var expected = [ 'line1\n', 'line2\n' ];
- var actual = [];
-
- test.expect(0);
-
- var dummy = new DummyWritable(actual);
-
- expected.forEach(function(item) {
- dummy.write(new Buffer(item));
- });
- test.done();
- },
- streams2: function(test) {
- var expected = [ 'line1\n', 'line2\n' ];
- var actual = [];
- var instantiated = false;
-
- test.expect(2);
-
- var writable = new Writable(function() {
- instantiated = true;
- return new DummyWritable(actual);
- });
-
- test.equal(instantiated, false, 'DummyWritable should only be instantiated when it is needed');
-
- writable.on('end', function() {
- test.equal(actual.join(''), expected.join(''), 'Writable should not change the data of the underlying stream');
- test.done();
- });
-
- expected.forEach(function(item) {
- writable.write(new Buffer(item));
- });
- writable.end();
- }
-};
diff --git a/node_modules/lcid/index.js b/node_modules/lcid/index.js
deleted file mode 100644
index 69bd3d2..0000000
--- a/node_modules/lcid/index.js
+++ /dev/null
@@ -1,22 +0,0 @@
-'use strict';
-var invertKv = require('invert-kv');
-var all = require('./lcid.json');
-var inverted = invertKv(all);
-
-exports.from = function (lcidCode) {
- if (typeof lcidCode !== 'number') {
- throw new TypeError('Expected a number');
- }
-
- return inverted[lcidCode];
-};
-
-exports.to = function (localeId) {
- if (typeof localeId !== 'string') {
- throw new TypeError('Expected a string');
- }
-
- return all[localeId];
-};
-
-exports.all = all;
diff --git a/node_modules/lcid/lcid.json b/node_modules/lcid/lcid.json
deleted file mode 100644
index 9c89f6a..0000000
--- a/node_modules/lcid/lcid.json
+++ /dev/null
@@ -1,203 +0,0 @@
-{
- "af_ZA": 1078,
- "am_ET": 1118,
- "ar_AE": 14337,
- "ar_BH": 15361,
- "ar_DZ": 5121,
- "ar_EG": 3073,
- "ar_IQ": 2049,
- "ar_JO": 11265,
- "ar_KW": 13313,
- "ar_LB": 12289,
- "ar_LY": 4097,
- "ar_MA": 6145,
- "ar_OM": 8193,
- "ar_QA": 16385,
- "ar_SA": 1025,
- "ar_SY": 10241,
- "ar_TN": 7169,
- "ar_YE": 9217,
- "arn_CL": 1146,
- "as_IN": 1101,
- "az_AZ": 2092,
- "ba_RU": 1133,
- "be_BY": 1059,
- "bg_BG": 1026,
- "bn_IN": 1093,
- "bo_BT": 2129,
- "bo_CN": 1105,
- "br_FR": 1150,
- "bs_BA": 8218,
- "ca_ES": 1027,
- "co_FR": 1155,
- "cs_CZ": 1029,
- "cy_GB": 1106,
- "da_DK": 1030,
- "de_AT": 3079,
- "de_CH": 2055,
- "de_DE": 1031,
- "de_LI": 5127,
- "de_LU": 4103,
- "div_MV": 1125,
- "dsb_DE": 2094,
- "el_GR": 1032,
- "en_AU": 3081,
- "en_BZ": 10249,
- "en_CA": 4105,
- "en_CB": 9225,
- "en_GB": 2057,
- "en_IE": 6153,
- "en_IN": 18441,
- "en_JA": 8201,
- "en_MY": 17417,
- "en_NZ": 5129,
- "en_PH": 13321,
- "en_TT": 11273,
- "en_US": 1033,
- "en_ZA": 7177,
- "en_ZW": 12297,
- "es_AR": 11274,
- "es_BO": 16394,
- "es_CL": 13322,
- "es_CO": 9226,
- "es_CR": 5130,
- "es_DO": 7178,
- "es_EC": 12298,
- "es_ES": 3082,
- "es_GT": 4106,
- "es_HN": 18442,
- "es_MX": 2058,
- "es_NI": 19466,
- "es_PA": 6154,
- "es_PE": 10250,
- "es_PR": 20490,
- "es_PY": 15370,
- "es_SV": 17418,
- "es_UR": 14346,
- "es_US": 21514,
- "es_VE": 8202,
- "et_EE": 1061,
- "eu_ES": 1069,
- "fa_IR": 1065,
- "fi_FI": 1035,
- "fil_PH": 1124,
- "fo_FO": 1080,
- "fr_BE": 2060,
- "fr_CA": 3084,
- "fr_CH": 4108,
- "fr_FR": 1036,
- "fr_LU": 5132,
- "fr_MC": 6156,
- "fy_NL": 1122,
- "ga_IE": 2108,
- "gbz_AF": 1164,
- "gl_ES": 1110,
- "gsw_FR": 1156,
- "gu_IN": 1095,
- "ha_NG": 1128,
- "he_IL": 1037,
- "hi_IN": 1081,
- "hr_BA": 4122,
- "hr_HR": 1050,
- "hu_HU": 1038,
- "hy_AM": 1067,
- "id_ID": 1057,
- "ii_CN": 1144,
- "is_IS": 1039,
- "it_CH": 2064,
- "it_IT": 1040,
- "iu_CA": 2141,
- "ja_JP": 1041,
- "ka_GE": 1079,
- "kh_KH": 1107,
- "kk_KZ": 1087,
- "kl_GL": 1135,
- "kn_IN": 1099,
- "ko_KR": 1042,
- "kok_IN": 1111,
- "ky_KG": 1088,
- "lb_LU": 1134,
- "lo_LA": 1108,
- "lt_LT": 1063,
- "lv_LV": 1062,
- "mi_NZ": 1153,
- "mk_MK": 1071,
- "ml_IN": 1100,
- "mn_CN": 2128,
- "mn_MN": 1104,
- "moh_CA": 1148,
- "mr_IN": 1102,
- "ms_BN": 2110,
- "ms_MY": 1086,
- "mt_MT": 1082,
- "my_MM": 1109,
- "nb_NO": 1044,
- "ne_NP": 1121,
- "nl_BE": 2067,
- "nl_NL": 1043,
- "nn_NO": 2068,
- "ns_ZA": 1132,
- "oc_FR": 1154,
- "or_IN": 1096,
- "pa_IN": 1094,
- "pl_PL": 1045,
- "ps_AF": 1123,
- "pt_BR": 1046,
- "pt_PT": 2070,
- "qut_GT": 1158,
- "quz_BO": 1131,
- "quz_EC": 2155,
- "quz_PE": 3179,
- "rm_CH": 1047,
- "ro_RO": 1048,
- "ru_RU": 1049,
- "rw_RW": 1159,
- "sa_IN": 1103,
- "sah_RU": 1157,
- "se_FI": 3131,
- "se_NO": 1083,
- "se_SE": 2107,
- "si_LK": 1115,
- "sk_SK": 1051,
- "sl_SI": 1060,
- "sma_NO": 6203,
- "sma_SE": 7227,
- "smj_NO": 4155,
- "smj_SE": 5179,
- "smn_FI": 9275,
- "sms_FI": 8251,
- "sq_AL": 1052,
- "sr_BA": 7194,
- "sr_SP": 3098,
- "sv_FI": 2077,
- "sv_SE": 1053,
- "sw_KE": 1089,
- "syr_SY": 1114,
- "ta_IN": 1097,
- "te_IN": 1098,
- "tg_TJ": 1064,
- "th_TH": 1054,
- "tk_TM": 1090,
- "tmz_DZ": 2143,
- "tn_ZA": 1074,
- "tr_TR": 1055,
- "tt_RU": 1092,
- "ug_CN": 1152,
- "uk_UA": 1058,
- "ur_IN": 2080,
- "ur_PK": 1056,
- "uz_UZ": 2115,
- "vi_VN": 1066,
- "wen_DE": 1070,
- "wo_SN": 1160,
- "xh_ZA": 1076,
- "yo_NG": 1130,
- "zh_CHS": 4,
- "zh_CHT": 31748,
- "zh_CN": 2052,
- "zh_HK": 3076,
- "zh_MO": 5124,
- "zh_SG": 4100,
- "zh_TW": 1028,
- "zu_ZA": 1077
-}
diff --git a/node_modules/lcid/license b/node_modules/lcid/license
deleted file mode 100644
index 654d0bf..0000000
--- a/node_modules/lcid/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus (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/lcid/package.json b/node_modules/lcid/package.json
deleted file mode 100644
index 0340963..0000000
--- a/node_modules/lcid/package.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
- "name": "lcid",
- "version": "1.0.0",
- "description": "Mapping between standard locale identifiers and Windows locale identifiers (LCID)",
- "license": "MIT",
- "repository": "sindresorhus/lcid",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "node test.js"
- },
- "files": [
- "index.js",
- "lcid.json"
- ],
- "keywords": [
- "lcid",
- "locale",
- "string",
- "str",
- "id",
- "identifier",
- "windows",
- "language",
- "lang",
- "map",
- "mapping",
- "convert",
- "json",
- "bcp47",
- "ietf",
- "tag"
- ],
- "dependencies": {
- "invert-kv": "^1.0.0"
- },
- "devDependencies": {
- "ava": "0.0.4"
- }
-}
diff --git a/node_modules/lcid/readme.md b/node_modules/lcid/readme.md
deleted file mode 100644
index bee4a70..0000000
--- a/node_modules/lcid/readme.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# lcid [![Build Status](https://travis-ci.org/sindresorhus/lcid.svg?branch=master)](https://travis-ci.org/sindresorhus/lcid)
-
-> Mapping between [standard locale identifiers](http://en.wikipedia.org/wiki/Locale) and [Windows locale identifiers (LCID)](http://en.wikipedia.org/wiki/Locale#Specifics_for_Microsoft_platforms)
-
-Based on the [mapping](https://github.com/python/cpython/blob/be2a1a76fa43bb1ea1b3577bb5bdd506a2e90e37/Lib/locale.py#L1395-L1604) used in the Python standard library.
-
-The mapping itself is just a [JSON file](lcid.json) and can be used wherever.
-
-
-## Install
-
-```
-$ npm install --save lcid
-```
-
-
-## Usage
-
-```js
-var lcid = require('lcid');
-
-lcid.from(1044);
-//=> 'nb_NO'
-
-lcid.to('nb_NO');
-//=> 1044
-
-lcid.all;
-//=> {'af_ZA': 1078, ...}
-```
-
-
-## License
-
-MIT © [Sindre Sorhus](http://sindresorhus.com)
diff --git a/node_modules/lead/LICENSE b/node_modules/lead/LICENSE
deleted file mode 100644
index b8fc743..0000000
--- a/node_modules/lead/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2017 Blaine Bublitz , Eric Schoffstall and other contributors
-
-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/lead/README.md b/node_modules/lead/README.md
deleted file mode 100644
index 759b991..0000000
--- a/node_modules/lead/README.md
+++ /dev/null
@@ -1,55 +0,0 @@
-
-
-
-
-
-
-# lead
-
-[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Build Status][travis-image]][travis-url] [![AppVeyor Build Status][appveyor-image]][appveyor-url] [![Coveralls Status][coveralls-image]][coveralls-url] [![Gitter chat][gitter-image]][gitter-url]
-
-Sink your streams.
-
-## Usage
-
-```js
-var from = require('from2');
-var through = require('through2');
-var sink = require('lead');
-
-// Might be used as a Transform or Writeable
-var maybeThrough = through(function(chunk, enc, cb) {
- // processing
- cb(null, chunk);
-});
-
-from(['hello', 'world'])
- // Sink it to behave like a Writeable
- .pipe(sink(maybeThrough))
-```
-
-## API
-
-### `sink(stream)`
-
-Takes a `stream` to sink and returns the same stream. Sets up event listeners to infer if the stream is being used as a `Transform` or `Writeable` stream and sinks it on `nextTick` if necessary. If the stream is being used as a `Transform` stream but becomes unpiped, it will be sunk. Respects `pipe`, `on('data')` and `on('readable')` handlers.
-
-## License
-
-MIT
-
-[downloads-image]: http://img.shields.io/npm/dm/lead.svg
-[npm-url]: https://npmjs.com/package/lead
-[npm-image]: http://img.shields.io/npm/v/lead.svg
-
-[travis-url]: https://travis-ci.org/gulpjs/lead
-[travis-image]: http://img.shields.io/travis/gulpjs/lead.svg?label=travis-ci
-
-[appveyor-url]: https://ci.appveyor.com/project/gulpjs/lead
-[appveyor-image]: https://img.shields.io/appveyor/ci/gulpjs/lead.svg?label=appveyor
-
-[coveralls-url]: https://coveralls.io/r/gulpjs/lead
-[coveralls-image]: http://img.shields.io/coveralls/gulpjs/lead/master.svg
-
-[gitter-url]: https://gitter.im/gulpjs/gulp
-[gitter-image]: https://badges.gitter.im/gulpjs/gulp.png
diff --git a/node_modules/lead/index.js b/node_modules/lead/index.js
deleted file mode 100644
index 8e3df6a..0000000
--- a/node_modules/lead/index.js
+++ /dev/null
@@ -1,61 +0,0 @@
-'use strict';
-
-var Writable = require('flush-write-stream');
-
-function listenerCount(stream, evt) {
- return stream.listeners(evt).length;
-}
-
-function hasListeners(stream) {
- return !!(listenerCount(stream, 'readable') || listenerCount(stream, 'data'));
-}
-
-function sinker(file, enc, callback) {
- callback();
-}
-
-function sink(stream) {
- var sinkAdded = false;
-
- var sinkOptions = {
- objectMode: stream._readableState.objectMode,
- };
-
- var sinkStream = new Writable(sinkOptions, sinker);
-
- function addSink() {
- if (sinkAdded) {
- return;
- }
-
- if (hasListeners(stream)) {
- return;
- }
-
- sinkAdded = true;
- stream.pipe(sinkStream);
- }
-
- function removeSink(evt) {
- if (evt !== 'readable' && evt !== 'data') {
- return;
- }
-
- if (hasListeners(stream)) {
- sinkAdded = false;
- stream.unpipe(sinkStream);
- }
- }
-
- stream.on('newListener', removeSink);
- stream.on('removeListener', removeSink);
- stream.on('removeListener', addSink);
-
- // Sink the stream to start flowing
- // Do this on nextTick, it will flow at slowest speed of piped streams
- process.nextTick(addSink);
-
- return stream;
-}
-
-module.exports = sink;
diff --git a/node_modules/lead/package.json b/node_modules/lead/package.json
deleted file mode 100644
index 1e3b461..0000000
--- a/node_modules/lead/package.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
- "name": "lead",
- "version": "1.0.0",
- "description": "Sink your streams.",
- "author": "Gulp Team (http://gulpjs.com/)",
- "contributors": [
- "Blaine Bublitz "
- ],
- "repository": "gulpjs/lead",
- "license": "MIT",
- "engines": {
- "node": ">= 0.10"
- },
- "main": "index.js",
- "files": [
- "LICENSE",
- "index.js"
- ],
- "scripts": {
- "lint": "eslint index.js test/ && jscs index.js test/",
- "pretest": "npm run lint",
- "test": "mocha --async-only",
- "cover": "istanbul cover _mocha --report lcovonly",
- "coveralls": "npm run cover && istanbul-coveralls"
- },
- "dependencies": {
- "flush-write-stream": "^1.0.2"
- },
- "devDependencies": {
- "eslint": "^1.10.3",
- "eslint-config-gulp": "^2.0.0",
- "expect": "^1.20.2",
- "istanbul": "^0.4.3",
- "istanbul-coveralls": "^1.0.3",
- "jscs": "^2.4.0",
- "jscs-preset-gulp": "^1.0.0",
- "mississippi": "^1.3.0",
- "mocha": "^3.2.0"
- },
- "keywords": [
- "streams",
- "sink",
- "through",
- "writeable"
- ]
-}
diff --git a/node_modules/liftoff/CHANGELOG b/node_modules/liftoff/CHANGELOG
deleted file mode 100644
index e612f4e..0000000
--- a/node_modules/liftoff/CHANGELOG
+++ /dev/null
@@ -1,127 +0,0 @@
-v2.2.2:
- date: 2016-05-20
- changes:
- - Update dependencies.
-v2.2.1:
- date: 2016-03-23
- changes:
- - Make sure that v8 flags are passed properly through the `respawn` event
-v2.1.0:
- date: 2015-05-20
- changes:
- - Use rechoir to autoload modules.
-v2.0.3:
- date: 2015-03-31
- changes:
- - Internal bugfix, don't wrap callback error in another error, idiot.
-v2.0.2:
- date: 2015-02-24
- changes:
- - Support process.env.NODE_PATH when resolving module.
-v2.0.1:
- date: 2015-02-01
- changes:
- - Find modulePath correctly when devving against yourself.
-v2.0.0:
- date: 2015-01-15
- changes:
- - Rename `nodeFlags` to `v8Flags` and make it async.
-v1.0.4:
- date: 2015-01-04
- changes:
- - Detect config extension using basename, not full path.
-v1.0.0:
- date: 2014-12-16
- changes:
- - Update dependencies
-v0.13.6:
- date: 2014-11-07
- changes:
- - Don't include artwork on npm.
-v0.13.5:
- date: 2014-10-10
- changes:
- - Only attempt to resolve the real path of configFile if it is actually a symlink.
-v0.13.4:
- date: 2014-10-07
- changes:
- - Set configBase to the directory of the symlink, not the directory of its real location.
-v0.13.3:
- date: 2014-10-06
- changes:
- - Return the real location of symlinked config files.
-v0.13.2:
- date: 2014-09-12
- changes:
- - Include flags in respawn event. I really miss `npm publish --force`.
-v0.13.1:
- date: 2014-09-12
- changes:
- - Slight performance tweak.
-v0.13.0:
- date: 2014-09-12
- changes:
- - Support passing flags to node with `nodeFlags` option.
-v0.12.1:
- date: 2014-06-27
- changes:
- - Support preloading modules for compound extensions like `.coffee.md`.
-v0.12.0:
- date: 2014-06-27
- changes:
- - Respect order of extensions when searching for config.
- - Rename `configNameRegex` environment property to `configNameSearch`.
-v0.11.3:
- date: 2014-06-09
- changes:
- - Make cwd match configBase if cwd isn't explicitly provided
-v0.11.2:
- date: 2014-06-04
- changes:
- - Regression fix: coerce preloads into array before attempting to push more
-v0.11.1:
- date: 2014-06-02
- changes:
- - Update dependencies.
-v0.11.0:
- date: 2014-05-27
- changes:
- - Refactor and remove options parsing.
-v0.10.0:
- date: 2014-05-06
- changes:
- - Remove `addExtension` in favor of `extension` option.
- - Support preloading modules based on extension.
-v0.9.7:
- date: 2014-04-28
- changes:
- - Locate local module in cwd even if config isn't present.
-v0.9.6:
- date: 2014-04-02
- changes:
- - Fix regression where external modules are not properly required.
- - Ignore configPathFlag / cwdFlag if the value isn't a string
-v0.9.3:
- date: 2014-02-28
- changes:
- - Fix regression where developing against self doesn't correctly set cwd.
-v0.9.0:
- date: 2014-02-28
- changes:
- - Use liftoff instance as context (`this`) for launch callback.
- - Support split --cwd and --configfile locations.
- - Rename `configLocationFlag` to `configPathFlag`
- - Support node 0.8+
-v0.8.7:
- date: 2014-02-24
- changes:
- - Pass environment as first argument to `launch`.
-v0.8.5:
- date: 2014-02-19
- changes:
- - Implement `addExtensions` option.
- - Default to `index.js` if `modulePackage` has no `main` property.
-v0.8.4:
- date: 2014-02-05
- changes:
- - Initial public release.
diff --git a/node_modules/liftoff/LICENSE b/node_modules/liftoff/LICENSE
deleted file mode 100644
index a55f5b7..0000000
--- a/node_modules/liftoff/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2014 Tyler Kellen
-
-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/liftoff/README.md b/node_modules/liftoff/README.md
deleted file mode 100644
index af830c4..0000000
--- a/node_modules/liftoff/README.md
+++ /dev/null
@@ -1,535 +0,0 @@
-
-
-
-
-
-
-# liftoff [![Build Status](http://img.shields.io/travis/js-cli/js-liftoff.svg?label=travis-ci)](http://travis-ci.org/js-cli/js-liftoff) [![Build status](https://img.shields.io/appveyor/ci/phated/js-liftoff.svg?label=appveyor)](https://ci.appveyor.com/project/phated/js-liftoff)
-
-
-> Launch your command line tool with ease.
-
-[![NPM](https://nodei.co/npm/liftoff.png)](https://nodei.co/npm/liftoff/)
-
-## What is it?
-[See this blog post](http://weblog.bocoup.com/building-command-line-tools-in-node-with-liftoff/), [check out this proof of concept](https://github.com/js-cli/js-hacker), or read on.
-
-Say you're writing a CLI tool. Let's call it [hacker](https://github.com/js-cli/js-hacker). You want to configure it using a `Hackerfile`. This is node, so you install `hacker` locally for each project you use it in. But, in order to get the `hacker` command in your PATH, you also install it globally.
-
-Now, when you run `hacker`, you want to configure what it does using the `Hackerfile` in your current directory, and you want it to execute using the local installation of your tool. Also, it'd be nice if the `hacker` command was smart enough to traverse up your folders until it finds a `Hackerfile`—for those times when you're not in the root directory of your project. Heck, you might even want to launch `hacker` from a folder outside of your project by manually specifying a working directory. Liftoff manages this for you.
-
-So, everything is working great. Now you can find your local `hacker` and `Hackerfile` with ease. Unfortunately, it turns out you've authored your `Hackerfile` in coffee-script, or some other JS variant. In order to support *that*, you have to load the compiler for it, and then register the extension for it with node. Good news, Liftoff can do that, and a whole lot more, too.
-
-## API
-
-### constructor(opts)
-
-Create an instance of Liftoff to invoke your application.
-
-An example utilizing all options:
-```js
-const Hacker = new Liftoff({
- name: 'hacker',
- processTitle: 'hacker',
- moduleName: 'hacker',
- configName: 'hackerfile',
- extensions: {
- '.js': null,
- '.json': null,
- '.coffee': 'coffee-script/register'
- },
- v8flags: ['--harmony'] // or v8flags: require('v8flags')
-});
-```
-
-#### opts.name
-
-Sugar for setting `processTitle`, `moduleName`, `configName` automatically.
-
-Type: `String`
-Default: `null`
-
-These are equivalent:
-```js
-const Hacker = Liftoff({
- processTitle: 'hacker',
- moduleName: 'hacker',
- configName: 'hackerfile'
-});
-```
-```js
-const Hacker = Liftoff({name:'hacker'});
-```
-
-#### opts.moduleName
-
-Sets which module your application expects to find locally when being run.
-
-Type: `String`
-Default: `null`
-
-#### opts.configName
-
-Sets the name of the configuration file Liftoff will attempt to find. Case-insensitive.
-
-Type: `String`
-Default: `null`
-
-#### opts.extensions
-
-Set extensions to include when searching for a configuration file. If an external module is needed to load a given extension (e.g. `.coffee`), the module name should be specified as the value for the key.
-
-Type: `Object`
-Default: `{".js":null,".json":null}`
-
-**Examples:**
-
-In this example Liftoff will look for `myappfile{.js,.json,.coffee}`. If a config with the extension `.coffee` is found, Liftoff will try to require `coffee-script/require` from the current working directory.
-```js
-const MyApp = new Liftoff({
- name: 'myapp',
- extensions: {
- '.js': null,
- '.json': null,
- '.coffee': 'coffee-script/register'
- }
-});
-```
-
-In this example, Liftoff will look for `.myapp{rc}`.
-```js
-const MyApp = new Liftoff({
- name: 'myapp',
- configName: '.myapp',
- extensions: {
- 'rc': null
- }
-});
-```
-
-In this example, Liftoff will automatically attempt to load the correct module for any javascript variant supported by [interpret](https://github.com/js-cli/js-interpret) (as long as it does not require a register method).
-
-```js
-const MyApp = new Liftoff({
- name: 'myapp',
- extensions: require('interpret').jsVariants
-});
-```
-#### opts.v8flags
-
-Any flag specified here will be applied to node, not your program. Useful for supporting invocations like `myapp --harmony command`, where `--harmony` should be passed to node, not your program. This functionality is implemented using [flagged-respawn](http://github.com/js-cli/js-flagged-respawn). To support all v8flags, see [v8flags](https://github.com/js-cli/js-v8flags).
-
-Type: `Array|Function`
-Default: `null`
-
-If this method is a function, it should take a node-style callback that yields an array of flags.
-
-#### opts.processTitle
-
-Sets what the [process title](http://nodejs.org/api/process.html#process_process_title) will be.
-
-Type: `String`
-Default: `null`
-
-#### opts.completions(type)
-
-A method to handle bash/zsh/whatever completions.
-
-Type: `Function`
-Default: `null`
-
-#### opts.configFiles
-
-An object of configuration files to find. Each property is keyed by the default basename of the file being found, and the value is an object of [path arguments](#path-arguments) keyed by unique names.
-
-__Note:__ This option is useful if, for example, you want to support an `.apprc` file in addition to an `appfile.js`. If you only need a single configuration file, you probably don't need this. In addition to letting you find multiple files, this option allows more fine-grained control over how configuration files are located.
-
-Type: `Object`
-Default: `null`
-
-#### Path arguments
-
-The [`fined`](https://github.com/js-cli/fined) module accepts a string representing the path to search or an object with the following keys:
-
-* `path` __(required)__
-
- The path to search. Using only a string expands to this property.
-
- Type: `String`
- Default: `null`
-
-* `name`
-
- The basename of the file to find. Extensions are appended during lookup.
-
- Type: `String`
- Default: Top-level key in `configFiles`
-
-* `extensions`
-
- The extensions to append to `name` during lookup. See also: [`opts.extensions`](#optsextensions).
-
- Type: `String|Array|Object`
- Default: The value of [`opts.extensions`](#optsextensions)
-
-* `cwd`
-
- The base directory of `path` (if relative).
-
- Type: `String`
- Default: The value of [`opts.cwd`](#optscwd)
-
-* `findUp`
-
- Whether the `path` should be traversed up to find the file.
-
- Type: `Boolean`
- Default: `false`
-
-**Examples:**
-
-In this example Liftoff will look for the `.hacker.js` file relative to the `cwd` as declared in `configFiles`.
-```js
-const MyApp = new Liftoff({
- name: 'hacker',
- configFiles: {
- '.hacker': {
- cwd: '.'
- }
- }
-});
-```
-
-In this example, Liftoff will look for `.hackerrc` in the home directory.
-```js
-const MyApp = new Liftoff({
- name: 'hacker',
- configFiles: {
- '.hacker': {
- home: {
- path: '~',
- extensions: {
- 'rc': null
- }
- }
- }
- }
-});
-```
-
-In this example, Liftoff will look in the `cwd` and then lookup the tree for the `.hacker.js` file.
-```js
-const MyApp = new Liftoff({
- name: 'hacker',
- configFiles: {
- '.hacker': {
- up: {
- path: '.',
- findUp: true
- }
- }
- }
-});
-```
-
-In this example, the `name` is overridden and the key is ignored so Liftoff looks for `.override.js`.
-```js
-const MyApp = new Liftoff({
- name: 'hacker',
- configFiles: {
- hacker: {
- override: {
- path: '.',
- name: '.override'
- }
- }
- }
-});
-```
-
-In this example, Liftoff will use the home directory as the `cwd` and looks for `~/.hacker.js`.
-```js
-const MyApp = new Liftoff({
- name: 'hacker',
- configFiles: {
- '.hacker': {
- home: {
- path: '.',
- cwd: '~'
- }
- }
- }
-});
-```
-
-### prepare(opts, callback(env))
-
-Prepares the environment for your application with provided options, and invokes your callback with the calculated environment as the first argument. The environment can be modified before using it as the first argument to `execute`.
-
-**Example Configuration w/ Options Parsing:**
-
-```js
-const Liftoff = require('liftoff');
-const MyApp = new Liftoff({name:'myapp'});
-const argv = require('minimist')(process.argv.slice(2));
-const onExecute = function (env, argv) {
- // Do post-execute things
-};
-const onPrepare = function (env) {
- console.log('my environment is:', env);
- console.log('my liftoff config is:', this);
- MyApp.execute(env, onExecute);
-};
-MyApp.prepare({
- cwd: argv.cwd,
- configPath: argv.myappfile,
- require: argv.require,
- completion: argv.completion
-}, onPrepare);
-```
-
-**Example w/ modified environment**
-
-```js
-const Liftoff = require('liftoff');
-const Hacker = new Liftoff({
- name: 'hacker',
- configFiles: {
- '.hacker': {
- home: { path: '.', cwd: '~' }
- }
- }
-});
-const onExecute = function (env, argv) {
- // Do post-execute things
-};
-const onPrepare = function (env) {
- env.configProps = ['home', 'cwd'].map(function(dirname) {
- return env.configFiles['.hacker'][dirname]
- }).filter(function(filePath) {
- return Boolean(filePath);
- }).reduce(function(config, filePath) {
- return mergeDeep(config, require(filePath));
- }, {});
-
- if (env.configProps.hackerfile) {
- env.configPath = path.resolve(env.configProps.hackerfile);
- env.configBase = path.dirname(env.configPath);
- }
-
- Hacker.execute(env, onExecute);
-};
-Hacker.prepare({}, onPrepare);
-```
-
-#### opts.cwd
-
-Change the current working directory for this launch. Relative paths are calculated against `process.cwd()`.
-
-Type: `String`
-Default: `process.cwd()`
-
-**Example Configuration:**
-```js
-const argv = require('minimist')(process.argv.slice(2));
-MyApp.launch({
- cwd: argv.cwd
-}, invoke);
-```
-
-**Matching CLI Invocation:**
-```
-myapp --cwd ../
-```
-
-#### opts.configPath
-
-Don't search for a config, use the one provided. **Note:** Liftoff will assume the current working directory is the directory containing the config file unless an alternate location is explicitly specified using `cwd`.
-
-Type: `String`
-Default: `null`
-
-**Example Configuration:**
-```js
-var argv = require('minimist')(process.argv.slice(2));
-MyApp.launch({
- configPath: argv.myappfile
-}, invoke);
-```
-
-**Matching CLI Invocation:**
-```
-myapp --myappfile /var/www/project/Myappfile.js
-```
-
-**Examples using `cwd` and `configPath` together:**
-
-These are functionally identical:
-```
-myapp --myappfile /var/www/project/Myappfile.js
-myapp --cwd /var/www/project
-```
-
-These can run myapp from a shared directory as though it were located in another project:
-```
-myapp --myappfile /Users/name/Myappfile.js --cwd /var/www/project1
-myapp --myappfile /Users/name/Myappfile.js --cwd /var/www/project2
-```
-
-#### opts.require
-
-A string or array of modules to attempt requiring from the local working directory before invoking the launch callback.
-
-Type: `String|Array`
-Default: `null`
-
-**Example Configuration:**
-```js
-var argv = require('minimist')(process.argv.slice(2));
-MyApp.launch({
- require: argv.require
-}, invoke);
-```
-
-**Matching CLI Invocation:**
-```js
-myapp --require coffee-script/register
-```
-
-#### callback(env)
-
-A function called after your environment is prepared. A good place to modify the environment before calling `execute`. When invoked, `this` will be your instance of Liftoff. The `env` param will contain the following keys:
-
-- `cwd`: the current working directory
-- `require`: an array of modules that liftoff tried to pre-load
-- `configNameSearch`: the config files searched for
-- `configPath`: the full path to your configuration file (if found)
-- `configBase`: the base directory of your configuration file (if found)
-- `modulePath`: the full path to the local module your project relies on (if found)
-- `modulePackage`: the contents of the local module's package.json (if found)
-- `configFiles`: an object of filepaths for each found config file (filepath values will be null if not found)
-
-### execute(env, [forcedFlags], callback(env, argv))
-
-A function to start your application, based on the `env` given. Optionally takes an array of `forcedFlags`, which will force a respawn with those node or V8 flags during startup. Invokes your callback with the environment and command-line arguments (minus node & v8 flags) after the application has been executed.
-
-**Example:**
-
-```js
-const Liftoff = require('liftoff');
-const MyApp = new Liftoff({name:'myapp'});
-const onExecute = function (env, argv) {
- // Do post-execute things
- console.log('my environment is:', env);
- console.log('my cli options are:', argv);
- console.log('my liftoff config is:', this);
-};
-const onPrepare = function (env) {
- var forcedFlags = ['--trace-deprecation'];
- MyApp.execute(env, forcedFlags, onExecute);
-};
-MyApp.prepare({}, onPrepare);
-```
-
-#### callback(env, argv)
-
-A function called after your application is executed. When invoked, `this` will be your instance of Liftoff, `argv` will be all command-line arguments (minus node & v8 flags), and `env` will contain the following keys:
-
-- `cwd`: the current working directory
-- `require`: an array of modules that liftoff tried to pre-load
-- `configNameSearch`: the config files searched for
-- `configPath`: the full path to your configuration file (if found)
-- `configBase`: the base directory of your configuration file (if found)
-- `modulePath`: the full path to the local module your project relies on (if found)
-- `modulePackage`: the contents of the local module's package.json (if found)
-- `configFiles`: an object of filepaths for each found config file (filepath values will be null if not found)
-
-### launch(opts, callback(env, argv))
-
-**Deprecated:** Please use `prepare` followed by `execute`. That's all this module does internally but those give you more control.
-
-Launches your application with provided options, builds an environment, and invokes your callback, passing the calculated environment and command-line arguments (minus node & v8 flags) as the arguments.
-
-Accepts any options that `prepare` allows, plus `opt.forcedFlags`.
-
-#### opts.forcedFlags
-
-**Deprecated:** If using `prepare`/`execute`, pass forcedFlags as the 2nd argument instead of using this option.
-
-Allows you to force node or V8 flags during the launch. This is useful if you need to make sure certain flags will always be enabled or if you need to enable flags that don't show up in `opts.v8flags` (as these flags aren't validated against `opts.v8flags`).
-
-If this is specified as a function, it will receive the built `env` as its only argument and must return a string or array of flags to force.
-
-Type: `String|Array|Function`
-Default: `null`
-
-**Example Configuration:**
-```js
-MyApp.launch({
- forcedFlags: ['--trace-deprecation']
-}, invoke);
-```
-
-**Matching CLI Invocation:**
-```js
-myapp --trace-deprecation
-```
-
-### events
-
-#### require(name, module)
-
-Emitted when a module is pre-loaded.
-
-```js
-var Hacker = new Liftoff({name:'hacker'});
-Hacker.on('require', function (name, module) {
- console.log('Requiring external module: '+name+'...');
- // automatically register coffee-script extensions
- if (name === 'coffee-script') {
- module.register();
- }
-});
-```
-
-#### requireFail(name, err)
-
-Emitted when a requested module cannot be preloaded.
-
-```js
-var Hacker = new Liftoff({name:'hacker'});
-Hacker.on('requireFail', function (name, err) {
- console.log('Unable to load:', name, err);
-});
-```
-
-#### respawn(flags, child)
-
-Emitted when Liftoff re-spawns your process (when a [`v8flags`](#optsv8flags) is detected).
-
-```js
-var Hacker = new Liftoff({
- name: 'hacker',
- v8flags: ['--harmony']
-});
-Hacker.on('respawn', function (flags, child) {
- console.log('Detected node flags:', flags);
- console.log('Respawned to PID:', child.pid);
-});
-```
-
-Event will be triggered for this command:
-`hacker --harmony commmand`
-
-## Examples
-
-Check out how [gulp](https://github.com/gulpjs/gulp-cli/blob/master/index.js) uses Liftoff.
-
-For a bare-bones example, try [the hacker project](https://github.com/js-cli/js-hacker/blob/master/bin/hacker.js).
-
-To try the example, do the following:
-
-1. Install the sample project `hacker` with `npm install -g hacker`.
-2. Make a `Hackerfile.js` with some arbitrary javascript it.
-3. Install hacker next to it with `npm install hacker`.
-3. Run `hacker` while in the same parent folder.
diff --git a/node_modules/liftoff/index.js b/node_modules/liftoff/index.js
deleted file mode 100644
index 9330c92..0000000
--- a/node_modules/liftoff/index.js
+++ /dev/null
@@ -1,231 +0,0 @@
-var util = require('util');
-var path = require('path');
-var EE = require('events').EventEmitter;
-
-var extend = require('extend');
-var resolve = require('resolve');
-var flaggedRespawn = require('flagged-respawn');
-var isPlainObject = require('is-plain-object');
-var mapValues = require('object.map');
-var fined = require('fined');
-
-var findCwd = require('./lib/find_cwd');
-var findConfig = require('./lib/find_config');
-var fileSearch = require('./lib/file_search');
-var parseOptions = require('./lib/parse_options');
-var silentRequire = require('./lib/silent_require');
-var buildConfigName = require('./lib/build_config_name');
-var registerLoader = require('./lib/register_loader');
-var getNodeFlags = require('./lib/get_node_flags');
-
-function Liftoff(opts) {
- EE.call(this);
- extend(this, parseOptions(opts));
-}
-util.inherits(Liftoff, EE);
-
-Liftoff.prototype.requireLocal = function(module, basedir) {
- try {
- var result = require(resolve.sync(module, { basedir: basedir }));
- this.emit('require', module, result);
- return result;
- } catch (e) {
- this.emit('requireFail', module, e);
- }
-};
-
-Liftoff.prototype.buildEnvironment = function(opts) {
- opts = opts || {};
-
- // get modules we want to preload
- var preload = opts.require || [];
-
- // ensure items to preload is an array
- if (!Array.isArray(preload)) {
- preload = [preload];
- }
-
- // make a copy of search paths that can be mutated for this run
- var searchPaths = this.searchPaths.slice();
-
- // calculate current cwd
- var cwd = findCwd(opts);
-
- // if cwd was provided explicitly, only use it for searching config
- if (opts.cwd) {
- searchPaths = [cwd];
- } else {
- // otherwise just search in cwd first
- searchPaths.unshift(cwd);
- }
-
- // calculate the regex to use for finding the config file
- var configNameSearch = buildConfigName({
- configName: this.configName,
- extensions: Object.keys(this.extensions),
- });
-
- // calculate configPath
- var configPath = findConfig({
- configNameSearch: configNameSearch,
- searchPaths: searchPaths,
- configPath: opts.configPath,
- });
-
- // if we have a config path, save the directory it resides in.
- var configBase;
- if (configPath) {
- configBase = path.dirname(configPath);
- // if cwd wasn't provided explicitly, it should match configBase
- if (!opts.cwd) {
- cwd = configBase;
- }
- }
-
- // TODO: break this out into lib/
- // locate local module and package next to config or explicitly provided cwd
- /* eslint one-var: 0 */
- var modulePath, modulePackage;
- try {
- var delim = path.delimiter;
- var paths = (process.env.NODE_PATH ? process.env.NODE_PATH.split(delim) : []);
- modulePath = resolve.sync(this.moduleName, { basedir: configBase || cwd, paths: paths });
- modulePackage = silentRequire(fileSearch('package.json', [modulePath]));
- } catch (e) {}
-
- // if we have a configuration but we failed to find a local module, maybe
- // we are developing against ourselves?
- if (!modulePath && configPath) {
- // check the package.json sibling to our config to see if its `name`
- // matches the module we're looking for
- var modulePackagePath = fileSearch('package.json', [configBase]);
- modulePackage = silentRequire(modulePackagePath);
- if (modulePackage && modulePackage.name === this.moduleName) {
- // if it does, our module path is `main` inside package.json
- modulePath = path.join(path.dirname(modulePackagePath), modulePackage.main || 'index.js');
- cwd = configBase;
- } else {
- // clear if we just required a package for some other project
- modulePackage = {};
- }
- }
-
- var exts = this.extensions;
- var eventEmitter = this;
-
- var configFiles = {};
- if (isPlainObject(this.configFiles)) {
- var notfound = { path: null };
- configFiles = mapValues(this.configFiles, function(prop, name) {
- var defaultObj = { name: name, cwd: cwd, extensions: exts };
- return mapValues(prop, function(pathObj) {
- var found = fined(pathObj, defaultObj) || notfound;
- if (isPlainObject(found.extension)) {
- registerLoader(eventEmitter, found.extension, found.path, cwd);
- }
- return found.path;
- });
- });
- }
-
- return {
- cwd: cwd,
- require: preload,
- configNameSearch: configNameSearch,
- configPath: configPath,
- configBase: configBase,
- modulePath: modulePath,
- modulePackage: modulePackage || {},
- configFiles: configFiles,
- };
-};
-
-Liftoff.prototype.handleFlags = function(cb) {
- if (typeof this.v8flags === 'function') {
- this.v8flags(function(err, flags) {
- if (err) {
- cb(err);
- } else {
- cb(null, flags);
- }
- });
- } else {
- process.nextTick(function() {
- cb(null, this.v8flags);
- }.bind(this));
- }
-};
-
-Liftoff.prototype.prepare = function(opts, fn) {
- if (typeof fn !== 'function') {
- throw new Error('You must provide a callback function.');
- }
-
- process.title = this.processTitle;
-
- var completion = opts.completion;
- if (completion && this.completions) {
- return this.completions(completion);
- }
-
- var env = this.buildEnvironment(opts);
-
- fn.call(this, env);
-};
-
-Liftoff.prototype.execute = function(env, forcedFlags, fn) {
- if (typeof forcedFlags === 'function') {
- fn = forcedFlags;
- forcedFlags = undefined;
- }
- if (typeof fn !== 'function') {
- throw new Error('You must provide a callback function.');
- }
-
- this.handleFlags(function(err, flags) {
- if (err) {
- throw err;
- }
- flags = flags || [];
-
- flaggedRespawn(flags, process.argv, forcedFlags, execute.bind(this));
-
- function execute(ready, child, argv) {
- if (child !== process) {
- var execArgv = getNodeFlags.fromReorderedArgv(argv);
- this.emit('respawn', execArgv, child);
- }
- if (ready) {
- preloadModules(this, env);
- registerLoader(this, this.extensions, env.configPath, env.cwd);
- fn.call(this, env, argv);
- }
- }
- }.bind(this));
-};
-
-Liftoff.prototype.launch = function(opts, fn) {
- if (typeof fn !== 'function') {
- throw new Error('You must provide a callback function.');
- }
-
- var self = this;
-
- self.prepare(opts, function(env) {
- var forcedFlags = getNodeFlags.arrayOrFunction(opts.forcedFlags, env);
- self.execute(env, forcedFlags, fn);
- });
-};
-
-function preloadModules(inst, env) {
- var basedir = env.cwd;
- env.require.filter(toUnique).forEach(function(module) {
- inst.requireLocal(module, basedir);
- });
-}
-
-function toUnique(elem, index, array) {
- return array.indexOf(elem) === index;
-}
-
-module.exports = Liftoff;
diff --git a/node_modules/liftoff/lib/build_config_name.js b/node_modules/liftoff/lib/build_config_name.js
deleted file mode 100644
index 9005a36..0000000
--- a/node_modules/liftoff/lib/build_config_name.js
+++ /dev/null
@@ -1,17 +0,0 @@
-module.exports = function(opts) {
- opts = opts || {};
- var configName = opts.configName;
- var extensions = opts.extensions;
- if (!configName) {
- throw new Error('Please specify a configName.');
- }
- if (configName instanceof RegExp) {
- return [configName];
- }
- if (!Array.isArray(extensions)) {
- throw new Error('Please provide an array of valid extensions.');
- }
- return extensions.map(function(ext) {
- return configName + ext;
- });
-};
diff --git a/node_modules/liftoff/lib/file_search.js b/node_modules/liftoff/lib/file_search.js
deleted file mode 100644
index d95121d..0000000
--- a/node_modules/liftoff/lib/file_search.js
+++ /dev/null
@@ -1,14 +0,0 @@
-var findup = require('findup-sync');
-
-module.exports = function(search, paths) {
- var path;
- var len = paths.length;
- for (var i = 0; i < len; i++) {
- if (path) {
- break;
- } else {
- path = findup(search, { cwd: paths[i], nocase: true });
- }
- }
- return path;
-};
diff --git a/node_modules/liftoff/lib/find_config.js b/node_modules/liftoff/lib/find_config.js
deleted file mode 100644
index c55a677..0000000
--- a/node_modules/liftoff/lib/find_config.js
+++ /dev/null
@@ -1,25 +0,0 @@
-var fs = require('fs');
-var path = require('path');
-var fileSearch = require('./file_search');
-
-module.exports = function(opts) {
- opts = opts || {};
- var configNameSearch = opts.configNameSearch;
- var configPath = opts.configPath;
- var searchPaths = opts.searchPaths;
- // only search for a config if a path to one wasn't explicitly provided
- if (!configPath) {
- if (!Array.isArray(searchPaths)) {
- throw new Error('Please provide an array of paths to search for config in.');
- }
- if (!configNameSearch) {
- throw new Error('Please provide a configNameSearch.');
- }
- configPath = fileSearch(configNameSearch, searchPaths);
- }
- // confirm the configPath exists and return an absolute path to it
- if (fs.existsSync(configPath)) {
- return path.resolve(configPath);
- }
- return null;
-};
diff --git a/node_modules/liftoff/lib/find_cwd.js b/node_modules/liftoff/lib/find_cwd.js
deleted file mode 100644
index 89ffaba..0000000
--- a/node_modules/liftoff/lib/find_cwd.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var path = require('path');
-
-module.exports = function(opts) {
- if (!opts) {
- opts = {};
- }
- var cwd = opts.cwd;
- var configPath = opts.configPath;
- // if a path to the desired config was specified
- // but no cwd was provided, use configPath dir
- if (typeof configPath === 'string' && !cwd) {
- cwd = path.dirname(path.resolve(configPath));
- }
- if (typeof cwd === 'string') {
- return path.resolve(cwd);
- }
- return process.cwd();
-};
diff --git a/node_modules/liftoff/lib/get_node_flags.js b/node_modules/liftoff/lib/get_node_flags.js
deleted file mode 100644
index c58165e..0000000
--- a/node_modules/liftoff/lib/get_node_flags.js
+++ /dev/null
@@ -1,30 +0,0 @@
-function arrayOrFunction(arrayOrFunc, env) {
- if (typeof arrayOrFunc === 'function') {
- return arrayOrFunc.call(this, env);
- }
- if (Array.isArray(arrayOrFunc)) {
- return arrayOrFunc;
- }
- if (typeof arrayOrFunc === 'string') {
- return [arrayOrFunc];
- }
- return [];
-}
-
-function fromReorderedArgv(reorderedArgv) {
- var nodeFlags = [];
- for (var i = 1, n = reorderedArgv.length; i < n; i++) {
- var arg = reorderedArgv[i];
- if (!/^-/.test(arg) || arg === '--') {
- break;
- }
- nodeFlags.push(arg);
- }
- return nodeFlags;
-}
-
-module.exports = {
- arrayOrFunction: arrayOrFunction,
- fromReorderedArgv: fromReorderedArgv,
-};
-
diff --git a/node_modules/liftoff/lib/parse_options.js b/node_modules/liftoff/lib/parse_options.js
deleted file mode 100644
index a478bdd..0000000
--- a/node_modules/liftoff/lib/parse_options.js
+++ /dev/null
@@ -1,35 +0,0 @@
-var extend = require('extend');
-
-module.exports = function(opts) {
- var defaults = {
- extensions: {
- '.js': null,
- '.json': null,
- },
- searchPaths: [],
- };
- if (!opts) {
- opts = {};
- }
- if (opts.name) {
- if (!opts.processTitle) {
- opts.processTitle = opts.name;
- }
- if (!opts.configName) {
- opts.configName = opts.name + 'file';
- }
- if (!opts.moduleName) {
- opts.moduleName = opts.name;
- }
- }
- if (!opts.processTitle) {
- throw new Error('You must specify a processTitle.');
- }
- if (!opts.configName) {
- throw new Error('You must specify a configName.');
- }
- if (!opts.moduleName) {
- throw new Error('You must specify a moduleName.');
- }
- return extend(defaults, opts);
-};
diff --git a/node_modules/liftoff/lib/register_loader.js b/node_modules/liftoff/lib/register_loader.js
deleted file mode 100644
index a7dfb6e..0000000
--- a/node_modules/liftoff/lib/register_loader.js
+++ /dev/null
@@ -1,24 +0,0 @@
-var rechoir = require('rechoir');
-
-module.exports = function(eventEmitter, extensions, configPath, cwd) {
- extensions = extensions || {};
-
- if (typeof configPath !== 'string') {
- return;
- }
-
- var autoloads = rechoir.prepare(extensions, configPath, cwd, true);
- if (autoloads instanceof Error) { // Only errors
- autoloads.failures.forEach(function(failed) {
- eventEmitter.emit('requireFail', failed.moduleName, failed.error);
- });
- return;
- }
-
- if (!Array.isArray(autoloads)) { // Already required or no config.
- return;
- }
-
- var succeeded = autoloads[autoloads.length - 1];
- eventEmitter.emit('require', succeeded.moduleName, succeeded.module);
-};
diff --git a/node_modules/liftoff/lib/silent_require.js b/node_modules/liftoff/lib/silent_require.js
deleted file mode 100644
index 68c4864..0000000
--- a/node_modules/liftoff/lib/silent_require.js
+++ /dev/null
@@ -1,5 +0,0 @@
-module.exports = function(path) {
- try {
- return require(path);
- } catch (e) {}
-};
diff --git a/node_modules/liftoff/node_modules/is-plain-object/LICENSE b/node_modules/liftoff/node_modules/is-plain-object/LICENSE
deleted file mode 100644
index 3f2eca1..0000000
--- a/node_modules/liftoff/node_modules/is-plain-object/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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/liftoff/node_modules/is-plain-object/README.md b/node_modules/liftoff/node_modules/is-plain-object/README.md
deleted file mode 100644
index 1f9d0c8..0000000
--- a/node_modules/liftoff/node_modules/is-plain-object/README.md
+++ /dev/null
@@ -1,104 +0,0 @@
-# is-plain-object [![NPM version](https://img.shields.io/npm/v/is-plain-object.svg?style=flat)](https://www.npmjs.com/package/is-plain-object) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-plain-object.svg?style=flat)](https://npmjs.org/package/is-plain-object) [![NPM total downloads](https://img.shields.io/npm/dt/is-plain-object.svg?style=flat)](https://npmjs.org/package/is-plain-object) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-plain-object.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-plain-object)
-
-> Returns true if an object was created by the `Object` constructor.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save is-plain-object
-```
-
-Use [isobject](https://github.com/jonschlinkert/isobject) if you only want to check if the value is an object and not an array or null.
-
-## Usage
-
-```js
-var isPlainObject = require('is-plain-object');
-```
-
-**true** when created by the `Object` constructor.
-
-```js
-isPlainObject(Object.create({}));
-//=> true
-isPlainObject(Object.create(Object.prototype));
-//=> true
-isPlainObject({foo: 'bar'});
-//=> true
-isPlainObject({});
-//=> true
-```
-
-**false** when not created by the `Object` constructor.
-
-```js
-isPlainObject(1);
-//=> false
-isPlainObject(['foo', 'bar']);
-//=> false
-isPlainObject([]);
-//=> false
-isPlainObject(new Foo);
-//=> false
-isPlainObject(null);
-//=> false
-isPlainObject(Object.create(null));
-//=> false
-```
-
-## About
-
-### Related projects
-
-* [is-number](https://www.npmjs.com/package/is-number): Returns true if the value is a number. comprehensive tests. | [homepage](https://github.com/jonschlinkert/is-number "Returns true if the value is a number. comprehensive tests.")
-* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.")
-* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 17 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 6 | [stevenvachon](https://github.com/stevenvachon) |
-| 3 | [onokumus](https://github.com/onokumus) |
-| 1 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) |
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on July 11, 2017._
\ No newline at end of file
diff --git a/node_modules/liftoff/node_modules/is-plain-object/index.d.ts b/node_modules/liftoff/node_modules/is-plain-object/index.d.ts
deleted file mode 100644
index 74a44e9..0000000
--- a/node_modules/liftoff/node_modules/is-plain-object/index.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export = isPlainObject;
-
-declare function isPlainObject(o: any): boolean;
-
-declare namespace isPlainObject {}
diff --git a/node_modules/liftoff/node_modules/is-plain-object/index.js b/node_modules/liftoff/node_modules/is-plain-object/index.js
deleted file mode 100644
index c328484..0000000
--- a/node_modules/liftoff/node_modules/is-plain-object/index.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/*!
- * is-plain-object
- *
- * Copyright (c) 2014-2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-var isObject = require('isobject');
-
-function isObjectObject(o) {
- return isObject(o) === true
- && Object.prototype.toString.call(o) === '[object Object]';
-}
-
-module.exports = function isPlainObject(o) {
- var ctor,prot;
-
- if (isObjectObject(o) === false) return false;
-
- // If has modified constructor
- ctor = o.constructor;
- if (typeof ctor !== 'function') return false;
-
- // If has modified prototype
- prot = ctor.prototype;
- if (isObjectObject(prot) === false) return false;
-
- // If constructor does not have an Object-specific method
- if (prot.hasOwnProperty('isPrototypeOf') === false) {
- return false;
- }
-
- // Most likely a plain Object
- return true;
-};
diff --git a/node_modules/liftoff/node_modules/is-plain-object/package.json b/node_modules/liftoff/node_modules/is-plain-object/package.json
deleted file mode 100644
index dd60498..0000000
--- a/node_modules/liftoff/node_modules/is-plain-object/package.json
+++ /dev/null
@@ -1,79 +0,0 @@
-{
- "name": "is-plain-object",
- "description": "Returns true if an object was created by the `Object` constructor.",
- "version": "2.0.4",
- "homepage": "https://github.com/jonschlinkert/is-plain-object",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Osman Nuri Okumuş (http://onokumus.com)",
- "Steven Vachon (https://svachon.com)",
- "(https://github.com/wtgtybhertgeghgtwtg)"
- ],
- "repository": "jonschlinkert/is-plain-object",
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-plain-object/issues"
- },
- "license": "MIT",
- "files": [
- "index.d.ts",
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "browserify": "browserify index.js --standalone isPlainObject | uglifyjs --compress --mangle -o browser/is-plain-object.js",
- "test_browser": "mocha-phantomjs test/browser.html",
- "test_node": "mocha",
- "test": "npm run test_node && npm run browserify && npm run test_browser"
- },
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "devDependencies": {
- "browserify": "^14.4.0",
- "chai": "^4.0.2",
- "gulp-format-md": "^1.0.0",
- "mocha": "^3.4.2",
- "mocha-phantomjs": "^4.1.0",
- "phantomjs": "^2.1.7",
- "uglify-js": "^3.0.24"
- },
- "keywords": [
- "check",
- "is",
- "is-object",
- "isobject",
- "javascript",
- "kind",
- "kind-of",
- "object",
- "plain",
- "type",
- "typeof",
- "value"
- ],
- "types": "index.d.ts",
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "is-number",
- "isobject",
- "kind-of"
- ]
- },
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/liftoff/package.json b/node_modules/liftoff/package.json
deleted file mode 100644
index 2391471..0000000
--- a/node_modules/liftoff/package.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
- "name": "liftoff",
- "version": "3.1.0",
- "description": "Launch your command line tool with ease.",
- "author": "Tyler Kellen (http://goingslowly.com/)",
- "contributors": [],
- "repository": "js-cli/js-liftoff",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- },
- "main": "index.js",
- "files": [
- "index.js",
- "lib",
- "LICENSE"
- ],
- "scripts": {
- "pretest": "eslint .",
- "test": "mocha -t 5000 -b -R spec test/index && npm run legacy-test",
- "legacy-test": "mocha -t 5000 -b -R spec test/launch",
- "cover": "nyc --reporter=lcov --reporter=text-summary npm test"
- },
- "dependencies": {
- "extend": "^3.0.0",
- "findup-sync": "^3.0.0",
- "fined": "^1.0.1",
- "flagged-respawn": "^1.0.0",
- "is-plain-object": "^2.0.4",
- "object.map": "^1.0.0",
- "rechoir": "^0.6.2",
- "resolve": "^1.1.7"
- },
- "devDependencies": {
- "chai": "^3.5.0",
- "coffeescript": "^1.10.0",
- "eslint": "^2.13.1",
- "eslint-config-gulp": "^3.0.1",
- "mocha": "^3.5.3",
- "nyc": "^13.3.0",
- "sinon": "~1.17.4"
- },
- "keywords": [
- "command line"
- ]
-}
diff --git a/node_modules/load-json-file/index.js b/node_modules/load-json-file/index.js
deleted file mode 100644
index 96d4d9f..0000000
--- a/node_modules/load-json-file/index.js
+++ /dev/null
@@ -1,21 +0,0 @@
-'use strict';
-var path = require('path');
-var fs = require('graceful-fs');
-var stripBom = require('strip-bom');
-var parseJson = require('parse-json');
-var Promise = require('pinkie-promise');
-var pify = require('pify');
-
-function parse(x, fp) {
- return parseJson(stripBom(x), path.relative(process.cwd(), fp));
-}
-
-module.exports = function (fp) {
- return pify(fs.readFile, Promise)(fp, 'utf8').then(function (data) {
- return parse(data, fp);
- });
-};
-
-module.exports.sync = function (fp) {
- return parse(fs.readFileSync(fp, 'utf8'), fp);
-};
diff --git a/node_modules/load-json-file/license b/node_modules/load-json-file/license
deleted file mode 100644
index 654d0bf..0000000
--- a/node_modules/load-json-file/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus (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/load-json-file/package.json b/node_modules/load-json-file/package.json
deleted file mode 100644
index b44c8a1..0000000
--- a/node_modules/load-json-file/package.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
- "name": "load-json-file",
- "version": "1.1.0",
- "description": "Read and parse a JSON file",
- "license": "MIT",
- "repository": "sindresorhus/load-json-file",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "files": [
- "index.js"
- ],
- "keywords": [
- "json",
- "read",
- "parse",
- "file",
- "fs",
- "graceful",
- "load"
- ],
- "dependencies": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^2.2.0",
- "pify": "^2.0.0",
- "pinkie-promise": "^2.0.0",
- "strip-bom": "^2.0.0"
- },
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "xo": {
- "ignores": [
- "test.js"
- ]
- }
-}
diff --git a/node_modules/load-json-file/readme.md b/node_modules/load-json-file/readme.md
deleted file mode 100644
index fa982b5..0000000
--- a/node_modules/load-json-file/readme.md
+++ /dev/null
@@ -1,45 +0,0 @@
-# load-json-file [![Build Status](https://travis-ci.org/sindresorhus/load-json-file.svg?branch=master)](https://travis-ci.org/sindresorhus/load-json-file)
-
-> Read and parse a JSON file
-
-[Strips UTF-8 BOM](https://github.com/sindresorhus/strip-bom), uses [`graceful-fs`](https://github.com/isaacs/node-graceful-fs), and throws more [helpful JSON errors](https://github.com/sindresorhus/parse-json).
-
-
-## Install
-
-```
-$ npm install --save load-json-file
-```
-
-
-## Usage
-
-```js
-const loadJsonFile = require('load-json-file');
-
-loadJsonFile('foo.json').then(json => {
- console.log(json);
- //=> {foo: true}
-});
-```
-
-
-## API
-
-### loadJsonFile(filepath)
-
-Returns a promise that resolves to the parsed JSON.
-
-### loadJsonFile.sync(filepath)
-
-Returns the parsed JSON.
-
-
-## Related
-
-- [write-json-file](https://github.com/sindresorhus/write-json-file) - Stringify and write JSON to a file atomically
-
-
-## License
-
-MIT © [Sindre Sorhus](http://sindresorhus.com)
diff --git a/node_modules/make-iterator/LICENSE b/node_modules/make-iterator/LICENSE
deleted file mode 100644
index d32ab44..0000000
--- a/node_modules/make-iterator/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-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/make-iterator/README.md b/node_modules/make-iterator/README.md
deleted file mode 100644
index 6eb2a5d..0000000
--- a/node_modules/make-iterator/README.md
+++ /dev/null
@@ -1,102 +0,0 @@
-# make-iterator [![NPM version](https://img.shields.io/npm/v/make-iterator.svg?style=flat)](https://www.npmjs.com/package/make-iterator) [![NPM monthly downloads](https://img.shields.io/npm/dm/make-iterator.svg?style=flat)](https://npmjs.org/package/make-iterator) [![NPM total downloads](https://img.shields.io/npm/dt/make-iterator.svg?style=flat)](https://npmjs.org/package/make-iterator) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/make-iterator.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/make-iterator)
-
-> Convert an argument into a valid iterator. Based on the `.makeIterator()` implementation in mout https://github.com/mout/mout.
-
-Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save make-iterator
-```
-
-Copyright (c) 2012, 2013 moutjs team and contributors (http://moutjs.com)
-
-## Usage
-
-```js
-var iterator = require('make-iterator');
-```
-
-**Regex**
-
-```js
-var arr = ['a', 'b', 'c', 'd', 'e', 'f'];
-var fn = iterator(/[a-c]/);
-console.log(arr.filter(fn));
-//=> ['a', 'b', 'c'];
-```
-
-**Objects**
-
-```js
-var fn = iterator({ a: 1, b: { c: 2 } });
-
-console.log(fn({ a: 1, b: { c: 2, d: 3 } }));
-//=> true
-console.log(fn({ a: 1, b: { c: 3 } }));
-//=> false
-```
-
-## About
-
-
-Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-
-
-
-Running Tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-
-
-
-Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-
-
-### Related projects
-
-You might also be interested in these projects:
-
-* [any](https://www.npmjs.com/package/any): Returns `true` if a value exists in the given string, array or object. | [homepage](https://github.com/jonschlinkert/any "Returns `true` if a value exists in the given string, array or object.")
-* [arr-filter](https://www.npmjs.com/package/arr-filter): Faster alternative to javascript's native filter method. | [homepage](https://github.com/jonschlinkert/arr-filter "Faster alternative to javascript's native filter method.")
-* [arr-map](https://www.npmjs.com/package/arr-map): Faster, node.js focused alternative to JavaScript's native array map. | [homepage](https://github.com/jonschlinkert/arr-map "Faster, node.js focused alternative to JavaScript's native array map.")
-* [array-every](https://www.npmjs.com/package/array-every): Returns true if the callback returns truthy for all elements in the given array. | [homepage](https://github.com/jonschlinkert/array-every "Returns true if the callback returns truthy for all elements in the given array.")
-* [collection-map](https://www.npmjs.com/package/collection-map): Returns an array of mapped values from an array or object. | [homepage](https://github.com/jonschlinkert/collection-map "Returns an array of mapped values from an array or object.")
-* [utils](https://www.npmjs.com/package/utils): Fast, generic JavaScript/node.js utility functions. | [homepage](https://github.com/jonschlinkert/utils "Fast, generic JavaScript/node.js utility functions.")
-
-### Author
-
-**Jon Schlinkert**
-
-* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert)
-* [GitHub Profile](https://github.com/jonschlinkert)
-* [Twitter Profile](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2018, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on April 08, 2018._
\ No newline at end of file
diff --git a/node_modules/make-iterator/index.js b/node_modules/make-iterator/index.js
deleted file mode 100644
index 15a00d0..0000000
--- a/node_modules/make-iterator/index.js
+++ /dev/null
@@ -1,99 +0,0 @@
-/*!
- * make-iterator
- *
- * Copyright (c) 2014-2018, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-var typeOf = require('kind-of');
-
-module.exports = function makeIterator(target, thisArg) {
- switch (typeOf(target)) {
- case 'undefined':
- case 'null':
- return noop;
- case 'function':
- // function is the first to improve perf (most common case)
- // also avoid using `Function#call` if not needed, which boosts
- // perf a lot in some cases
- return (typeof thisArg !== 'undefined') ? function(val, i, arr) {
- return target.call(thisArg, val, i, arr);
- } : target;
- case 'object':
- return function(val) {
- return deepMatches(val, target);
- };
- case 'regexp':
- return function(str) {
- return target.test(str);
- };
- case 'string':
- case 'number':
- default: {
- return prop(target);
- }
- }
-};
-
-function containsMatch(array, value) {
- var len = array.length;
- var i = -1;
-
- while (++i < len) {
- if (deepMatches(array[i], value)) {
- return true;
- }
- }
- return false;
-}
-
-function matchArray(arr, value) {
- var len = value.length;
- var i = -1;
-
- while (++i < len) {
- if (!containsMatch(arr, value[i])) {
- return false;
- }
- }
- return true;
-}
-
-function matchObject(obj, value) {
- for (var key in value) {
- if (value.hasOwnProperty(key)) {
- if (deepMatches(obj[key], value[key]) === false) {
- return false;
- }
- }
- }
- return true;
-}
-
-/**
- * Recursively compare objects
- */
-
-function deepMatches(val, value) {
- if (typeOf(val) === 'object') {
- if (Array.isArray(val) && Array.isArray(value)) {
- return matchArray(val, value);
- } else {
- return matchObject(val, value);
- }
- } else {
- return val === value;
- }
-}
-
-function prop(name) {
- return function(obj) {
- return obj[name];
- };
-}
-
-function noop(val) {
- return val;
-}
diff --git a/node_modules/make-iterator/node_modules/kind-of/CHANGELOG.md b/node_modules/make-iterator/node_modules/kind-of/CHANGELOG.md
deleted file mode 100644
index 01687d5..0000000
--- a/node_modules/make-iterator/node_modules/kind-of/CHANGELOG.md
+++ /dev/null
@@ -1,160 +0,0 @@
-# Release history
-
-All notable changes to this project will be documented in this file.
-
-The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
-and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
-
-
- Guiding Principles
-
-- Changelogs are for humans, not machines.
-- There should be an entry for every single version.
-- The same types of changes should be grouped.
-- Versions and sections should be linkable.
-- The latest version comes first.
-- The release date of each versions is displayed.
-- Mention whether you follow Semantic Versioning.
-
-
-
-
- Types of changes
-
-Changelog entries are classified using the following labels _(from [keep-a-changelog](http://keepachangelog.com/)_):
-
-- `Added` for new features.
-- `Changed` for changes in existing functionality.
-- `Deprecated` for soon-to-be removed features.
-- `Removed` for now removed features.
-- `Fixed` for any bug fixes.
-- `Security` in case of vulnerabilities.
-
-
-
-## [6.0.3] - 2020-01-16
-
-- Merge pull request #31 for issue #30
-
-## [6.0.0] - 2017-10-13
-
-- refactor code to be more performant
-- refactor benchmarks
-
-## [5.1.0] - 2017-10-13
-
-**Added**
-
-- Merge pull request #15 from aretecode/patch-1
-- adds support and tests for string & array iterators
-
-**Changed**
-
-- updates benchmarks
-
-## [5.0.2] - 2017-08-02
-
-- Merge pull request #14 from struct78/master
-- Added `undefined` check
-
-## [5.0.0] - 2017-06-21
-
-- Merge pull request #12 from aretecode/iterator
-- Set Iterator + Map Iterator
-- streamline `isbuffer`, minor edits
-
-## [4.0.0] - 2017-05-19
-
-- Merge pull request #8 from tunnckoCore/master
-- update deps
-
-## [3.2.2] - 2017-05-16
-
-- fix version
-
-## [3.2.1] - 2017-05-16
-
-- add browserify
-
-## [3.2.0] - 2017-04-25
-
-- Merge pull request #10 from ksheedlo/unrequire-buffer
-- add `promise` support and tests
-- Remove unnecessary `Buffer` check
-
-## [3.1.0] - 2016-12-07
-
-- Merge pull request #7 from laggingreflex/err
-- add support for `error` and tests
-- run update
-
-## [3.0.4] - 2016-07-29
-
-- move tests
-- run update
-
-## [3.0.3] - 2016-05-03
-
-- fix prepublish script
-- remove unused dep
-
-## [3.0.0] - 2015-11-17
-
-- add typed array support
-- Merge pull request #5 from miguelmota/typed-arrays
-- adds new tests
-
-## [2.0.1] - 2015-08-21
-
-- use `is-buffer` module
-
-## [2.0.0] - 2015-05-31
-
-- Create fallback for `Array.isArray` if used as a browser package
-- Merge pull request #2 from dtothefp/patch-1
-- Merge pull request #3 from pdehaan/patch-1
-- Merge branch 'master' of https://github.com/chorks/kind-of into chorks-master
-- optimizations, mostly date and regex
-
-## [1.1.0] - 2015-02-09
-
-- adds `buffer` support
-- adds tests for `buffer`
-
-## [1.0.0] - 2015-01-19
-
-- update benchmarks
-- optimizations based on benchmarks
-
-## [0.1.2] - 2014-10-26
-
-- return `typeof` value if it's not an object. very slight speed improvement
-- use `.slice`
-- adds benchmarks
-
-## [0.1.0] - 2014-9-26
-
-- first commit
-
-[6.0.0]: https://github.com/jonschlinkert/kind-of/compare/5.1.0...6.0.0
-[5.1.0]: https://github.com/jonschlinkert/kind-of/compare/5.0.2...5.1.0
-[5.0.2]: https://github.com/jonschlinkert/kind-of/compare/5.0.1...5.0.2
-[5.0.1]: https://github.com/jonschlinkert/kind-of/compare/5.0.0...5.0.1
-[5.0.0]: https://github.com/jonschlinkert/kind-of/compare/4.0.0...5.0.0
-[4.0.0]: https://github.com/jonschlinkert/kind-of/compare/3.2.2...4.0.0
-[3.2.2]: https://github.com/jonschlinkert/kind-of/compare/3.2.1...3.2.2
-[3.2.1]: https://github.com/jonschlinkert/kind-of/compare/3.2.0...3.2.1
-[3.2.0]: https://github.com/jonschlinkert/kind-of/compare/3.1.0...3.2.0
-[3.1.0]: https://github.com/jonschlinkert/kind-of/compare/3.0.4...3.1.0
-[3.0.4]: https://github.com/jonschlinkert/kind-of/compare/3.0.3...3.0.4
-[3.0.3]: https://github.com/jonschlinkert/kind-of/compare/3.0.0...3.0.3
-[3.0.0]: https://github.com/jonschlinkert/kind-of/compare/2.0.1...3.0.0
-[2.0.1]: https://github.com/jonschlinkert/kind-of/compare/2.0.0...2.0.1
-[2.0.0]: https://github.com/jonschlinkert/kind-of/compare/1.1.0...2.0.0
-[1.1.0]: https://github.com/jonschlinkert/kind-of/compare/1.0.0...1.1.0
-[1.0.0]: https://github.com/jonschlinkert/kind-of/compare/0.1.2...1.0.0
-[0.1.2]: https://github.com/jonschlinkert/kind-of/compare/0.1.0...0.1.2
-[0.1.0]: https://github.com/jonschlinkert/kind-of/commit/2fae09b0b19b1aadb558e9be39f0c3ef6034eb87
-
-[Unreleased]: https://github.com/jonschlinkert/kind-of/compare/0.1.2...HEAD
-[keep-a-changelog]: https://github.com/olivierlacan/keep-a-changelog
\ No newline at end of file
diff --git a/node_modules/make-iterator/node_modules/kind-of/LICENSE b/node_modules/make-iterator/node_modules/kind-of/LICENSE
deleted file mode 100644
index 3f2eca1..0000000
--- a/node_modules/make-iterator/node_modules/kind-of/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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/make-iterator/node_modules/kind-of/README.md b/node_modules/make-iterator/node_modules/kind-of/README.md
deleted file mode 100644
index 0411dc5..0000000
--- a/node_modules/make-iterator/node_modules/kind-of/README.md
+++ /dev/null
@@ -1,367 +0,0 @@
-# kind-of [![NPM version](https://img.shields.io/npm/v/kind-of.svg?style=flat)](https://www.npmjs.com/package/kind-of) [![NPM monthly downloads](https://img.shields.io/npm/dm/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![NPM total downloads](https://img.shields.io/npm/dt/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/kind-of.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/kind-of)
-
-> Get the native type of a value.
-
-Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save kind-of
-```
-
-Install with [bower](https://bower.io/)
-
-```sh
-$ bower install kind-of --save
-```
-
-## Why use this?
-
-1. [it's fast](#benchmarks) | [optimizations](#optimizations)
-2. [better type checking](#better-type-checking)
-
-## Usage
-
-> es5, es6, and browser ready
-
-```js
-var kindOf = require('kind-of');
-
-kindOf(undefined);
-//=> 'undefined'
-
-kindOf(null);
-//=> 'null'
-
-kindOf(true);
-//=> 'boolean'
-
-kindOf(false);
-//=> 'boolean'
-
-kindOf(new Buffer(''));
-//=> 'buffer'
-
-kindOf(42);
-//=> 'number'
-
-kindOf('str');
-//=> 'string'
-
-kindOf(arguments);
-//=> 'arguments'
-
-kindOf({});
-//=> 'object'
-
-kindOf(Object.create(null));
-//=> 'object'
-
-kindOf(new Test());
-//=> 'object'
-
-kindOf(new Date());
-//=> 'date'
-
-kindOf([1, 2, 3]);
-//=> 'array'
-
-kindOf(/foo/);
-//=> 'regexp'
-
-kindOf(new RegExp('foo'));
-//=> 'regexp'
-
-kindOf(new Error('error'));
-//=> 'error'
-
-kindOf(function () {});
-//=> 'function'
-
-kindOf(function * () {});
-//=> 'generatorfunction'
-
-kindOf(Symbol('str'));
-//=> 'symbol'
-
-kindOf(new Map());
-//=> 'map'
-
-kindOf(new WeakMap());
-//=> 'weakmap'
-
-kindOf(new Set());
-//=> 'set'
-
-kindOf(new WeakSet());
-//=> 'weakset'
-
-kindOf(new Int8Array());
-//=> 'int8array'
-
-kindOf(new Uint8Array());
-//=> 'uint8array'
-
-kindOf(new Uint8ClampedArray());
-//=> 'uint8clampedarray'
-
-kindOf(new Int16Array());
-//=> 'int16array'
-
-kindOf(new Uint16Array());
-//=> 'uint16array'
-
-kindOf(new Int32Array());
-//=> 'int32array'
-
-kindOf(new Uint32Array());
-//=> 'uint32array'
-
-kindOf(new Float32Array());
-//=> 'float32array'
-
-kindOf(new Float64Array());
-//=> 'float64array'
-```
-
-## Benchmarks
-
-Benchmarked against [typeof](http://github.com/CodingFu/typeof) and [type-of](https://github.com/ForbesLindesay/type-of).
-
-```bash
-# arguments (32 bytes)
- kind-of x 17,024,098 ops/sec ±1.90% (86 runs sampled)
- lib-type-of x 11,926,235 ops/sec ±1.34% (83 runs sampled)
- lib-typeof x 9,245,257 ops/sec ±1.22% (87 runs sampled)
-
- fastest is kind-of (by 161% avg)
-
-# array (22 bytes)
- kind-of x 17,196,492 ops/sec ±1.07% (88 runs sampled)
- lib-type-of x 8,838,283 ops/sec ±1.02% (87 runs sampled)
- lib-typeof x 8,677,848 ops/sec ±0.87% (87 runs sampled)
-
- fastest is kind-of (by 196% avg)
-
-# boolean (24 bytes)
- kind-of x 16,841,600 ops/sec ±1.10% (86 runs sampled)
- lib-type-of x 8,096,787 ops/sec ±0.95% (87 runs sampled)
- lib-typeof x 8,423,345 ops/sec ±1.15% (86 runs sampled)
-
- fastest is kind-of (by 204% avg)
-
-# buffer (38 bytes)
- kind-of x 14,848,060 ops/sec ±1.05% (86 runs sampled)
- lib-type-of x 3,671,577 ops/sec ±1.49% (87 runs sampled)
- lib-typeof x 8,360,236 ops/sec ±1.24% (86 runs sampled)
-
- fastest is kind-of (by 247% avg)
-
-# date (30 bytes)
- kind-of x 16,067,761 ops/sec ±1.58% (86 runs sampled)
- lib-type-of x 8,954,436 ops/sec ±1.40% (87 runs sampled)
- lib-typeof x 8,488,307 ops/sec ±1.51% (84 runs sampled)
-
- fastest is kind-of (by 184% avg)
-
-# error (36 bytes)
- kind-of x 9,634,090 ops/sec ±1.12% (89 runs sampled)
- lib-type-of x 7,735,624 ops/sec ±1.32% (86 runs sampled)
- lib-typeof x 7,442,160 ops/sec ±1.11% (90 runs sampled)
-
- fastest is kind-of (by 127% avg)
-
-# function (34 bytes)
- kind-of x 10,031,494 ops/sec ±1.27% (86 runs sampled)
- lib-type-of x 9,502,757 ops/sec ±1.17% (89 runs sampled)
- lib-typeof x 8,278,985 ops/sec ±1.08% (88 runs sampled)
-
- fastest is kind-of (by 113% avg)
-
-# null (24 bytes)
- kind-of x 18,159,808 ops/sec ±1.92% (86 runs sampled)
- lib-type-of x 12,927,635 ops/sec ±1.01% (88 runs sampled)
- lib-typeof x 7,958,234 ops/sec ±1.21% (89 runs sampled)
-
- fastest is kind-of (by 174% avg)
-
-# number (22 bytes)
- kind-of x 17,846,779 ops/sec ±0.91% (85 runs sampled)
- lib-type-of x 3,316,636 ops/sec ±1.19% (86 runs sampled)
- lib-typeof x 2,329,477 ops/sec ±2.21% (85 runs sampled)
-
- fastest is kind-of (by 632% avg)
-
-# object-plain (47 bytes)
- kind-of x 7,085,155 ops/sec ±1.05% (88 runs sampled)
- lib-type-of x 8,870,930 ops/sec ±1.06% (83 runs sampled)
- lib-typeof x 8,716,024 ops/sec ±1.05% (87 runs sampled)
-
- fastest is lib-type-of (by 112% avg)
-
-# regex (25 bytes)
- kind-of x 14,196,052 ops/sec ±1.65% (84 runs sampled)
- lib-type-of x 9,554,164 ops/sec ±1.25% (88 runs sampled)
- lib-typeof x 8,359,691 ops/sec ±1.07% (87 runs sampled)
-
- fastest is kind-of (by 158% avg)
-
-# string (33 bytes)
- kind-of x 16,131,428 ops/sec ±1.41% (85 runs sampled)
- lib-type-of x 7,273,172 ops/sec ±1.05% (87 runs sampled)
- lib-typeof x 7,382,635 ops/sec ±1.17% (85 runs sampled)
-
- fastest is kind-of (by 220% avg)
-
-# symbol (34 bytes)
- kind-of x 17,011,537 ops/sec ±1.24% (86 runs sampled)
- lib-type-of x 3,492,454 ops/sec ±1.23% (89 runs sampled)
- lib-typeof x 7,471,235 ops/sec ±2.48% (87 runs sampled)
-
- fastest is kind-of (by 310% avg)
-
-# template-strings (36 bytes)
- kind-of x 15,434,250 ops/sec ±1.46% (83 runs sampled)
- lib-type-of x 7,157,907 ops/sec ±0.97% (87 runs sampled)
- lib-typeof x 7,517,986 ops/sec ±0.92% (86 runs sampled)
-
- fastest is kind-of (by 210% avg)
-
-# undefined (29 bytes)
- kind-of x 19,167,115 ops/sec ±1.71% (87 runs sampled)
- lib-type-of x 15,477,740 ops/sec ±1.63% (85 runs sampled)
- lib-typeof x 19,075,495 ops/sec ±1.17% (83 runs sampled)
-
- fastest is lib-typeof,kind-of
-
-```
-
-## Optimizations
-
-In 7 out of 8 cases, this library is 2x-10x faster than other top libraries included in the benchmarks. There are a few things that lead to this performance advantage, none of them hard and fast rules, but all of them simple and repeatable in almost any code library:
-
-1. Optimize around the fastest and most common use cases first. Of course, this will change from project-to-project, but I took some time to understand how and why `typeof` checks were being used in my own libraries and other libraries I use a lot.
-2. Optimize around bottlenecks - In other words, the order in which conditionals are implemented is significant, because each check is only as fast as the failing checks that came before it. Here, the biggest bottleneck by far is checking for plain objects (an object that was created by the `Object` constructor). I opted to make this check happen by process of elimination rather than brute force up front (e.g. by using something like `val.constructor.name`), so that every other type check would not be penalized it.
-3. Don't do uneccessary processing - why do `.slice(8, -1).toLowerCase();` just to get the word `regex`? It's much faster to do `if (type === '[object RegExp]') return 'regex'`
-4. There is no reason to make the code in a microlib as terse as possible, just to win points for making it shorter. It's always better to favor performant code over terse code. You will always only be using a single `require()` statement to use the library anyway, regardless of how the code is written.
-
-## Better type checking
-
-kind-of seems to be more consistently "correct" than other type checking libs I've looked at. For example, here are some differing results from other popular libs:
-
-### [typeof](https://github.com/CodingFu/typeof) lib
-
-Incorrectly identifies instances of custom constructors (pretty common):
-
-```js
-var typeOf = require('typeof');
-function Test() {}
-console.log(typeOf(new Test()));
-//=> 'test'
-```
-
-Returns `object` instead of `arguments`:
-
-```js
-function foo() {
- console.log(typeOf(arguments)) //=> 'object'
-}
-foo();
-```
-
-### [type-of](https://github.com/ForbesLindesay/type-of) lib
-
-Incorrectly returns `object` for generator functions, buffers, `Map`, `Set`, `WeakMap` and `WeakSet`:
-
-```js
-function * foo() {}
-console.log(typeOf(foo));
-//=> 'object'
-console.log(typeOf(new Buffer('')));
-//=> 'object'
-console.log(typeOf(new Map()));
-//=> 'object'
-console.log(typeOf(new Set()));
-//=> 'object'
-console.log(typeOf(new WeakMap()));
-//=> 'object'
-console.log(typeOf(new WeakSet()));
-//=> 'object'
-```
-
-## About
-
-
-Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-
-
-
-Running Tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-
-
-
-Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-
-
-### Related projects
-
-You might also be interested in these projects:
-
-* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/micromatch/is-glob) | [homepage](https://github.com/micromatch/is-glob "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet")
-* [is-number](https://www.npmjs.com/package/is-number): Returns true if a number or string value is a finite number. Useful for regex… [more](https://github.com/jonschlinkert/is-number) | [homepage](https://github.com/jonschlinkert/is-number "Returns true if a number or string value is a finite number. Useful for regex matches, parsing, user input, etc.")
-* [is-primitive](https://www.npmjs.com/package/is-primitive): Returns `true` if the value is a primitive. | [homepage](https://github.com/jonschlinkert/is-primitive "Returns `true` if the value is a primitive. ")
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 102 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 3 | [aretecode](https://github.com/aretecode) |
-| 2 | [miguelmota](https://github.com/miguelmota) |
-| 1 | [doowb](https://github.com/doowb) |
-| 1 | [dtothefp](https://github.com/dtothefp) |
-| 1 | [ianstormtaylor](https://github.com/ianstormtaylor) |
-| 1 | [ksheedlo](https://github.com/ksheedlo) |
-| 1 | [pdehaan](https://github.com/pdehaan) |
-| 1 | [laggingreflex](https://github.com/laggingreflex) |
-| 1 | [tunnckoCore](https://github.com/tunnckoCore) |
-| 1 | [xiaofen9](https://github.com/xiaofen9) |
-
-### Author
-
-**Jon Schlinkert**
-
-* [GitHub Profile](https://github.com/jonschlinkert)
-* [Twitter Profile](https://twitter.com/jonschlinkert)
-* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert)
-
-### License
-
-Copyright © 2020, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on January 16, 2020._
\ No newline at end of file
diff --git a/node_modules/make-iterator/node_modules/kind-of/index.js b/node_modules/make-iterator/node_modules/kind-of/index.js
deleted file mode 100644
index dfa799b..0000000
--- a/node_modules/make-iterator/node_modules/kind-of/index.js
+++ /dev/null
@@ -1,129 +0,0 @@
-var toString = Object.prototype.toString;
-
-module.exports = function kindOf(val) {
- if (val === void 0) return 'undefined';
- if (val === null) return 'null';
-
- var type = typeof val;
- if (type === 'boolean') return 'boolean';
- if (type === 'string') return 'string';
- if (type === 'number') return 'number';
- if (type === 'symbol') return 'symbol';
- if (type === 'function') {
- return isGeneratorFn(val) ? 'generatorfunction' : 'function';
- }
-
- if (isArray(val)) return 'array';
- if (isBuffer(val)) return 'buffer';
- if (isArguments(val)) return 'arguments';
- if (isDate(val)) return 'date';
- if (isError(val)) return 'error';
- if (isRegexp(val)) return 'regexp';
-
- switch (ctorName(val)) {
- case 'Symbol': return 'symbol';
- case 'Promise': return 'promise';
-
- // Set, Map, WeakSet, WeakMap
- case 'WeakMap': return 'weakmap';
- case 'WeakSet': return 'weakset';
- case 'Map': return 'map';
- case 'Set': return 'set';
-
- // 8-bit typed arrays
- case 'Int8Array': return 'int8array';
- case 'Uint8Array': return 'uint8array';
- case 'Uint8ClampedArray': return 'uint8clampedarray';
-
- // 16-bit typed arrays
- case 'Int16Array': return 'int16array';
- case 'Uint16Array': return 'uint16array';
-
- // 32-bit typed arrays
- case 'Int32Array': return 'int32array';
- case 'Uint32Array': return 'uint32array';
- case 'Float32Array': return 'float32array';
- case 'Float64Array': return 'float64array';
- }
-
- if (isGeneratorObj(val)) {
- return 'generator';
- }
-
- // Non-plain objects
- type = toString.call(val);
- switch (type) {
- case '[object Object]': return 'object';
- // iterators
- case '[object Map Iterator]': return 'mapiterator';
- case '[object Set Iterator]': return 'setiterator';
- case '[object String Iterator]': return 'stringiterator';
- case '[object Array Iterator]': return 'arrayiterator';
- }
-
- // other
- return type.slice(8, -1).toLowerCase().replace(/\s/g, '');
-};
-
-function ctorName(val) {
- return typeof val.constructor === 'function' ? val.constructor.name : null;
-}
-
-function isArray(val) {
- if (Array.isArray) return Array.isArray(val);
- return val instanceof Array;
-}
-
-function isError(val) {
- return val instanceof Error || (typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number');
-}
-
-function isDate(val) {
- if (val instanceof Date) return true;
- return typeof val.toDateString === 'function'
- && typeof val.getDate === 'function'
- && typeof val.setDate === 'function';
-}
-
-function isRegexp(val) {
- if (val instanceof RegExp) return true;
- return typeof val.flags === 'string'
- && typeof val.ignoreCase === 'boolean'
- && typeof val.multiline === 'boolean'
- && typeof val.global === 'boolean';
-}
-
-function isGeneratorFn(name, val) {
- return ctorName(name) === 'GeneratorFunction';
-}
-
-function isGeneratorObj(val) {
- return typeof val.throw === 'function'
- && typeof val.return === 'function'
- && typeof val.next === 'function';
-}
-
-function isArguments(val) {
- try {
- if (typeof val.length === 'number' && typeof val.callee === 'function') {
- return true;
- }
- } catch (err) {
- if (err.message.indexOf('callee') !== -1) {
- return true;
- }
- }
- return false;
-}
-
-/**
- * If you need to support Safari 5-7 (8-10 yr-old browser),
- * take a look at https://github.com/feross/is-buffer
- */
-
-function isBuffer(val) {
- if (val.constructor && typeof val.constructor.isBuffer === 'function') {
- return val.constructor.isBuffer(val);
- }
- return false;
-}
diff --git a/node_modules/make-iterator/node_modules/kind-of/package.json b/node_modules/make-iterator/node_modules/kind-of/package.json
deleted file mode 100644
index 5820cad..0000000
--- a/node_modules/make-iterator/node_modules/kind-of/package.json
+++ /dev/null
@@ -1,88 +0,0 @@
-{
- "name": "kind-of",
- "description": "Get the native type of a value.",
- "version": "6.0.3",
- "homepage": "https://github.com/jonschlinkert/kind-of",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "David Fox-Powell (https://dtothefp.github.io/me)",
- "James (https://twitter.com/aretecode)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Ken Sheedlo (kensheedlo.com)",
- "laggingreflex (https://github.com/laggingreflex)",
- "Miguel Mota (https://miguelmota.com)",
- "Peter deHaan (http://about.me/peterdehaan)",
- "tunnckoCore (https://i.am.charlike.online)"
- ],
- "repository": "jonschlinkert/kind-of",
- "bugs": {
- "url": "https://github.com/jonschlinkert/kind-of/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha",
- "prepublish": "browserify -o browser.js -e index.js -s index --bare"
- },
- "devDependencies": {
- "benchmarked": "^2.0.0",
- "browserify": "^14.4.0",
- "gulp-format-md": "^1.0.0",
- "mocha": "^4.0.1",
- "write": "^1.0.3"
- },
- "keywords": [
- "arguments",
- "array",
- "boolean",
- "check",
- "date",
- "function",
- "is",
- "is-type",
- "is-type-of",
- "kind",
- "kind-of",
- "number",
- "object",
- "of",
- "regexp",
- "string",
- "test",
- "type",
- "type-of",
- "typeof",
- "types"
- ],
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- },
- "related": {
- "list": [
- "is-glob",
- "is-number",
- "is-primitive"
- ]
- },
- "reflinks": [
- "type-of",
- "typeof",
- "verb"
- ]
- }
-}
diff --git a/node_modules/make-iterator/package.json b/node_modules/make-iterator/package.json
deleted file mode 100644
index 4afded9..0000000
--- a/node_modules/make-iterator/package.json
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- "name": "make-iterator",
- "description": "Convert an argument into a valid iterator. Based on the `.makeIterator()` implementation in mout https://github.com/mout/mout.",
- "version": "1.0.1",
- "homepage": "https://github.com/jonschlinkert/make-iterator",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/make-iterator",
- "bugs": {
- "url": "https://github.com/jonschlinkert/make-iterator/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "kind-of": "^6.0.2"
- },
- "devDependencies": {
- "gulp-format-md": "^1.0.0",
- "mocha": "^3.5.3"
- },
- "keywords": [
- "arr",
- "array",
- "contains",
- "for-own",
- "forown",
- "forOwn",
- "function",
- "iterate",
- "iterator",
- "make"
- ],
- "verb": {
- "related": {
- "list": [
- "any",
- "arr-filter",
- "arr-map",
- "array-every",
- "collection-map",
- "utils"
- ]
- },
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- },
- "reflinks": [
- "verb",
- "verb-readme-generator"
- ]
- }
-}
diff --git a/node_modules/map-cache/LICENSE b/node_modules/map-cache/LICENSE
deleted file mode 100644
index 1e49edf..0000000
--- a/node_modules/map-cache/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015-2016, 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/map-cache/README.md b/node_modules/map-cache/README.md
deleted file mode 100644
index 6260b29..0000000
--- a/node_modules/map-cache/README.md
+++ /dev/null
@@ -1,145 +0,0 @@
-# map-cache [![NPM version](https://img.shields.io/npm/v/map-cache.svg?style=flat)](https://www.npmjs.com/package/map-cache) [![NPM downloads](https://img.shields.io/npm/dm/map-cache.svg?style=flat)](https://npmjs.org/package/map-cache) [![Build Status](https://img.shields.io/travis/jonschlinkert/map-cache.svg?style=flat)](https://travis-ci.org/jonschlinkert/map-cache)
-
-Basic cache object for storing key-value pairs.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install map-cache --save
-```
-
-Based on MapCache in Lo-dash v3.0. [MIT License](https://github.com/lodash/lodash/blob/master/LICENSE.txt)
-
-## Usage
-
-```js
-var MapCache = require('map-cache');
-var mapCache = new MapCache();
-```
-
-## API
-
-### [MapCache](index.js#L28)
-
-Creates a cache object to store key/value pairs.
-
-**Example**
-
-```js
-var cache = new MapCache();
-```
-
-### [.set](index.js#L45)
-
-Adds `value` to `key` on the cache.
-
-**Params**
-
-* `key` **{String}**: The key of the value to cache.
-* `value` **{any}**: The value to cache.
-* `returns` **{Object}**: Returns the `Cache` object for chaining.
-
-**Example**
-
-```js
-cache.set('foo', 'bar');
-```
-
-### [.get](index.js#L65)
-
-Gets the cached value for `key`.
-
-**Params**
-
-* `key` **{String}**: The key of the value to get.
-* `returns` **{any}**: Returns the cached value.
-
-**Example**
-
-```js
-cache.get('foo');
-//=> 'bar'
-```
-
-### [.has](index.js#L82)
-
-Checks if a cached value for `key` exists.
-
-**Params**
-
-* `key` **{String}**: The key of the entry to check.
-* `returns` **{Boolean}**: Returns `true` if an entry for `key` exists, else `false`.
-
-**Example**
-
-```js
-cache.has('foo');
-//=> true
-```
-
-### [.del](index.js#L98)
-
-Removes `key` and its value from the cache.
-
-**Params**
-
-* `key` **{String}**: The key of the value to remove.
-* `returns` **{Boolean}**: Returns `true` if the entry was removed successfully, else `false`.
-
-**Example**
-
-```js
-cache.del('foo');
-```
-
-## Related projects
-
-You might also be interested in these projects:
-
-* [cache-base](https://www.npmjs.com/package/cache-base): Basic object cache with `get`, `set`, `del`, and `has` methods for node.js/javascript projects. | [homepage](https://github.com/jonschlinkert/cache-base)
-* [config-cache](https://www.npmjs.com/package/config-cache): General purpose JavaScript object storage methods. | [homepage](https://github.com/jonschlinkert/config-cache)
-* [option-cache](https://www.npmjs.com/package/option-cache): Simple API for managing options in JavaScript applications. | [homepage](https://github.com/jonschlinkert/option-cache)
-
-## Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/map-cache/issues/new).
-
-## Building docs
-
-Generate readme and API documentation with [verb](https://github.com/verbose/verb):
-
-```sh
-$ npm install verb && npm run docs
-```
-
-Or, if [verb](https://github.com/verbose/verb) is installed globally:
-
-```sh
-$ verb
-```
-
-## Running tests
-
-Install dev dependencies:
-
-```sh
-$ npm install -d && npm test
-```
-
-## Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
-
-## License
-
-Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT license](https://github.com/jonschlinkert/map-cache/blob/master/LICENSE).
-
-***
-
-_This file was generated by [verb](https://github.com/verbose/verb), v0.9.0, on May 10, 2016._
\ No newline at end of file
diff --git a/node_modules/map-cache/index.js b/node_modules/map-cache/index.js
deleted file mode 100644
index f86842f..0000000
--- a/node_modules/map-cache/index.js
+++ /dev/null
@@ -1,100 +0,0 @@
-/*!
- * map-cache
- *
- * Copyright (c) 2015, Jon Schlinkert.
- * Licensed under the MIT License.
- */
-
-'use strict';
-
-var hasOwn = Object.prototype.hasOwnProperty;
-
-/**
- * Expose `MapCache`
- */
-
-module.exports = MapCache;
-
-/**
- * Creates a cache object to store key/value pairs.
- *
- * ```js
- * var cache = new MapCache();
- * ```
- *
- * @api public
- */
-
-function MapCache(data) {
- this.__data__ = data || {};
-}
-
-/**
- * Adds `value` to `key` on the cache.
- *
- * ```js
- * cache.set('foo', 'bar');
- * ```
- *
- * @param {String} `key` The key of the value to cache.
- * @param {*} `value` The value to cache.
- * @returns {Object} Returns the `Cache` object for chaining.
- * @api public
- */
-
-MapCache.prototype.set = function mapSet(key, value) {
- if (key !== '__proto__') {
- this.__data__[key] = value;
- }
- return this;
-};
-
-/**
- * Gets the cached value for `key`.
- *
- * ```js
- * cache.get('foo');
- * //=> 'bar'
- * ```
- *
- * @param {String} `key` The key of the value to get.
- * @returns {*} Returns the cached value.
- * @api public
- */
-
-MapCache.prototype.get = function mapGet(key) {
- return key === '__proto__' ? undefined : this.__data__[key];
-};
-
-/**
- * Checks if a cached value for `key` exists.
- *
- * ```js
- * cache.has('foo');
- * //=> true
- * ```
- *
- * @param {String} `key` The key of the entry to check.
- * @returns {Boolean} Returns `true` if an entry for `key` exists, else `false`.
- * @api public
- */
-
-MapCache.prototype.has = function mapHas(key) {
- return key !== '__proto__' && hasOwn.call(this.__data__, key);
-};
-
-/**
- * Removes `key` and its value from the cache.
- *
- * ```js
- * cache.del('foo');
- * ```
- * @title .del
- * @param {String} `key` The key of the value to remove.
- * @returns {Boolean} Returns `true` if the entry was removed successfully, else `false`.
- * @api public
- */
-
-MapCache.prototype.del = function mapDelete(key) {
- return this.has(key) && delete this.__data__[key];
-};
diff --git a/node_modules/map-cache/package.json b/node_modules/map-cache/package.json
deleted file mode 100644
index 8bf0af2..0000000
--- a/node_modules/map-cache/package.json
+++ /dev/null
@@ -1,59 +0,0 @@
-{
- "name": "map-cache",
- "description": "Basic cache object for storing key-value pairs.",
- "version": "0.2.2",
- "homepage": "https://github.com/jonschlinkert/map-cache",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/map-cache",
- "bugs": {
- "url": "https://github.com/jonschlinkert/map-cache/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "devDependencies": {
- "gulp-format-md": "^0.1.9",
- "should": "^8.3.1"
- },
- "keywords": [
- "cache",
- "get",
- "has",
- "object",
- "set",
- "storage",
- "store"
- ],
- "verb": {
- "run": true,
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "config-cache",
- "option-cache",
- "cache-base"
- ]
- },
- "reflinks": [
- "verb"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/map-visit/LICENSE b/node_modules/map-visit/LICENSE
deleted file mode 100644
index 83b56e7..0000000
--- a/node_modules/map-visit/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015-2017, 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/map-visit/README.md b/node_modules/map-visit/README.md
deleted file mode 100644
index 5ab02d4..0000000
--- a/node_modules/map-visit/README.md
+++ /dev/null
@@ -1,155 +0,0 @@
-# map-visit [![NPM version](https://img.shields.io/npm/v/map-visit.svg?style=flat)](https://www.npmjs.com/package/map-visit) [![NPM monthly downloads](https://img.shields.io/npm/dm/map-visit.svg?style=flat)](https://npmjs.org/package/map-visit) [![NPM total downloads](https://img.shields.io/npm/dt/map-visit.svg?style=flat)](https://npmjs.org/package/map-visit) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/map-visit.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/map-visit)
-
-> Map `visit` over an array of objects.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save map-visit
-```
-
-## Usage
-
-```js
-var mapVisit = require('map-visit');
-```
-
-## What does this do?
-
-**Assign/Merge/Extend vs. Visit**
-
-Let's say you want to add a `set` method to your application that will:
-
-* set key-value pairs on a `data` object
-* extend objects onto the `data` object
-* extend arrays of objects onto the data object
-
-**Example using `extend`**
-
-Here is one way to accomplish this using Lo-Dash's `extend` (comparable to `Object.assign`):
-
-```js
-var _ = require('lodash');
-
-var obj = {
- data: {},
- set: function (key, value) {
- if (Array.isArray(key)) {
- _.extend.apply(_, [obj.data].concat(key));
- } else if (typeof key === 'object') {
- _.extend(obj.data, key);
- } else {
- obj.data[key] = value;
- }
- }
-};
-
-obj.set('a', 'a');
-obj.set([{b: 'b'}, {c: 'c'}]);
-obj.set({d: {e: 'f'}});
-
-console.log(obj.data);
-//=> {a: 'a', b: 'b', c: 'c', d: { e: 'f' }}
-```
-
-The above approach works fine for most use cases. However, **if you also want to emit an event** each time a property is added to the `data` object, or you want more control over what happens as the object is extended, a better approach would be to use `visit`.
-
-**Example using `visit`**
-
-In this approach:
-
-* when an array is passed to `set`, the `mapVisit` library calls the `set` method on each object in the array.
-* when an object is passed, `visit` calls `set` on each property in the object.
-
-As a result, the `data` event will be emitted every time a property is added to `data` (events are just an example, you can use this approach to perform any necessary logic every time the method is called).
-
-```js
-var mapVisit = require('map-visit');
-var visit = require('object-visit');
-
-var obj = {
- data: {},
- set: function (key, value) {
- if (Array.isArray(key)) {
- mapVisit(obj, 'set', key);
- } else if (typeof key === 'object') {
- visit(obj, 'set', key);
- } else {
- // simulate an event-emitter
- console.log('emit', key, value);
- obj.data[key] = value;
- }
- }
-};
-
-obj.set('a', 'a');
-obj.set([{b: 'b'}, {c: 'c'}]);
-obj.set({d: {e: 'f'}});
-obj.set({g: 'h', i: 'j', k: 'l'});
-
-console.log(obj.data);
-//=> {a: 'a', b: 'b', c: 'c', d: { e: 'f' }, g: 'h', i: 'j', k: 'l'}
-
-// events would look something like:
-// emit a a
-// emit b b
-// emit c c
-// emit d { e: 'f' }
-// emit g h
-// emit i j
-// emit k l
-```
-
-## About
-
-### Related projects
-
-* [collection-visit](https://www.npmjs.com/package/collection-visit): Visit a method over the items in an object, or map visit over the objects… [more](https://github.com/jonschlinkert/collection-visit) | [homepage](https://github.com/jonschlinkert/collection-visit "Visit a method over the items in an object, or map visit over the objects in an array.")
-* [object-visit](https://www.npmjs.com/package/object-visit): Call a specified method on each value in the given object. | [homepage](https://github.com/jonschlinkert/object-visit "Call a specified method on each value in the given object.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 15 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 7 | [doowb](https://github.com/doowb) |
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.5.0, on April 09, 2017._
\ No newline at end of file
diff --git a/node_modules/map-visit/index.js b/node_modules/map-visit/index.js
deleted file mode 100644
index bc54ccc..0000000
--- a/node_modules/map-visit/index.js
+++ /dev/null
@@ -1,37 +0,0 @@
-'use strict';
-
-var util = require('util');
-var visit = require('object-visit');
-
-/**
- * Map `visit` over an array of objects.
- *
- * @param {Object} `collection` The context in which to invoke `method`
- * @param {String} `method` Name of the method to call on `collection`
- * @param {Object} `arr` Array of objects.
- */
-
-module.exports = function mapVisit(collection, method, val) {
- if (isObject(val)) {
- return visit.apply(null, arguments);
- }
-
- if (!Array.isArray(val)) {
- throw new TypeError('expected an array: ' + util.inspect(val));
- }
-
- var args = [].slice.call(arguments, 3);
-
- for (var i = 0; i < val.length; i++) {
- var ele = val[i];
- if (isObject(ele)) {
- visit.apply(null, [collection, method, ele].concat(args));
- } else {
- collection[method].apply(collection, [ele].concat(args));
- }
- }
-};
-
-function isObject(val) {
- return val && (typeof val === 'function' || (!Array.isArray(val) && typeof val === 'object'));
-}
diff --git a/node_modules/map-visit/package.json b/node_modules/map-visit/package.json
deleted file mode 100644
index e8d0f41..0000000
--- a/node_modules/map-visit/package.json
+++ /dev/null
@@ -1,74 +0,0 @@
-{
- "name": "map-visit",
- "description": "Map `visit` over an array of objects.",
- "version": "1.0.0",
- "homepage": "https://github.com/jonschlinkert/map-visit",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Brian Woodward (https://twitter.com/doowb)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)"
- ],
- "repository": "jonschlinkert/map-visit",
- "bugs": {
- "url": "https://github.com/jonschlinkert/map-visit/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "object-visit": "^1.0.0"
- },
- "devDependencies": {
- "clone-deep": "^0.2.4",
- "extend-shallow": "^2.0.1",
- "gulp-format-md": "^0.1.12",
- "lodash": "^4.17.4",
- "mocha": "^3.2.0"
- },
- "keywords": [
- "array",
- "arrays",
- "function",
- "helper",
- "invoke",
- "key",
- "map",
- "method",
- "object",
- "objects",
- "value",
- "visit",
- "visitor"
- ],
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- },
- "related": {
- "list": [
- "collection-visit",
- "object-visit"
- ]
- },
- "reflinks": [
- "verb",
- "verb-generate-readme"
- ]
- }
-}
diff --git a/node_modules/matchdep/.jshintrc b/node_modules/matchdep/.jshintrc
deleted file mode 100644
index 8718952..0000000
--- a/node_modules/matchdep/.jshintrc
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "loopfunc": true,
- "curly": true,
- "eqeqeq": true,
- "immed": true,
- "latedef": true,
- "newcap": true,
- "noarg": true,
- "sub": true,
- "undef": true,
- "unused": true,
- "boss": true,
- "eqnull": true,
- "node": true
-}
diff --git a/node_modules/matchdep/.npmignore b/node_modules/matchdep/.npmignore
deleted file mode 100644
index 605bbb4..0000000
--- a/node_modules/matchdep/.npmignore
+++ /dev/null
@@ -1,2 +0,0 @@
-test
-Gruntfile.js
\ No newline at end of file
diff --git a/node_modules/matchdep/.travis.yml b/node_modules/matchdep/.travis.yml
deleted file mode 100644
index 6abb72e..0000000
--- a/node_modules/matchdep/.travis.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-sudo: false
-language: node_js
-node_js:
- - "0.10"
- - "0.12"
- - "4"
- - "6"
- - "8"
-before_install:
- - npm install -g grunt-cli
diff --git a/node_modules/matchdep/LICENSE-MIT b/node_modules/matchdep/LICENSE-MIT
deleted file mode 100644
index e30f600..0000000
--- a/node_modules/matchdep/LICENSE-MIT
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2013 Tyler Kellen
-
-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/matchdep/README.md b/node_modules/matchdep/README.md
deleted file mode 100644
index 03c0d75..0000000
--- a/node_modules/matchdep/README.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# matchdep [![Build Status](https://secure.travis-ci.org/tkellen/js-matchdep.svg?branch=master)](http://travis-ci.org/tkellen/js-matchdep)
-> Use [micromatch] to filter npm module dependencies by name.
-
-[![NPM](https://nodei.co/npm/matchdep.png)](https://nodei.co/npm/matchdep/)
-
-## Examples
-
-```js
-var matchdep = require('matchdep');
-
-// Filter dependencies (by autoloading nearest package.json)
-matchdep.filter('mini*');
-
-// Filter devDependencies (with config string indicating file to be required)
-matchdep.filterDev('grunt-contrib-*', './package.json');
-
-// Filter peerDependencies (with config string indicating file to be required)
-matchdep.filterPeer('foo-{bar,baz}', './some-other.json');
-
-// Filter all dependencies (with explicit config provided)
-matchdep.filterAll('*', require('./yet-another.json'));
-
-// Filter all dependencies, exclude grunt (multiple matching patterns)
-matchdep.filterAll(['*','!grunt']);
-```
-
-## Usage
-
-```js
-filter(pattern, config)
-filterDev(pattern, config)
-filterPeer(pattern, config)
-filterAll(pattern, config)
-```
-
-### pattern
-Type: `String|Array`
-Default: 'none'
-
-A [micromatch] compatible match pattern to filter dependencies.
-
-### config
-Type: `String` or `Object`
-Default: Path to nearest package.json.
-
-If config is a string, matchdep will attempt to require it. If it is an object, it will be used directly.
-
-## Release History
-
-* 2017-08-18 - v2.0.0 - Upgrade major versions of dependencies, Upgrade devDeps
-* 2016-02-09 - v1.0.1 - switch to [micromatch], remove [globule]
-* 2015-09-27 - v1.0.0 - throw when no package.json found, update dependencies, remove node 0.8 support
-* 2013-10-09 - v0.3.0 - support multiple pattern matches using [globule]
-* 2013-10-08 - v0.2.0 - refactor and support filtering peerDependencies
-* 2012-11-27 - v0.1.0 - initial release
-
-
-[globule]: https://github.com/cowboy/node-globule
-[micromatch]: https://github.com/jonschlinkert/micromatch
diff --git a/node_modules/matchdep/lib/matchdep.js b/node_modules/matchdep/lib/matchdep.js
deleted file mode 100644
index efbdb9a..0000000
--- a/node_modules/matchdep/lib/matchdep.js
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * matchdep
- * https://github.com/tkellen/node-matchdep
- *
- * Copyright (c) 2012 Tyler Kellen
- * Licensed under the MIT license.
- */
-
-'use strict';
-
-var micromatch = require('micromatch');
-var findup = require('findup-sync');
-var resolve = require('resolve').sync;
-var stackTrace = require('stack-trace');
-var path = require('path');
-
-// export object
-var matchdep = module.exports = {};
-
-// Ensure configuration has the correct properties.
-function loadConfig(config, props) {
- // The calling module's path. Unfortunately, because modules are cached,
- // module.parent is the FIRST calling module parent, not necessarily the
- // current one.
- var callerPath = path.dirname(stackTrace.get(loadConfig)[1].getFileName());
-
- // If no config defined, resolve to nearest package.json to the calling lib. If not found, throw an error.
- if (config == null) {
- config = findup('package.json', {cwd: callerPath});
- if (config == null) {
- throw new Error('No package.json found.');
- }
- }
- // If filename was specified with no path parts, make the path absolute so
- // that resolve doesn't look in node_module directories for it.
- else if (typeof config === 'string' && !/[\\\/]/.test(config)) {
- config = path.join(callerPath, config);
- }
-
- // If package is a string, try to require it.
- if (typeof config === 'string') {
- config = require(resolve(config, {basedir: callerPath}));
- }
-
- // If config is not an object yet, something is amiss.
- if (typeof config !== 'object') {
- throw new Error('Invalid configuration specified.');
- }
-
- // For all specified props, populate result object.
- var result = {};
- props.forEach(function(prop) {
- result[prop] = config[prop] ? Object.keys(config[prop]) : [];
- });
- return result;
-}
-
-// What config properties should each method search?
-var methods = {
- filter: ['dependencies'],
- filterDev: ['devDependencies'],
- filterPeer: ['peerDependencies'],
- filterAll: ['dependencies', 'devDependencies', 'peerDependencies'],
-};
-
-// Dynamically generate methods.
-Object.keys(methods).forEach(function(method) {
- var props = methods[method];
- matchdep[method] = function(pattern, config) {
- config = loadConfig(config, props);
- var search = props.reduce(function(result, prop) {
- return result.concat(config[prop]);
- }, []);
- return micromatch(search, pattern);
- };
-});
diff --git a/node_modules/matchdep/node_modules/findup-sync/README.md b/node_modules/matchdep/node_modules/findup-sync/README.md
deleted file mode 100644
index 58ce20e..0000000
--- a/node_modules/matchdep/node_modules/findup-sync/README.md
+++ /dev/null
@@ -1,69 +0,0 @@
-# findup-sync [![Build Status](https://travis-ci.org/js-cli/node-findup-sync.svg)](https://travis-ci.org/js-cli/node-findup-sync) [![NPM version](https://badge.fury.io/js/findup-sync.svg)](http://badge.fury.io/js/findup-sync)
-
-> Find the first file matching a given pattern in the current directory or the nearest ancestor directory.
-
-Matching is done with [micromatch][], please report any matching related issues on that repository.
-
-## Install with [npm](npmjs.org)
-
-```bash
-npm i findup-sync --save
-```
-
-## Usage
-
-```js
-var findup = require('findup-sync');
-findup(patternOrPatterns [, micromatchOptions]);
-
-// Start looking in the CWD.
-var filepath1 = findup('{a,b}*.txt');
-
-// Start looking somewhere else, and ignore case (probably a good idea).
-var filepath2 = findup('{a,b}*.txt', {cwd: '/some/path', nocase: true});
-```
-
-* `patterns` **{String|Array}**: Glob pattern(s) or file path(s) to match against.
-* `options` **{Object}**: Options to pass to [micromatch]. Note that if you want to start in a different directory than the current working directory, specify a `cwd` property here.
-* `returns` **{String}**: Returns the first matching file.
-
-## Running tests
-
-Install dev dependencies:
-
-```bash
-npm i -d && npm test
-```
-
-## Contributing
-
-In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using [Grunt](http://gruntjs.com/)
-
-For bugs and feature requests, [please create an issue](https://github.com/cowboy/node-findup-sync/issues).
-
-## Release History
-
-2017-08-07 - v2.0.0 - Drop node 0.8 support, Bump all dependencies (including some Majors)
-2017-04-18 - v1.0.0 - Major bump from stable 0.4.3
-2015-01-30 - v0.4.0 - Refactored, not also uses [micromatch][] instead of minimatch.
-2015-09-14 - v0.3.0 - updated glob to ~5.0.
-2014-12-17 - v0.2.1 - Updated to glob 4.3.
-2014-12-16 - v0.2.0 - Removed lodash, updated to glob 4.x.
-2014-03-14 - v0.1.3 - Updated dependencies.
-2013-03-08 - v0.1.2 - Updated dependencies. Fixed a Node 0.9.x bug. Updated unit tests to work cross-platform.
-2012-11-15 - v0.1.1 - Now works without an options object.
-2012-11-01 - v0.1.0 - Initial release.
-
-## Authors
-
-**"Cowboy" Ben Alman**
-
-+ [github/cowboy](https://github.com/cowboy)
-+ [twitter/cowboy](http://twitter.com/cowboy)
-
-## License
-
-Copyright (c) 2012-2016 "Cowboy" Ben Alman
-Released under the MIT license
-
-[micromatch]: http://github.com/jonschlinkert/micromatch
diff --git a/node_modules/matchdep/node_modules/findup-sync/index.js b/node_modules/matchdep/node_modules/findup-sync/index.js
deleted file mode 100644
index b843495..0000000
--- a/node_modules/matchdep/node_modules/findup-sync/index.js
+++ /dev/null
@@ -1,85 +0,0 @@
-'use strict';
-
-/**
- * Module dependencies
- */
-
-var fs = require('fs');
-var path = require('path');
-var isGlob = require('is-glob');
-var resolveDir = require('resolve-dir');
-var detect = require('detect-file');
-var mm = require('micromatch');
-
-/**
- * @param {String|Array} `pattern` Glob pattern or file path(s) to match against.
- * @param {Object} `options` Options to pass to [micromatch]. Note that if you want to start in a different directory than the current working directory, specify the `options.cwd` property here.
- * @return {String} Returns the first matching file.
- * @api public
- */
-
-module.exports = function(patterns, options) {
- options = options || {};
- var cwd = path.resolve(resolveDir(options.cwd || ''));
-
- if (typeof patterns === 'string') {
- return lookup(cwd, [patterns], options);
- }
-
- if (!Array.isArray(patterns)) {
- throw new TypeError('findup-sync expects a string or array as the first argument.');
- }
-
- return lookup(cwd, patterns, options);
-};
-
-function lookup(cwd, patterns, options) {
- var len = patterns.length;
- var idx = -1;
- var res;
-
- while (++idx < len) {
- if (isGlob(patterns[idx])) {
- res = matchFile(cwd, patterns[idx], options);
- } else {
- res = findFile(cwd, patterns[idx], options);
- }
- if (res) {
- return res;
- }
- }
-
- var dir = path.dirname(cwd);
- if (dir === cwd) {
- return null;
- }
- return lookup(dir, patterns, options);
-}
-
-function matchFile(cwd, pattern, opts) {
- var isMatch = mm.matcher(pattern, opts);
- var files = tryReaddirSync(cwd);
- var len = files.length;
- var idx = -1;
-
- while (++idx < len) {
- var name = files[idx];
- var fp = path.join(cwd, name);
- if (isMatch(name) || isMatch(fp)) {
- return fp;
- }
- }
- return null;
-}
-
-function findFile(cwd, filename, options) {
- var fp = cwd ? path.resolve(cwd, filename) : filename;
- return detect(fp, options);
-}
-
-function tryReaddirSync(fp) {
- try {
- return fs.readdirSync(fp);
- } catch(err) {}
- return [];
-}
diff --git a/node_modules/matchdep/node_modules/findup-sync/package.json b/node_modules/matchdep/node_modules/findup-sync/package.json
deleted file mode 100644
index 435aa3a..0000000
--- a/node_modules/matchdep/node_modules/findup-sync/package.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "name": "findup-sync",
- "description": "Find the first file matching a given pattern in the current directory or the nearest ancestor directory.",
- "version": "2.0.0",
- "author": "\"Cowboy\" Ben Alman (http://benalman.com)",
- "repository": "js-cli/node-findup-sync",
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">= 0.10"
- },
- "scripts": {
- "lint": "jshint index.js test/support/index.js test/test.js",
- "test": "npm run lint && mocha"
- },
- "dependencies": {
- "detect-file": "^1.0.0",
- "is-glob": "^3.1.0",
- "micromatch": "^3.0.4",
- "resolve-dir": "^1.0.1"
- },
- "devDependencies": {
- "homedir-polyfill": "^1.0.1",
- "is-absolute": "^1.0.0",
- "jshint": "^2.9.5",
- "mocha": "^3.5.0",
- "normalize-path": "^2.1.1",
- "resolve": "^1.4.0"
- },
- "keywords": [
- "file",
- "find",
- "find-up",
- "findup",
- "glob",
- "match",
- "pattern",
- "resolve",
- "search"
- ]
-}
diff --git a/node_modules/matchdep/node_modules/is-glob/LICENSE b/node_modules/matchdep/node_modules/is-glob/LICENSE
deleted file mode 100644
index 39245ac..0000000
--- a/node_modules/matchdep/node_modules/is-glob/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2016, 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/matchdep/node_modules/is-glob/README.md b/node_modules/matchdep/node_modules/is-glob/README.md
deleted file mode 100644
index 6f4404f..0000000
--- a/node_modules/matchdep/node_modules/is-glob/README.md
+++ /dev/null
@@ -1,142 +0,0 @@
-# is-glob [![NPM version](https://img.shields.io/npm/v/is-glob.svg?style=flat)](https://www.npmjs.com/package/is-glob) [![NPM downloads](https://img.shields.io/npm/dm/is-glob.svg?style=flat)](https://npmjs.org/package/is-glob) [![Build Status](https://img.shields.io/travis/jonschlinkert/is-glob.svg?style=flat)](https://travis-ci.org/jonschlinkert/is-glob)
-
-> Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a better user experience.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save is-glob
-```
-
-You might also be interested in [is-valid-glob](https://github.com/jonschlinkert/is-valid-glob) and [has-glob](https://github.com/jonschlinkert/has-glob).
-
-## Usage
-
-```js
-var isGlob = require('is-glob');
-```
-
-**True**
-
-Patterns that have glob characters or regex patterns will return `true`:
-
-```js
-isGlob('!foo.js');
-isGlob('*.js');
-isGlob('**/abc.js');
-isGlob('abc/*.js');
-isGlob('abc/(aaa|bbb).js');
-isGlob('abc/[a-z].js');
-isGlob('abc/{a,b}.js');
-isGlob('abc/?.js');
-//=> true
-```
-
-Extglobs
-
-```js
-isGlob('abc/@(a).js');
-isGlob('abc/!(a).js');
-isGlob('abc/+(a).js');
-isGlob('abc/*(a).js');
-isGlob('abc/?(a).js');
-//=> true
-```
-
-**False**
-
-Escaped globs or extglobs return `false`:
-
-```js
-isGlob('abc/\\@(a).js');
-isGlob('abc/\\!(a).js');
-isGlob('abc/\\+(a).js');
-isGlob('abc/\\*(a).js');
-isGlob('abc/\\?(a).js');
-isGlob('\\!foo.js');
-isGlob('\\*.js');
-isGlob('\\*\\*/abc.js');
-isGlob('abc/\\*.js');
-isGlob('abc/\\(aaa|bbb).js');
-isGlob('abc/\\[a-z].js');
-isGlob('abc/\\{a,b}.js');
-isGlob('abc/\\?.js');
-//=> false
-```
-
-Patterns that do not have glob patterns return `false`:
-
-```js
-isGlob('abc.js');
-isGlob('abc/def/ghi.js');
-isGlob('foo.js');
-isGlob('abc/@.js');
-isGlob('abc/+.js');
-isGlob();
-isGlob(null);
-//=> false
-```
-
-Arrays are also `false` (If you want to check if an array has a glob pattern, use [has-glob](https://github.com/jonschlinkert/has-glob)):
-
-```js
-isGlob(['**/*.js']);
-isGlob(['foo.js']);
-//=> false
-```
-
-## About
-
-### Related projects
-
-* [assemble](https://www.npmjs.com/package/assemble): Get the rocks out of your socks! Assemble makes you fast at creating web projects… [more](https://github.com/assemble/assemble) | [homepage](https://github.com/assemble/assemble "Get the rocks out of your socks! Assemble makes you fast at creating web projects. Assemble is used by thousands of projects for rapid prototyping, creating themes, scaffolds, boilerplates, e-books, UI components, API documentation, blogs, building websit")
-* [base](https://www.npmjs.com/package/base): base is the foundation for creating modular, unit testable and highly pluggable node.js applications, starting… [more](https://github.com/node-base/base) | [homepage](https://github.com/node-base/base "base is the foundation for creating modular, unit testable and highly pluggable node.js applications, starting with a handful of common methods, like `set`, `get`, `del` and `use`.")
-* [update](https://www.npmjs.com/package/update): Be scalable! Update is a new, open source developer framework and CLI for automating updates… [more](https://github.com/update/update) | [homepage](https://github.com/update/update "Be scalable! Update is a new, open source developer framework and CLI for automating updates of any kind in code projects.")
-* [verb](https://www.npmjs.com/package/verb): Documentation generator for GitHub projects. Verb is extremely powerful, easy to use, and is used… [more](https://github.com/verbose/verb) | [homepage](https://github.com/verbose/verb "Documentation generator for GitHub projects. Verb is extremely powerful, easy to use, and is used on hundreds of projects of all sizes to generate everything from API docs to readmes.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 40 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 1 | [tuvistavie](https://github.com/tuvistavie) |
-
-### Building docs
-
-_(This document was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme) (a [verb](https://github.com/verbose/verb) generator), please don't edit the readme directly. Any changes to the readme must be made in [.verb.md](.verb.md).)_
-
-To generate the readme and API documentation with [verb](https://github.com/verbose/verb):
-
-```sh
-$ npm install -g verb verb-generate-readme && verb
-```
-
-### Running tests
-
-Install dev dependencies:
-
-```sh
-$ npm install -d && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT license](https://github.com/jonschlinkert/is-glob/blob/master/LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.1.31, on October 12, 2016._
\ No newline at end of file
diff --git a/node_modules/matchdep/node_modules/is-glob/index.js b/node_modules/matchdep/node_modules/is-glob/index.js
deleted file mode 100644
index 2ecbe2a..0000000
--- a/node_modules/matchdep/node_modules/is-glob/index.js
+++ /dev/null
@@ -1,25 +0,0 @@
-/*!
- * is-glob
- *
- * Copyright (c) 2014-2016, Jon Schlinkert.
- * Licensed under the MIT License.
- */
-
-var isExtglob = require('is-extglob');
-
-module.exports = function isGlob(str) {
- if (typeof str !== 'string' || str === '') {
- return false;
- }
-
- if (isExtglob(str)) return true;
-
- var regex = /(\\).|([*?]|\[.*\]|\{.*\}|\(.*\|.*\)|^!)/;
- var match;
-
- while ((match = regex.exec(str))) {
- if (match[2]) return true;
- str = str.slice(match.index + match[0].length);
- }
- return false;
-};
diff --git a/node_modules/matchdep/node_modules/is-glob/package.json b/node_modules/matchdep/node_modules/is-glob/package.json
deleted file mode 100644
index 53a137d..0000000
--- a/node_modules/matchdep/node_modules/is-glob/package.json
+++ /dev/null
@@ -1,80 +0,0 @@
-{
- "name": "is-glob",
- "description": "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a better user experience.",
- "version": "3.1.0",
- "homepage": "https://github.com/jonschlinkert/is-glob",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Daniel Perez (http://tuvistavie.com)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)"
- ],
- "repository": "jonschlinkert/is-glob",
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-glob/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "is-extglob": "^2.1.0"
- },
- "devDependencies": {
- "gulp-format-md": "^0.1.10",
- "mocha": "^3.0.2"
- },
- "keywords": [
- "bash",
- "braces",
- "check",
- "exec",
- "expression",
- "extglob",
- "glob",
- "globbing",
- "globstar",
- "is",
- "match",
- "matches",
- "pattern",
- "regex",
- "regular",
- "string",
- "test"
- ],
- "verb": {
- "layout": "default",
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "assemble",
- "base",
- "update",
- "verb"
- ]
- },
- "reflinks": [
- "assemble",
- "bach",
- "base",
- "composer",
- "gulp",
- "has-glob",
- "is-valid-glob",
- "micromatch",
- "npm",
- "scaffold",
- "verb",
- "vinyl"
- ]
- }
-}
diff --git a/node_modules/matchdep/package.json b/node_modules/matchdep/package.json
deleted file mode 100644
index 85ab669..0000000
--- a/node_modules/matchdep/package.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "name": "matchdep",
- "description": "Use micromatch to filter npm module dependencies by name.",
- "version": "2.0.0",
- "homepage": "https://github.com/tkellen/js-matchdep",
- "author": {
- "name": "Tyler Kellen",
- "url": "http://goingslowly.com/"
- },
- "repository": {
- "type": "git",
- "url": "git://github.com/tkellen/js-matchdep.git"
- },
- "bugs": {
- "url": "https://github.com/tkellen/js-matchdep/issues"
- },
- "license": "MIT",
- "main": "lib/matchdep",
- "engines": {
- "node": ">= 0.10.0"
- },
- "scripts": {
- "test": "grunt"
- },
- "dependencies": {
- "findup-sync": "^2.0.0",
- "micromatch": "^3.0.4",
- "resolve": "^1.4.0",
- "stack-trace": "0.0.10"
- },
- "devDependencies": {
- "grunt": "^1.0.1",
- "grunt-contrib-jshint": "^1.1.0",
- "grunt-contrib-nodeunit": "^1.0.0"
- },
- "keywords": [
- "package.json",
- "dependencies",
- "devDependencies",
- "peerDependencies"
- ]
-}
diff --git a/node_modules/micromatch/CHANGELOG.md b/node_modules/micromatch/CHANGELOG.md
deleted file mode 100644
index 9d8e5ed..0000000
--- a/node_modules/micromatch/CHANGELOG.md
+++ /dev/null
@@ -1,37 +0,0 @@
-## History
-
-### key
-
-Changelog entries are classified using the following labels _(from [keep-a-changelog][]_):
-
-- `added`: for new features
-- `changed`: for changes in existing functionality
-- `deprecated`: for once-stable features removed in upcoming releases
-- `removed`: for deprecated features removed in this release
-- `fixed`: for any bug fixes
-- `bumped`: updated dependencies, only minor or higher will be listed.
-
-### [3.0.0] - 2017-04-11
-
-TODO. There should be no breaking changes. Please report any regressions. I will [reformat these release notes](https://github.com/micromatch/micromatch/pull/76) and add them to the changelog as soon as I have a chance.
-
-### [1.0.1] - 2016-12-12
-
-**Added**
-
-- Support for windows path edge cases where backslashes are used in brackets or other unusual combinations.
-
-### [1.0.0] - 2016-12-12
-
-Stable release.
-
-### [0.1.0] - 2016-10-08
-
-First release.
-
-
-[Unreleased]: https://github.com/jonschlinkert/micromatch/compare/0.1.0...HEAD
-[0.2.0]: https://github.com/jonschlinkert/micromatch/compare/0.1.0...0.2.0
-
-[keep-a-changelog]: https://github.com/olivierlacan/keep-a-changelog
-
diff --git a/node_modules/micromatch/LICENSE b/node_modules/micromatch/LICENSE
deleted file mode 100755
index d32ab44..0000000
--- a/node_modules/micromatch/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-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/micromatch/README.md b/node_modules/micromatch/README.md
deleted file mode 100644
index 5dfa149..0000000
--- a/node_modules/micromatch/README.md
+++ /dev/null
@@ -1,1150 +0,0 @@
-# micromatch [![NPM version](https://img.shields.io/npm/v/micromatch.svg?style=flat)](https://www.npmjs.com/package/micromatch) [![NPM monthly downloads](https://img.shields.io/npm/dm/micromatch.svg?style=flat)](https://npmjs.org/package/micromatch) [![NPM total downloads](https://img.shields.io/npm/dt/micromatch.svg?style=flat)](https://npmjs.org/package/micromatch) [![Linux Build Status](https://img.shields.io/travis/micromatch/micromatch.svg?style=flat&label=Travis)](https://travis-ci.org/micromatch/micromatch) [![Windows Build Status](https://img.shields.io/appveyor/ci/micromatch/micromatch.svg?style=flat&label=AppVeyor)](https://ci.appveyor.com/project/micromatch/micromatch)
-
-> Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch.
-
-Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support.
-
-## Table of Contents
-
-
-Details
-
-- [Install](#install)
-- [Quickstart](#quickstart)
-- [Why use micromatch?](#why-use-micromatch)
- * [Matching features](#matching-features)
-- [Switching to micromatch](#switching-to-micromatch)
- * [From minimatch](#from-minimatch)
- * [From multimatch](#from-multimatch)
-- [API](#api)
-- [Options](#options)
- * [options.basename](#optionsbasename)
- * [options.bash](#optionsbash)
- * [options.cache](#optionscache)
- * [options.dot](#optionsdot)
- * [options.failglob](#optionsfailglob)
- * [options.ignore](#optionsignore)
- * [options.matchBase](#optionsmatchbase)
- * [options.nobrace](#optionsnobrace)
- * [options.nocase](#optionsnocase)
- * [options.nodupes](#optionsnodupes)
- * [options.noext](#optionsnoext)
- * [options.nonegate](#optionsnonegate)
- * [options.noglobstar](#optionsnoglobstar)
- * [options.nonull](#optionsnonull)
- * [options.nullglob](#optionsnullglob)
- * [options.snapdragon](#optionssnapdragon)
- * [options.sourcemap](#optionssourcemap)
- * [options.unescape](#optionsunescape)
- * [options.unixify](#optionsunixify)
-- [Extended globbing](#extended-globbing)
- * [extglobs](#extglobs)
- * [braces](#braces)
- * [regex character classes](#regex-character-classes)
- * [regex groups](#regex-groups)
- * [POSIX bracket expressions](#posix-bracket-expressions)
-- [Notes](#notes)
- * [Bash 4.3 parity](#bash-43-parity)
- * [Backslashes](#backslashes)
-- [Contributing](#contributing)
-- [Benchmarks](#benchmarks)
- * [Running benchmarks](#running-benchmarks)
- * [Latest results](#latest-results)
-- [About](#about)
-
-
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save micromatch
-```
-
-## Quickstart
-
-```js
-var mm = require('micromatch');
-mm(list, patterns[, options]);
-```
-
-The [main export](#micromatch) takes a list of strings and one or more glob patterns:
-
-```js
-console.log(mm(['foo', 'bar', 'qux'], ['f*', 'b*']));
-//=> ['foo', 'bar']
-```
-
-Use [.isMatch()](#ismatch) to get true/false:
-
-```js
-console.log(mm.isMatch('foo', 'f*'));
-//=> true
-```
-
-[Switching](#switching-to-micromatch) from minimatch and multimatch is easy!
-
-## Why use micromatch?
-
-> micromatch is a [drop-in replacement](#switching-to-micromatch) for minimatch and multimatch
-
-* Supports all of the same matching features as [minimatch](https://github.com/isaacs/minimatch) and [multimatch](https://github.com/sindresorhus/multimatch)
-* Micromatch uses [snapdragon](https://github.com/jonschlinkert/snapdragon) for parsing and compiling globs, which provides granular control over the entire conversion process in a way that is easy to understand, reason about, and maintain.
-* More consistently accurate matching [than minimatch](https://github.com/yarnpkg/yarn/pull/3339), with more than 36,000 [test assertions](./test) to prove it.
-* More complete support for the Bash 4.3 specification than minimatch and multimatch. In fact, micromatch passes _all of the spec tests_ from bash, including some that bash still fails.
-* [Faster matching](#benchmarks), from a combination of optimized glob patterns, faster algorithms, and regex caching.
-* [Micromatch is safer](https://github.com/micromatch/braces#braces-is-safe), and is not subject to DoS with brace patterns, like minimatch and multimatch.
-* More reliable windows support than minimatch and multimatch.
-
-### Matching features
-
-* Support for multiple glob patterns (no need for wrappers like multimatch)
-* Wildcards (`**`, `*.js`)
-* Negation (`'!a/*.js'`, `'*!(b).js']`)
-* [extglobs](https://github.com/micromatch/extglob) (`+(x|y)`, `!(a|b)`)
-* [POSIX character classes](https://github.com/micromatch/expand-brackets) (`[[:alpha:][:digit:]]`)
-* [brace expansion](https://github.com/micromatch/braces) (`foo/{1..5}.md`, `bar/{a,b,c}.js`)
-* regex character classes (`foo-[1-5].js`)
-* regex logical "or" (`foo/(abc|xyz).js`)
-
-You can mix and match these features to create whatever patterns you need!
-
-## Switching to micromatch
-
-There is one notable difference between micromatch and minimatch in regards to how backslashes are handled. See [the notes about backslashes](#backslashes) for more information.
-
-### From minimatch
-
-Use [mm.isMatch()](#ismatch) instead of `minimatch()`:
-
-```js
-mm.isMatch('foo', 'b*');
-//=> false
-```
-
-Use [mm.match()](#match) instead of `minimatch.match()`:
-
-```js
-mm.match(['foo', 'bar'], 'b*');
-//=> 'bar'
-```
-
-### From multimatch
-
-Same signature:
-
-```js
-mm(['foo', 'bar', 'baz'], ['f*', '*z']);
-//=> ['foo', 'baz']
-```
-
-## API
-
-### [micromatch](index.js#L41)
-
-The main function takes a list of strings and one or more glob patterns to use for matching.
-
-**Params**
-
-* `list` **{Array}**: A list of strings to match
-* `patterns` **{String|Array}**: One or more glob patterns to use for matching.
-* `options` **{Object}**: See available [options](#options) for changing how matches are performed
-* `returns` **{Array}**: Returns an array of matches
-
-**Example**
-
-```js
-var mm = require('micromatch');
-mm(list, patterns[, options]);
-
-console.log(mm(['a.js', 'a.txt'], ['*.js']));
-//=> [ 'a.js' ]
-```
-
-### [.match](index.js#L93)
-
-Similar to the main function, but `pattern` must be a string.
-
-**Params**
-
-* `list` **{Array}**: Array of strings to match
-* `pattern` **{String}**: Glob pattern to use for matching.
-* `options` **{Object}**: See available [options](#options) for changing how matches are performed
-* `returns` **{Array}**: Returns an array of matches
-
-**Example**
-
-```js
-var mm = require('micromatch');
-mm.match(list, pattern[, options]);
-
-console.log(mm.match(['a.a', 'a.aa', 'a.b', 'a.c'], '*.a'));
-//=> ['a.a', 'a.aa']
-```
-
-### [.isMatch](index.js#L154)
-
-Returns true if the specified `string` matches the given glob `pattern`.
-
-**Params**
-
-* `string` **{String}**: String to match
-* `pattern` **{String}**: Glob pattern to use for matching.
-* `options` **{Object}**: See available [options](#options) for changing how matches are performed
-* `returns` **{Boolean}**: Returns true if the string matches the glob pattern.
-
-**Example**
-
-```js
-var mm = require('micromatch');
-mm.isMatch(string, pattern[, options]);
-
-console.log(mm.isMatch('a.a', '*.a'));
-//=> true
-console.log(mm.isMatch('a.b', '*.a'));
-//=> false
-```
-
-### [.some](index.js#L192)
-
-Returns true if some of the strings in the given `list` match any of the given glob `patterns`.
-
-**Params**
-
-* `list` **{String|Array}**: The string or array of strings to test. Returns as soon as the first match is found.
-* `patterns` **{String|Array}**: One or more glob patterns to use for matching.
-* `options` **{Object}**: See available [options](#options) for changing how matches are performed
-* `returns` **{Boolean}**: Returns true if any patterns match `str`
-
-**Example**
-
-```js
-var mm = require('micromatch');
-mm.some(list, patterns[, options]);
-
-console.log(mm.some(['foo.js', 'bar.js'], ['*.js', '!foo.js']));
-// true
-console.log(mm.some(['foo.js'], ['*.js', '!foo.js']));
-// false
-```
-
-### [.every](index.js#L228)
-
-Returns true if every string in the given `list` matches any of the given glob `patterns`.
-
-**Params**
-
-* `list` **{String|Array}**: The string or array of strings to test.
-* `patterns` **{String|Array}**: One or more glob patterns to use for matching.
-* `options` **{Object}**: See available [options](#options) for changing how matches are performed
-* `returns` **{Boolean}**: Returns true if any patterns match `str`
-
-**Example**
-
-```js
-var mm = require('micromatch');
-mm.every(list, patterns[, options]);
-
-console.log(mm.every('foo.js', ['foo.js']));
-// true
-console.log(mm.every(['foo.js', 'bar.js'], ['*.js']));
-// true
-console.log(mm.every(['foo.js', 'bar.js'], ['*.js', '!foo.js']));
-// false
-console.log(mm.every(['foo.js'], ['*.js', '!foo.js']));
-// false
-```
-
-### [.any](index.js#L260)
-
-Returns true if **any** of the given glob `patterns` match the specified `string`.
-
-**Params**
-
-* `str` **{String|Array}**: The string to test.
-* `patterns` **{String|Array}**: One or more glob patterns to use for matching.
-* `options` **{Object}**: See available [options](#options) for changing how matches are performed
-* `returns` **{Boolean}**: Returns true if any patterns match `str`
-
-**Example**
-
-```js
-var mm = require('micromatch');
-mm.any(string, patterns[, options]);
-
-console.log(mm.any('a.a', ['b.*', '*.a']));
-//=> true
-console.log(mm.any('a.a', 'b.*'));
-//=> false
-```
-
-### [.all](index.js#L308)
-
-Returns true if **all** of the given `patterns` match the specified string.
-
-**Params**
-
-* `str` **{String|Array}**: The string to test.
-* `patterns` **{String|Array}**: One or more glob patterns to use for matching.
-* `options` **{Object}**: See available [options](#options) for changing how matches are performed
-* `returns` **{Boolean}**: Returns true if any patterns match `str`
-
-**Example**
-
-```js
-var mm = require('micromatch');
-mm.all(string, patterns[, options]);
-
-console.log(mm.all('foo.js', ['foo.js']));
-// true
-
-console.log(mm.all('foo.js', ['*.js', '!foo.js']));
-// false
-
-console.log(mm.all('foo.js', ['*.js', 'foo.js']));
-// true
-
-console.log(mm.all('foo.js', ['*.js', 'f*', '*o*', '*o.js']));
-// true
-```
-
-### [.not](index.js#L340)
-
-Returns a list of strings that _**do not match any**_ of the given `patterns`.
-
-**Params**
-
-* `list` **{Array}**: Array of strings to match.
-* `patterns` **{String|Array}**: One or more glob pattern to use for matching.
-* `options` **{Object}**: See available [options](#options) for changing how matches are performed
-* `returns` **{Array}**: Returns an array of strings that **do not match** the given patterns.
-
-**Example**
-
-```js
-var mm = require('micromatch');
-mm.not(list, patterns[, options]);
-
-console.log(mm.not(['a.a', 'b.b', 'c.c'], '*.a'));
-//=> ['b.b', 'c.c']
-```
-
-### [.contains](index.js#L376)
-
-Returns true if the given `string` contains the given pattern. Similar to [.isMatch](#isMatch) but the pattern can match any part of the string.
-
-**Params**
-
-* `str` **{String}**: The string to match.
-* `patterns` **{String|Array}**: Glob pattern to use for matching.
-* `options` **{Object}**: See available [options](#options) for changing how matches are performed
-* `returns` **{Boolean}**: Returns true if the patter matches any part of `str`.
-
-**Example**
-
-```js
-var mm = require('micromatch');
-mm.contains(string, pattern[, options]);
-
-console.log(mm.contains('aa/bb/cc', '*b'));
-//=> true
-console.log(mm.contains('aa/bb/cc', '*d'));
-//=> false
-```
-
-### [.matchKeys](index.js#L432)
-
-Filter the keys of the given object with the given `glob` pattern and `options`. Does not attempt to match nested keys. If you need this feature, use [glob-object](https://github.com/jonschlinkert/glob-object) instead.
-
-**Params**
-
-* `object` **{Object}**: The object with keys to filter.
-* `patterns` **{String|Array}**: One or more glob patterns to use for matching.
-* `options` **{Object}**: See available [options](#options) for changing how matches are performed
-* `returns` **{Object}**: Returns an object with only keys that match the given patterns.
-
-**Example**
-
-```js
-var mm = require('micromatch');
-mm.matchKeys(object, patterns[, options]);
-
-var obj = { aa: 'a', ab: 'b', ac: 'c' };
-console.log(mm.matchKeys(obj, '*b'));
-//=> { ab: 'b' }
-```
-
-### [.matcher](index.js#L461)
-
-Returns a memoized matcher function from the given glob `pattern` and `options`. The returned function takes a string to match as its only argument and returns true if the string is a match.
-
-**Params**
-
-* `pattern` **{String}**: Glob pattern
-* `options` **{Object}**: See available [options](#options) for changing how matches are performed.
-* `returns` **{Function}**: Returns a matcher function.
-
-**Example**
-
-```js
-var mm = require('micromatch');
-mm.matcher(pattern[, options]);
-
-var isMatch = mm.matcher('*.!(*a)');
-console.log(isMatch('a.a'));
-//=> false
-console.log(isMatch('a.b'));
-//=> true
-```
-
-### [.capture](index.js#L536)
-
-Returns an array of matches captured by `pattern` in `string, or`null` if the pattern did not match.
-
-**Params**
-
-* `pattern` **{String}**: Glob pattern to use for matching.
-* `string` **{String}**: String to match
-* `options` **{Object}**: See available [options](#options) for changing how matches are performed
-* `returns` **{Boolean}**: Returns an array of captures if the string matches the glob pattern, otherwise `null`.
-
-**Example**
-
-```js
-var mm = require('micromatch');
-mm.capture(pattern, string[, options]);
-
-console.log(mm.capture('test/*.js', 'test/foo.js'));
-//=> ['foo']
-console.log(mm.capture('test/*.js', 'foo/bar.css'));
-//=> null
-```
-
-### [.makeRe](index.js#L571)
-
-Create a regular expression from the given glob `pattern`.
-
-**Params**
-
-* `pattern` **{String}**: A glob pattern to convert to regex.
-* `options` **{Object}**: See available [options](#options) for changing how matches are performed.
-* `returns` **{RegExp}**: Returns a regex created from the given pattern.
-
-**Example**
-
-```js
-var mm = require('micromatch');
-mm.makeRe(pattern[, options]);
-
-console.log(mm.makeRe('*.js'));
-//=> /^(?:(\.[\\\/])?(?!\.)(?=.)[^\/]*?\.js)$/
-```
-
-### [.braces](index.js#L618)
-
-Expand the given brace `pattern`.
-
-**Params**
-
-* `pattern` **{String}**: String with brace pattern to expand.
-* `options` **{Object}**: Any [options](#options) to change how expansion is performed. See the [braces](https://github.com/micromatch/braces) library for all available options.
-* `returns` **{Array}**
-
-**Example**
-
-```js
-var mm = require('micromatch');
-console.log(mm.braces('foo/{a,b}/bar'));
-//=> ['foo/(a|b)/bar']
-
-console.log(mm.braces('foo/{a,b}/bar', {expand: true}));
-//=> ['foo/(a|b)/bar']
-```
-
-### [.create](index.js#L685)
-
-Parses the given glob `pattern` and returns an array of abstract syntax trees (ASTs), with the compiled `output` and optional source `map` on each AST.
-
-**Params**
-
-* `pattern` **{String}**: Glob pattern to parse and compile.
-* `options` **{Object}**: Any [options](#options) to change how parsing and compiling is performed.
-* `returns` **{Object}**: Returns an object with the parsed AST, compiled string and optional source map.
-
-**Example**
-
-```js
-var mm = require('micromatch');
-mm.create(pattern[, options]);
-
-console.log(mm.create('abc/*.js'));
-// [{ options: { source: 'string', sourcemap: true },
-// state: {},
-// compilers:
-// { ... },
-// output: '(\\.[\\\\\\/])?abc\\/(?!\\.)(?=.)[^\\/]*?\\.js',
-// ast:
-// { type: 'root',
-// errors: [],
-// nodes:
-// [ ... ],
-// dot: false,
-// input: 'abc/*.js' },
-// parsingErrors: [],
-// map:
-// { version: 3,
-// sources: [ 'string' ],
-// names: [],
-// mappings: 'AAAA,GAAG,EAAC,kBAAC,EAAC,EAAE',
-// sourcesContent: [ 'abc/*.js' ] },
-// position: { line: 1, column: 28 },
-// content: {},
-// files: {},
-// idx: 6 }]
-```
-
-### [.parse](index.js#L732)
-
-Parse the given `str` with the given `options`.
-
-**Params**
-
-* `str` **{String}**
-* `options` **{Object}**
-* `returns` **{Object}**: Returns an AST
-
-**Example**
-
-```js
-var mm = require('micromatch');
-mm.parse(pattern[, options]);
-
-var ast = mm.parse('a/{b,c}/d');
-console.log(ast);
-// { type: 'root',
-// errors: [],
-// input: 'a/{b,c}/d',
-// nodes:
-// [ { type: 'bos', val: '' },
-// { type: 'text', val: 'a/' },
-// { type: 'brace',
-// nodes:
-// [ { type: 'brace.open', val: '{' },
-// { type: 'text', val: 'b,c' },
-// { type: 'brace.close', val: '}' } ] },
-// { type: 'text', val: '/d' },
-// { type: 'eos', val: '' } ] }
-```
-
-### [.compile](index.js#L780)
-
-Compile the given `ast` or string with the given `options`.
-
-**Params**
-
-* `ast` **{Object|String}**
-* `options` **{Object}**
-* `returns` **{Object}**: Returns an object that has an `output` property with the compiled string.
-
-**Example**
-
-```js
-var mm = require('micromatch');
-mm.compile(ast[, options]);
-
-var ast = mm.parse('a/{b,c}/d');
-console.log(mm.compile(ast));
-// { options: { source: 'string' },
-// state: {},
-// compilers:
-// { eos: [Function],
-// noop: [Function],
-// bos: [Function],
-// brace: [Function],
-// 'brace.open': [Function],
-// text: [Function],
-// 'brace.close': [Function] },
-// output: [ 'a/(b|c)/d' ],
-// ast:
-// { ... },
-// parsingErrors: [] }
-```
-
-### [.clearCache](index.js#L801)
-
-Clear the regex cache.
-
-**Example**
-
-```js
-mm.clearCache();
-```
-
-## Options
-
-* [basename](#optionsbasename)
-* [bash](#optionsbash)
-* [cache](#optionscache)
-* [dot](#optionsdot)
-* [failglob](#optionsfailglob)
-* [ignore](#optionsignore)
-* [matchBase](#optionsmatchBase)
-* [nobrace](#optionsnobrace)
-* [nocase](#optionsnocase)
-* [nodupes](#optionsnodupes)
-* [noext](#optionsnoext)
-* [noglobstar](#optionsnoglobstar)
-* [nonull](#optionsnonull)
-* [nullglob](#optionsnullglob)
-* [snapdragon](#optionssnapdragon)
-* [sourcemap](#optionssourcemap)
-* [unescape](#optionsunescape)
-* [unixify](#optionsunixify)
-
-### options.basename
-
-Allow glob patterns without slashes to match a file path based on its basename. Same behavior as [minimatch](https://github.com/isaacs/minimatch) option `matchBase`.
-
-**Type**: `Boolean`
-
-**Default**: `false`
-
-**Example**
-
-```js
-mm(['a/b.js', 'a/c.md'], '*.js');
-//=> []
-
-mm(['a/b.js', 'a/c.md'], '*.js', {matchBase: true});
-//=> ['a/b.js']
-```
-
-### options.bash
-
-Enabled by default, this option enforces bash-like behavior with stars immediately following a bracket expression. Bash bracket expressions are similar to regex character classes, but unlike regex, a star following a bracket expression **does not repeat the bracketed characters**. Instead, the star is treated the same as an other star.
-
-**Type**: `Boolean`
-
-**Default**: `true`
-
-**Example**
-
-```js
-var files = ['abc', 'ajz'];
-console.log(mm(files, '[a-c]*'));
-//=> ['abc', 'ajz']
-
-console.log(mm(files, '[a-c]*', {bash: false}));
-```
-
-### options.cache
-
-Disable regex and function memoization.
-
-**Type**: `Boolean`
-
-**Default**: `undefined`
-
-### options.dot
-
-Match dotfiles. Same behavior as [minimatch](https://github.com/isaacs/minimatch) option `dot`.
-
-**Type**: `Boolean`
-
-**Default**: `false`
-
-### options.failglob
-
-Similar to the `--failglob` behavior in Bash, throws an error when no matches are found.
-
-**Type**: `Boolean`
-
-**Default**: `undefined`
-
-### options.ignore
-
-String or array of glob patterns to match files to ignore.
-
-**Type**: `String|Array`
-
-**Default**: `undefined`
-
-### options.matchBase
-
-Alias for [options.basename](#options-basename).
-
-### options.nobrace
-
-Disable expansion of brace patterns. Same behavior as [minimatch](https://github.com/isaacs/minimatch) option `nobrace`.
-
-**Type**: `Boolean`
-
-**Default**: `undefined`
-
-See [braces](https://github.com/micromatch/braces) for more information about extended brace expansion.
-
-### options.nocase
-
-Use a case-insensitive regex for matching files. Same behavior as [minimatch](https://github.com/isaacs/minimatch).
-
-**Type**: `Boolean`
-
-**Default**: `undefined`
-
-### options.nodupes
-
-Remove duplicate elements from the result array.
-
-**Type**: `Boolean`
-
-**Default**: `undefined`
-
-**Example**
-
-Example of using the `unescape` and `nodupes` options together:
-
-```js
-mm.match(['a/b/c', 'a/b/c'], 'a/b/c');
-//=> ['a/b/c', 'a/b/c']
-
-mm.match(['a/b/c', 'a/b/c'], 'a/b/c', {nodupes: true});
-//=> ['abc']
-```
-
-### options.noext
-
-Disable extglob support, so that extglobs are regarded as literal characters.
-
-**Type**: `Boolean`
-
-**Default**: `undefined`
-
-**Examples**
-
-```js
-mm(['a/z', 'a/b', 'a/!(z)'], 'a/!(z)');
-//=> ['a/b', 'a/!(z)']
-
-mm(['a/z', 'a/b', 'a/!(z)'], 'a/!(z)', {noext: true});
-//=> ['a/!(z)'] (matches only as literal characters)
-```
-
-### options.nonegate
-
-Disallow negation (`!`) patterns, and treat leading `!` as a literal character to match.
-
-**Type**: `Boolean`
-
-**Default**: `undefined`
-
-### options.noglobstar
-
-Disable matching with globstars (`**`).
-
-**Type**: `Boolean`
-
-**Default**: `undefined`
-
-```js
-mm(['a/b', 'a/b/c', 'a/b/c/d'], 'a/**');
-//=> ['a/b', 'a/b/c', 'a/b/c/d']
-
-mm(['a/b', 'a/b/c', 'a/b/c/d'], 'a/**', {noglobstar: true});
-//=> ['a/b']
-```
-
-### options.nonull
-
-Alias for [options.nullglob](#options-nullglob).
-
-### options.nullglob
-
-If `true`, when no matches are found the actual (arrayified) glob pattern is returned instead of an empty array. Same behavior as [minimatch](https://github.com/isaacs/minimatch) option `nonull`.
-
-**Type**: `Boolean`
-
-**Default**: `undefined`
-
-### options.snapdragon
-
-Pass your own instance of [snapdragon](https://github.com/jonschlinkert/snapdragon), to customize parsers or compilers.
-
-**Type**: `Object`
-
-**Default**: `undefined`
-
-### options.sourcemap
-
-Generate a source map by enabling the `sourcemap` option with the `.parse`, `.compile`, or `.create` methods.
-
-_(Note that sourcemaps are currently not enabled for brace patterns)_
-
-**Examples**
-
-``` js
-var mm = require('micromatch');
-var pattern = '*(*(of*(a)x)z)';
-
-var res = mm.create('abc/*.js', {sourcemap: true});
-console.log(res.map);
-// { version: 3,
-// sources: [ 'string' ],
-// names: [],
-// mappings: 'AAAA,GAAG,EAAC,iBAAC,EAAC,EAAE',
-// sourcesContent: [ 'abc/*.js' ] }
-
-var ast = mm.parse('abc/**/*.js');
-var res = mm.compile(ast, {sourcemap: true});
-console.log(res.map);
-// { version: 3,
-// sources: [ 'string' ],
-// names: [],
-// mappings: 'AAAA,GAAG,EAAC,2BAAE,EAAC,iBAAC,EAAC,EAAE',
-// sourcesContent: [ 'abc/**/*.js' ] }
-
-var ast = mm.parse(pattern);
-var res = mm.compile(ast, {sourcemap: true});
-console.log(res.map);
-// { version: 3,
-// sources: [ 'string' ],
-// names: [],
-// mappings: 'AAAA,CAAE,CAAE,EAAE,CAAE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC',
-// sourcesContent: [ '*(*(of*(a)x)z)' ] }
-```
-
-### options.unescape
-
-Remove backslashes from returned matches.
-
-**Type**: `Boolean`
-
-**Default**: `undefined`
-
-**Example**
-
-In this example we want to match a literal `*`:
-
-```js
-mm.match(['abc', 'a\\*c'], 'a\\*c');
-//=> ['a\\*c']
-
-mm.match(['abc', 'a\\*c'], 'a\\*c', {unescape: true});
-//=> ['a*c']
-```
-
-### options.unixify
-
-Convert path separators on returned files to posix/unix-style forward slashes.
-
-**Type**: `Boolean`
-
-**Default**: `true` on windows, `false` everywhere else
-
-**Example**
-
-```js
-mm.match(['a\\b\\c'], 'a/**');
-//=> ['a/b/c']
-
-mm.match(['a\\b\\c'], {unixify: false});
-//=> ['a\\b\\c']
-```
-
-## Extended globbing
-
-Micromatch also supports extended globbing features.
-
-### extglobs
-
-Extended globbing, as described by the bash man page:
-
-| **pattern** | **regex equivalent** | **description** |
-| --- | --- | --- |
-| `?(pattern)` | `(pattern)?` | Matches zero or one occurrence of the given patterns |
-| `*(pattern)` | `(pattern)*` | Matches zero or more occurrences of the given patterns |
-| `+(pattern)` | `(pattern)+` | Matches one or more occurrences of the given patterns |
-| `@(pattern)` | `(pattern)` * | Matches one of the given patterns |
-| `!(pattern)` | N/A (equivalent regex is much more complicated) | Matches anything except one of the given patterns |
-
-* Note that `@` isn't a RegEx character.
-
-Powered by [extglob](https://github.com/micromatch/extglob). Visit that library for the full range of options or to report extglob related issues.
-
-### braces
-
-Brace patterns can be used to match specific ranges or sets of characters. For example, the pattern `*/{1..3}/*` would match any of following strings:
-
-```
-foo/1/bar
-foo/2/bar
-foo/3/bar
-baz/1/qux
-baz/2/qux
-baz/3/qux
-```
-
-Visit [braces](https://github.com/micromatch/braces) to see the full range of features and options related to brace expansion, or to create brace matching or expansion related issues.
-
-### regex character classes
-
-Given the list: `['a.js', 'b.js', 'c.js', 'd.js', 'E.js']`:
-
-* `[ac].js`: matches both `a` and `c`, returning `['a.js', 'c.js']`
-* `[b-d].js`: matches from `b` to `d`, returning `['b.js', 'c.js', 'd.js']`
-* `[b-d].js`: matches from `b` to `d`, returning `['b.js', 'c.js', 'd.js']`
-* `a/[A-Z].js`: matches and uppercase letter, returning `['a/E.md']`
-
-Learn about [regex character classes](http://www.regular-expressions.info/charclass.html).
-
-### regex groups
-
-Given `['a.js', 'b.js', 'c.js', 'd.js', 'E.js']`:
-
-* `(a|c).js`: would match either `a` or `c`, returning `['a.js', 'c.js']`
-* `(b|d).js`: would match either `b` or `d`, returning `['b.js', 'd.js']`
-* `(b|[A-Z]).js`: would match either `b` or an uppercase letter, returning `['b.js', 'E.js']`
-
-As with regex, parens can be nested, so patterns like `((a|b)|c)/b` will work. Although brace expansion might be friendlier to use, depending on preference.
-
-### POSIX bracket expressions
-
-POSIX brackets are intended to be more user-friendly than regex character classes. This of course is in the eye of the beholder.
-
-**Example**
-
-```js
-mm.isMatch('a1', '[[:alpha:][:digit:]]');
-//=> true
-
-mm.isMatch('a1', '[[:alpha:][:alpha:]]');
-//=> false
-```
-
-See [expand-brackets](https://github.com/jonschlinkert/expand-brackets) for more information about bracket expressions.
-
-***
-
-## Notes
-
-### Bash 4.3 parity
-
-Whenever possible matching behavior is based on behavior Bash 4.3, which is mostly consistent with minimatch.
-
-However, it's suprising how many edge cases and rabbit holes there are with glob matching, and since there is no real glob specification, and micromatch is more accurate than both Bash and minimatch, there are cases where best-guesses were made for behavior. In a few cases where Bash had no answers, we used wildmatch (used by git) as a fallback.
-
-### Backslashes
-
-There is an important, notable difference between minimatch and micromatch _in regards to how backslashes are handled_ in glob patterns.
-
-* Micromatch exclusively and explicitly reserves backslashes for escaping characters in a glob pattern, even on windows. This is consistent with bash behavior.
-* Minimatch converts all backslashes to forward slashes, which means you can't use backslashes to escape any characters in your glob patterns.
-
-We made this decision for micromatch for a couple of reasons:
-
-* consistency with bash conventions.
-* glob patterns are not filepaths. They are a type of [regular language](https://en.wikipedia.org/wiki/Regular_language) that is converted to a JavaScript regular expression. Thus, when forward slashes are defined in a glob pattern, the resulting regular expression will match windows or POSIX path separators just fine.
-
-**A note about joining paths to globs**
-
-Note that when you pass something like `path.join('foo', '*')` to micromatch, you are creating a filepath and expecting it to still work as a glob pattern. This causes problems on windows, since the `path.sep` is `\\`.
-
-In other words, since `\\` is reserved as an escape character in globs, on windows `path.join('foo', '*')` would result in `foo\\*`, which tells micromatch to match `*` as a literal character. This is the same behavior as bash.
-
-## Contributing
-
-All contributions are welcome! Please read [the contributing guide](.github/contributing.md) to get started.
-
-**Bug reports**
-
-Please create an issue if you encounter a bug or matching behavior that doesn't seem correct. If you find a matching-related issue, please:
-
-* [research existing issues first](../../issues) (open and closed)
-* visit the [GNU Bash documentation](https://www.gnu.org/software/bash/manual/) to see how Bash deals with the pattern
-* visit the [minimatch](https://github.com/isaacs/minimatch) documentation to cross-check expected behavior in node.js
-* if all else fails, since there is no real specification for globs we will probably need to discuss expected behavior and decide how to resolve it. which means any detail you can provide to help with this discussion would be greatly appreciated.
-
-**Platform issues**
-
-It's important to us that micromatch work consistently on all platforms. If you encounter any platform-specific matching or path related issues, please let us know (pull requests are also greatly appreciated).
-
-## Benchmarks
-
-### Running benchmarks
-
-Install dev dependencies:
-
-```bash
-npm i -d && npm run benchmark
-```
-
-### Latest results
-
-As of February 18, 2018 (longer bars are better):
-
-```sh
-# braces-globstar-large-list (485691 bytes)
- micromatch ██████████████████████████████████████████████████ (517 ops/sec ±0.49%)
- minimatch █ (18.92 ops/sec ±0.54%)
- multimatch █ (18.94 ops/sec ±0.62%)
-
- micromatch is faster by an avg. of 2,733%
-
-# braces-multiple (3362 bytes)
- micromatch ██████████████████████████████████████████████████ (33,625 ops/sec ±0.45%)
- minimatch (2.92 ops/sec ±3.26%)
- multimatch (2.90 ops/sec ±2.76%)
-
- micromatch is faster by an avg. of 1,156,935%
-
-# braces-range (727 bytes)
- micromatch █████████████████████████████████████████████████ (155,220 ops/sec ±0.56%)
- minimatch ██████ (20,186 ops/sec ±1.27%)
- multimatch ██████ (19,809 ops/sec ±0.60%)
-
- micromatch is faster by an avg. of 776%
-
-# braces-set (2858 bytes)
- micromatch █████████████████████████████████████████████████ (24,354 ops/sec ±0.92%)
- minimatch █████ (2,566 ops/sec ±0.56%)
- multimatch ████ (2,431 ops/sec ±1.25%)
-
- micromatch is faster by an avg. of 975%
-
-# globstar-large-list (485686 bytes)
- micromatch █████████████████████████████████████████████████ (504 ops/sec ±0.45%)
- minimatch ███ (33.36 ops/sec ±1.08%)
- multimatch ███ (33.19 ops/sec ±1.35%)
-
- micromatch is faster by an avg. of 1,514%
-
-# globstar-long-list (90647 bytes)
- micromatch ██████████████████████████████████████████████████ (2,694 ops/sec ±1.08%)
- minimatch ████████████████ (870 ops/sec ±1.09%)
- multimatch ████████████████ (862 ops/sec ±0.84%)
-
- micromatch is faster by an avg. of 311%
-
-# globstar-short-list (182 bytes)
- micromatch ██████████████████████████████████████████████████ (328,921 ops/sec ±1.06%)
- minimatch █████████ (64,808 ops/sec ±1.42%)
- multimatch ████████ (57,991 ops/sec ±2.11%)
-
- micromatch is faster by an avg. of 536%
-
-# no-glob (701 bytes)
- micromatch █████████████████████████████████████████████████ (415,935 ops/sec ±0.36%)
- minimatch ███████████ (92,730 ops/sec ±1.44%)
- multimatch █████████ (81,958 ops/sec ±2.13%)
-
- micromatch is faster by an avg. of 476%
-
-# star-basename-long (12339 bytes)
- micromatch █████████████████████████████████████████████████ (7,963 ops/sec ±0.36%)
- minimatch ███████████████████████████████ (5,072 ops/sec ±0.83%)
- multimatch ███████████████████████████████ (5,028 ops/sec ±0.40%)
-
- micromatch is faster by an avg. of 158%
-
-# star-basename-short (349 bytes)
- micromatch ██████████████████████████████████████████████████ (269,552 ops/sec ±0.70%)
- minimatch ██████████████████████ (122,457 ops/sec ±1.39%)
- multimatch ████████████████████ (110,788 ops/sec ±1.99%)
-
- micromatch is faster by an avg. of 231%
-
-# star-folder-long (19207 bytes)
- micromatch █████████████████████████████████████████████████ (3,806 ops/sec ±0.38%)
- minimatch ████████████████████████████ (2,204 ops/sec ±0.32%)
- multimatch ██████████████████████████ (2,020 ops/sec ±1.07%)
-
- micromatch is faster by an avg. of 180%
-
-# star-folder-short (551 bytes)
- micromatch ██████████████████████████████████████████████████ (249,077 ops/sec ±0.40%)
- minimatch ███████████ (59,431 ops/sec ±1.67%)
- multimatch ███████████ (55,569 ops/sec ±1.43%)
-
- micromatch is faster by an avg. of 433%
-```
-
-## About
-
-
-Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-Please read the [contributing guide](.github/contributing.md) for advice on opening issues, pull requests, and coding standards.
-
-
-
-
-Running Tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-
-
-
-Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-
-
-### Related projects
-
-You might also be interested in these projects:
-
-* [braces](https://www.npmjs.com/package/braces): Bash-like brace expansion, implemented in JavaScript. Safer than other brace expansion libs, with complete support… [more](https://github.com/micromatch/braces) | [homepage](https://github.com/micromatch/braces "Bash-like brace expansion, implemented in JavaScript. Safer than other brace expansion libs, with complete support for the Bash 4.3 braces specification, without sacrificing speed.")
-* [expand-brackets](https://www.npmjs.com/package/expand-brackets): Expand POSIX bracket expressions (character classes) in glob patterns. | [homepage](https://github.com/jonschlinkert/expand-brackets "Expand POSIX bracket expressions (character classes) in glob patterns.")
-* [extglob](https://www.npmjs.com/package/extglob): Extended glob support for JavaScript. Adds (almost) the expressive power of regular expressions to glob… [more](https://github.com/micromatch/extglob) | [homepage](https://github.com/micromatch/extglob "Extended glob support for JavaScript. Adds (almost) the expressive power of regular expressions to glob patterns.")
-* [fill-range](https://www.npmjs.com/package/fill-range): Fill in a range of numbers or letters, optionally passing an increment or `step` to… [more](https://github.com/jonschlinkert/fill-range) | [homepage](https://github.com/jonschlinkert/fill-range "Fill in a range of numbers or letters, optionally passing an increment or `step` to use, or create a regex-compatible range with `options.toRegex`")
-* [nanomatch](https://www.npmjs.com/package/nanomatch): Fast, minimal glob matcher for node.js. Similar to micromatch, minimatch and multimatch, but complete Bash… [more](https://github.com/micromatch/nanomatch) | [homepage](https://github.com/micromatch/nanomatch "Fast, minimal glob matcher for node.js. Similar to micromatch, minimatch and multimatch, but complete Bash 4.3 wildcard support only (no support for exglobs, posix brackets or braces)")
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 457 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 12 | [es128](https://github.com/es128) |
-| 8 | [doowb](https://github.com/doowb) |
-| 3 | [paulmillr](https://github.com/paulmillr) |
-| 2 | [TrySound](https://github.com/TrySound) |
-| 2 | [MartinKolarik](https://github.com/MartinKolarik) |
-| 2 | [charlike-old](https://github.com/charlike-old) |
-| 1 | [amilajack](https://github.com/amilajack) |
-| 1 | [mrmlnc](https://github.com/mrmlnc) |
-| 1 | [devongovett](https://github.com/devongovett) |
-| 1 | [DianeLooney](https://github.com/DianeLooney) |
-| 1 | [UltCombo](https://github.com/UltCombo) |
-| 1 | [tomByrer](https://github.com/tomByrer) |
-| 1 | [fidian](https://github.com/fidian) |
-
-### Author
-
-**Jon Schlinkert**
-
-* [linkedin/in/jonschlinkert](https://linkedin.com/in/jonschlinkert)
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2018, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on February 18, 2018._
\ No newline at end of file
diff --git a/node_modules/micromatch/index.js b/node_modules/micromatch/index.js
deleted file mode 100644
index fe02f2c..0000000
--- a/node_modules/micromatch/index.js
+++ /dev/null
@@ -1,877 +0,0 @@
-'use strict';
-
-/**
- * Module dependencies
- */
-
-var util = require('util');
-var braces = require('braces');
-var toRegex = require('to-regex');
-var extend = require('extend-shallow');
-
-/**
- * Local dependencies
- */
-
-var compilers = require('./lib/compilers');
-var parsers = require('./lib/parsers');
-var cache = require('./lib/cache');
-var utils = require('./lib/utils');
-var MAX_LENGTH = 1024 * 64;
-
-/**
- * The main function takes a list of strings and one or more
- * glob patterns to use for matching.
- *
- * ```js
- * var mm = require('micromatch');
- * mm(list, patterns[, options]);
- *
- * console.log(mm(['a.js', 'a.txt'], ['*.js']));
- * //=> [ 'a.js' ]
- * ```
- * @param {Array} `list` A list of strings to match
- * @param {String|Array} `patterns` One or more glob patterns to use for matching.
- * @param {Object} `options` See available [options](#options) for changing how matches are performed
- * @return {Array} Returns an array of matches
- * @summary false
- * @api public
- */
-
-function micromatch(list, patterns, options) {
- patterns = utils.arrayify(patterns);
- list = utils.arrayify(list);
-
- var len = patterns.length;
- if (list.length === 0 || len === 0) {
- return [];
- }
-
- if (len === 1) {
- return micromatch.match(list, patterns[0], options);
- }
-
- var omit = [];
- var keep = [];
- var idx = -1;
-
- while (++idx < len) {
- var pattern = patterns[idx];
-
- if (typeof pattern === 'string' && pattern.charCodeAt(0) === 33 /* ! */) {
- omit.push.apply(omit, micromatch.match(list, pattern.slice(1), options));
- } else {
- keep.push.apply(keep, micromatch.match(list, pattern, options));
- }
- }
-
- var matches = utils.diff(keep, omit);
- if (!options || options.nodupes !== false) {
- return utils.unique(matches);
- }
-
- return matches;
-}
-
-/**
- * Similar to the main function, but `pattern` must be a string.
- *
- * ```js
- * var mm = require('micromatch');
- * mm.match(list, pattern[, options]);
- *
- * console.log(mm.match(['a.a', 'a.aa', 'a.b', 'a.c'], '*.a'));
- * //=> ['a.a', 'a.aa']
- * ```
- * @param {Array} `list` Array of strings to match
- * @param {String} `pattern` Glob pattern to use for matching.
- * @param {Object} `options` See available [options](#options) for changing how matches are performed
- * @return {Array} Returns an array of matches
- * @api public
- */
-
-micromatch.match = function(list, pattern, options) {
- if (Array.isArray(pattern)) {
- throw new TypeError('expected pattern to be a string');
- }
-
- var unixify = utils.unixify(options);
- var isMatch = memoize('match', pattern, options, micromatch.matcher);
- var matches = [];
-
- list = utils.arrayify(list);
- var len = list.length;
- var idx = -1;
-
- while (++idx < len) {
- var ele = list[idx];
- if (ele === pattern || isMatch(ele)) {
- matches.push(utils.value(ele, unixify, options));
- }
- }
-
- // if no options were passed, uniquify results and return
- if (typeof options === 'undefined') {
- return utils.unique(matches);
- }
-
- if (matches.length === 0) {
- if (options.failglob === true) {
- throw new Error('no matches found for "' + pattern + '"');
- }
- if (options.nonull === true || options.nullglob === true) {
- return [options.unescape ? utils.unescape(pattern) : pattern];
- }
- }
-
- // if `opts.ignore` was defined, diff ignored list
- if (options.ignore) {
- matches = micromatch.not(matches, options.ignore, options);
- }
-
- return options.nodupes !== false ? utils.unique(matches) : matches;
-};
-
-/**
- * Returns true if the specified `string` matches the given glob `pattern`.
- *
- * ```js
- * var mm = require('micromatch');
- * mm.isMatch(string, pattern[, options]);
- *
- * console.log(mm.isMatch('a.a', '*.a'));
- * //=> true
- * console.log(mm.isMatch('a.b', '*.a'));
- * //=> false
- * ```
- * @param {String} `string` String to match
- * @param {String} `pattern` Glob pattern to use for matching.
- * @param {Object} `options` See available [options](#options) for changing how matches are performed
- * @return {Boolean} Returns true if the string matches the glob pattern.
- * @api public
- */
-
-micromatch.isMatch = function(str, pattern, options) {
- if (typeof str !== 'string') {
- throw new TypeError('expected a string: "' + util.inspect(str) + '"');
- }
-
- if (isEmptyString(str) || isEmptyString(pattern)) {
- return false;
- }
-
- var equals = utils.equalsPattern(options);
- if (equals(str)) {
- return true;
- }
-
- var isMatch = memoize('isMatch', pattern, options, micromatch.matcher);
- return isMatch(str);
-};
-
-/**
- * Returns true if some of the strings in the given `list` match any of the
- * given glob `patterns`.
- *
- * ```js
- * var mm = require('micromatch');
- * mm.some(list, patterns[, options]);
- *
- * console.log(mm.some(['foo.js', 'bar.js'], ['*.js', '!foo.js']));
- * // true
- * console.log(mm.some(['foo.js'], ['*.js', '!foo.js']));
- * // false
- * ```
- * @param {String|Array} `list` The string or array of strings to test. Returns as soon as the first match is found.
- * @param {String|Array} `patterns` One or more glob patterns to use for matching.
- * @param {Object} `options` See available [options](#options) for changing how matches are performed
- * @return {Boolean} Returns true if any patterns match `str`
- * @api public
- */
-
-micromatch.some = function(list, patterns, options) {
- if (typeof list === 'string') {
- list = [list];
- }
- for (var i = 0; i < list.length; i++) {
- if (micromatch(list[i], patterns, options).length === 1) {
- return true;
- }
- }
- return false;
-};
-
-/**
- * Returns true if every string in the given `list` matches
- * any of the given glob `patterns`.
- *
- * ```js
- * var mm = require('micromatch');
- * mm.every(list, patterns[, options]);
- *
- * console.log(mm.every('foo.js', ['foo.js']));
- * // true
- * console.log(mm.every(['foo.js', 'bar.js'], ['*.js']));
- * // true
- * console.log(mm.every(['foo.js', 'bar.js'], ['*.js', '!foo.js']));
- * // false
- * console.log(mm.every(['foo.js'], ['*.js', '!foo.js']));
- * // false
- * ```
- * @param {String|Array} `list` The string or array of strings to test.
- * @param {String|Array} `patterns` One or more glob patterns to use for matching.
- * @param {Object} `options` See available [options](#options) for changing how matches are performed
- * @return {Boolean} Returns true if any patterns match `str`
- * @api public
- */
-
-micromatch.every = function(list, patterns, options) {
- if (typeof list === 'string') {
- list = [list];
- }
- for (var i = 0; i < list.length; i++) {
- if (micromatch(list[i], patterns, options).length !== 1) {
- return false;
- }
- }
- return true;
-};
-
-/**
- * Returns true if **any** of the given glob `patterns`
- * match the specified `string`.
- *
- * ```js
- * var mm = require('micromatch');
- * mm.any(string, patterns[, options]);
- *
- * console.log(mm.any('a.a', ['b.*', '*.a']));
- * //=> true
- * console.log(mm.any('a.a', 'b.*'));
- * //=> false
- * ```
- * @param {String|Array} `str` The string to test.
- * @param {String|Array} `patterns` One or more glob patterns to use for matching.
- * @param {Object} `options` See available [options](#options) for changing how matches are performed
- * @return {Boolean} Returns true if any patterns match `str`
- * @api public
- */
-
-micromatch.any = function(str, patterns, options) {
- if (typeof str !== 'string') {
- throw new TypeError('expected a string: "' + util.inspect(str) + '"');
- }
-
- if (isEmptyString(str) || isEmptyString(patterns)) {
- return false;
- }
-
- if (typeof patterns === 'string') {
- patterns = [patterns];
- }
-
- for (var i = 0; i < patterns.length; i++) {
- if (micromatch.isMatch(str, patterns[i], options)) {
- return true;
- }
- }
- return false;
-};
-
-/**
- * Returns true if **all** of the given `patterns` match
- * the specified string.
- *
- * ```js
- * var mm = require('micromatch');
- * mm.all(string, patterns[, options]);
- *
- * console.log(mm.all('foo.js', ['foo.js']));
- * // true
- *
- * console.log(mm.all('foo.js', ['*.js', '!foo.js']));
- * // false
- *
- * console.log(mm.all('foo.js', ['*.js', 'foo.js']));
- * // true
- *
- * console.log(mm.all('foo.js', ['*.js', 'f*', '*o*', '*o.js']));
- * // true
- * ```
- * @param {String|Array} `str` The string to test.
- * @param {String|Array} `patterns` One or more glob patterns to use for matching.
- * @param {Object} `options` See available [options](#options) for changing how matches are performed
- * @return {Boolean} Returns true if any patterns match `str`
- * @api public
- */
-
-micromatch.all = function(str, patterns, options) {
- if (typeof str !== 'string') {
- throw new TypeError('expected a string: "' + util.inspect(str) + '"');
- }
- if (typeof patterns === 'string') {
- patterns = [patterns];
- }
- for (var i = 0; i < patterns.length; i++) {
- if (!micromatch.isMatch(str, patterns[i], options)) {
- return false;
- }
- }
- return true;
-};
-
-/**
- * Returns a list of strings that _**do not match any**_ of the given `patterns`.
- *
- * ```js
- * var mm = require('micromatch');
- * mm.not(list, patterns[, options]);
- *
- * console.log(mm.not(['a.a', 'b.b', 'c.c'], '*.a'));
- * //=> ['b.b', 'c.c']
- * ```
- * @param {Array} `list` Array of strings to match.
- * @param {String|Array} `patterns` One or more glob pattern to use for matching.
- * @param {Object} `options` See available [options](#options) for changing how matches are performed
- * @return {Array} Returns an array of strings that **do not match** the given patterns.
- * @api public
- */
-
-micromatch.not = function(list, patterns, options) {
- var opts = extend({}, options);
- var ignore = opts.ignore;
- delete opts.ignore;
-
- var unixify = utils.unixify(opts);
- list = utils.arrayify(list).map(unixify);
-
- var matches = utils.diff(list, micromatch(list, patterns, opts));
- if (ignore) {
- matches = utils.diff(matches, micromatch(list, ignore));
- }
-
- return opts.nodupes !== false ? utils.unique(matches) : matches;
-};
-
-/**
- * Returns true if the given `string` contains the given pattern. Similar
- * to [.isMatch](#isMatch) but the pattern can match any part of the string.
- *
- * ```js
- * var mm = require('micromatch');
- * mm.contains(string, pattern[, options]);
- *
- * console.log(mm.contains('aa/bb/cc', '*b'));
- * //=> true
- * console.log(mm.contains('aa/bb/cc', '*d'));
- * //=> false
- * ```
- * @param {String} `str` The string to match.
- * @param {String|Array} `patterns` Glob pattern to use for matching.
- * @param {Object} `options` See available [options](#options) for changing how matches are performed
- * @return {Boolean} Returns true if the patter matches any part of `str`.
- * @api public
- */
-
-micromatch.contains = function(str, patterns, options) {
- if (typeof str !== 'string') {
- throw new TypeError('expected a string: "' + util.inspect(str) + '"');
- }
-
- if (typeof patterns === 'string') {
- if (isEmptyString(str) || isEmptyString(patterns)) {
- return false;
- }
-
- var equals = utils.equalsPattern(patterns, options);
- if (equals(str)) {
- return true;
- }
- var contains = utils.containsPattern(patterns, options);
- if (contains(str)) {
- return true;
- }
- }
-
- var opts = extend({}, options, {contains: true});
- return micromatch.any(str, patterns, opts);
-};
-
-/**
- * Returns true if the given pattern and options should enable
- * the `matchBase` option.
- * @return {Boolean}
- * @api private
- */
-
-micromatch.matchBase = function(pattern, options) {
- if (pattern && pattern.indexOf('/') !== -1 || !options) return false;
- return options.basename === true || options.matchBase === true;
-};
-
-/**
- * Filter the keys of the given object with the given `glob` pattern
- * and `options`. Does not attempt to match nested keys. If you need this feature,
- * use [glob-object][] instead.
- *
- * ```js
- * var mm = require('micromatch');
- * mm.matchKeys(object, patterns[, options]);
- *
- * var obj = { aa: 'a', ab: 'b', ac: 'c' };
- * console.log(mm.matchKeys(obj, '*b'));
- * //=> { ab: 'b' }
- * ```
- * @param {Object} `object` The object with keys to filter.
- * @param {String|Array} `patterns` One or more glob patterns to use for matching.
- * @param {Object} `options` See available [options](#options) for changing how matches are performed
- * @return {Object} Returns an object with only keys that match the given patterns.
- * @api public
- */
-
-micromatch.matchKeys = function(obj, patterns, options) {
- if (!utils.isObject(obj)) {
- throw new TypeError('expected the first argument to be an object');
- }
- var keys = micromatch(Object.keys(obj), patterns, options);
- return utils.pick(obj, keys);
-};
-
-/**
- * Returns a memoized matcher function from the given glob `pattern` and `options`.
- * The returned function takes a string to match as its only argument and returns
- * true if the string is a match.
- *
- * ```js
- * var mm = require('micromatch');
- * mm.matcher(pattern[, options]);
- *
- * var isMatch = mm.matcher('*.!(*a)');
- * console.log(isMatch('a.a'));
- * //=> false
- * console.log(isMatch('a.b'));
- * //=> true
- * ```
- * @param {String} `pattern` Glob pattern
- * @param {Object} `options` See available [options](#options) for changing how matches are performed.
- * @return {Function} Returns a matcher function.
- * @api public
- */
-
-micromatch.matcher = function matcher(pattern, options) {
- if (Array.isArray(pattern)) {
- return compose(pattern, options, matcher);
- }
-
- // if pattern is a regex
- if (pattern instanceof RegExp) {
- return test(pattern);
- }
-
- // if pattern is invalid
- if (!utils.isString(pattern)) {
- throw new TypeError('expected pattern to be an array, string or regex');
- }
-
- // if pattern is a non-glob string
- if (!utils.hasSpecialChars(pattern)) {
- if (options && options.nocase === true) {
- pattern = pattern.toLowerCase();
- }
- return utils.matchPath(pattern, options);
- }
-
- // if pattern is a glob string
- var re = micromatch.makeRe(pattern, options);
-
- // if `options.matchBase` or `options.basename` is defined
- if (micromatch.matchBase(pattern, options)) {
- return utils.matchBasename(re, options);
- }
-
- function test(regex) {
- var equals = utils.equalsPattern(options);
- var unixify = utils.unixify(options);
-
- return function(str) {
- if (equals(str)) {
- return true;
- }
-
- if (regex.test(unixify(str))) {
- return true;
- }
- return false;
- };
- }
-
- var fn = test(re);
- Object.defineProperty(fn, 'result', {
- configurable: true,
- enumerable: false,
- value: re.result
- });
- return fn;
-};
-
-/**
- * Returns an array of matches captured by `pattern` in `string, or `null` if the pattern did not match.
- *
- * ```js
- * var mm = require('micromatch');
- * mm.capture(pattern, string[, options]);
- *
- * console.log(mm.capture('test/*.js', 'test/foo.js'));
- * //=> ['foo']
- * console.log(mm.capture('test/*.js', 'foo/bar.css'));
- * //=> null
- * ```
- * @param {String} `pattern` Glob pattern to use for matching.
- * @param {String} `string` String to match
- * @param {Object} `options` See available [options](#options) for changing how matches are performed
- * @return {Boolean} Returns an array of captures if the string matches the glob pattern, otherwise `null`.
- * @api public
- */
-
-micromatch.capture = function(pattern, str, options) {
- var re = micromatch.makeRe(pattern, extend({capture: true}, options));
- var unixify = utils.unixify(options);
-
- function match() {
- return function(string) {
- var match = re.exec(unixify(string));
- if (!match) {
- return null;
- }
-
- return match.slice(1);
- };
- }
-
- var capture = memoize('capture', pattern, options, match);
- return capture(str);
-};
-
-/**
- * Create a regular expression from the given glob `pattern`.
- *
- * ```js
- * var mm = require('micromatch');
- * mm.makeRe(pattern[, options]);
- *
- * console.log(mm.makeRe('*.js'));
- * //=> /^(?:(\.[\\\/])?(?!\.)(?=.)[^\/]*?\.js)$/
- * ```
- * @param {String} `pattern` A glob pattern to convert to regex.
- * @param {Object} `options` See available [options](#options) for changing how matches are performed.
- * @return {RegExp} Returns a regex created from the given pattern.
- * @api public
- */
-
-micromatch.makeRe = function(pattern, options) {
- if (typeof pattern !== 'string') {
- throw new TypeError('expected pattern to be a string');
- }
-
- if (pattern.length > MAX_LENGTH) {
- throw new Error('expected pattern to be less than ' + MAX_LENGTH + ' characters');
- }
-
- function makeRe() {
- var result = micromatch.create(pattern, options);
- var ast_array = [];
- var output = result.map(function(obj) {
- obj.ast.state = obj.state;
- ast_array.push(obj.ast);
- return obj.output;
- });
-
- var regex = toRegex(output.join('|'), options);
- Object.defineProperty(regex, 'result', {
- configurable: true,
- enumerable: false,
- value: ast_array
- });
- return regex;
- }
-
- return memoize('makeRe', pattern, options, makeRe);
-};
-
-/**
- * Expand the given brace `pattern`.
- *
- * ```js
- * var mm = require('micromatch');
- * console.log(mm.braces('foo/{a,b}/bar'));
- * //=> ['foo/(a|b)/bar']
- *
- * console.log(mm.braces('foo/{a,b}/bar', {expand: true}));
- * //=> ['foo/(a|b)/bar']
- * ```
- * @param {String} `pattern` String with brace pattern to expand.
- * @param {Object} `options` Any [options](#options) to change how expansion is performed. See the [braces][] library for all available options.
- * @return {Array}
- * @api public
- */
-
-micromatch.braces = function(pattern, options) {
- if (typeof pattern !== 'string' && !Array.isArray(pattern)) {
- throw new TypeError('expected pattern to be an array or string');
- }
-
- function expand() {
- if (options && options.nobrace === true || !/\{.*\}/.test(pattern)) {
- return utils.arrayify(pattern);
- }
- return braces(pattern, options);
- }
-
- return memoize('braces', pattern, options, expand);
-};
-
-/**
- * Proxy to the [micromatch.braces](#method), for parity with
- * minimatch.
- */
-
-micromatch.braceExpand = function(pattern, options) {
- var opts = extend({}, options, {expand: true});
- return micromatch.braces(pattern, opts);
-};
-
-/**
- * Parses the given glob `pattern` and returns an array of abstract syntax
- * trees (ASTs), with the compiled `output` and optional source `map` on
- * each AST.
- *
- * ```js
- * var mm = require('micromatch');
- * mm.create(pattern[, options]);
- *
- * console.log(mm.create('abc/*.js'));
- * // [{ options: { source: 'string', sourcemap: true },
- * // state: {},
- * // compilers:
- * // { ... },
- * // output: '(\\.[\\\\\\/])?abc\\/(?!\\.)(?=.)[^\\/]*?\\.js',
- * // ast:
- * // { type: 'root',
- * // errors: [],
- * // nodes:
- * // [ ... ],
- * // dot: false,
- * // input: 'abc/*.js' },
- * // parsingErrors: [],
- * // map:
- * // { version: 3,
- * // sources: [ 'string' ],
- * // names: [],
- * // mappings: 'AAAA,GAAG,EAAC,kBAAC,EAAC,EAAE',
- * // sourcesContent: [ 'abc/*.js' ] },
- * // position: { line: 1, column: 28 },
- * // content: {},
- * // files: {},
- * // idx: 6 }]
- * ```
- * @param {String} `pattern` Glob pattern to parse and compile.
- * @param {Object} `options` Any [options](#options) to change how parsing and compiling is performed.
- * @return {Object} Returns an object with the parsed AST, compiled string and optional source map.
- * @api public
- */
-
-micromatch.create = function(pattern, options) {
- return memoize('create', pattern, options, function() {
- function create(str, opts) {
- return micromatch.compile(micromatch.parse(str, opts), opts);
- }
-
- pattern = micromatch.braces(pattern, options);
- var len = pattern.length;
- var idx = -1;
- var res = [];
-
- while (++idx < len) {
- res.push(create(pattern[idx], options));
- }
- return res;
- });
-};
-
-/**
- * Parse the given `str` with the given `options`.
- *
- * ```js
- * var mm = require('micromatch');
- * mm.parse(pattern[, options]);
- *
- * var ast = mm.parse('a/{b,c}/d');
- * console.log(ast);
- * // { type: 'root',
- * // errors: [],
- * // input: 'a/{b,c}/d',
- * // nodes:
- * // [ { type: 'bos', val: '' },
- * // { type: 'text', val: 'a/' },
- * // { type: 'brace',
- * // nodes:
- * // [ { type: 'brace.open', val: '{' },
- * // { type: 'text', val: 'b,c' },
- * // { type: 'brace.close', val: '}' } ] },
- * // { type: 'text', val: '/d' },
- * // { type: 'eos', val: '' } ] }
- * ```
- * @param {String} `str`
- * @param {Object} `options`
- * @return {Object} Returns an AST
- * @api public
- */
-
-micromatch.parse = function(pattern, options) {
- if (typeof pattern !== 'string') {
- throw new TypeError('expected a string');
- }
-
- function parse() {
- var snapdragon = utils.instantiate(null, options);
- parsers(snapdragon, options);
-
- var ast = snapdragon.parse(pattern, options);
- utils.define(ast, 'snapdragon', snapdragon);
- ast.input = pattern;
- return ast;
- }
-
- return memoize('parse', pattern, options, parse);
-};
-
-/**
- * Compile the given `ast` or string with the given `options`.
- *
- * ```js
- * var mm = require('micromatch');
- * mm.compile(ast[, options]);
- *
- * var ast = mm.parse('a/{b,c}/d');
- * console.log(mm.compile(ast));
- * // { options: { source: 'string' },
- * // state: {},
- * // compilers:
- * // { eos: [Function],
- * // noop: [Function],
- * // bos: [Function],
- * // brace: [Function],
- * // 'brace.open': [Function],
- * // text: [Function],
- * // 'brace.close': [Function] },
- * // output: [ 'a/(b|c)/d' ],
- * // ast:
- * // { ... },
- * // parsingErrors: [] }
- * ```
- * @param {Object|String} `ast`
- * @param {Object} `options`
- * @return {Object} Returns an object that has an `output` property with the compiled string.
- * @api public
- */
-
-micromatch.compile = function(ast, options) {
- if (typeof ast === 'string') {
- ast = micromatch.parse(ast, options);
- }
-
- return memoize('compile', ast.input, options, function() {
- var snapdragon = utils.instantiate(ast, options);
- compilers(snapdragon, options);
- return snapdragon.compile(ast, options);
- });
-};
-
-/**
- * Clear the regex cache.
- *
- * ```js
- * mm.clearCache();
- * ```
- * @api public
- */
-
-micromatch.clearCache = function() {
- micromatch.cache.caches = {};
-};
-
-/**
- * Returns true if the given value is effectively an empty string
- */
-
-function isEmptyString(val) {
- return String(val) === '' || String(val) === './';
-}
-
-/**
- * Compose a matcher function with the given patterns.
- * This allows matcher functions to be compiled once and
- * called multiple times.
- */
-
-function compose(patterns, options, matcher) {
- var matchers;
-
- return memoize('compose', String(patterns), options, function() {
- return function(file) {
- // delay composition until it's invoked the first time,
- // after that it won't be called again
- if (!matchers) {
- matchers = [];
- for (var i = 0; i < patterns.length; i++) {
- matchers.push(matcher(patterns[i], options));
- }
- }
-
- var len = matchers.length;
- while (len--) {
- if (matchers[len](file) === true) {
- return true;
- }
- }
- return false;
- };
- });
-}
-
-/**
- * Memoize a generated regex or function. A unique key is generated
- * from the `type` (usually method name), the `pattern`, and
- * user-defined options.
- */
-
-function memoize(type, pattern, options, fn) {
- var key = utils.createKey(type + '=' + pattern, options);
-
- if (options && options.cache === false) {
- return fn(pattern, options);
- }
-
- if (cache.has(type, key)) {
- return cache.get(type, key);
- }
-
- var val = fn(pattern, options);
- cache.set(type, key, val);
- return val;
-}
-
-/**
- * Expose compiler, parser and cache on `micromatch`
- */
-
-micromatch.compilers = compilers;
-micromatch.parsers = parsers;
-micromatch.caches = cache.caches;
-
-/**
- * Expose `micromatch`
- * @type {Function}
- */
-
-module.exports = micromatch;
diff --git a/node_modules/micromatch/lib/.DS_Store b/node_modules/micromatch/lib/.DS_Store
deleted file mode 100644
index 5008ddf..0000000
Binary files a/node_modules/micromatch/lib/.DS_Store and /dev/null differ
diff --git a/node_modules/micromatch/lib/cache.js b/node_modules/micromatch/lib/cache.js
deleted file mode 100644
index fffc4c1..0000000
--- a/node_modules/micromatch/lib/cache.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = new (require('fragment-cache'))();
diff --git a/node_modules/micromatch/lib/compilers.js b/node_modules/micromatch/lib/compilers.js
deleted file mode 100644
index 85cda4f..0000000
--- a/node_modules/micromatch/lib/compilers.js
+++ /dev/null
@@ -1,77 +0,0 @@
-'use strict';
-
-var nanomatch = require('nanomatch');
-var extglob = require('extglob');
-
-module.exports = function(snapdragon) {
- var compilers = snapdragon.compiler.compilers;
- var opts = snapdragon.options;
-
- // register nanomatch compilers
- snapdragon.use(nanomatch.compilers);
-
- // get references to some specific nanomatch compilers before they
- // are overridden by the extglob and/or custom compilers
- var escape = compilers.escape;
- var qmark = compilers.qmark;
- var slash = compilers.slash;
- var star = compilers.star;
- var text = compilers.text;
- var plus = compilers.plus;
- var dot = compilers.dot;
-
- // register extglob compilers or escape exglobs if disabled
- if (opts.extglob === false || opts.noext === true) {
- snapdragon.compiler.use(escapeExtglobs);
- } else {
- snapdragon.use(extglob.compilers);
- }
-
- snapdragon.use(function() {
- this.options.star = this.options.star || function(/*node*/) {
- return '[^\\\\/]*?';
- };
- });
-
- // custom micromatch compilers
- snapdragon.compiler
-
- // reset referenced compiler
- .set('dot', dot)
- .set('escape', escape)
- .set('plus', plus)
- .set('slash', slash)
- .set('qmark', qmark)
- .set('star', star)
- .set('text', text);
-};
-
-function escapeExtglobs(compiler) {
- compiler.set('paren', function(node) {
- var val = '';
- visit(node, function(tok) {
- if (tok.val) val += (/^\W/.test(tok.val) ? '\\' : '') + tok.val;
- });
- return this.emit(val, node);
- });
-
- /**
- * Visit `node` with the given `fn`
- */
-
- function visit(node, fn) {
- return node.nodes ? mapVisit(node.nodes, fn) : fn(node);
- }
-
- /**
- * Map visit over array of `nodes`.
- */
-
- function mapVisit(nodes, fn) {
- var len = nodes.length;
- var idx = -1;
- while (++idx < len) {
- visit(nodes[idx], fn);
- }
- }
-}
diff --git a/node_modules/micromatch/lib/parsers.js b/node_modules/micromatch/lib/parsers.js
deleted file mode 100644
index f80498c..0000000
--- a/node_modules/micromatch/lib/parsers.js
+++ /dev/null
@@ -1,83 +0,0 @@
-'use strict';
-
-var extglob = require('extglob');
-var nanomatch = require('nanomatch');
-var regexNot = require('regex-not');
-var toRegex = require('to-regex');
-var not;
-
-/**
- * Characters to use in negation regex (we want to "not" match
- * characters that are matched by other parsers)
- */
-
-var TEXT = '([!@*?+]?\\(|\\)|\\[:?(?=.*?:?\\])|:?\\]|[*+?!^$.\\\\/])+';
-var createNotRegex = function(opts) {
- return not || (not = textRegex(TEXT));
-};
-
-/**
- * Parsers
- */
-
-module.exports = function(snapdragon) {
- var parsers = snapdragon.parser.parsers;
-
- // register nanomatch parsers
- snapdragon.use(nanomatch.parsers);
-
- // get references to some specific nanomatch parsers before they
- // are overridden by the extglob and/or parsers
- var escape = parsers.escape;
- var slash = parsers.slash;
- var qmark = parsers.qmark;
- var plus = parsers.plus;
- var star = parsers.star;
- var dot = parsers.dot;
-
- // register extglob parsers
- snapdragon.use(extglob.parsers);
-
- // custom micromatch parsers
- snapdragon.parser
- .use(function() {
- // override "notRegex" created in nanomatch parser
- this.notRegex = /^\!+(?!\()/;
- })
- // reset the referenced parsers
- .capture('escape', escape)
- .capture('slash', slash)
- .capture('qmark', qmark)
- .capture('star', star)
- .capture('plus', plus)
- .capture('dot', dot)
-
- /**
- * Override `text` parser
- */
-
- .capture('text', function() {
- if (this.isInside('bracket')) return;
- var pos = this.position();
- var m = this.match(createNotRegex(this.options));
- if (!m || !m[0]) return;
-
- // escape regex boundary characters and simple brackets
- var val = m[0].replace(/([[\]^$])/g, '\\$1');
-
- return pos({
- type: 'text',
- val: val
- });
- });
-};
-
-/**
- * Create text regex
- */
-
-function textRegex(pattern) {
- var notStr = regexNot.create(pattern, {contains: true, strictClose: false});
- var prefix = '(?:[\\^]|\\\\|';
- return toRegex(prefix + notStr + ')', {strictClose: false});
-}
diff --git a/node_modules/micromatch/lib/utils.js b/node_modules/micromatch/lib/utils.js
deleted file mode 100644
index f0ba917..0000000
--- a/node_modules/micromatch/lib/utils.js
+++ /dev/null
@@ -1,309 +0,0 @@
-'use strict';
-
-var utils = module.exports;
-var path = require('path');
-
-/**
- * Module dependencies
- */
-
-var Snapdragon = require('snapdragon');
-utils.define = require('define-property');
-utils.diff = require('arr-diff');
-utils.extend = require('extend-shallow');
-utils.pick = require('object.pick');
-utils.typeOf = require('kind-of');
-utils.unique = require('array-unique');
-
-/**
- * Returns true if the platform is windows, or `path.sep` is `\\`.
- * This is defined as a function to allow `path.sep` to be set in unit tests,
- * or by the user, if there is a reason to do so.
- * @return {Boolean}
- */
-
-utils.isWindows = function() {
- return path.sep === '\\' || process.platform === 'win32';
-};
-
-/**
- * Get the `Snapdragon` instance to use
- */
-
-utils.instantiate = function(ast, options) {
- var snapdragon;
- // if an instance was created by `.parse`, use that instance
- if (utils.typeOf(ast) === 'object' && ast.snapdragon) {
- snapdragon = ast.snapdragon;
- // if the user supplies an instance on options, use that instance
- } else if (utils.typeOf(options) === 'object' && options.snapdragon) {
- snapdragon = options.snapdragon;
- // create a new instance
- } else {
- snapdragon = new Snapdragon(options);
- }
-
- utils.define(snapdragon, 'parse', function(str, options) {
- var parsed = Snapdragon.prototype.parse.apply(this, arguments);
- parsed.input = str;
-
- // escape unmatched brace/bracket/parens
- var last = this.parser.stack.pop();
- if (last && this.options.strictErrors !== true) {
- var open = last.nodes[0];
- var inner = last.nodes[1];
- if (last.type === 'bracket') {
- if (inner.val.charAt(0) === '[') {
- inner.val = '\\' + inner.val;
- }
-
- } else {
- open.val = '\\' + open.val;
- var sibling = open.parent.nodes[1];
- if (sibling.type === 'star') {
- sibling.loose = true;
- }
- }
- }
-
- // add non-enumerable parser reference
- utils.define(parsed, 'parser', this.parser);
- return parsed;
- });
-
- return snapdragon;
-};
-
-/**
- * Create the key to use for memoization. The key is generated
- * by iterating over the options and concatenating key-value pairs
- * to the pattern string.
- */
-
-utils.createKey = function(pattern, options) {
- if (utils.typeOf(options) !== 'object') {
- return pattern;
- }
- var val = pattern;
- var keys = Object.keys(options);
- for (var i = 0; i < keys.length; i++) {
- var key = keys[i];
- val += ';' + key + '=' + String(options[key]);
- }
- return val;
-};
-
-/**
- * Cast `val` to an array
- * @return {Array}
- */
-
-utils.arrayify = function(val) {
- if (typeof val === 'string') return [val];
- return val ? (Array.isArray(val) ? val : [val]) : [];
-};
-
-/**
- * Return true if `val` is a non-empty string
- */
-
-utils.isString = function(val) {
- return typeof val === 'string';
-};
-
-/**
- * Return true if `val` is a non-empty string
- */
-
-utils.isObject = function(val) {
- return utils.typeOf(val) === 'object';
-};
-
-/**
- * Returns true if the given `str` has special characters
- */
-
-utils.hasSpecialChars = function(str) {
- return /(?:(?:(^|\/)[!.])|[*?+()|\[\]{}]|[+@]\()/.test(str);
-};
-
-/**
- * Escape regex characters in the given string
- */
-
-utils.escapeRegex = function(str) {
- return str.replace(/[-[\]{}()^$|*+?.\\\/\s]/g, '\\$&');
-};
-
-/**
- * Normalize slashes in the given filepath.
- *
- * @param {String} `filepath`
- * @return {String}
- */
-
-utils.toPosixPath = function(str) {
- return str.replace(/\\+/g, '/');
-};
-
-/**
- * Strip backslashes before special characters in a string.
- *
- * @param {String} `str`
- * @return {String}
- */
-
-utils.unescape = function(str) {
- return utils.toPosixPath(str.replace(/\\(?=[*+?!.])/g, ''));
-};
-
-/**
- * Strip the prefix from a filepath
- * @param {String} `fp`
- * @return {String}
- */
-
-utils.stripPrefix = function(str) {
- if (str.charAt(0) !== '.') {
- return str;
- }
- var ch = str.charAt(1);
- if (utils.isSlash(ch)) {
- return str.slice(2);
- }
- return str;
-};
-
-/**
- * Returns true if the given str is an escaped or
- * unescaped path character
- */
-
-utils.isSlash = function(str) {
- return str === '/' || str === '\\/' || str === '\\' || str === '\\\\';
-};
-
-/**
- * Returns a function that returns true if the given
- * pattern matches or contains a `filepath`
- *
- * @param {String} `pattern`
- * @return {Function}
- */
-
-utils.matchPath = function(pattern, options) {
- return (options && options.contains)
- ? utils.containsPattern(pattern, options)
- : utils.equalsPattern(pattern, options);
-};
-
-/**
- * Returns true if the given (original) filepath or unixified path are equal
- * to the given pattern.
- */
-
-utils._equals = function(filepath, unixPath, pattern) {
- return pattern === filepath || pattern === unixPath;
-};
-
-/**
- * Returns true if the given (original) filepath or unixified path contain
- * the given pattern.
- */
-
-utils._contains = function(filepath, unixPath, pattern) {
- return filepath.indexOf(pattern) !== -1 || unixPath.indexOf(pattern) !== -1;
-};
-
-/**
- * Returns a function that returns true if the given
- * pattern is the same as a given `filepath`
- *
- * @param {String} `pattern`
- * @return {Function}
- */
-
-utils.equalsPattern = function(pattern, options) {
- var unixify = utils.unixify(options);
- options = options || {};
-
- return function fn(filepath) {
- var equal = utils._equals(filepath, unixify(filepath), pattern);
- if (equal === true || options.nocase !== true) {
- return equal;
- }
- var lower = filepath.toLowerCase();
- return utils._equals(lower, unixify(lower), pattern);
- };
-};
-
-/**
- * Returns a function that returns true if the given
- * pattern contains a `filepath`
- *
- * @param {String} `pattern`
- * @return {Function}
- */
-
-utils.containsPattern = function(pattern, options) {
- var unixify = utils.unixify(options);
- options = options || {};
-
- return function(filepath) {
- var contains = utils._contains(filepath, unixify(filepath), pattern);
- if (contains === true || options.nocase !== true) {
- return contains;
- }
- var lower = filepath.toLowerCase();
- return utils._contains(lower, unixify(lower), pattern);
- };
-};
-
-/**
- * Returns a function that returns true if the given
- * regex matches the `filename` of a file path.
- *
- * @param {RegExp} `re` Matching regex
- * @return {Function}
- */
-
-utils.matchBasename = function(re) {
- return function(filepath) {
- return re.test(path.basename(filepath));
- };
-};
-
-/**
- * Determines the filepath to return based on the provided options.
- * @return {any}
- */
-
-utils.value = function(str, unixify, options) {
- if (options && options.unixify === false) {
- return str;
- }
- return unixify(str);
-};
-
-/**
- * Returns a function that normalizes slashes in a string to forward
- * slashes, strips `./` from beginning of paths, and optionally unescapes
- * special characters.
- * @return {Function}
- */
-
-utils.unixify = function(options) {
- options = options || {};
- return function(filepath) {
- if (utils.isWindows() || options.unixify === true) {
- filepath = utils.toPosixPath(filepath);
- }
- if (options.stripPrefix !== false) {
- filepath = utils.stripPrefix(filepath);
- }
- if (options.unescape === true) {
- filepath = utils.unescape(filepath);
- }
- return filepath;
- };
-};
diff --git a/node_modules/micromatch/node_modules/extend-shallow/LICENSE b/node_modules/micromatch/node_modules/extend-shallow/LICENSE
deleted file mode 100644
index 99c9369..0000000
--- a/node_modules/micromatch/node_modules/extend-shallow/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2015, 2017, 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/micromatch/node_modules/extend-shallow/README.md b/node_modules/micromatch/node_modules/extend-shallow/README.md
deleted file mode 100644
index dee226f..0000000
--- a/node_modules/micromatch/node_modules/extend-shallow/README.md
+++ /dev/null
@@ -1,97 +0,0 @@
-# extend-shallow [![NPM version](https://img.shields.io/npm/v/extend-shallow.svg?style=flat)](https://www.npmjs.com/package/extend-shallow) [![NPM monthly downloads](https://img.shields.io/npm/dm/extend-shallow.svg?style=flat)](https://npmjs.org/package/extend-shallow) [![NPM total downloads](https://img.shields.io/npm/dt/extend-shallow.svg?style=flat)](https://npmjs.org/package/extend-shallow) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/extend-shallow.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/extend-shallow)
-
-> Extend an object with the properties of additional objects. node.js/javascript util.
-
-Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save extend-shallow
-```
-
-## 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'}
-```
-
-## About
-
-
-Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-
-
-
-Running Tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-
-
-
-Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-
-
-### Related projects
-
-You might also be interested in these projects:
-
-* [extend-shallow](https://www.npmjs.com/package/extend-shallow): Extend an object with the properties of additional objects. node.js/javascript util. | [homepage](https://github.com/jonschlinkert/extend-shallow "Extend an object with the properties of additional objects. node.js/javascript util.")
-* [for-in](https://www.npmjs.com/package/for-in): Iterate over the own and inherited enumerable properties of an object, and return an object… [more](https://github.com/jonschlinkert/for-in) | [homepage](https://github.com/jonschlinkert/for-in "Iterate over the own and inherited enumerable properties of an object, and return an object with properties that evaluate to true from the callback. Exit early by returning `false`. JavaScript/Node.js")
-* [for-own](https://www.npmjs.com/package/for-own): Iterate over the own enumerable properties of an object, and return an object with properties… [more](https://github.com/jonschlinkert/for-own) | [homepage](https://github.com/jonschlinkert/for-own "Iterate over the own enumerable properties of an object, and return an object with properties that evaluate to true from the callback. Exit early by returning `false`. JavaScript/Node.js.")
-* [is-plain-object](https://www.npmjs.com/package/is-plain-object): Returns true if an object was created by the `Object` constructor. | [homepage](https://github.com/jonschlinkert/is-plain-object "Returns true if an object was created by the `Object` constructor.")
-* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.")
-* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.")
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 33 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 1 | [pdehaan](https://github.com/pdehaan) |
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on November 19, 2017._
\ No newline at end of file
diff --git a/node_modules/micromatch/node_modules/extend-shallow/index.js b/node_modules/micromatch/node_modules/extend-shallow/index.js
deleted file mode 100644
index c9582f8..0000000
--- a/node_modules/micromatch/node_modules/extend-shallow/index.js
+++ /dev/null
@@ -1,60 +0,0 @@
-'use strict';
-
-var isExtendable = require('is-extendable');
-var assignSymbols = require('assign-symbols');
-
-module.exports = Object.assign || function(obj/*, objects*/) {
- if (obj === null || typeof obj === 'undefined') {
- throw new TypeError('Cannot convert undefined or null to object');
- }
- if (!isObject(obj)) {
- obj = {};
- }
- for (var i = 1; i < arguments.length; i++) {
- var val = arguments[i];
- if (isString(val)) {
- val = toObject(val);
- }
- if (isObject(val)) {
- assign(obj, val);
- assignSymbols(obj, val);
- }
- }
- return obj;
-};
-
-function assign(a, b) {
- for (var key in b) {
- if (hasOwn(b, key)) {
- a[key] = b[key];
- }
- }
-}
-
-function isString(val) {
- return (val && typeof val === 'string');
-}
-
-function toObject(str) {
- var obj = {};
- for (var i in str) {
- obj[i] = str[i];
- }
- return obj;
-}
-
-function isObject(val) {
- return (val && typeof val === 'object') || isExtendable(val);
-}
-
-/**
- * Returns true if the given `key` is an own property of `obj`.
- */
-
-function hasOwn(obj, key) {
- return Object.prototype.hasOwnProperty.call(obj, key);
-}
-
-function isEnum(obj, key) {
- return Object.prototype.propertyIsEnumerable.call(obj, key);
-}
diff --git a/node_modules/micromatch/node_modules/extend-shallow/package.json b/node_modules/micromatch/node_modules/extend-shallow/package.json
deleted file mode 100644
index e5e9105..0000000
--- a/node_modules/micromatch/node_modules/extend-shallow/package.json
+++ /dev/null
@@ -1,83 +0,0 @@
-{
- "name": "extend-shallow",
- "description": "Extend an object with the properties of additional objects. node.js/javascript util.",
- "version": "3.0.2",
- "homepage": "https://github.com/jonschlinkert/extend-shallow",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Peter deHaan (http://about.me/peterdehaan)"
- ],
- "repository": "jonschlinkert/extend-shallow",
- "bugs": {
- "url": "https://github.com/jonschlinkert/extend-shallow/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- },
- "devDependencies": {
- "array-slice": "^1.0.0",
- "benchmarked": "^2.0.0",
- "for-own": "^1.0.0",
- "gulp-format-md": "^1.0.0",
- "is-plain-object": "^2.0.4",
- "kind-of": "^6.0.1",
- "minimist": "^1.2.0",
- "mocha": "^3.5.3",
- "object-assign": "^4.1.1"
- },
- "keywords": [
- "assign",
- "clone",
- "extend",
- "merge",
- "obj",
- "object",
- "object-assign",
- "object.assign",
- "prop",
- "properties",
- "property",
- "props",
- "shallow",
- "util",
- "utility",
- "utils",
- "value"
- ],
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "related": {
- "list": [
- "extend-shallow",
- "for-in",
- "for-own",
- "is-plain-object",
- "isobject",
- "kind-of"
- ]
- },
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/micromatch/node_modules/is-extendable/LICENSE b/node_modules/micromatch/node_modules/is-extendable/LICENSE
deleted file mode 100644
index c0d7f13..0000000
--- a/node_modules/micromatch/node_modules/is-extendable/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015-2017, 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.
\ No newline at end of file
diff --git a/node_modules/micromatch/node_modules/is-extendable/README.md b/node_modules/micromatch/node_modules/is-extendable/README.md
deleted file mode 100644
index 875b56a..0000000
--- a/node_modules/micromatch/node_modules/is-extendable/README.md
+++ /dev/null
@@ -1,88 +0,0 @@
-# is-extendable [![NPM version](https://img.shields.io/npm/v/is-extendable.svg?style=flat)](https://www.npmjs.com/package/is-extendable) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-extendable.svg?style=flat)](https://npmjs.org/package/is-extendable) [![NPM total downloads](https://img.shields.io/npm/dt/is-extendable.svg?style=flat)](https://npmjs.org/package/is-extendable) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-extendable.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-extendable)
-
-> Returns true if a value is a plain object, array or function.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save is-extendable
-```
-
-## Usage
-
-```js
-var isExtendable = require('is-extendable');
-```
-
-Returns true if the value is any of the following:
-
-* array
-* plain object
-* function
-
-## Notes
-
-All objects in JavaScript can have keys, but it's a pain to check for this, since we ether need to verify that the value is not `null` or `undefined` and:
-
-* the value is not a primitive, or
-* that the object is a plain object, function or array
-
-Also note that an `extendable` object is not the same as an [extensible object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isExtensible), which is one that (in es6) is not sealed, frozen, or marked as non-extensible using `preventExtensions`.
-
-## Release history
-
-### v1.0.0 - 2017/07/20
-
-**Breaking changes**
-
-* No longer considers date, regex or error objects to be extendable
-
-## About
-
-### Related projects
-
-* [assign-deep](https://www.npmjs.com/package/assign-deep): Deeply assign the enumerable properties and/or es6 Symbol properies of source objects to the target… [more](https://github.com/jonschlinkert/assign-deep) | [homepage](https://github.com/jonschlinkert/assign-deep "Deeply assign the enumerable properties and/or es6 Symbol properies of source objects to the target (first) object.")
-* [is-equal-shallow](https://www.npmjs.com/package/is-equal-shallow): Does a shallow comparison of two objects, returning false if the keys or values differ. | [homepage](https://github.com/jonschlinkert/is-equal-shallow "Does a shallow comparison of two objects, returning false if the keys or values differ.")
-* [is-plain-object](https://www.npmjs.com/package/is-plain-object): Returns true if an object was created by the `Object` constructor. | [homepage](https://github.com/jonschlinkert/is-plain-object "Returns true if an object was created by the `Object` constructor.")
-* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.")
-* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on July 20, 2017._
\ No newline at end of file
diff --git a/node_modules/micromatch/node_modules/is-extendable/index.d.ts b/node_modules/micromatch/node_modules/is-extendable/index.d.ts
deleted file mode 100644
index b96d507..0000000
--- a/node_modules/micromatch/node_modules/is-extendable/index.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export = isExtendable;
-
-declare function isExtendable(val: any): boolean;
-
-declare namespace isExtendable {}
diff --git a/node_modules/micromatch/node_modules/is-extendable/index.js b/node_modules/micromatch/node_modules/is-extendable/index.js
deleted file mode 100644
index a8b26ad..0000000
--- a/node_modules/micromatch/node_modules/is-extendable/index.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/*!
- * is-extendable
- *
- * Copyright (c) 2015-2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-var isPlainObject = require('is-plain-object');
-
-module.exports = function isExtendable(val) {
- return isPlainObject(val) || typeof val === 'function' || Array.isArray(val);
-};
diff --git a/node_modules/micromatch/node_modules/is-extendable/package.json b/node_modules/micromatch/node_modules/is-extendable/package.json
deleted file mode 100644
index 2aaab65..0000000
--- a/node_modules/micromatch/node_modules/is-extendable/package.json
+++ /dev/null
@@ -1,67 +0,0 @@
-{
- "name": "is-extendable",
- "description": "Returns true if a value is a plain object, array or function.",
- "version": "1.0.1",
- "homepage": "https://github.com/jonschlinkert/is-extendable",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/is-extendable",
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-extendable/issues"
- },
- "license": "MIT",
- "files": [
- "index.js",
- "index.d.ts"
- ],
- "main": "index.js",
- "types": "index.d.ts",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "is-plain-object": "^2.0.4"
- },
- "devDependencies": {
- "gulp-format-md": "^1.0.0",
- "mocha": "^3.4.2"
- },
- "keywords": [
- "array",
- "assign",
- "check",
- "date",
- "extend",
- "extendable",
- "extensible",
- "function",
- "is",
- "object",
- "regex",
- "test"
- ],
- "verb": {
- "related": {
- "list": [
- "assign-deep",
- "is-equal-shallow",
- "is-plain-object",
- "isobject",
- "kind-of"
- ]
- },
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/micromatch/node_modules/is-plain-object/LICENSE b/node_modules/micromatch/node_modules/is-plain-object/LICENSE
deleted file mode 100644
index 3f2eca1..0000000
--- a/node_modules/micromatch/node_modules/is-plain-object/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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/micromatch/node_modules/is-plain-object/README.md b/node_modules/micromatch/node_modules/is-plain-object/README.md
deleted file mode 100644
index 1f9d0c8..0000000
--- a/node_modules/micromatch/node_modules/is-plain-object/README.md
+++ /dev/null
@@ -1,104 +0,0 @@
-# is-plain-object [![NPM version](https://img.shields.io/npm/v/is-plain-object.svg?style=flat)](https://www.npmjs.com/package/is-plain-object) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-plain-object.svg?style=flat)](https://npmjs.org/package/is-plain-object) [![NPM total downloads](https://img.shields.io/npm/dt/is-plain-object.svg?style=flat)](https://npmjs.org/package/is-plain-object) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-plain-object.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-plain-object)
-
-> Returns true if an object was created by the `Object` constructor.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save is-plain-object
-```
-
-Use [isobject](https://github.com/jonschlinkert/isobject) if you only want to check if the value is an object and not an array or null.
-
-## Usage
-
-```js
-var isPlainObject = require('is-plain-object');
-```
-
-**true** when created by the `Object` constructor.
-
-```js
-isPlainObject(Object.create({}));
-//=> true
-isPlainObject(Object.create(Object.prototype));
-//=> true
-isPlainObject({foo: 'bar'});
-//=> true
-isPlainObject({});
-//=> true
-```
-
-**false** when not created by the `Object` constructor.
-
-```js
-isPlainObject(1);
-//=> false
-isPlainObject(['foo', 'bar']);
-//=> false
-isPlainObject([]);
-//=> false
-isPlainObject(new Foo);
-//=> false
-isPlainObject(null);
-//=> false
-isPlainObject(Object.create(null));
-//=> false
-```
-
-## About
-
-### Related projects
-
-* [is-number](https://www.npmjs.com/package/is-number): Returns true if the value is a number. comprehensive tests. | [homepage](https://github.com/jonschlinkert/is-number "Returns true if the value is a number. comprehensive tests.")
-* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.")
-* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 17 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 6 | [stevenvachon](https://github.com/stevenvachon) |
-| 3 | [onokumus](https://github.com/onokumus) |
-| 1 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) |
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on July 11, 2017._
\ No newline at end of file
diff --git a/node_modules/micromatch/node_modules/is-plain-object/index.d.ts b/node_modules/micromatch/node_modules/is-plain-object/index.d.ts
deleted file mode 100644
index 74a44e9..0000000
--- a/node_modules/micromatch/node_modules/is-plain-object/index.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export = isPlainObject;
-
-declare function isPlainObject(o: any): boolean;
-
-declare namespace isPlainObject {}
diff --git a/node_modules/micromatch/node_modules/is-plain-object/index.js b/node_modules/micromatch/node_modules/is-plain-object/index.js
deleted file mode 100644
index c328484..0000000
--- a/node_modules/micromatch/node_modules/is-plain-object/index.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/*!
- * is-plain-object
- *
- * Copyright (c) 2014-2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-var isObject = require('isobject');
-
-function isObjectObject(o) {
- return isObject(o) === true
- && Object.prototype.toString.call(o) === '[object Object]';
-}
-
-module.exports = function isPlainObject(o) {
- var ctor,prot;
-
- if (isObjectObject(o) === false) return false;
-
- // If has modified constructor
- ctor = o.constructor;
- if (typeof ctor !== 'function') return false;
-
- // If has modified prototype
- prot = ctor.prototype;
- if (isObjectObject(prot) === false) return false;
-
- // If constructor does not have an Object-specific method
- if (prot.hasOwnProperty('isPrototypeOf') === false) {
- return false;
- }
-
- // Most likely a plain Object
- return true;
-};
diff --git a/node_modules/micromatch/node_modules/is-plain-object/package.json b/node_modules/micromatch/node_modules/is-plain-object/package.json
deleted file mode 100644
index dd60498..0000000
--- a/node_modules/micromatch/node_modules/is-plain-object/package.json
+++ /dev/null
@@ -1,79 +0,0 @@
-{
- "name": "is-plain-object",
- "description": "Returns true if an object was created by the `Object` constructor.",
- "version": "2.0.4",
- "homepage": "https://github.com/jonschlinkert/is-plain-object",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Osman Nuri Okumuş (http://onokumus.com)",
- "Steven Vachon (https://svachon.com)",
- "(https://github.com/wtgtybhertgeghgtwtg)"
- ],
- "repository": "jonschlinkert/is-plain-object",
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-plain-object/issues"
- },
- "license": "MIT",
- "files": [
- "index.d.ts",
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "browserify": "browserify index.js --standalone isPlainObject | uglifyjs --compress --mangle -o browser/is-plain-object.js",
- "test_browser": "mocha-phantomjs test/browser.html",
- "test_node": "mocha",
- "test": "npm run test_node && npm run browserify && npm run test_browser"
- },
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "devDependencies": {
- "browserify": "^14.4.0",
- "chai": "^4.0.2",
- "gulp-format-md": "^1.0.0",
- "mocha": "^3.4.2",
- "mocha-phantomjs": "^4.1.0",
- "phantomjs": "^2.1.7",
- "uglify-js": "^3.0.24"
- },
- "keywords": [
- "check",
- "is",
- "is-object",
- "isobject",
- "javascript",
- "kind",
- "kind-of",
- "object",
- "plain",
- "type",
- "typeof",
- "value"
- ],
- "types": "index.d.ts",
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "is-number",
- "isobject",
- "kind-of"
- ]
- },
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/micromatch/node_modules/kind-of/CHANGELOG.md b/node_modules/micromatch/node_modules/kind-of/CHANGELOG.md
deleted file mode 100644
index 01687d5..0000000
--- a/node_modules/micromatch/node_modules/kind-of/CHANGELOG.md
+++ /dev/null
@@ -1,160 +0,0 @@
-# Release history
-
-All notable changes to this project will be documented in this file.
-
-The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
-and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
-
-
- Guiding Principles
-
-- Changelogs are for humans, not machines.
-- There should be an entry for every single version.
-- The same types of changes should be grouped.
-- Versions and sections should be linkable.
-- The latest version comes first.
-- The release date of each versions is displayed.
-- Mention whether you follow Semantic Versioning.
-
-
-
-
- Types of changes
-
-Changelog entries are classified using the following labels _(from [keep-a-changelog](http://keepachangelog.com/)_):
-
-- `Added` for new features.
-- `Changed` for changes in existing functionality.
-- `Deprecated` for soon-to-be removed features.
-- `Removed` for now removed features.
-- `Fixed` for any bug fixes.
-- `Security` in case of vulnerabilities.
-
-
-
-## [6.0.3] - 2020-01-16
-
-- Merge pull request #31 for issue #30
-
-## [6.0.0] - 2017-10-13
-
-- refactor code to be more performant
-- refactor benchmarks
-
-## [5.1.0] - 2017-10-13
-
-**Added**
-
-- Merge pull request #15 from aretecode/patch-1
-- adds support and tests for string & array iterators
-
-**Changed**
-
-- updates benchmarks
-
-## [5.0.2] - 2017-08-02
-
-- Merge pull request #14 from struct78/master
-- Added `undefined` check
-
-## [5.0.0] - 2017-06-21
-
-- Merge pull request #12 from aretecode/iterator
-- Set Iterator + Map Iterator
-- streamline `isbuffer`, minor edits
-
-## [4.0.0] - 2017-05-19
-
-- Merge pull request #8 from tunnckoCore/master
-- update deps
-
-## [3.2.2] - 2017-05-16
-
-- fix version
-
-## [3.2.1] - 2017-05-16
-
-- add browserify
-
-## [3.2.0] - 2017-04-25
-
-- Merge pull request #10 from ksheedlo/unrequire-buffer
-- add `promise` support and tests
-- Remove unnecessary `Buffer` check
-
-## [3.1.0] - 2016-12-07
-
-- Merge pull request #7 from laggingreflex/err
-- add support for `error` and tests
-- run update
-
-## [3.0.4] - 2016-07-29
-
-- move tests
-- run update
-
-## [3.0.3] - 2016-05-03
-
-- fix prepublish script
-- remove unused dep
-
-## [3.0.0] - 2015-11-17
-
-- add typed array support
-- Merge pull request #5 from miguelmota/typed-arrays
-- adds new tests
-
-## [2.0.1] - 2015-08-21
-
-- use `is-buffer` module
-
-## [2.0.0] - 2015-05-31
-
-- Create fallback for `Array.isArray` if used as a browser package
-- Merge pull request #2 from dtothefp/patch-1
-- Merge pull request #3 from pdehaan/patch-1
-- Merge branch 'master' of https://github.com/chorks/kind-of into chorks-master
-- optimizations, mostly date and regex
-
-## [1.1.0] - 2015-02-09
-
-- adds `buffer` support
-- adds tests for `buffer`
-
-## [1.0.0] - 2015-01-19
-
-- update benchmarks
-- optimizations based on benchmarks
-
-## [0.1.2] - 2014-10-26
-
-- return `typeof` value if it's not an object. very slight speed improvement
-- use `.slice`
-- adds benchmarks
-
-## [0.1.0] - 2014-9-26
-
-- first commit
-
-[6.0.0]: https://github.com/jonschlinkert/kind-of/compare/5.1.0...6.0.0
-[5.1.0]: https://github.com/jonschlinkert/kind-of/compare/5.0.2...5.1.0
-[5.0.2]: https://github.com/jonschlinkert/kind-of/compare/5.0.1...5.0.2
-[5.0.1]: https://github.com/jonschlinkert/kind-of/compare/5.0.0...5.0.1
-[5.0.0]: https://github.com/jonschlinkert/kind-of/compare/4.0.0...5.0.0
-[4.0.0]: https://github.com/jonschlinkert/kind-of/compare/3.2.2...4.0.0
-[3.2.2]: https://github.com/jonschlinkert/kind-of/compare/3.2.1...3.2.2
-[3.2.1]: https://github.com/jonschlinkert/kind-of/compare/3.2.0...3.2.1
-[3.2.0]: https://github.com/jonschlinkert/kind-of/compare/3.1.0...3.2.0
-[3.1.0]: https://github.com/jonschlinkert/kind-of/compare/3.0.4...3.1.0
-[3.0.4]: https://github.com/jonschlinkert/kind-of/compare/3.0.3...3.0.4
-[3.0.3]: https://github.com/jonschlinkert/kind-of/compare/3.0.0...3.0.3
-[3.0.0]: https://github.com/jonschlinkert/kind-of/compare/2.0.1...3.0.0
-[2.0.1]: https://github.com/jonschlinkert/kind-of/compare/2.0.0...2.0.1
-[2.0.0]: https://github.com/jonschlinkert/kind-of/compare/1.1.0...2.0.0
-[1.1.0]: https://github.com/jonschlinkert/kind-of/compare/1.0.0...1.1.0
-[1.0.0]: https://github.com/jonschlinkert/kind-of/compare/0.1.2...1.0.0
-[0.1.2]: https://github.com/jonschlinkert/kind-of/compare/0.1.0...0.1.2
-[0.1.0]: https://github.com/jonschlinkert/kind-of/commit/2fae09b0b19b1aadb558e9be39f0c3ef6034eb87
-
-[Unreleased]: https://github.com/jonschlinkert/kind-of/compare/0.1.2...HEAD
-[keep-a-changelog]: https://github.com/olivierlacan/keep-a-changelog
\ No newline at end of file
diff --git a/node_modules/micromatch/node_modules/kind-of/LICENSE b/node_modules/micromatch/node_modules/kind-of/LICENSE
deleted file mode 100644
index 3f2eca1..0000000
--- a/node_modules/micromatch/node_modules/kind-of/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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/micromatch/node_modules/kind-of/README.md b/node_modules/micromatch/node_modules/kind-of/README.md
deleted file mode 100644
index 0411dc5..0000000
--- a/node_modules/micromatch/node_modules/kind-of/README.md
+++ /dev/null
@@ -1,367 +0,0 @@
-# kind-of [![NPM version](https://img.shields.io/npm/v/kind-of.svg?style=flat)](https://www.npmjs.com/package/kind-of) [![NPM monthly downloads](https://img.shields.io/npm/dm/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![NPM total downloads](https://img.shields.io/npm/dt/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/kind-of.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/kind-of)
-
-> Get the native type of a value.
-
-Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save kind-of
-```
-
-Install with [bower](https://bower.io/)
-
-```sh
-$ bower install kind-of --save
-```
-
-## Why use this?
-
-1. [it's fast](#benchmarks) | [optimizations](#optimizations)
-2. [better type checking](#better-type-checking)
-
-## Usage
-
-> es5, es6, and browser ready
-
-```js
-var kindOf = require('kind-of');
-
-kindOf(undefined);
-//=> 'undefined'
-
-kindOf(null);
-//=> 'null'
-
-kindOf(true);
-//=> 'boolean'
-
-kindOf(false);
-//=> 'boolean'
-
-kindOf(new Buffer(''));
-//=> 'buffer'
-
-kindOf(42);
-//=> 'number'
-
-kindOf('str');
-//=> 'string'
-
-kindOf(arguments);
-//=> 'arguments'
-
-kindOf({});
-//=> 'object'
-
-kindOf(Object.create(null));
-//=> 'object'
-
-kindOf(new Test());
-//=> 'object'
-
-kindOf(new Date());
-//=> 'date'
-
-kindOf([1, 2, 3]);
-//=> 'array'
-
-kindOf(/foo/);
-//=> 'regexp'
-
-kindOf(new RegExp('foo'));
-//=> 'regexp'
-
-kindOf(new Error('error'));
-//=> 'error'
-
-kindOf(function () {});
-//=> 'function'
-
-kindOf(function * () {});
-//=> 'generatorfunction'
-
-kindOf(Symbol('str'));
-//=> 'symbol'
-
-kindOf(new Map());
-//=> 'map'
-
-kindOf(new WeakMap());
-//=> 'weakmap'
-
-kindOf(new Set());
-//=> 'set'
-
-kindOf(new WeakSet());
-//=> 'weakset'
-
-kindOf(new Int8Array());
-//=> 'int8array'
-
-kindOf(new Uint8Array());
-//=> 'uint8array'
-
-kindOf(new Uint8ClampedArray());
-//=> 'uint8clampedarray'
-
-kindOf(new Int16Array());
-//=> 'int16array'
-
-kindOf(new Uint16Array());
-//=> 'uint16array'
-
-kindOf(new Int32Array());
-//=> 'int32array'
-
-kindOf(new Uint32Array());
-//=> 'uint32array'
-
-kindOf(new Float32Array());
-//=> 'float32array'
-
-kindOf(new Float64Array());
-//=> 'float64array'
-```
-
-## Benchmarks
-
-Benchmarked against [typeof](http://github.com/CodingFu/typeof) and [type-of](https://github.com/ForbesLindesay/type-of).
-
-```bash
-# arguments (32 bytes)
- kind-of x 17,024,098 ops/sec ±1.90% (86 runs sampled)
- lib-type-of x 11,926,235 ops/sec ±1.34% (83 runs sampled)
- lib-typeof x 9,245,257 ops/sec ±1.22% (87 runs sampled)
-
- fastest is kind-of (by 161% avg)
-
-# array (22 bytes)
- kind-of x 17,196,492 ops/sec ±1.07% (88 runs sampled)
- lib-type-of x 8,838,283 ops/sec ±1.02% (87 runs sampled)
- lib-typeof x 8,677,848 ops/sec ±0.87% (87 runs sampled)
-
- fastest is kind-of (by 196% avg)
-
-# boolean (24 bytes)
- kind-of x 16,841,600 ops/sec ±1.10% (86 runs sampled)
- lib-type-of x 8,096,787 ops/sec ±0.95% (87 runs sampled)
- lib-typeof x 8,423,345 ops/sec ±1.15% (86 runs sampled)
-
- fastest is kind-of (by 204% avg)
-
-# buffer (38 bytes)
- kind-of x 14,848,060 ops/sec ±1.05% (86 runs sampled)
- lib-type-of x 3,671,577 ops/sec ±1.49% (87 runs sampled)
- lib-typeof x 8,360,236 ops/sec ±1.24% (86 runs sampled)
-
- fastest is kind-of (by 247% avg)
-
-# date (30 bytes)
- kind-of x 16,067,761 ops/sec ±1.58% (86 runs sampled)
- lib-type-of x 8,954,436 ops/sec ±1.40% (87 runs sampled)
- lib-typeof x 8,488,307 ops/sec ±1.51% (84 runs sampled)
-
- fastest is kind-of (by 184% avg)
-
-# error (36 bytes)
- kind-of x 9,634,090 ops/sec ±1.12% (89 runs sampled)
- lib-type-of x 7,735,624 ops/sec ±1.32% (86 runs sampled)
- lib-typeof x 7,442,160 ops/sec ±1.11% (90 runs sampled)
-
- fastest is kind-of (by 127% avg)
-
-# function (34 bytes)
- kind-of x 10,031,494 ops/sec ±1.27% (86 runs sampled)
- lib-type-of x 9,502,757 ops/sec ±1.17% (89 runs sampled)
- lib-typeof x 8,278,985 ops/sec ±1.08% (88 runs sampled)
-
- fastest is kind-of (by 113% avg)
-
-# null (24 bytes)
- kind-of x 18,159,808 ops/sec ±1.92% (86 runs sampled)
- lib-type-of x 12,927,635 ops/sec ±1.01% (88 runs sampled)
- lib-typeof x 7,958,234 ops/sec ±1.21% (89 runs sampled)
-
- fastest is kind-of (by 174% avg)
-
-# number (22 bytes)
- kind-of x 17,846,779 ops/sec ±0.91% (85 runs sampled)
- lib-type-of x 3,316,636 ops/sec ±1.19% (86 runs sampled)
- lib-typeof x 2,329,477 ops/sec ±2.21% (85 runs sampled)
-
- fastest is kind-of (by 632% avg)
-
-# object-plain (47 bytes)
- kind-of x 7,085,155 ops/sec ±1.05% (88 runs sampled)
- lib-type-of x 8,870,930 ops/sec ±1.06% (83 runs sampled)
- lib-typeof x 8,716,024 ops/sec ±1.05% (87 runs sampled)
-
- fastest is lib-type-of (by 112% avg)
-
-# regex (25 bytes)
- kind-of x 14,196,052 ops/sec ±1.65% (84 runs sampled)
- lib-type-of x 9,554,164 ops/sec ±1.25% (88 runs sampled)
- lib-typeof x 8,359,691 ops/sec ±1.07% (87 runs sampled)
-
- fastest is kind-of (by 158% avg)
-
-# string (33 bytes)
- kind-of x 16,131,428 ops/sec ±1.41% (85 runs sampled)
- lib-type-of x 7,273,172 ops/sec ±1.05% (87 runs sampled)
- lib-typeof x 7,382,635 ops/sec ±1.17% (85 runs sampled)
-
- fastest is kind-of (by 220% avg)
-
-# symbol (34 bytes)
- kind-of x 17,011,537 ops/sec ±1.24% (86 runs sampled)
- lib-type-of x 3,492,454 ops/sec ±1.23% (89 runs sampled)
- lib-typeof x 7,471,235 ops/sec ±2.48% (87 runs sampled)
-
- fastest is kind-of (by 310% avg)
-
-# template-strings (36 bytes)
- kind-of x 15,434,250 ops/sec ±1.46% (83 runs sampled)
- lib-type-of x 7,157,907 ops/sec ±0.97% (87 runs sampled)
- lib-typeof x 7,517,986 ops/sec ±0.92% (86 runs sampled)
-
- fastest is kind-of (by 210% avg)
-
-# undefined (29 bytes)
- kind-of x 19,167,115 ops/sec ±1.71% (87 runs sampled)
- lib-type-of x 15,477,740 ops/sec ±1.63% (85 runs sampled)
- lib-typeof x 19,075,495 ops/sec ±1.17% (83 runs sampled)
-
- fastest is lib-typeof,kind-of
-
-```
-
-## Optimizations
-
-In 7 out of 8 cases, this library is 2x-10x faster than other top libraries included in the benchmarks. There are a few things that lead to this performance advantage, none of them hard and fast rules, but all of them simple and repeatable in almost any code library:
-
-1. Optimize around the fastest and most common use cases first. Of course, this will change from project-to-project, but I took some time to understand how and why `typeof` checks were being used in my own libraries and other libraries I use a lot.
-2. Optimize around bottlenecks - In other words, the order in which conditionals are implemented is significant, because each check is only as fast as the failing checks that came before it. Here, the biggest bottleneck by far is checking for plain objects (an object that was created by the `Object` constructor). I opted to make this check happen by process of elimination rather than brute force up front (e.g. by using something like `val.constructor.name`), so that every other type check would not be penalized it.
-3. Don't do uneccessary processing - why do `.slice(8, -1).toLowerCase();` just to get the word `regex`? It's much faster to do `if (type === '[object RegExp]') return 'regex'`
-4. There is no reason to make the code in a microlib as terse as possible, just to win points for making it shorter. It's always better to favor performant code over terse code. You will always only be using a single `require()` statement to use the library anyway, regardless of how the code is written.
-
-## Better type checking
-
-kind-of seems to be more consistently "correct" than other type checking libs I've looked at. For example, here are some differing results from other popular libs:
-
-### [typeof](https://github.com/CodingFu/typeof) lib
-
-Incorrectly identifies instances of custom constructors (pretty common):
-
-```js
-var typeOf = require('typeof');
-function Test() {}
-console.log(typeOf(new Test()));
-//=> 'test'
-```
-
-Returns `object` instead of `arguments`:
-
-```js
-function foo() {
- console.log(typeOf(arguments)) //=> 'object'
-}
-foo();
-```
-
-### [type-of](https://github.com/ForbesLindesay/type-of) lib
-
-Incorrectly returns `object` for generator functions, buffers, `Map`, `Set`, `WeakMap` and `WeakSet`:
-
-```js
-function * foo() {}
-console.log(typeOf(foo));
-//=> 'object'
-console.log(typeOf(new Buffer('')));
-//=> 'object'
-console.log(typeOf(new Map()));
-//=> 'object'
-console.log(typeOf(new Set()));
-//=> 'object'
-console.log(typeOf(new WeakMap()));
-//=> 'object'
-console.log(typeOf(new WeakSet()));
-//=> 'object'
-```
-
-## About
-
-
-Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-
-
-
-Running Tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-
-
-
-Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-
-
-### Related projects
-
-You might also be interested in these projects:
-
-* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/micromatch/is-glob) | [homepage](https://github.com/micromatch/is-glob "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet")
-* [is-number](https://www.npmjs.com/package/is-number): Returns true if a number or string value is a finite number. Useful for regex… [more](https://github.com/jonschlinkert/is-number) | [homepage](https://github.com/jonschlinkert/is-number "Returns true if a number or string value is a finite number. Useful for regex matches, parsing, user input, etc.")
-* [is-primitive](https://www.npmjs.com/package/is-primitive): Returns `true` if the value is a primitive. | [homepage](https://github.com/jonschlinkert/is-primitive "Returns `true` if the value is a primitive. ")
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 102 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 3 | [aretecode](https://github.com/aretecode) |
-| 2 | [miguelmota](https://github.com/miguelmota) |
-| 1 | [doowb](https://github.com/doowb) |
-| 1 | [dtothefp](https://github.com/dtothefp) |
-| 1 | [ianstormtaylor](https://github.com/ianstormtaylor) |
-| 1 | [ksheedlo](https://github.com/ksheedlo) |
-| 1 | [pdehaan](https://github.com/pdehaan) |
-| 1 | [laggingreflex](https://github.com/laggingreflex) |
-| 1 | [tunnckoCore](https://github.com/tunnckoCore) |
-| 1 | [xiaofen9](https://github.com/xiaofen9) |
-
-### Author
-
-**Jon Schlinkert**
-
-* [GitHub Profile](https://github.com/jonschlinkert)
-* [Twitter Profile](https://twitter.com/jonschlinkert)
-* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert)
-
-### License
-
-Copyright © 2020, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on January 16, 2020._
\ No newline at end of file
diff --git a/node_modules/micromatch/node_modules/kind-of/index.js b/node_modules/micromatch/node_modules/kind-of/index.js
deleted file mode 100644
index dfa799b..0000000
--- a/node_modules/micromatch/node_modules/kind-of/index.js
+++ /dev/null
@@ -1,129 +0,0 @@
-var toString = Object.prototype.toString;
-
-module.exports = function kindOf(val) {
- if (val === void 0) return 'undefined';
- if (val === null) return 'null';
-
- var type = typeof val;
- if (type === 'boolean') return 'boolean';
- if (type === 'string') return 'string';
- if (type === 'number') return 'number';
- if (type === 'symbol') return 'symbol';
- if (type === 'function') {
- return isGeneratorFn(val) ? 'generatorfunction' : 'function';
- }
-
- if (isArray(val)) return 'array';
- if (isBuffer(val)) return 'buffer';
- if (isArguments(val)) return 'arguments';
- if (isDate(val)) return 'date';
- if (isError(val)) return 'error';
- if (isRegexp(val)) return 'regexp';
-
- switch (ctorName(val)) {
- case 'Symbol': return 'symbol';
- case 'Promise': return 'promise';
-
- // Set, Map, WeakSet, WeakMap
- case 'WeakMap': return 'weakmap';
- case 'WeakSet': return 'weakset';
- case 'Map': return 'map';
- case 'Set': return 'set';
-
- // 8-bit typed arrays
- case 'Int8Array': return 'int8array';
- case 'Uint8Array': return 'uint8array';
- case 'Uint8ClampedArray': return 'uint8clampedarray';
-
- // 16-bit typed arrays
- case 'Int16Array': return 'int16array';
- case 'Uint16Array': return 'uint16array';
-
- // 32-bit typed arrays
- case 'Int32Array': return 'int32array';
- case 'Uint32Array': return 'uint32array';
- case 'Float32Array': return 'float32array';
- case 'Float64Array': return 'float64array';
- }
-
- if (isGeneratorObj(val)) {
- return 'generator';
- }
-
- // Non-plain objects
- type = toString.call(val);
- switch (type) {
- case '[object Object]': return 'object';
- // iterators
- case '[object Map Iterator]': return 'mapiterator';
- case '[object Set Iterator]': return 'setiterator';
- case '[object String Iterator]': return 'stringiterator';
- case '[object Array Iterator]': return 'arrayiterator';
- }
-
- // other
- return type.slice(8, -1).toLowerCase().replace(/\s/g, '');
-};
-
-function ctorName(val) {
- return typeof val.constructor === 'function' ? val.constructor.name : null;
-}
-
-function isArray(val) {
- if (Array.isArray) return Array.isArray(val);
- return val instanceof Array;
-}
-
-function isError(val) {
- return val instanceof Error || (typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number');
-}
-
-function isDate(val) {
- if (val instanceof Date) return true;
- return typeof val.toDateString === 'function'
- && typeof val.getDate === 'function'
- && typeof val.setDate === 'function';
-}
-
-function isRegexp(val) {
- if (val instanceof RegExp) return true;
- return typeof val.flags === 'string'
- && typeof val.ignoreCase === 'boolean'
- && typeof val.multiline === 'boolean'
- && typeof val.global === 'boolean';
-}
-
-function isGeneratorFn(name, val) {
- return ctorName(name) === 'GeneratorFunction';
-}
-
-function isGeneratorObj(val) {
- return typeof val.throw === 'function'
- && typeof val.return === 'function'
- && typeof val.next === 'function';
-}
-
-function isArguments(val) {
- try {
- if (typeof val.length === 'number' && typeof val.callee === 'function') {
- return true;
- }
- } catch (err) {
- if (err.message.indexOf('callee') !== -1) {
- return true;
- }
- }
- return false;
-}
-
-/**
- * If you need to support Safari 5-7 (8-10 yr-old browser),
- * take a look at https://github.com/feross/is-buffer
- */
-
-function isBuffer(val) {
- if (val.constructor && typeof val.constructor.isBuffer === 'function') {
- return val.constructor.isBuffer(val);
- }
- return false;
-}
diff --git a/node_modules/micromatch/node_modules/kind-of/package.json b/node_modules/micromatch/node_modules/kind-of/package.json
deleted file mode 100644
index 5820cad..0000000
--- a/node_modules/micromatch/node_modules/kind-of/package.json
+++ /dev/null
@@ -1,88 +0,0 @@
-{
- "name": "kind-of",
- "description": "Get the native type of a value.",
- "version": "6.0.3",
- "homepage": "https://github.com/jonschlinkert/kind-of",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "David Fox-Powell (https://dtothefp.github.io/me)",
- "James (https://twitter.com/aretecode)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Ken Sheedlo (kensheedlo.com)",
- "laggingreflex (https://github.com/laggingreflex)",
- "Miguel Mota (https://miguelmota.com)",
- "Peter deHaan (http://about.me/peterdehaan)",
- "tunnckoCore (https://i.am.charlike.online)"
- ],
- "repository": "jonschlinkert/kind-of",
- "bugs": {
- "url": "https://github.com/jonschlinkert/kind-of/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha",
- "prepublish": "browserify -o browser.js -e index.js -s index --bare"
- },
- "devDependencies": {
- "benchmarked": "^2.0.0",
- "browserify": "^14.4.0",
- "gulp-format-md": "^1.0.0",
- "mocha": "^4.0.1",
- "write": "^1.0.3"
- },
- "keywords": [
- "arguments",
- "array",
- "boolean",
- "check",
- "date",
- "function",
- "is",
- "is-type",
- "is-type-of",
- "kind",
- "kind-of",
- "number",
- "object",
- "of",
- "regexp",
- "string",
- "test",
- "type",
- "type-of",
- "typeof",
- "types"
- ],
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- },
- "related": {
- "list": [
- "is-glob",
- "is-number",
- "is-primitive"
- ]
- },
- "reflinks": [
- "type-of",
- "typeof",
- "verb"
- ]
- }
-}
diff --git a/node_modules/micromatch/package.json b/node_modules/micromatch/package.json
deleted file mode 100644
index 4475155..0000000
--- a/node_modules/micromatch/package.json
+++ /dev/null
@@ -1,147 +0,0 @@
-{
- "name": "micromatch",
- "description": "Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch.",
- "version": "3.1.10",
- "homepage": "https://github.com/micromatch/micromatch",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Amila Welihinda (amilajack.com)",
- "Bogdan Chadkin (https://github.com/TrySound)",
- "Brian Woodward (https://twitter.com/doowb)",
- "Devon Govett (http://badassjs.com)",
- "Elan Shanker (https://github.com/es128)",
- "Fabrício Matté (https://ultcombo.js.org)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Martin Kolárik (https://kolarik.sk)",
- "Olsten Larck (https://i.am.charlike.online)",
- "Paul Miller (paulmillr.com)",
- "Tom Byrer (https://github.com/tomByrer)",
- "Tyler Akins (http://rumkin.com)",
- "(https://github.com/DianeLooney)"
- ],
- "repository": "micromatch/micromatch",
- "bugs": {
- "url": "https://github.com/micromatch/micromatch/issues"
- },
- "license": "MIT",
- "files": [
- "index.js",
- "lib"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "braces": "^2.3.1",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "extglob": "^2.0.4",
- "fragment-cache": "^0.2.1",
- "kind-of": "^6.0.2",
- "nanomatch": "^1.2.9",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.2"
- },
- "devDependencies": {
- "bash-match": "^1.0.2",
- "for-own": "^1.0.0",
- "gulp": "^3.9.1",
- "gulp-format-md": "^1.0.0",
- "gulp-istanbul": "^1.1.3",
- "gulp-mocha": "^5.0.0",
- "gulp-unused": "^0.2.1",
- "is-windows": "^1.0.2",
- "minimatch": "^3.0.4",
- "minimist": "^1.2.0",
- "mocha": "^3.5.3",
- "multimatch": "^2.1.0"
- },
- "keywords": [
- "bash",
- "expand",
- "expansion",
- "expression",
- "file",
- "files",
- "filter",
- "find",
- "glob",
- "globbing",
- "globs",
- "globstar",
- "match",
- "matcher",
- "matches",
- "matching",
- "micromatch",
- "minimatch",
- "multimatch",
- "path",
- "pattern",
- "patterns",
- "regex",
- "regexp",
- "regular",
- "shell",
- "wildcard"
- ],
- "lintDeps": {
- "dependencies": {
- "options": {
- "lock": {
- "snapdragon": "^0.8.1"
- }
- }
- },
- "devDependencies": {
- "files": {
- "options": {
- "ignore": [
- "benchmark/**"
- ]
- }
- }
- }
- },
- "verb": {
- "toc": "collapsible",
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "helpers": [
- "./benchmark/helper.js"
- ],
- "related": {
- "list": [
- "braces",
- "expand-brackets",
- "extglob",
- "fill-range",
- "nanomatch"
- ]
- },
- "lint": {
- "reflinks": true
- },
- "reflinks": [
- "expand-brackets",
- "extglob",
- "glob-object",
- "minimatch",
- "multimatch",
- "snapdragon"
- ]
- }
-}
diff --git a/node_modules/minimatch/LICENSE b/node_modules/minimatch/LICENSE
deleted file mode 100644
index 19129e3..0000000
--- a/node_modules/minimatch/LICENSE
+++ /dev/null
@@ -1,15 +0,0 @@
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/node_modules/minimatch/README.md b/node_modules/minimatch/README.md
deleted file mode 100644
index ad72b81..0000000
--- a/node_modules/minimatch/README.md
+++ /dev/null
@@ -1,209 +0,0 @@
-# minimatch
-
-A minimal matching utility.
-
-[![Build Status](https://secure.travis-ci.org/isaacs/minimatch.svg)](http://travis-ci.org/isaacs/minimatch)
-
-
-This is the matching library used internally by npm.
-
-It works by converting glob expressions into JavaScript `RegExp`
-objects.
-
-## Usage
-
-```javascript
-var minimatch = require("minimatch")
-
-minimatch("bar.foo", "*.foo") // true!
-minimatch("bar.foo", "*.bar") // false!
-minimatch("bar.foo", "*.+(bar|foo)", { debug: true }) // true, and noisy!
-```
-
-## Features
-
-Supports these glob features:
-
-* Brace Expansion
-* Extended glob matching
-* "Globstar" `**` matching
-
-See:
-
-* `man sh`
-* `man bash`
-* `man 3 fnmatch`
-* `man 5 gitignore`
-
-## Minimatch Class
-
-Create a minimatch object by instantiating the `minimatch.Minimatch` class.
-
-```javascript
-var Minimatch = require("minimatch").Minimatch
-var mm = new Minimatch(pattern, options)
-```
-
-### Properties
-
-* `pattern` The original pattern the minimatch object represents.
-* `options` The options supplied to the constructor.
-* `set` A 2-dimensional array of regexp or string expressions.
- Each row in the
- array corresponds to a brace-expanded pattern. Each item in the row
- corresponds to a single path-part. For example, the pattern
- `{a,b/c}/d` would expand to a set of patterns like:
-
- [ [ a, d ]
- , [ b, c, d ] ]
-
- If a portion of the pattern doesn't have any "magic" in it
- (that is, it's something like `"foo"` rather than `fo*o?`), then it
- will be left as a string rather than converted to a regular
- expression.
-
-* `regexp` Created by the `makeRe` method. A single regular expression
- expressing the entire pattern. This is useful in cases where you wish
- to use the pattern somewhat like `fnmatch(3)` with `FNM_PATH` enabled.
-* `negate` True if the pattern is negated.
-* `comment` True if the pattern is a comment.
-* `empty` True if the pattern is `""`.
-
-### Methods
-
-* `makeRe` Generate the `regexp` member if necessary, and return it.
- Will return `false` if the pattern is invalid.
-* `match(fname)` Return true if the filename matches the pattern, or
- false otherwise.
-* `matchOne(fileArray, patternArray, partial)` Take a `/`-split
- filename, and match it against a single row in the `regExpSet`. This
- method is mainly for internal use, but is exposed so that it can be
- used by a glob-walker that needs to avoid excessive filesystem calls.
-
-All other methods are internal, and will be called as necessary.
-
-### minimatch(path, pattern, options)
-
-Main export. Tests a path against the pattern using the options.
-
-```javascript
-var isJS = minimatch(file, "*.js", { matchBase: true })
-```
-
-### minimatch.filter(pattern, options)
-
-Returns a function that tests its
-supplied argument, suitable for use with `Array.filter`. Example:
-
-```javascript
-var javascripts = fileList.filter(minimatch.filter("*.js", {matchBase: true}))
-```
-
-### minimatch.match(list, pattern, options)
-
-Match against the list of
-files, in the style of fnmatch or glob. If nothing is matched, and
-options.nonull is set, then return a list containing the pattern itself.
-
-```javascript
-var javascripts = minimatch.match(fileList, "*.js", {matchBase: true}))
-```
-
-### minimatch.makeRe(pattern, options)
-
-Make a regular expression object from the pattern.
-
-## Options
-
-All options are `false` by default.
-
-### debug
-
-Dump a ton of stuff to stderr.
-
-### nobrace
-
-Do not expand `{a,b}` and `{1..3}` brace sets.
-
-### noglobstar
-
-Disable `**` matching against multiple folder names.
-
-### dot
-
-Allow patterns to match filenames starting with a period, even if
-the pattern does not explicitly have a period in that spot.
-
-Note that by default, `a/**/b` will **not** match `a/.d/b`, unless `dot`
-is set.
-
-### noext
-
-Disable "extglob" style patterns like `+(a|b)`.
-
-### nocase
-
-Perform a case-insensitive match.
-
-### nonull
-
-When a match is not found by `minimatch.match`, return a list containing
-the pattern itself if this option is set. When not set, an empty list
-is returned if there are no matches.
-
-### matchBase
-
-If set, then patterns without slashes will be matched
-against the basename of the path if it contains slashes. For example,
-`a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`.
-
-### nocomment
-
-Suppress the behavior of treating `#` at the start of a pattern as a
-comment.
-
-### nonegate
-
-Suppress the behavior of treating a leading `!` character as negation.
-
-### flipNegate
-
-Returns from negate expressions the same as if they were not negated.
-(Ie, true on a hit, false on a miss.)
-
-
-## Comparisons to other fnmatch/glob implementations
-
-While strict compliance with the existing standards is a worthwhile
-goal, some discrepancies exist between minimatch and other
-implementations, and are intentional.
-
-If the pattern starts with a `!` character, then it is negated. Set the
-`nonegate` flag to suppress this behavior, and treat leading `!`
-characters normally. This is perhaps relevant if you wish to start the
-pattern with a negative extglob pattern like `!(a|B)`. Multiple `!`
-characters at the start of a pattern will negate the pattern multiple
-times.
-
-If a pattern starts with `#`, then it is treated as a comment, and
-will not match anything. Use `\#` to match a literal `#` at the
-start of a line, or set the `nocomment` flag to suppress this behavior.
-
-The double-star character `**` is supported by default, unless the
-`noglobstar` flag is set. This is supported in the manner of bsdglob
-and bash 4.1, where `**` only has special significance if it is the only
-thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but
-`a/**b` will not.
-
-If an escaped pattern has no matches, and the `nonull` flag is set,
-then minimatch.match returns the pattern as-provided, rather than
-interpreting the character escapes. For example,
-`minimatch.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than
-`"*a?"`. This is akin to setting the `nullglob` option in bash, except
-that it does not resolve escaped pattern characters.
-
-If brace expansion is not disabled, then it is performed before any
-other interpretation of the glob pattern. Thus, a pattern like
-`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded
-**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are
-checked for validity. Since those two are valid, matching proceeds.
diff --git a/node_modules/minimatch/minimatch.js b/node_modules/minimatch/minimatch.js
deleted file mode 100644
index 5b5f8cf..0000000
--- a/node_modules/minimatch/minimatch.js
+++ /dev/null
@@ -1,923 +0,0 @@
-module.exports = minimatch
-minimatch.Minimatch = Minimatch
-
-var path = { sep: '/' }
-try {
- path = require('path')
-} catch (er) {}
-
-var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}
-var expand = require('brace-expansion')
-
-var plTypes = {
- '!': { open: '(?:(?!(?:', close: '))[^/]*?)'},
- '?': { open: '(?:', close: ')?' },
- '+': { open: '(?:', close: ')+' },
- '*': { open: '(?:', close: ')*' },
- '@': { open: '(?:', close: ')' }
-}
-
-// any single thing other than /
-// don't need to escape / when using new RegExp()
-var qmark = '[^/]'
-
-// * => any number of characters
-var star = qmark + '*?'
-
-// ** when dots are allowed. Anything goes, except .. and .
-// not (^ or / followed by one or two dots followed by $ or /),
-// followed by anything, any number of times.
-var twoStarDot = '(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?'
-
-// not a ^ or / followed by a dot,
-// followed by anything, any number of times.
-var twoStarNoDot = '(?:(?!(?:\\\/|^)\\.).)*?'
-
-// characters that need to be escaped in RegExp.
-var reSpecials = charSet('().*{}+?[]^$\\!')
-
-// "abc" -> { a:true, b:true, c:true }
-function charSet (s) {
- return s.split('').reduce(function (set, c) {
- set[c] = true
- return set
- }, {})
-}
-
-// normalizes slashes.
-var slashSplit = /\/+/
-
-minimatch.filter = filter
-function filter (pattern, options) {
- options = options || {}
- return function (p, i, list) {
- return minimatch(p, pattern, options)
- }
-}
-
-function ext (a, b) {
- a = a || {}
- b = b || {}
- var t = {}
- Object.keys(b).forEach(function (k) {
- t[k] = b[k]
- })
- Object.keys(a).forEach(function (k) {
- t[k] = a[k]
- })
- return t
-}
-
-minimatch.defaults = function (def) {
- if (!def || !Object.keys(def).length) return minimatch
-
- var orig = minimatch
-
- var m = function minimatch (p, pattern, options) {
- return orig.minimatch(p, pattern, ext(def, options))
- }
-
- m.Minimatch = function Minimatch (pattern, options) {
- return new orig.Minimatch(pattern, ext(def, options))
- }
-
- return m
-}
-
-Minimatch.defaults = function (def) {
- if (!def || !Object.keys(def).length) return Minimatch
- return minimatch.defaults(def).Minimatch
-}
-
-function minimatch (p, pattern, options) {
- if (typeof pattern !== 'string') {
- throw new TypeError('glob pattern string required')
- }
-
- if (!options) options = {}
-
- // shortcut: comments match nothing.
- if (!options.nocomment && pattern.charAt(0) === '#') {
- return false
- }
-
- // "" only matches ""
- if (pattern.trim() === '') return p === ''
-
- return new Minimatch(pattern, options).match(p)
-}
-
-function Minimatch (pattern, options) {
- if (!(this instanceof Minimatch)) {
- return new Minimatch(pattern, options)
- }
-
- if (typeof pattern !== 'string') {
- throw new TypeError('glob pattern string required')
- }
-
- if (!options) options = {}
- pattern = pattern.trim()
-
- // windows support: need to use /, not \
- if (path.sep !== '/') {
- pattern = pattern.split(path.sep).join('/')
- }
-
- this.options = options
- this.set = []
- this.pattern = pattern
- this.regexp = null
- this.negate = false
- this.comment = false
- this.empty = false
-
- // make the set of regexps etc.
- this.make()
-}
-
-Minimatch.prototype.debug = function () {}
-
-Minimatch.prototype.make = make
-function make () {
- // don't do it more than once.
- if (this._made) return
-
- var pattern = this.pattern
- var options = this.options
-
- // empty patterns and comments match nothing.
- if (!options.nocomment && pattern.charAt(0) === '#') {
- this.comment = true
- return
- }
- if (!pattern) {
- this.empty = true
- return
- }
-
- // step 1: figure out negation, etc.
- this.parseNegate()
-
- // step 2: expand braces
- var set = this.globSet = this.braceExpand()
-
- if (options.debug) this.debug = console.error
-
- this.debug(this.pattern, set)
-
- // step 3: now we have a set, so turn each one into a series of path-portion
- // matching patterns.
- // These will be regexps, except in the case of "**", which is
- // set to the GLOBSTAR object for globstar behavior,
- // and will not contain any / characters
- set = this.globParts = set.map(function (s) {
- return s.split(slashSplit)
- })
-
- this.debug(this.pattern, set)
-
- // glob --> regexps
- set = set.map(function (s, si, set) {
- return s.map(this.parse, this)
- }, this)
-
- this.debug(this.pattern, set)
-
- // filter out everything that didn't compile properly.
- set = set.filter(function (s) {
- return s.indexOf(false) === -1
- })
-
- this.debug(this.pattern, set)
-
- this.set = set
-}
-
-Minimatch.prototype.parseNegate = parseNegate
-function parseNegate () {
- var pattern = this.pattern
- var negate = false
- var options = this.options
- var negateOffset = 0
-
- if (options.nonegate) return
-
- for (var i = 0, l = pattern.length
- ; i < l && pattern.charAt(i) === '!'
- ; i++) {
- negate = !negate
- negateOffset++
- }
-
- if (negateOffset) this.pattern = pattern.substr(negateOffset)
- this.negate = negate
-}
-
-// Brace expansion:
-// a{b,c}d -> abd acd
-// a{b,}c -> abc ac
-// a{0..3}d -> a0d a1d a2d a3d
-// a{b,c{d,e}f}g -> abg acdfg acefg
-// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg
-//
-// Invalid sets are not expanded.
-// a{2..}b -> a{2..}b
-// a{b}c -> a{b}c
-minimatch.braceExpand = function (pattern, options) {
- return braceExpand(pattern, options)
-}
-
-Minimatch.prototype.braceExpand = braceExpand
-
-function braceExpand (pattern, options) {
- if (!options) {
- if (this instanceof Minimatch) {
- options = this.options
- } else {
- options = {}
- }
- }
-
- pattern = typeof pattern === 'undefined'
- ? this.pattern : pattern
-
- if (typeof pattern === 'undefined') {
- throw new TypeError('undefined pattern')
- }
-
- if (options.nobrace ||
- !pattern.match(/\{.*\}/)) {
- // shortcut. no need to expand.
- return [pattern]
- }
-
- return expand(pattern)
-}
-
-// parse a component of the expanded set.
-// At this point, no pattern may contain "/" in it
-// so we're going to return a 2d array, where each entry is the full
-// pattern, split on '/', and then turned into a regular expression.
-// A regexp is made at the end which joins each array with an
-// escaped /, and another full one which joins each regexp with |.
-//
-// Following the lead of Bash 4.1, note that "**" only has special meaning
-// when it is the *only* thing in a path portion. Otherwise, any series
-// of * is equivalent to a single *. Globstar behavior is enabled by
-// default, and can be disabled by setting options.noglobstar.
-Minimatch.prototype.parse = parse
-var SUBPARSE = {}
-function parse (pattern, isSub) {
- if (pattern.length > 1024 * 64) {
- throw new TypeError('pattern is too long')
- }
-
- var options = this.options
-
- // shortcuts
- if (!options.noglobstar && pattern === '**') return GLOBSTAR
- if (pattern === '') return ''
-
- var re = ''
- var hasMagic = !!options.nocase
- var escaping = false
- // ? => one single character
- var patternListStack = []
- var negativeLists = []
- var stateChar
- var inClass = false
- var reClassStart = -1
- var classStart = -1
- // . and .. never match anything that doesn't start with .,
- // even when options.dot is set.
- var patternStart = pattern.charAt(0) === '.' ? '' // anything
- // not (start or / followed by . or .. followed by / or end)
- : options.dot ? '(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))'
- : '(?!\\.)'
- var self = this
-
- function clearStateChar () {
- if (stateChar) {
- // we had some state-tracking character
- // that wasn't consumed by this pass.
- switch (stateChar) {
- case '*':
- re += star
- hasMagic = true
- break
- case '?':
- re += qmark
- hasMagic = true
- break
- default:
- re += '\\' + stateChar
- break
- }
- self.debug('clearStateChar %j %j', stateChar, re)
- stateChar = false
- }
- }
-
- for (var i = 0, len = pattern.length, c
- ; (i < len) && (c = pattern.charAt(i))
- ; i++) {
- this.debug('%s\t%s %s %j', pattern, i, re, c)
-
- // skip over any that are escaped.
- if (escaping && reSpecials[c]) {
- re += '\\' + c
- escaping = false
- continue
- }
-
- switch (c) {
- case '/':
- // completely not allowed, even escaped.
- // Should already be path-split by now.
- return false
-
- case '\\':
- clearStateChar()
- escaping = true
- continue
-
- // the various stateChar values
- // for the "extglob" stuff.
- case '?':
- case '*':
- case '+':
- case '@':
- case '!':
- this.debug('%s\t%s %s %j <-- stateChar', pattern, i, re, c)
-
- // all of those are literals inside a class, except that
- // the glob [!a] means [^a] in regexp
- if (inClass) {
- this.debug(' in class')
- if (c === '!' && i === classStart + 1) c = '^'
- re += c
- continue
- }
-
- // if we already have a stateChar, then it means
- // that there was something like ** or +? in there.
- // Handle the stateChar, then proceed with this one.
- self.debug('call clearStateChar %j', stateChar)
- clearStateChar()
- stateChar = c
- // if extglob is disabled, then +(asdf|foo) isn't a thing.
- // just clear the statechar *now*, rather than even diving into
- // the patternList stuff.
- if (options.noext) clearStateChar()
- continue
-
- case '(':
- if (inClass) {
- re += '('
- continue
- }
-
- if (!stateChar) {
- re += '\\('
- continue
- }
-
- patternListStack.push({
- type: stateChar,
- start: i - 1,
- reStart: re.length,
- open: plTypes[stateChar].open,
- close: plTypes[stateChar].close
- })
- // negation is (?:(?!js)[^/]*)
- re += stateChar === '!' ? '(?:(?!(?:' : '(?:'
- this.debug('plType %j %j', stateChar, re)
- stateChar = false
- continue
-
- case ')':
- if (inClass || !patternListStack.length) {
- re += '\\)'
- continue
- }
-
- clearStateChar()
- hasMagic = true
- var pl = patternListStack.pop()
- // negation is (?:(?!js)[^/]*)
- // The others are (?:)
- re += pl.close
- if (pl.type === '!') {
- negativeLists.push(pl)
- }
- pl.reEnd = re.length
- continue
-
- case '|':
- if (inClass || !patternListStack.length || escaping) {
- re += '\\|'
- escaping = false
- continue
- }
-
- clearStateChar()
- re += '|'
- continue
-
- // these are mostly the same in regexp and glob
- case '[':
- // swallow any state-tracking char before the [
- clearStateChar()
-
- if (inClass) {
- re += '\\' + c
- continue
- }
-
- inClass = true
- classStart = i
- reClassStart = re.length
- re += c
- continue
-
- case ']':
- // a right bracket shall lose its special
- // meaning and represent itself in
- // a bracket expression if it occurs
- // first in the list. -- POSIX.2 2.8.3.2
- if (i === classStart + 1 || !inClass) {
- re += '\\' + c
- escaping = false
- continue
- }
-
- // handle the case where we left a class open.
- // "[z-a]" is valid, equivalent to "\[z-a\]"
- if (inClass) {
- // split where the last [ was, make sure we don't have
- // an invalid re. if so, re-walk the contents of the
- // would-be class to re-translate any characters that
- // were passed through as-is
- // TODO: It would probably be faster to determine this
- // without a try/catch and a new RegExp, but it's tricky
- // to do safely. For now, this is safe and works.
- var cs = pattern.substring(classStart + 1, i)
- try {
- RegExp('[' + cs + ']')
- } catch (er) {
- // not a valid class!
- var sp = this.parse(cs, SUBPARSE)
- re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]'
- hasMagic = hasMagic || sp[1]
- inClass = false
- continue
- }
- }
-
- // finish up the class.
- hasMagic = true
- inClass = false
- re += c
- continue
-
- default:
- // swallow any state char that wasn't consumed
- clearStateChar()
-
- if (escaping) {
- // no need
- escaping = false
- } else if (reSpecials[c]
- && !(c === '^' && inClass)) {
- re += '\\'
- }
-
- re += c
-
- } // switch
- } // for
-
- // handle the case where we left a class open.
- // "[abc" is valid, equivalent to "\[abc"
- if (inClass) {
- // split where the last [ was, and escape it
- // this is a huge pita. We now have to re-walk
- // the contents of the would-be class to re-translate
- // any characters that were passed through as-is
- cs = pattern.substr(classStart + 1)
- sp = this.parse(cs, SUBPARSE)
- re = re.substr(0, reClassStart) + '\\[' + sp[0]
- hasMagic = hasMagic || sp[1]
- }
-
- // handle the case where we had a +( thing at the *end*
- // of the pattern.
- // each pattern list stack adds 3 chars, and we need to go through
- // and escape any | chars that were passed through as-is for the regexp.
- // Go through and escape them, taking care not to double-escape any
- // | chars that were already escaped.
- for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) {
- var tail = re.slice(pl.reStart + pl.open.length)
- this.debug('setting tail', re, pl)
- // maybe some even number of \, then maybe 1 \, followed by a |
- tail = tail.replace(/((?:\\{2}){0,64})(\\?)\|/g, function (_, $1, $2) {
- if (!$2) {
- // the | isn't already escaped, so escape it.
- $2 = '\\'
- }
-
- // need to escape all those slashes *again*, without escaping the
- // one that we need for escaping the | character. As it works out,
- // escaping an even number of slashes can be done by simply repeating
- // it exactly after itself. That's why this trick works.
- //
- // I am sorry that you have to see this.
- return $1 + $1 + $2 + '|'
- })
-
- this.debug('tail=%j\n %s', tail, tail, pl, re)
- var t = pl.type === '*' ? star
- : pl.type === '?' ? qmark
- : '\\' + pl.type
-
- hasMagic = true
- re = re.slice(0, pl.reStart) + t + '\\(' + tail
- }
-
- // handle trailing things that only matter at the very end.
- clearStateChar()
- if (escaping) {
- // trailing \\
- re += '\\\\'
- }
-
- // only need to apply the nodot start if the re starts with
- // something that could conceivably capture a dot
- var addPatternStart = false
- switch (re.charAt(0)) {
- case '.':
- case '[':
- case '(': addPatternStart = true
- }
-
- // Hack to work around lack of negative lookbehind in JS
- // A pattern like: *.!(x).!(y|z) needs to ensure that a name
- // like 'a.xyz.yz' doesn't match. So, the first negative
- // lookahead, has to look ALL the way ahead, to the end of
- // the pattern.
- for (var n = negativeLists.length - 1; n > -1; n--) {
- var nl = negativeLists[n]
-
- var nlBefore = re.slice(0, nl.reStart)
- var nlFirst = re.slice(nl.reStart, nl.reEnd - 8)
- var nlLast = re.slice(nl.reEnd - 8, nl.reEnd)
- var nlAfter = re.slice(nl.reEnd)
-
- nlLast += nlAfter
-
- // Handle nested stuff like *(*.js|!(*.json)), where open parens
- // mean that we should *not* include the ) in the bit that is considered
- // "after" the negated section.
- var openParensBefore = nlBefore.split('(').length - 1
- var cleanAfter = nlAfter
- for (i = 0; i < openParensBefore; i++) {
- cleanAfter = cleanAfter.replace(/\)[+*?]?/, '')
- }
- nlAfter = cleanAfter
-
- var dollar = ''
- if (nlAfter === '' && isSub !== SUBPARSE) {
- dollar = '$'
- }
- var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast
- re = newRe
- }
-
- // if the re is not "" at this point, then we need to make sure
- // it doesn't match against an empty path part.
- // Otherwise a/* will match a/, which it should not.
- if (re !== '' && hasMagic) {
- re = '(?=.)' + re
- }
-
- if (addPatternStart) {
- re = patternStart + re
- }
-
- // parsing just a piece of a larger pattern.
- if (isSub === SUBPARSE) {
- return [re, hasMagic]
- }
-
- // skip the regexp for non-magical patterns
- // unescape anything in it, though, so that it'll be
- // an exact match against a file etc.
- if (!hasMagic) {
- return globUnescape(pattern)
- }
-
- var flags = options.nocase ? 'i' : ''
- try {
- var regExp = new RegExp('^' + re + '$', flags)
- } catch (er) {
- // If it was an invalid regular expression, then it can't match
- // anything. This trick looks for a character after the end of
- // the string, which is of course impossible, except in multi-line
- // mode, but it's not a /m regex.
- return new RegExp('$.')
- }
-
- regExp._glob = pattern
- regExp._src = re
-
- return regExp
-}
-
-minimatch.makeRe = function (pattern, options) {
- return new Minimatch(pattern, options || {}).makeRe()
-}
-
-Minimatch.prototype.makeRe = makeRe
-function makeRe () {
- if (this.regexp || this.regexp === false) return this.regexp
-
- // at this point, this.set is a 2d array of partial
- // pattern strings, or "**".
- //
- // It's better to use .match(). This function shouldn't
- // be used, really, but it's pretty convenient sometimes,
- // when you just want to work with a regex.
- var set = this.set
-
- if (!set.length) {
- this.regexp = false
- return this.regexp
- }
- var options = this.options
-
- var twoStar = options.noglobstar ? star
- : options.dot ? twoStarDot
- : twoStarNoDot
- var flags = options.nocase ? 'i' : ''
-
- var re = set.map(function (pattern) {
- return pattern.map(function (p) {
- return (p === GLOBSTAR) ? twoStar
- : (typeof p === 'string') ? regExpEscape(p)
- : p._src
- }).join('\\\/')
- }).join('|')
-
- // must match entire pattern
- // ending in a * or ** will make it less strict.
- re = '^(?:' + re + ')$'
-
- // can match anything, as long as it's not this.
- if (this.negate) re = '^(?!' + re + ').*$'
-
- try {
- this.regexp = new RegExp(re, flags)
- } catch (ex) {
- this.regexp = false
- }
- return this.regexp
-}
-
-minimatch.match = function (list, pattern, options) {
- options = options || {}
- var mm = new Minimatch(pattern, options)
- list = list.filter(function (f) {
- return mm.match(f)
- })
- if (mm.options.nonull && !list.length) {
- list.push(pattern)
- }
- return list
-}
-
-Minimatch.prototype.match = match
-function match (f, partial) {
- this.debug('match', f, this.pattern)
- // short-circuit in the case of busted things.
- // comments, etc.
- if (this.comment) return false
- if (this.empty) return f === ''
-
- if (f === '/' && partial) return true
-
- var options = this.options
-
- // windows: need to use /, not \
- if (path.sep !== '/') {
- f = f.split(path.sep).join('/')
- }
-
- // treat the test path as a set of pathparts.
- f = f.split(slashSplit)
- this.debug(this.pattern, 'split', f)
-
- // just ONE of the pattern sets in this.set needs to match
- // in order for it to be valid. If negating, then just one
- // match means that we have failed.
- // Either way, return on the first hit.
-
- var set = this.set
- this.debug(this.pattern, 'set', set)
-
- // Find the basename of the path by looking for the last non-empty segment
- var filename
- var i
- for (i = f.length - 1; i >= 0; i--) {
- filename = f[i]
- if (filename) break
- }
-
- for (i = 0; i < set.length; i++) {
- var pattern = set[i]
- var file = f
- if (options.matchBase && pattern.length === 1) {
- file = [filename]
- }
- var hit = this.matchOne(file, pattern, partial)
- if (hit) {
- if (options.flipNegate) return true
- return !this.negate
- }
- }
-
- // didn't get any hits. this is success if it's a negative
- // pattern, failure otherwise.
- if (options.flipNegate) return false
- return this.negate
-}
-
-// set partial to true to test if, for example,
-// "/a/b" matches the start of "/*/b/*/d"
-// Partial means, if you run out of file before you run
-// out of pattern, then that's fine, as long as all
-// the parts match.
-Minimatch.prototype.matchOne = function (file, pattern, partial) {
- var options = this.options
-
- this.debug('matchOne',
- { 'this': this, file: file, pattern: pattern })
-
- this.debug('matchOne', file.length, pattern.length)
-
- for (var fi = 0,
- pi = 0,
- fl = file.length,
- pl = pattern.length
- ; (fi < fl) && (pi < pl)
- ; fi++, pi++) {
- this.debug('matchOne loop')
- var p = pattern[pi]
- var f = file[fi]
-
- this.debug(pattern, p, f)
-
- // should be impossible.
- // some invalid regexp stuff in the set.
- if (p === false) return false
-
- if (p === GLOBSTAR) {
- this.debug('GLOBSTAR', [pattern, p, f])
-
- // "**"
- // a/**/b/**/c would match the following:
- // a/b/x/y/z/c
- // a/x/y/z/b/c
- // a/b/x/b/x/c
- // a/b/c
- // To do this, take the rest of the pattern after
- // the **, and see if it would match the file remainder.
- // If so, return success.
- // If not, the ** "swallows" a segment, and try again.
- // This is recursively awful.
- //
- // a/**/b/**/c matching a/b/x/y/z/c
- // - a matches a
- // - doublestar
- // - matchOne(b/x/y/z/c, b/**/c)
- // - b matches b
- // - doublestar
- // - matchOne(x/y/z/c, c) -> no
- // - matchOne(y/z/c, c) -> no
- // - matchOne(z/c, c) -> no
- // - matchOne(c, c) yes, hit
- var fr = fi
- var pr = pi + 1
- if (pr === pl) {
- this.debug('** at the end')
- // a ** at the end will just swallow the rest.
- // We have found a match.
- // however, it will not swallow /.x, unless
- // options.dot is set.
- // . and .. are *never* matched by **, for explosively
- // exponential reasons.
- for (; fi < fl; fi++) {
- if (file[fi] === '.' || file[fi] === '..' ||
- (!options.dot && file[fi].charAt(0) === '.')) return false
- }
- return true
- }
-
- // ok, let's see if we can swallow whatever we can.
- while (fr < fl) {
- var swallowee = file[fr]
-
- this.debug('\nglobstar while', file, fr, pattern, pr, swallowee)
-
- // XXX remove this slice. Just pass the start index.
- if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
- this.debug('globstar found match!', fr, fl, swallowee)
- // found a match.
- return true
- } else {
- // can't swallow "." or ".." ever.
- // can only swallow ".foo" when explicitly asked.
- if (swallowee === '.' || swallowee === '..' ||
- (!options.dot && swallowee.charAt(0) === '.')) {
- this.debug('dot detected!', file, fr, pattern, pr)
- break
- }
-
- // ** swallows a segment, and continue.
- this.debug('globstar swallow a segment, and continue')
- fr++
- }
- }
-
- // no match was found.
- // However, in partial mode, we can't say this is necessarily over.
- // If there's more *pattern* left, then
- if (partial) {
- // ran out of file
- this.debug('\n>>> no match, partial?', file, fr, pattern, pr)
- if (fr === fl) return true
- }
- return false
- }
-
- // something other than **
- // non-magic patterns just have to match exactly
- // patterns with magic have been turned into regexps.
- var hit
- if (typeof p === 'string') {
- if (options.nocase) {
- hit = f.toLowerCase() === p.toLowerCase()
- } else {
- hit = f === p
- }
- this.debug('string match', p, f, hit)
- } else {
- hit = f.match(p)
- this.debug('pattern match', p, f, hit)
- }
-
- if (!hit) return false
- }
-
- // Note: ending in / means that we'll get a final ""
- // at the end of the pattern. This can only match a
- // corresponding "" at the end of the file.
- // If the file ends in /, then it can only match a
- // a pattern that ends in /, unless the pattern just
- // doesn't have any more for it. But, a/b/ should *not*
- // match "a/b/*", even though "" matches against the
- // [^/]*? pattern, except in partial mode, where it might
- // simply not be reached yet.
- // However, a/b/ should still satisfy a/*
-
- // now either we fell off the end of the pattern, or we're done.
- if (fi === fl && pi === pl) {
- // ran out of pattern and filename at the same time.
- // an exact hit!
- return true
- } else if (fi === fl) {
- // ran out of file, but still had pattern left.
- // this is ok if we're doing the match as part of
- // a glob fs traversal.
- return partial
- } else if (pi === pl) {
- // ran out of pattern, still have file left.
- // this is only acceptable if we're on the very last
- // empty segment of a file with a trailing slash.
- // a/* should match a/b/
- var emptyFileEnd = (fi === fl - 1) && (file[fi] === '')
- return emptyFileEnd
- }
-
- // should be unreachable.
- throw new Error('wtf?')
-}
-
-// replace stuff like \* with *
-function globUnescape (s) {
- return s.replace(/\\(.)/g, '$1')
-}
-
-function regExpEscape (s) {
- return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&')
-}
diff --git a/node_modules/minimatch/package.json b/node_modules/minimatch/package.json
deleted file mode 100644
index c4514c8..0000000
--- a/node_modules/minimatch/package.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "author": "Isaac Z. Schlueter (http://blog.izs.me)",
- "name": "minimatch",
- "description": "a glob matcher in javascript",
- "version": "3.0.4",
- "repository": {
- "type": "git",
- "url": "git://github.com/isaacs/minimatch.git"
- },
- "main": "minimatch.js",
- "scripts": {
- "test": "tap test/*.js --cov",
- "preversion": "npm test",
- "postversion": "npm publish",
- "postpublish": "git push origin --all; git push origin --tags"
- },
- "engines": {
- "node": "*"
- },
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "devDependencies": {
- "tap": "^10.3.2"
- },
- "license": "ISC",
- "files": [
- "minimatch.js"
- ]
-}
diff --git a/node_modules/mixin-deep/LICENSE b/node_modules/mixin-deep/LICENSE
deleted file mode 100644
index 99c9369..0000000
--- a/node_modules/mixin-deep/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2015, 2017, 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/mixin-deep/README.md b/node_modules/mixin-deep/README.md
deleted file mode 100644
index 111bde0..0000000
--- a/node_modules/mixin-deep/README.md
+++ /dev/null
@@ -1,80 +0,0 @@
-# mixin-deep [![NPM version](https://img.shields.io/npm/v/mixin-deep.svg?style=flat)](https://www.npmjs.com/package/mixin-deep) [![NPM monthly downloads](https://img.shields.io/npm/dm/mixin-deep.svg?style=flat)](https://npmjs.org/package/mixin-deep) [![NPM total downloads](https://img.shields.io/npm/dt/mixin-deep.svg?style=flat)](https://npmjs.org/package/mixin-deep) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/mixin-deep.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/mixin-deep)
-
-> Deeply mix the properties of objects into the first object. Like merge-deep, but doesn't clone.
-
-Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save mixin-deep
-```
-
-## Usage
-
-```js
-var mixinDeep = require('mixin-deep');
-
-mixinDeep({a: {aa: 'aa'}}, {a: {bb: 'bb'}}, {a: {cc: 'cc'}});
-//=> { a: { aa: 'aa', bb: 'bb', cc: 'cc' } }
-```
-
-## About
-
-
-Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-
-
-
-Running Tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-
-
-Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-
-
-### Related projects
-
-You might also be interested in these projects:
-
-* [defaults-deep](https://www.npmjs.com/package/defaults-deep): Like `extend` but recursively copies only the missing properties/values to the target object. | [homepage](https://github.com/jonschlinkert/defaults-deep "Like `extend` but recursively copies only the missing properties/values to the target object.")
-* [extend-shallow](https://www.npmjs.com/package/extend-shallow): Extend an object with the properties of additional objects. node.js/javascript util. | [homepage](https://github.com/jonschlinkert/extend-shallow "Extend an object with the properties of additional objects. node.js/javascript util.")
-* [merge-deep](https://www.npmjs.com/package/merge-deep): Recursively merge values in a javascript object. | [homepage](https://github.com/jonschlinkert/merge-deep "Recursively merge values in a javascript object.")
-* [mixin-object](https://www.npmjs.com/package/mixin-object): Mixin the own and inherited properties of other objects onto the first object. Pass an… [more](https://github.com/jonschlinkert/mixin-object) | [homepage](https://github.com/jonschlinkert/mixin-object "Mixin the own and inherited properties of other objects onto the first object. Pass an empty object as the first arg to shallow clone.")
-
-### Author
-
-**Jon Schlinkert**
-
-* [linkedin/in/jonschlinkert](https://linkedin.com/in/jonschlinkert)
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on December 09, 2017._
\ No newline at end of file
diff --git a/node_modules/mixin-deep/index.js b/node_modules/mixin-deep/index.js
deleted file mode 100644
index 47face2..0000000
--- a/node_modules/mixin-deep/index.js
+++ /dev/null
@@ -1,64 +0,0 @@
-'use strict';
-
-var isExtendable = require('is-extendable');
-var forIn = require('for-in');
-
-function mixinDeep(target, objects) {
- var len = arguments.length, i = 0;
- while (++i < len) {
- var obj = arguments[i];
- if (isObject(obj)) {
- forIn(obj, copy, target);
- }
- }
- return target;
-}
-
-/**
- * Copy properties from the source object to the
- * target object.
- *
- * @param {*} `val`
- * @param {String} `key`
- */
-
-function copy(val, key) {
- if (!isValidKey(key)) {
- return;
- }
-
- var obj = this[key];
- if (isObject(val) && isObject(obj)) {
- mixinDeep(obj, val);
- } else {
- this[key] = val;
- }
-}
-
-/**
- * Returns true if `val` is an object or function.
- *
- * @param {any} val
- * @return {Boolean}
- */
-
-function isObject(val) {
- return isExtendable(val) && !Array.isArray(val);
-}
-
-/**
- * Returns true if `key` is a valid key to use when extending objects.
- *
- * @param {String} `key`
- * @return {Boolean}
- */
-
-function isValidKey(key) {
- return key !== '__proto__' && key !== 'constructor' && key !== 'prototype';
-};
-
-/**
- * Expose `mixinDeep`
- */
-
-module.exports = mixinDeep;
diff --git a/node_modules/mixin-deep/node_modules/is-extendable/LICENSE b/node_modules/mixin-deep/node_modules/is-extendable/LICENSE
deleted file mode 100644
index c0d7f13..0000000
--- a/node_modules/mixin-deep/node_modules/is-extendable/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015-2017, 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.
\ No newline at end of file
diff --git a/node_modules/mixin-deep/node_modules/is-extendable/README.md b/node_modules/mixin-deep/node_modules/is-extendable/README.md
deleted file mode 100644
index 875b56a..0000000
--- a/node_modules/mixin-deep/node_modules/is-extendable/README.md
+++ /dev/null
@@ -1,88 +0,0 @@
-# is-extendable [![NPM version](https://img.shields.io/npm/v/is-extendable.svg?style=flat)](https://www.npmjs.com/package/is-extendable) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-extendable.svg?style=flat)](https://npmjs.org/package/is-extendable) [![NPM total downloads](https://img.shields.io/npm/dt/is-extendable.svg?style=flat)](https://npmjs.org/package/is-extendable) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-extendable.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-extendable)
-
-> Returns true if a value is a plain object, array or function.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save is-extendable
-```
-
-## Usage
-
-```js
-var isExtendable = require('is-extendable');
-```
-
-Returns true if the value is any of the following:
-
-* array
-* plain object
-* function
-
-## Notes
-
-All objects in JavaScript can have keys, but it's a pain to check for this, since we ether need to verify that the value is not `null` or `undefined` and:
-
-* the value is not a primitive, or
-* that the object is a plain object, function or array
-
-Also note that an `extendable` object is not the same as an [extensible object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isExtensible), which is one that (in es6) is not sealed, frozen, or marked as non-extensible using `preventExtensions`.
-
-## Release history
-
-### v1.0.0 - 2017/07/20
-
-**Breaking changes**
-
-* No longer considers date, regex or error objects to be extendable
-
-## About
-
-### Related projects
-
-* [assign-deep](https://www.npmjs.com/package/assign-deep): Deeply assign the enumerable properties and/or es6 Symbol properies of source objects to the target… [more](https://github.com/jonschlinkert/assign-deep) | [homepage](https://github.com/jonschlinkert/assign-deep "Deeply assign the enumerable properties and/or es6 Symbol properies of source objects to the target (first) object.")
-* [is-equal-shallow](https://www.npmjs.com/package/is-equal-shallow): Does a shallow comparison of two objects, returning false if the keys or values differ. | [homepage](https://github.com/jonschlinkert/is-equal-shallow "Does a shallow comparison of two objects, returning false if the keys or values differ.")
-* [is-plain-object](https://www.npmjs.com/package/is-plain-object): Returns true if an object was created by the `Object` constructor. | [homepage](https://github.com/jonschlinkert/is-plain-object "Returns true if an object was created by the `Object` constructor.")
-* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.")
-* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on July 20, 2017._
\ No newline at end of file
diff --git a/node_modules/mixin-deep/node_modules/is-extendable/index.d.ts b/node_modules/mixin-deep/node_modules/is-extendable/index.d.ts
deleted file mode 100644
index b96d507..0000000
--- a/node_modules/mixin-deep/node_modules/is-extendable/index.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export = isExtendable;
-
-declare function isExtendable(val: any): boolean;
-
-declare namespace isExtendable {}
diff --git a/node_modules/mixin-deep/node_modules/is-extendable/index.js b/node_modules/mixin-deep/node_modules/is-extendable/index.js
deleted file mode 100644
index a8b26ad..0000000
--- a/node_modules/mixin-deep/node_modules/is-extendable/index.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/*!
- * is-extendable
- *
- * Copyright (c) 2015-2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-var isPlainObject = require('is-plain-object');
-
-module.exports = function isExtendable(val) {
- return isPlainObject(val) || typeof val === 'function' || Array.isArray(val);
-};
diff --git a/node_modules/mixin-deep/node_modules/is-extendable/package.json b/node_modules/mixin-deep/node_modules/is-extendable/package.json
deleted file mode 100644
index 2aaab65..0000000
--- a/node_modules/mixin-deep/node_modules/is-extendable/package.json
+++ /dev/null
@@ -1,67 +0,0 @@
-{
- "name": "is-extendable",
- "description": "Returns true if a value is a plain object, array or function.",
- "version": "1.0.1",
- "homepage": "https://github.com/jonschlinkert/is-extendable",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/is-extendable",
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-extendable/issues"
- },
- "license": "MIT",
- "files": [
- "index.js",
- "index.d.ts"
- ],
- "main": "index.js",
- "types": "index.d.ts",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "is-plain-object": "^2.0.4"
- },
- "devDependencies": {
- "gulp-format-md": "^1.0.0",
- "mocha": "^3.4.2"
- },
- "keywords": [
- "array",
- "assign",
- "check",
- "date",
- "extend",
- "extendable",
- "extensible",
- "function",
- "is",
- "object",
- "regex",
- "test"
- ],
- "verb": {
- "related": {
- "list": [
- "assign-deep",
- "is-equal-shallow",
- "is-plain-object",
- "isobject",
- "kind-of"
- ]
- },
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/mixin-deep/node_modules/is-plain-object/LICENSE b/node_modules/mixin-deep/node_modules/is-plain-object/LICENSE
deleted file mode 100644
index 3f2eca1..0000000
--- a/node_modules/mixin-deep/node_modules/is-plain-object/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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/mixin-deep/node_modules/is-plain-object/README.md b/node_modules/mixin-deep/node_modules/is-plain-object/README.md
deleted file mode 100644
index 1f9d0c8..0000000
--- a/node_modules/mixin-deep/node_modules/is-plain-object/README.md
+++ /dev/null
@@ -1,104 +0,0 @@
-# is-plain-object [![NPM version](https://img.shields.io/npm/v/is-plain-object.svg?style=flat)](https://www.npmjs.com/package/is-plain-object) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-plain-object.svg?style=flat)](https://npmjs.org/package/is-plain-object) [![NPM total downloads](https://img.shields.io/npm/dt/is-plain-object.svg?style=flat)](https://npmjs.org/package/is-plain-object) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-plain-object.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-plain-object)
-
-> Returns true if an object was created by the `Object` constructor.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save is-plain-object
-```
-
-Use [isobject](https://github.com/jonschlinkert/isobject) if you only want to check if the value is an object and not an array or null.
-
-## Usage
-
-```js
-var isPlainObject = require('is-plain-object');
-```
-
-**true** when created by the `Object` constructor.
-
-```js
-isPlainObject(Object.create({}));
-//=> true
-isPlainObject(Object.create(Object.prototype));
-//=> true
-isPlainObject({foo: 'bar'});
-//=> true
-isPlainObject({});
-//=> true
-```
-
-**false** when not created by the `Object` constructor.
-
-```js
-isPlainObject(1);
-//=> false
-isPlainObject(['foo', 'bar']);
-//=> false
-isPlainObject([]);
-//=> false
-isPlainObject(new Foo);
-//=> false
-isPlainObject(null);
-//=> false
-isPlainObject(Object.create(null));
-//=> false
-```
-
-## About
-
-### Related projects
-
-* [is-number](https://www.npmjs.com/package/is-number): Returns true if the value is a number. comprehensive tests. | [homepage](https://github.com/jonschlinkert/is-number "Returns true if the value is a number. comprehensive tests.")
-* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.")
-* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 17 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 6 | [stevenvachon](https://github.com/stevenvachon) |
-| 3 | [onokumus](https://github.com/onokumus) |
-| 1 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) |
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on July 11, 2017._
\ No newline at end of file
diff --git a/node_modules/mixin-deep/node_modules/is-plain-object/index.d.ts b/node_modules/mixin-deep/node_modules/is-plain-object/index.d.ts
deleted file mode 100644
index 74a44e9..0000000
--- a/node_modules/mixin-deep/node_modules/is-plain-object/index.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export = isPlainObject;
-
-declare function isPlainObject(o: any): boolean;
-
-declare namespace isPlainObject {}
diff --git a/node_modules/mixin-deep/node_modules/is-plain-object/index.js b/node_modules/mixin-deep/node_modules/is-plain-object/index.js
deleted file mode 100644
index c328484..0000000
--- a/node_modules/mixin-deep/node_modules/is-plain-object/index.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/*!
- * is-plain-object
- *
- * Copyright (c) 2014-2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-var isObject = require('isobject');
-
-function isObjectObject(o) {
- return isObject(o) === true
- && Object.prototype.toString.call(o) === '[object Object]';
-}
-
-module.exports = function isPlainObject(o) {
- var ctor,prot;
-
- if (isObjectObject(o) === false) return false;
-
- // If has modified constructor
- ctor = o.constructor;
- if (typeof ctor !== 'function') return false;
-
- // If has modified prototype
- prot = ctor.prototype;
- if (isObjectObject(prot) === false) return false;
-
- // If constructor does not have an Object-specific method
- if (prot.hasOwnProperty('isPrototypeOf') === false) {
- return false;
- }
-
- // Most likely a plain Object
- return true;
-};
diff --git a/node_modules/mixin-deep/node_modules/is-plain-object/package.json b/node_modules/mixin-deep/node_modules/is-plain-object/package.json
deleted file mode 100644
index dd60498..0000000
--- a/node_modules/mixin-deep/node_modules/is-plain-object/package.json
+++ /dev/null
@@ -1,79 +0,0 @@
-{
- "name": "is-plain-object",
- "description": "Returns true if an object was created by the `Object` constructor.",
- "version": "2.0.4",
- "homepage": "https://github.com/jonschlinkert/is-plain-object",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Osman Nuri Okumuş (http://onokumus.com)",
- "Steven Vachon (https://svachon.com)",
- "(https://github.com/wtgtybhertgeghgtwtg)"
- ],
- "repository": "jonschlinkert/is-plain-object",
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-plain-object/issues"
- },
- "license": "MIT",
- "files": [
- "index.d.ts",
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "browserify": "browserify index.js --standalone isPlainObject | uglifyjs --compress --mangle -o browser/is-plain-object.js",
- "test_browser": "mocha-phantomjs test/browser.html",
- "test_node": "mocha",
- "test": "npm run test_node && npm run browserify && npm run test_browser"
- },
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "devDependencies": {
- "browserify": "^14.4.0",
- "chai": "^4.0.2",
- "gulp-format-md": "^1.0.0",
- "mocha": "^3.4.2",
- "mocha-phantomjs": "^4.1.0",
- "phantomjs": "^2.1.7",
- "uglify-js": "^3.0.24"
- },
- "keywords": [
- "check",
- "is",
- "is-object",
- "isobject",
- "javascript",
- "kind",
- "kind-of",
- "object",
- "plain",
- "type",
- "typeof",
- "value"
- ],
- "types": "index.d.ts",
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "is-number",
- "isobject",
- "kind-of"
- ]
- },
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/mixin-deep/package.json b/node_modules/mixin-deep/package.json
deleted file mode 100644
index 0581c46..0000000
--- a/node_modules/mixin-deep/package.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "name": "mixin-deep",
- "description": "Deeply mix the properties of objects into the first object. Like merge-deep, but doesn't clone.",
- "version": "1.3.2",
- "homepage": "https://github.com/jonschlinkert/mixin-deep",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/mixin-deep",
- "bugs": {
- "url": "https://github.com/jonschlinkert/mixin-deep/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "for-in": "^1.0.2",
- "is-extendable": "^1.0.1"
- },
- "devDependencies": {
- "gulp-format-md": "^1.0.0",
- "mocha": "^3.5.3",
- "should": "^13.1.3"
- },
- "keywords": [
- "deep",
- "extend",
- "key",
- "keys",
- "merge",
- "mixin",
- "object",
- "prop",
- "properties",
- "util",
- "values"
- ],
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "defaults-deep",
- "extend-shallow",
- "merge-deep",
- "mixin-object"
- ]
- },
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/ms/index.js b/node_modules/ms/index.js
deleted file mode 100644
index 6a522b1..0000000
--- a/node_modules/ms/index.js
+++ /dev/null
@@ -1,152 +0,0 @@
-/**
- * Helpers.
- */
-
-var s = 1000;
-var m = s * 60;
-var h = m * 60;
-var d = h * 24;
-var y = d * 365.25;
-
-/**
- * Parse or format the given `val`.
- *
- * Options:
- *
- * - `long` verbose formatting [false]
- *
- * @param {String|Number} val
- * @param {Object} [options]
- * @throws {Error} throw an error if val is not a non-empty string or a number
- * @return {String|Number}
- * @api public
- */
-
-module.exports = function(val, options) {
- options = options || {};
- var type = typeof val;
- if (type === 'string' && val.length > 0) {
- return parse(val);
- } else if (type === 'number' && isNaN(val) === false) {
- return options.long ? fmtLong(val) : fmtShort(val);
- }
- throw new Error(
- 'val is not a non-empty string or a valid number. val=' +
- JSON.stringify(val)
- );
-};
-
-/**
- * Parse the given `str` and return milliseconds.
- *
- * @param {String} str
- * @return {Number}
- * @api private
- */
-
-function parse(str) {
- str = String(str);
- if (str.length > 100) {
- return;
- }
- var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(
- str
- );
- if (!match) {
- return;
- }
- var n = parseFloat(match[1]);
- var type = (match[2] || 'ms').toLowerCase();
- switch (type) {
- case 'years':
- case 'year':
- case 'yrs':
- case 'yr':
- case 'y':
- return n * y;
- case 'days':
- case 'day':
- case 'd':
- return n * d;
- case 'hours':
- case 'hour':
- case 'hrs':
- case 'hr':
- case 'h':
- return n * h;
- case 'minutes':
- case 'minute':
- case 'mins':
- case 'min':
- case 'm':
- return n * m;
- case 'seconds':
- case 'second':
- case 'secs':
- case 'sec':
- case 's':
- return n * s;
- case 'milliseconds':
- case 'millisecond':
- case 'msecs':
- case 'msec':
- case 'ms':
- return n;
- default:
- return undefined;
- }
-}
-
-/**
- * Short format for `ms`.
- *
- * @param {Number} ms
- * @return {String}
- * @api private
- */
-
-function fmtShort(ms) {
- if (ms >= d) {
- return Math.round(ms / d) + 'd';
- }
- if (ms >= h) {
- return Math.round(ms / h) + 'h';
- }
- if (ms >= m) {
- return Math.round(ms / m) + 'm';
- }
- if (ms >= s) {
- return Math.round(ms / s) + 's';
- }
- return ms + 'ms';
-}
-
-/**
- * Long format for `ms`.
- *
- * @param {Number} ms
- * @return {String}
- * @api private
- */
-
-function fmtLong(ms) {
- return plural(ms, d, 'day') ||
- plural(ms, h, 'hour') ||
- plural(ms, m, 'minute') ||
- plural(ms, s, 'second') ||
- ms + ' ms';
-}
-
-/**
- * Pluralization helper.
- */
-
-function plural(ms, n, name) {
- if (ms < n) {
- return;
- }
- if (ms < n * 1.5) {
- return Math.floor(ms / n) + ' ' + name;
- }
- return Math.ceil(ms / n) + ' ' + name + 's';
-}
diff --git a/node_modules/ms/license.md b/node_modules/ms/license.md
deleted file mode 100644
index 69b6125..0000000
--- a/node_modules/ms/license.md
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2016 Zeit, Inc.
-
-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/ms/package.json b/node_modules/ms/package.json
deleted file mode 100644
index 6a31c81..0000000
--- a/node_modules/ms/package.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "name": "ms",
- "version": "2.0.0",
- "description": "Tiny milisecond conversion utility",
- "repository": "zeit/ms",
- "main": "./index",
- "files": [
- "index.js"
- ],
- "scripts": {
- "precommit": "lint-staged",
- "lint": "eslint lib/* bin/*",
- "test": "mocha tests.js"
- },
- "eslintConfig": {
- "extends": "eslint:recommended",
- "env": {
- "node": true,
- "es6": true
- }
- },
- "lint-staged": {
- "*.js": [
- "npm run lint",
- "prettier --single-quote --write",
- "git add"
- ]
- },
- "license": "MIT",
- "devDependencies": {
- "eslint": "3.19.0",
- "expect.js": "0.3.1",
- "husky": "0.13.3",
- "lint-staged": "3.4.1",
- "mocha": "3.4.1"
- }
-}
diff --git a/node_modules/ms/readme.md b/node_modules/ms/readme.md
deleted file mode 100644
index 84a9974..0000000
--- a/node_modules/ms/readme.md
+++ /dev/null
@@ -1,51 +0,0 @@
-# ms
-
-[![Build Status](https://travis-ci.org/zeit/ms.svg?branch=master)](https://travis-ci.org/zeit/ms)
-[![Slack Channel](http://zeit-slackin.now.sh/badge.svg)](https://zeit.chat/)
-
-Use this package to easily convert various time formats to milliseconds.
-
-## Examples
-
-```js
-ms('2 days') // 172800000
-ms('1d') // 86400000
-ms('10h') // 36000000
-ms('2.5 hrs') // 9000000
-ms('2h') // 7200000
-ms('1m') // 60000
-ms('5s') // 5000
-ms('1y') // 31557600000
-ms('100') // 100
-```
-
-### Convert from milliseconds
-
-```js
-ms(60000) // "1m"
-ms(2 * 60000) // "2m"
-ms(ms('10 hours')) // "10h"
-```
-
-### Time format written-out
-
-```js
-ms(60000, { long: true }) // "1 minute"
-ms(2 * 60000, { long: true }) // "2 minutes"
-ms(ms('10 hours'), { long: true }) // "10 hours"
-```
-
-## Features
-
-- Works both in [node](https://nodejs.org) and in the browser.
-- If a number is supplied to `ms`, a string with a unit is returned.
-- If a string that contains the number is supplied, it returns it as a number (e.g.: it returns `100` for `'100'`).
-- If you pass a string with a number and a valid unit, the number of equivalent ms is returned.
-
-## Caught a bug?
-
-1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device
-2. Link the package to the global module directory: `npm link`
-3. Within the module you want to test your local development instance of ms, just link it to the dependencies: `npm link ms`. Instead of the default one from npm, node will now use your clone of ms!
-
-As always, you can run the tests using: `npm test`
diff --git a/node_modules/mute-stdout/LICENSE b/node_modules/mute-stdout/LICENSE
deleted file mode 100644
index 695f76d..0000000
--- a/node_modules/mute-stdout/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015, 2018 Blaine Bublitz and Eric Schoffstall
-
-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/mute-stdout/README.md b/node_modules/mute-stdout/README.md
deleted file mode 100644
index e4bdbb0..0000000
--- a/node_modules/mute-stdout/README.md
+++ /dev/null
@@ -1,55 +0,0 @@
-
-
-
-
-
-
-# mute-stdout
-
-[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Travis Build Status][travis-image]][travis-url] [![AppVeyor Build Status][appveyor-image]][appveyor-url] [![Coveralls Status][coveralls-image]][coveralls-url] [![Gitter chat][gitter-image]][gitter-url]
-
-Mute and unmute stdout.
-
-## Usage
-
-```js
-var stdout = require('mute-stdout');
-
-stdout.mute();
-
-console.log('will not print');
-
-stdout.unmute();
-
-console.log('will print');
-```
-
-## API
-
-### mute()
-
-Mutes the `process.stdout` stream by replacing the `write` method with a no-op function.
-
-### unmute()
-
-Unmutes the `process.stdout` stream by restoring the original `write` method.
-
-## License
-
-MIT
-
-[downloads-image]: http://img.shields.io/npm/dm/mute-stdout.svg
-[npm-url]: https://www.npmjs.com/package/mute-stdout
-[npm-image]: http://img.shields.io/npm/v/mute-stdout.svg
-
-[travis-url]: https://travis-ci.org/gulpjs/mute-stdout
-[travis-image]: http://img.shields.io/travis/gulpjs/mute-stdout.svg?label=travis-ci
-
-[appveyor-url]: https://ci.appveyor.com/project/gulpjs/mute-stdout
-[appveyor-image]: https://img.shields.io/appveyor/ci/gulpjs/mute-stdout.svg?label=appveyor
-
-[coveralls-url]: https://coveralls.io/r/gulpjs/mute-stdout
-[coveralls-image]: http://img.shields.io/coveralls/gulpjs/mute-stdout/master.svg
-
-[gitter-url]: https://gitter.im/gulpjs/gulp
-[gitter-image]: https://badges.gitter.im/gulpjs/gulp.svg
diff --git a/node_modules/mute-stdout/index.js b/node_modules/mute-stdout/index.js
deleted file mode 100644
index 5ba0e53..0000000
--- a/node_modules/mute-stdout/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-'use strict';
-
-var ogWrite = process.stdout.write;
-
-var muteStdout = { mute: mute, unmute: noop };
-
-function noop() {}
-
-function mute() {
- muteStdout.unmute = unmute;
- process.stdout.write = noop;
-}
-
-function unmute() {
- process.stdout.write = ogWrite;
- muteStdout.unmute = noop;
-}
-
-module.exports = muteStdout;
diff --git a/node_modules/mute-stdout/package.json b/node_modules/mute-stdout/package.json
deleted file mode 100644
index 810ea06..0000000
--- a/node_modules/mute-stdout/package.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- "name": "mute-stdout",
- "version": "1.0.1",
- "description": "Mute and unmute stdout.",
- "author": "Gulp Team (http://gulpjs.com/)",
- "contributors": [
- "Blaine Bublitz "
- ],
- "repository": "gulpjs/mute-stdout",
- "license": "MIT",
- "engines": {
- "node": ">= 0.10"
- },
- "main": "index.js",
- "files": [
- "LICENSE",
- "index.js"
- ],
- "scripts": {
- "lint": "eslint .",
- "pretest": "npm run lint",
- "test": "mocha --async-only",
- "cover": "istanbul cover _mocha --report lcovonly",
- "coveralls": "npm run cover && istanbul-coveralls"
- },
- "dependencies": {},
- "devDependencies": {
- "eslint": "^2.13.0",
- "eslint-config-gulp": "^3.0.1",
- "expect": "^1.20.2",
- "istanbul": "^0.4.3",
- "istanbul-coveralls": "^1.0.3",
- "mocha": "^3.5.3"
- },
- "keywords": [
- "mute",
- "silence is golden",
- "stdout"
- ]
-}
diff --git a/node_modules/nanomatch/CHANGELOG.md b/node_modules/nanomatch/CHANGELOG.md
deleted file mode 100644
index 8c3aead..0000000
--- a/node_modules/nanomatch/CHANGELOG.md
+++ /dev/null
@@ -1,57 +0,0 @@
-## History
-
-### key
-
-Changelog entries are classified using the following labels _(from [keep-a-changelog][]_):
-
-- `added`: for new features
-- `changed`: for changes in existing functionality
-- `deprecated`: for once-stable features removed in upcoming releases
-- `removed`: for deprecated features removed in this release
-- `fixed`: for any bug fixes
-- `bumped`: updated dependencies, only minor or higher will be listed.
-
-### [1.1.0] - 2017-04-11
-
-**Fixed**
-
-- adds support for unclosed quotes
-
-**Added**
-
-- adds support for `options.noglobstar`
-
-### [1.0.4] - 2017-04-06
-
-Housekeeping updates. Adds documentation section about escaping, cleans up utils.
-
-### [1.0.3] - 2017-04-06
-
-This release includes fixes for windows path edge cases and other improvements for stricter adherence to bash spec.
-
-**Fixed**
-
-- More windows path edge cases
-
-**Added**
-
-- Support for bash-like quoted strings for escaping sequences of characters, such as `foo/"**"/bar` where `**` should be matched literally and not evaluated as special characters.
-
-### [1.0.1] - 2016-12-12
-
-**Added**
-
-- Support for windows path edge cases where backslashes are used in brackets or other unusual combinations.
-
-### [1.0.0] - 2016-12-12
-
-Stable release.
-
-### [0.1.0] - 2016-10-08
-
-First release.
-
-[Unreleased]: https://github.com/jonschlinkert/nanomatch/compare/0.1.0...HEAD
-[0.2.0]: https://github.com/jonschlinkert/nanomatch/compare/0.1.0...0.2.0
-
-[keep-a-changelog]: https://github.com/olivierlacan/keep-a-changelog
diff --git a/node_modules/nanomatch/LICENSE b/node_modules/nanomatch/LICENSE
deleted file mode 100644
index 7c9987b..0000000
--- 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/nanomatch/README.md b/node_modules/nanomatch/README.md
deleted file mode 100644
index bdd35a9..0000000
--- a/node_modules/nanomatch/README.md
+++ /dev/null
@@ -1,1148 +0,0 @@
-# nanomatch [![NPM version](https://img.shields.io/npm/v/nanomatch.svg?style=flat)](https://www.npmjs.com/package/nanomatch) [![NPM monthly downloads](https://img.shields.io/npm/dm/nanomatch.svg?style=flat)](https://npmjs.org/package/nanomatch) [![NPM total downloads](https://img.shields.io/npm/dt/nanomatch.svg?style=flat)](https://npmjs.org/package/nanomatch) [![Linux Build Status](https://img.shields.io/travis/micromatch/nanomatch.svg?style=flat&label=Travis)](https://travis-ci.org/micromatch/nanomatch) [![Windows Build Status](https://img.shields.io/appveyor/ci/micromatch/nanomatch.svg?style=flat&label=AppVeyor)](https://ci.appveyor.com/project/micromatch/nanomatch)
-
-> Fast, minimal glob matcher for node.js. Similar to micromatch, minimatch and multimatch, but complete Bash 4.3 wildcard support only (no support for exglobs, posix brackets or braces)
-
-Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support.
-
-## Table of Contents
-
-
-Details
-
-- [Install](#install)
-- [What is nanomatch?](#what-is-nanomatch)
-- [Getting started](#getting-started)
- * [Installing nanomatch](#installing-nanomatch)
- * [Usage](#usage)
-- [Documentation](#documentation)
- * [Escaping](#escaping)
-- [API](#api)
-- [Options](#options)
- * [options.basename](#optionsbasename)
- * [options.bash](#optionsbash)
- * [options.cache](#optionscache)
- * [options.dot](#optionsdot)
- * [options.failglob](#optionsfailglob)
- * [options.ignore](#optionsignore)
- * [options.matchBase](#optionsmatchbase)
- * [options.nocase](#optionsnocase)
- * [options.nodupes](#optionsnodupes)
- * [options.noglobstar](#optionsnoglobstar)
- * [options.nonegate](#optionsnonegate)
- * [options.nonull](#optionsnonull)
- * [options.nullglob](#optionsnullglob)
- * [options.slash](#optionsslash)
- * [options.star](#optionsstar)
- * [options.snapdragon](#optionssnapdragon)
- * [options.sourcemap](#optionssourcemap)
- * [options.unescape](#optionsunescape)
- * [options.unixify](#optionsunixify)
-- [Features](#features)
-- [Bash expansion libs](#bash-expansion-libs)
-- [Benchmarks](#benchmarks)
- * [Running benchmarks](#running-benchmarks)
- * [Nanomatch vs. Minimatch vs. Multimatch](#nanomatch-vs-minimatch-vs-multimatch)
-- [About](#about)
-
-
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save nanomatch
-```
-
-
-Release history
-
-## History
-
-### key
-
-Changelog entries are classified using the following labels _(from [keep-a-changelog](https://github.com/olivierlacan/keep-a-changelog)_):
-
-* `added`: for new features
-* `changed`: for changes in existing functionality
-* `deprecated`: for once-stable features removed in upcoming releases
-* `removed`: for deprecated features removed in this release
-* `fixed`: for any bug fixes
-* `bumped`: updated dependencies, only minor or higher will be listed.
-
-### [1.1.0](https://github.com/micromatch/nanomatch/compare/1.0.4...1.1.0) - 2017-04-11
-
-**Fixed**
-
-* adds support for unclosed quotes
-
-**Added**
-
-* adds support for `options.noglobstar`
-
-### [1.0.4](https://github.com/micromatch/nanomatch/compare/1.0.3...1.0.4) - 2017-04-06
-
-Housekeeping updates. Adds documentation section about escaping, cleans up utils.
-
-### [1.0.3](https://github.com/micromatch/nanomatch/compare/1.0.1...1.0.3) - 2017-04-06
-
-This release includes fixes for windows path edge cases and other improvements for stricter adherence to bash spec.
-
-**Fixed**
-
-* More windows path edge cases
-
-**Added**
-
-* Support for bash-like quoted strings for escaping sequences of characters, such as `foo/"**"/bar` where `**` should be matched literally and not evaluated as special characters.
-
-### [1.0.1](https://github.com/micromatch/nanomatch/compare/1.0.0...1.0.1) - 2016-12-12
-
-**Added**
-
-* Support for windows path edge cases where backslashes are used in brackets or other unusual combinations.
-
-### [1.0.0](https://github.com/micromatch/nanomatch/compare/0.1.0...1.0.0) - 2016-12-12
-
-Stable release.
-
-### [0.1.0] - 2016-10-08
-
-First release.
-
-
-
-## What is nanomatch?
-
-Nanomatch is a fast and accurate glob matcher with full support for standard Bash glob features, including the following "metacharacters": `*`, `**`, `?` and `[...]`.
-
-**Learn more**
-
-* [Getting started](#getting-started): learn how to install and begin using nanomatch
-* [Features](#features): jump to info about supported patterns, and a glob matching reference
-* [API documentation](#api): jump to available options and methods
-* [Unit tests](test): visit unit tests. there is no better way to learn a code library than spending time the unit tests. Nanomatch has 36,000 unit tests - go become a glob matching ninja!
-
-
-How is this different?
-
-**Speed and accuracy**
-
-Nanomatch uses [snapdragon](https://github.com/jonschlinkert/snapdragon) for parsing and compiling globs, which results in:
-
-* Granular control over the entire conversion process in a way that is easy to understand, reason about, and customize.
-* Faster matching, from a combination of optimized glob patterns and (optional) caching.
-* Much greater accuracy than minimatch. In fact, nanomatch passes _all of the spec tests_ from bash, including some that bash still fails. However, since there is no real specification for globs, if you encounter a pattern that yields unexpected match results [after researching previous issues](../../issues), [please let us know](../../issues/new).
-
-**Basic globbing only**
-
-Nanomatch supports [basic globbing only](#features), which is limited to `*`, `**`, `?` and regex-like brackets.
-
-If you need support for the other [bash "expansion" types](#bash-expansion-libs) (in addition to the wildcard matching provided by nanomatch), consider using [micromatch](https://github.com/micromatch/micromatch) instead. _(micromatch >=3.0.0 uses the nanomatch parser and compiler for basic glob matching)_
-
-
-
-## Getting started
-
-### Installing nanomatch
-
-**Install with [yarn](https://yarnpkg.com/)**
-
-```sh
-$ yarn add nanomatch
-```
-
-**Install with [npm](https://npmjs.com)**
-
-```sh
-$ npm install nanomatch
-```
-
-### Usage
-
-Add nanomatch to your project using node's `require()` system:
-
-```js
-var nanomatch = require('nanomatch');
-
-// the main export is a function that takes an array of strings to match
-// and a string or array of patterns to use for matching
-nanomatch(list, patterns[, options]);
-```
-
-**Params**
-
-* `list` **{String|Array}**: List of strings to perform matches against. This is often a list of file paths.
-* `patterns` **{String|Array}**: One or more [glob paterns](#features) to use for matching.
-* `options` **{Object}**: Any [supported options](#options) may be passed
-
-**Examples**
-
-```js
-var nm = require('nanomatch');
-console.log(nm(['a', 'b/b', 'c/c/c'], '*'));
-//=> ['a']
-
-console.log(nm(['a', 'b/b', 'c/c/c'], '*/*'));
-//=> ['b/b']
-
-console.log(nm(['a', 'b/b', 'c/c/c'], '**'));
-//=> ['a', 'b/b', 'c/c/c']
-```
-
-See the [API documentation](#api) for available methods and [options](https://github.com/einaros/options.js).
-
-## Documentation
-
-### Escaping
-
-_Backslashes and quotes_ can be used to escape characters, forcing nanomatch to regard those characters as a literal characters.
-
-**Backslashes**
-
-Use backslashes to escape single characters. For example, the following pattern would match `foo/*/bar` exactly:
-
-```js
-'foo/\*/bar'
-```
-
-The following pattern would match `foo/` followed by a literal `*`, followed by zero or more of any characters besides `/`, followed by `/bar`.
-
-```js
-'foo/\**/bar'
-```
-
-**Quoted strings**
-
-Use single or double quotes to escape sequences of characters. For example, the following patterns would match `foo/**/bar` exactly:
-
-```js
-'foo/"**"/bar'
-'foo/\'**\'/bar'
-"foo/'**'/bar"
-```
-
-**Matching literal quotes**
-
-If you need to match quotes literally, you can escape them as well. For example, the following will match `foo/"*"/bar`, `foo/"a"/bar`, `foo/"b"/bar`, or `foo/"c"/bar`:
-
-```js
-'foo/\\"*\\"/bar'
-```
-
-And the following will match `foo/'*'/bar`, `foo/'a'/bar`, `foo/'b'/bar`, or `foo/'c'/bar`:
-
-```js
-'foo/\\\'*\\\'/bar'
-```
-
-## API
-
-### [nanomatch](index.js#L40)
-
-The main function takes a list of strings and one or more glob patterns to use for matching.
-
-**Params**
-
-* `list` **{Array}**: A list of strings to match
-* `patterns` **{String|Array}**: One or more glob patterns to use for matching.
-* `options` **{Object}**: See available [options](#options) for changing how matches are performed
-* `returns` **{Array}**: Returns an array of matches
-
-**Example**
-
-```js
-var nm = require('nanomatch');
-nm(list, patterns[, options]);
-
-console.log(nm(['a.js', 'a.txt'], ['*.js']));
-//=> [ 'a.js' ]
-```
-
-### [.match](index.js#L106)
-
-Similar to the main function, but `pattern` must be a string.
-
-**Params**
-
-* `list` **{Array}**: Array of strings to match
-* `pattern` **{String}**: Glob pattern to use for matching.
-* `options` **{Object}**: See available [options](#options) for changing how matches are performed
-* `returns` **{Array}**: Returns an array of matches
-
-**Example**
-
-```js
-var nm = require('nanomatch');
-nm.match(list, pattern[, options]);
-
-console.log(nm.match(['a.a', 'a.aa', 'a.b', 'a.c'], '*.a'));
-//=> ['a.a', 'a.aa']
-```
-
-### [.isMatch](index.js#L167)
-
-Returns true if the specified `string` matches the given glob `pattern`.
-
-**Params**
-
-* `string` **{String}**: String to match
-* `pattern` **{String}**: Glob pattern to use for matching.
-* `options` **{Object}**: See available [options](#options) for changing how matches are performed
-* `returns` **{Boolean}**: Returns true if the string matches the glob pattern.
-
-**Example**
-
-```js
-var nm = require('nanomatch');
-nm.isMatch(string, pattern[, options]);
-
-console.log(nm.isMatch('a.a', '*.a'));
-//=> true
-console.log(nm.isMatch('a.b', '*.a'));
-//=> false
-```
-
-### [.some](index.js#L205)
-
-Returns true if some of the elements in the given `list` match any of the given glob `patterns`.
-
-**Params**
-
-* `list` **{String|Array}**: The string or array of strings to test. Returns as soon as the first match is found.
-* `patterns` **{String|Array}**: One or more glob patterns to use for matching.
-* `options` **{Object}**: See available [options](#options) for changing how matches are performed
-* `returns` **{Boolean}**: Returns true if any patterns match `str`
-
-**Example**
-
-```js
-var nm = require('nanomatch');
-nm.some(list, patterns[, options]);
-
-console.log(nm.some(['foo.js', 'bar.js'], ['*.js', '!foo.js']));
-// true
-console.log(nm.some(['foo.js'], ['*.js', '!foo.js']));
-// false
-```
-
-### [.every](index.js#L243)
-
-Returns true if every element in the given `list` matches at least one of the given glob `patterns`.
-
-**Params**
-
-* `list` **{String|Array}**: The string or array of strings to test.
-* `patterns` **{String|Array}**: One or more glob patterns to use for matching.
-* `options` **{Object}**: See available [options](#options) for changing how matches are performed
-* `returns` **{Boolean}**: Returns true if any patterns match `str`
-
-**Example**
-
-```js
-var nm = require('nanomatch');
-nm.every(list, patterns[, options]);
-
-console.log(nm.every('foo.js', ['foo.js']));
-// true
-console.log(nm.every(['foo.js', 'bar.js'], ['*.js']));
-// true
-console.log(nm.every(['foo.js', 'bar.js'], ['*.js', '!foo.js']));
-// false
-console.log(nm.every(['foo.js'], ['*.js', '!foo.js']));
-// false
-```
-
-### [.any](index.js#L277)
-
-Returns true if **any** of the given glob `patterns` match the specified `string`.
-
-**Params**
-
-* `str` **{String|Array}**: The string to test.
-* `patterns` **{String|Array}**: One or more glob patterns to use for matching.
-* `options` **{Object}**: See available [options](#options) for changing how matches are performed
-* `returns` **{Boolean}**: Returns true if any patterns match `str`
-
-**Example**
-
-```js
-var nm = require('nanomatch');
-nm.any(string, patterns[, options]);
-
-console.log(nm.any('a.a', ['b.*', '*.a']));
-//=> true
-console.log(nm.any('a.a', 'b.*'));
-//=> false
-```
-
-### [.all](index.js#L325)
-
-Returns true if **all** of the given `patterns` match the specified string.
-
-**Params**
-
-* `str` **{String|Array}**: The string to test.
-* `patterns` **{String|Array}**: One or more glob patterns to use for matching.
-* `options` **{Object}**: See available [options](#options) for changing how matches are performed
-* `returns` **{Boolean}**: Returns true if any patterns match `str`
-
-**Example**
-
-```js
-var nm = require('nanomatch');
-nm.all(string, patterns[, options]);
-
-console.log(nm.all('foo.js', ['foo.js']));
-// true
-
-console.log(nm.all('foo.js', ['*.js', '!foo.js']));
-// false
-
-console.log(nm.all('foo.js', ['*.js', 'foo.js']));
-// true
-
-console.log(nm.all('foo.js', ['*.js', 'f*', '*o*', '*o.js']));
-// true
-```
-
-### [.not](index.js#L359)
-
-Returns a list of strings that _**do not match any**_ of the given `patterns`.
-
-**Params**
-
-* `list` **{Array}**: Array of strings to match.
-* `patterns` **{String|Array}**: One or more glob pattern to use for matching.
-* `options` **{Object}**: See available [options](#options) for changing how matches are performed
-* `returns` **{Array}**: Returns an array of strings that **do not match** the given patterns.
-
-**Example**
-
-```js
-var nm = require('nanomatch');
-nm.not(list, patterns[, options]);
-
-console.log(nm.not(['a.a', 'b.b', 'c.c'], '*.a'));
-//=> ['b.b', 'c.c']
-```
-
-### [.contains](index.js#L394)
-
-Returns true if the given `string` contains the given pattern. Similar to [.isMatch](#isMatch) but the pattern can match any part of the string.
-
-**Params**
-
-* `str` **{String}**: The string to match.
-* `patterns` **{String|Array}**: Glob pattern to use for matching.
-* `options` **{Object}**: See available [options](#options) for changing how matches are performed
-* `returns` **{Boolean}**: Returns true if the patter matches any part of `str`.
-
-**Example**
-
-```js
-var nm = require('nanomatch');
-nm.contains(string, pattern[, options]);
-
-console.log(nm.contains('aa/bb/cc', '*b'));
-//=> true
-console.log(nm.contains('aa/bb/cc', '*d'));
-//=> false
-```
-
-### [.matchKeys](index.js#L450)
-
-Filter the keys of the given object with the given `glob` pattern and `options`. Does not attempt to match nested keys. If you need this feature, use [glob-object](https://github.com/jonschlinkert/glob-object) instead.
-
-**Params**
-
-* `object` **{Object}**: The object with keys to filter.
-* `patterns` **{String|Array}**: One or more glob patterns to use for matching.
-* `options` **{Object}**: See available [options](#options) for changing how matches are performed
-* `returns` **{Object}**: Returns an object with only keys that match the given patterns.
-
-**Example**
-
-```js
-var nm = require('nanomatch');
-nm.matchKeys(object, patterns[, options]);
-
-var obj = { aa: 'a', ab: 'b', ac: 'c' };
-console.log(nm.matchKeys(obj, '*b'));
-//=> { ab: 'b' }
-```
-
-### [.matcher](index.js#L479)
-
-Returns a memoized matcher function from the given glob `pattern` and `options`. The returned function takes a string to match as its only argument and returns true if the string is a match.
-
-**Params**
-
-* `pattern` **{String}**: Glob pattern
-* `options` **{Object}**: See available [options](#options) for changing how matches are performed.
-* `returns` **{Function}**: Returns a matcher function.
-
-**Example**
-
-```js
-var nm = require('nanomatch');
-nm.matcher(pattern[, options]);
-
-var isMatch = nm.matcher('*.!(*a)');
-console.log(isMatch('a.a'));
-//=> false
-console.log(isMatch('a.b'));
-//=> true
-```
-
-### [.capture](index.js#L560)
-
-Returns an array of matches captured by `pattern` in `string, or`null` if the pattern did not match.
-
-**Params**
-
-* `pattern` **{String}**: Glob pattern to use for matching.
-* `string` **{String}**: String to match
-* `options` **{Object}**: See available [options](#options) for changing how matches are performed
-* `returns` **{Boolean}**: Returns an array of captures if the string matches the glob pattern, otherwise `null`.
-
-**Example**
-
-```js
-var nm = require('nanomatch');
-nm.capture(pattern, string[, options]);
-
-console.log(nm.capture('test/*.js', 'test/foo.js'));
-//=> ['foo']
-console.log(nm.capture('test/*.js', 'foo/bar.css'));
-//=> null
-```
-
-### [.makeRe](index.js#L595)
-
-Create a regular expression from the given glob `pattern`.
-
-**Params**
-
-* `pattern` **{String}**: A glob pattern to convert to regex.
-* `options` **{Object}**: See available [options](#options) for changing how matches are performed.
-* `returns` **{RegExp}**: Returns a regex created from the given pattern.
-
-**Example**
-
-```js
-var nm = require('nanomatch');
-nm.makeRe(pattern[, options]);
-
-console.log(nm.makeRe('*.js'));
-//=> /^(?:(\.[\\\/])?(?!\.)(?=.)[^\/]*?\.js)$/
-```
-
-### [.create](index.js#L658)
-
-Parses the given glob `pattern` and returns an object with the compiled `output` and optional source `map`.
-
-**Params**
-
-* `pattern` **{String}**: Glob pattern to parse and compile.
-* `options` **{Object}**: Any [options](#options) to change how parsing and compiling is performed.
-* `returns` **{Object}**: Returns an object with the parsed AST, compiled string and optional source map.
-
-**Example**
-
-```js
-var nm = require('nanomatch');
-nm.create(pattern[, options]);
-
-console.log(nm.create('abc/*.js'));
-// { options: { source: 'string', sourcemap: true },
-// state: {},
-// compilers:
-// { ... },
-// output: '(\\.[\\\\\\/])?abc\\/(?!\\.)(?=.)[^\\/]*?\\.js',
-// ast:
-// { type: 'root',
-// errors: [],
-// nodes:
-// [ ... ],
-// dot: false,
-// input: 'abc/*.js' },
-// parsingErrors: [],
-// map:
-// { version: 3,
-// sources: [ 'string' ],
-// names: [],
-// mappings: 'AAAA,GAAG,EAAC,kBAAC,EAAC,EAAE',
-// sourcesContent: [ 'abc/*.js' ] },
-// position: { line: 1, column: 28 },
-// content: {},
-// files: {},
-// idx: 6 }
-```
-
-### [.parse](index.js#L697)
-
-Parse the given `str` with the given `options`.
-
-**Params**
-
-* `str` **{String}**
-* `options` **{Object}**
-* `returns` **{Object}**: Returns an AST
-
-**Example**
-
-```js
-var nm = require('nanomatch');
-nm.parse(pattern[, options]);
-
-var ast = nm.parse('a/{b,c}/d');
-console.log(ast);
-// { type: 'root',
-// errors: [],
-// input: 'a/{b,c}/d',
-// nodes:
-// [ { type: 'bos', val: '' },
-// { type: 'text', val: 'a/' },
-// { type: 'brace',
-// nodes:
-// [ { type: 'brace.open', val: '{' },
-// { type: 'text', val: 'b,c' },
-// { type: 'brace.close', val: '}' } ] },
-// { type: 'text', val: '/d' },
-// { type: 'eos', val: '' } ] }
-```
-
-### [.compile](index.js#L745)
-
-Compile the given `ast` or string with the given `options`.
-
-**Params**
-
-* `ast` **{Object|String}**
-* `options` **{Object}**
-* `returns` **{Object}**: Returns an object that has an `output` property with the compiled string.
-
-**Example**
-
-```js
-var nm = require('nanomatch');
-nm.compile(ast[, options]);
-
-var ast = nm.parse('a/{b,c}/d');
-console.log(nm.compile(ast));
-// { options: { source: 'string' },
-// state: {},
-// compilers:
-// { eos: [Function],
-// noop: [Function],
-// bos: [Function],
-// brace: [Function],
-// 'brace.open': [Function],
-// text: [Function],
-// 'brace.close': [Function] },
-// output: [ 'a/(b|c)/d' ],
-// ast:
-// { ... },
-// parsingErrors: [] }
-```
-
-### [.clearCache](index.js#L768)
-
-Clear the regex cache.
-
-**Example**
-
-```js
-nm.clearCache();
-```
-
-## Options
-
-
-basename
-
-### options.basename
-
-Allow glob patterns without slashes to match a file path based on its basename. Same behavior as [minimatch](https://github.com/isaacs/minimatch) option `matchBase`.
-
-Type: `boolean`
-
-Default: `false`
-
-**Example**
-
-```js
-nm(['a/b.js', 'a/c.md'], '*.js');
-//=> []
-
-nm(['a/b.js', 'a/c.md'], '*.js', {matchBase: true});
-//=> ['a/b.js']
-```
-
-
-
-
-bash
-
-### options.bash
-
-Enabled by default, this option enforces bash-like behavior with stars immediately following a bracket expression. Bash bracket expressions are similar to regex character classes, but unlike regex, a star following a bracket expression **does not repeat the bracketed characters**. Instead, the star is treated the same as an other star.
-
-Type: `boolean`
-
-Default: `true`
-
-**Example**
-
-```js
-var files = ['abc', 'ajz'];
-console.log(nm(files, '[a-c]*'));
-//=> ['abc', 'ajz']
-
-console.log(nm(files, '[a-c]*', {bash: false}));
-```
-
-
-
-
-cache
-
-### options.cache
-
-Disable regex and function memoization.
-
-Type: `boolean`
-
-Default: `undefined`
-
-
-
-
-dot
-
-### options.dot
-
-Match dotfiles. Same behavior as [minimatch](https://github.com/isaacs/minimatch) option `dot`.
-
-Type: `boolean`
-
-Default: `false`
-
-
-
-
-failglob
-
-### options.failglob
-
-Similar to the `--failglob` behavior in Bash, throws an error when no matches are found.
-
-Type: `boolean`
-
-Default: `undefined`
-
-
-
-
-ignore
-
-### options.ignore
-
-String or array of glob patterns to match files to ignore.
-
-Type: `String|Array`
-
-Default: `undefined`
-
-
-
-
-matchBase
-
-### options.matchBase
-
-Alias for [options.basename](#options-basename).
-
-
-
-
-nocase
-
-### options.nocase
-
-Use a case-insensitive regex for matching files. Same behavior as [minimatch](https://github.com/isaacs/minimatch).
-
-Type: `boolean`
-
-Default: `undefined`
-
-
-
-
-nodupes
-
-### options.nodupes
-
-Remove duplicate elements from the result array.
-
-Type: `boolean`
-
-Default: `true` (enabled by default)
-
-**Example**
-
-Example of using the `unescape` and `nodupes` options together:
-
-```js
-nm.match(['a/b/c', 'a/b/c'], '**');
-//=> ['abc']
-
-nm.match(['a/b/c', 'a/b/c'], '**', {nodupes: false});
-//=> ['a/b/c', 'a/b/c']
-```
-
-
-
-
-nonegate
-
-### options.noglobstar
-
-Disable matching with globstars (`**`).
-
-Type: `boolean`
-
-Default: `undefined`
-
-```js
-nm(['a/b', 'a/b/c', 'a/b/c/d'], 'a/**');
-//=> ['a/b', 'a/b/c', 'a/b/c/d']
-
-nm(['a/b', 'a/b/c', 'a/b/c/d'], 'a/**', {noglobstar: true});
-//=> ['a/b']
-```
-
-
-
-
-nonegate
-
-### options.nonegate
-
-Disallow negation (`!`) patterns, and treat leading `!` as a literal character to match.
-
-Type: `boolean`
-
-Default: `undefined`
-
-
-
-
-nonull
-
-### options.nonull
-
-Alias for [options.nullglob](#options-nullglob).
-
-
-
-
-nullglob
-
-### options.nullglob
-
-If `true`, when no matches are found the actual (arrayified) glob pattern is returned instead of an empty array. Same behavior as [minimatch](https://github.com/isaacs/minimatch) option `nonull`.
-
-Type: `boolean`
-
-Default: `undefined`
-
-
-
-
-slash
-
-### options.slash
-
-Customize the slash character(s) to use for matching.
-
-Type: `string|function`
-
-Default: `[/\\]` (forward slash and backslash)
-
-
-
-
-star
-
-### options.star
-
-Customize the star character(s) to use for matching. It's not recommended that you modify this unless you have advanced knowledge of the compiler and matching rules.
-
-Type: `string|function`
-
-Default: `[^/\\]*?`
-
-
-
-
-snapdragon
-
-### options.snapdragon
-
-Pass your own instance of [snapdragon](https://github.com/jonschlinkert/snapdragon) to customize parsers or compilers.
-
-Type: `object`
-
-Default: `undefined`
-
-
-
-
-snapdragon
-
-### options.sourcemap
-
-Generate a source map by enabling the `sourcemap` option with the `.parse`, `.compile`, or `.create` methods.
-
-**Examples**
-
-```js
-var nm = require('nanomatch');
-
-var res = nm.create('abc/*.js', {sourcemap: true});
-console.log(res.map);
-// { version: 3,
-// sources: [ 'string' ],
-// names: [],
-// mappings: 'AAAA,GAAG,EAAC,iBAAC,EAAC,EAAE',
-// sourcesContent: [ 'abc/*.js' ] }
-
-var ast = nm.parse('abc/**/*.js');
-var res = nm.compile(ast, {sourcemap: true});
-console.log(res.map);
-// { version: 3,
-// sources: [ 'string' ],
-// names: [],
-// mappings: 'AAAA,GAAG,EAAC,2BAAE,EAAC,iBAAC,EAAC,EAAE',
-// sourcesContent: [ 'abc/**/*.js' ] }
-```
-
-
-
-
-unescape
-
-### options.unescape
-
-Remove backslashes from returned matches.
-
-Type: `boolean`
-
-Default: `undefined`
-
-**Example**
-
-In this example we want to match a literal `*`:
-
-```js
-nm.match(['abc', 'a\\*c'], 'a\\*c');
-//=> ['a\\*c']
-
-nm.match(['abc', 'a\\*c'], 'a\\*c', {unescape: true});
-//=> ['a*c']
-```
-
-
-
-
-unixify
-
-### options.unixify
-
-Convert path separators on returned files to posix/unix-style forward slashes.
-
-Type: `boolean`
-
-Default: `true`
-
-**Example**
-
-```js
-nm.match(['a\\b\\c'], 'a/**');
-//=> ['a/b/c']
-
-nm.match(['a\\b\\c'], {unixify: false});
-//=> ['a\\b\\c']
-```
-
-
-
-## Features
-
-Nanomatch has full support for standard Bash glob features, including the following "metacharacters": `*`, `**`, `?` and `[...]`.
-
-Here are some examples of how they work:
-
-| **Pattern** | **Description** |
-| --- | --- |
-| `*` | Matches any string except for `/`, leading `.`, or `/.` inside a path |
-| `**` | Matches any string including `/`, but not a leading `.` or `/.` inside a path. More than two stars (e.g. `***` is treated the same as one star, and `**` loses its special meaning | when it's not the only thing in a path segment, per Bash specifications) |
-| `foo*` | Matches any string beginning with `foo` |
-| `*bar*` | Matches any string containing `bar` (beginning, middle or end) |
-| `*.min.js` | Matches any string ending with `.min.js` |
-| `[abc]*.js` | Matches any string beginning with `a`, `b`, or `c` and ending with `.js` |
-| `abc?` | Matches `abcd` or `abcz` but not `abcde` |
-
-The exceptions noted for `*` apply to all patterns that contain a `*`.
-
-**Not supported**
-
-The following extended-globbing features are not supported:
-
-* [brace expansion](https://github.com/jonschlinkert/braces) (e.g. `{a,b,c}`)
-* [extglobs](https://github.com/jonschlinkert/extglob) (e.g. `@(a|!(c|d))`)
-* [POSIX brackets](https://github.com/jonschlinkert/expand-brackets) (e.g. `[[:alpha:][:digit:]]`)
-
-If you need any of these features consider using [micromatch](https://github.com/micromatch/micromatch) instead.
-
-## Bash expansion libs
-
-Nanomatch is part of a suite of libraries aimed at bringing the power and expressiveness of [Bash's](https://www.gnu.org/software/bash/) matching and expansion capabilities to JavaScript, _and - as you can see by the [benchmarks](#benchmarks) - without sacrificing speed_.
-
-| **Related library** | **Matching Type** | **Example** | **Description** |
-| --- | --- | --- | --- |
-| `nanomatch` (you are here) | Wildcards | `*` | [Filename expansion](https://www.gnu.org/software/bash/manual/html_node/Filename-Expansion.html#Filename-Expansion), also referred to as globbing and pathname expansion, allows the use of [wildcards](#features) for matching. |
-| [expand-tilde](https://github.com/jonschlinkert/expand-tilde) | Tildes | `~` | [Tilde expansion](https://www.gnu.org/software/bash/manual/html_node/Tilde-Expansion.html#Tilde-Expansion) converts the leading tilde in a file path to the user home directory. |
-| [braces](https://github.com/jonschlinkert/braces) | Braces | `{a,b,c}` | [Brace expansion](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html) |
-| [expand-brackets](https://github.com/jonschlinkert/expand-brackets) | Brackets | `[[:alpha:]]` | [POSIX character classes](https://www.gnu.org/software/grep/manual/html_node/Character-Classes-and-Bracket-Expressions.html) (also referred to as POSIX brackets, or POSIX character classes) |
-| [extglob](https://github.com/jonschlinkert/extglob) | Parens | `!(a\ | b)` | [Extglobs](https://www.gnu.org/software/bash/manual/html_node/Pattern-Matching.html#Pattern-Matching) |
-| [micromatch](https://github.com/micromatch/micromatch) | All | all | Micromatch is built on top of the other libraries. |
-
-There are many resources available on the web if you want to dive deeper into how these features work in Bash.
-
-## Benchmarks
-
-### Running benchmarks
-
-Install dev dependencies:
-
-```bash
-npm i -d && node benchmark
-```
-
-### Nanomatch vs. Minimatch vs. Multimatch
-
-```bash
-# globstar-basic (182 bytes)
- minimatch x 69,512 ops/sec ±1.92% (88 runs sampled)
- multimatch x 63,376 ops/sec ±1.41% (89 runs sampled)
- nanomatch x 432,451 ops/sec ±0.92% (88 runs sampled)
-
- fastest is nanomatch (by 651% avg)
-
-# large-list-globstar (485686 bytes)
- minimatch x 34.02 ops/sec ±1.42% (59 runs sampled)
- multimatch x 33.58 ops/sec ±1.97% (58 runs sampled)
- nanomatch x 483 ops/sec ±1.06% (86 runs sampled)
-
- fastest is nanomatch (by 1429% avg)
-
-# long-list-globstar (194085 bytes)
- minimatch x 383 ops/sec ±0.74% (90 runs sampled)
- multimatch x 378 ops/sec ±0.59% (89 runs sampled)
- nanomatch x 990 ops/sec ±1.14% (85 runs sampled)
-
- fastest is nanomatch (by 260% avg)
-
-# negation-basic (132 bytes)
- minimatch x 242,145 ops/sec ±1.17% (89 runs sampled)
- multimatch x 76,403 ops/sec ±0.78% (92 runs sampled)
- nanomatch x 537,253 ops/sec ±1.44% (86 runs sampled)
-
- fastest is nanomatch (by 337% avg)
-
-# not-glob-basic (93 bytes)
- minimatch x 252,402 ops/sec ±1.33% (89 runs sampled)
- multimatch x 209,954 ops/sec ±1.30% (90 runs sampled)
- nanomatch x 1,716,468 ops/sec ±1.13% (86 runs sampled)
-
- fastest is nanomatch (by 742% avg)
-
-# star-basic (93 bytes)
- minimatch x 182,780 ops/sec ±1.41% (91 runs sampled)
- multimatch x 153,210 ops/sec ±0.72% (89 runs sampled)
- nanomatch x 599,621 ops/sec ±1.22% (90 runs sampled)
-
- fastest is nanomatch (by 357% avg)
-
-```
-
-## About
-
-
-Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-Please read the [contributing guide](.github/contributing.md) for advice on opening issues, pull requests, and coding standards.
-
-
-
-
-Running Tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-
-
-
-Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-
-
-### Related projects
-
-You might also be interested in these projects:
-
-* [extglob](https://www.npmjs.com/package/extglob): Extended glob support for JavaScript. Adds (almost) the expressive power of regular expressions to glob… [more](https://github.com/micromatch/extglob) | [homepage](https://github.com/micromatch/extglob "Extended glob support for JavaScript. Adds (almost) the expressive power of regular expressions to glob patterns.")
-* [is-extglob](https://www.npmjs.com/package/is-extglob): Returns true if a string has an extglob. | [homepage](https://github.com/jonschlinkert/is-extglob "Returns true if a string has an extglob.")
-* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/jonschlinkert/is-glob) | [homepage](https://github.com/jonschlinkert/is-glob "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet")
-* [micromatch](https://www.npmjs.com/package/micromatch): Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch. | [homepage](https://github.com/micromatch/micromatch "Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch.")
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 164 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 1 | [devongovett](https://github.com/devongovett) |
-
-### Author
-
-**Jon Schlinkert**
-
-* [linkedin/in/jonschlinkert](https://linkedin.com/in/jonschlinkert)
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2018, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on February 18, 2018._
\ No newline at end of file
diff --git a/node_modules/nanomatch/index.js b/node_modules/nanomatch/index.js
deleted file mode 100644
index dddc612..0000000
--- a/node_modules/nanomatch/index.js
+++ /dev/null
@@ -1,838 +0,0 @@
-'use strict';
-
-/**
- * Module dependencies
- */
-
-var util = require('util');
-var toRegex = require('to-regex');
-var extend = require('extend-shallow');
-
-/**
- * Local dependencies
- */
-
-var compilers = require('./lib/compilers');
-var parsers = require('./lib/parsers');
-var cache = require('./lib/cache');
-var utils = require('./lib/utils');
-var MAX_LENGTH = 1024 * 64;
-
-/**
- * The main function takes a list of strings and one or more
- * glob patterns to use for matching.
- *
- * ```js
- * var nm = require('nanomatch');
- * nm(list, patterns[, options]);
- *
- * console.log(nm(['a.js', 'a.txt'], ['*.js']));
- * //=> [ 'a.js' ]
- * ```
- * @param {Array} `list` A list of strings to match
- * @param {String|Array} `patterns` One or more glob patterns to use for matching.
- * @param {Object} `options` See available [options](#options) for changing how matches are performed
- * @return {Array} Returns an array of matches
- * @summary false
- * @api public
- */
-
-function nanomatch(list, patterns, options) {
- patterns = utils.arrayify(patterns);
- list = utils.arrayify(list);
-
- var len = patterns.length;
- if (list.length === 0 || len === 0) {
- return [];
- }
-
- if (len === 1) {
- return nanomatch.match(list, patterns[0], options);
- }
-
- var negated = false;
- var omit = [];
- var keep = [];
- var idx = -1;
-
- while (++idx < len) {
- var pattern = patterns[idx];
-
- if (typeof pattern === 'string' && pattern.charCodeAt(0) === 33 /* ! */) {
- omit.push.apply(omit, nanomatch.match(list, pattern.slice(1), options));
- negated = true;
- } else {
- keep.push.apply(keep, nanomatch.match(list, pattern, options));
- }
- }
-
- // minimatch.match parity
- if (negated && keep.length === 0) {
- if (options && options.unixify === false) {
- keep = list.slice();
- } else {
- var unixify = utils.unixify(options);
- for (var i = 0; i < list.length; i++) {
- keep.push(unixify(list[i]));
- }
- }
- }
-
- var matches = utils.diff(keep, omit);
- if (!options || options.nodupes !== false) {
- return utils.unique(matches);
- }
-
- return matches;
-}
-
-/**
- * Similar to the main function, but `pattern` must be a string.
- *
- * ```js
- * var nm = require('nanomatch');
- * nm.match(list, pattern[, options]);
- *
- * console.log(nm.match(['a.a', 'a.aa', 'a.b', 'a.c'], '*.a'));
- * //=> ['a.a', 'a.aa']
- * ```
- * @param {Array} `list` Array of strings to match
- * @param {String} `pattern` Glob pattern to use for matching.
- * @param {Object} `options` See available [options](#options) for changing how matches are performed
- * @return {Array} Returns an array of matches
- * @api public
- */
-
-nanomatch.match = function(list, pattern, options) {
- if (Array.isArray(pattern)) {
- throw new TypeError('expected pattern to be a string');
- }
-
- var unixify = utils.unixify(options);
- var isMatch = memoize('match', pattern, options, nanomatch.matcher);
- var matches = [];
-
- list = utils.arrayify(list);
- var len = list.length;
- var idx = -1;
-
- while (++idx < len) {
- var ele = list[idx];
- if (ele === pattern || isMatch(ele)) {
- matches.push(utils.value(ele, unixify, options));
- }
- }
-
- // if no options were passed, uniquify results and return
- if (typeof options === 'undefined') {
- return utils.unique(matches);
- }
-
- if (matches.length === 0) {
- if (options.failglob === true) {
- throw new Error('no matches found for "' + pattern + '"');
- }
- if (options.nonull === true || options.nullglob === true) {
- return [options.unescape ? utils.unescape(pattern) : pattern];
- }
- }
-
- // if `opts.ignore` was defined, diff ignored list
- if (options.ignore) {
- matches = nanomatch.not(matches, options.ignore, options);
- }
-
- return options.nodupes !== false ? utils.unique(matches) : matches;
-};
-
-/**
- * Returns true if the specified `string` matches the given glob `pattern`.
- *
- * ```js
- * var nm = require('nanomatch');
- * nm.isMatch(string, pattern[, options]);
- *
- * console.log(nm.isMatch('a.a', '*.a'));
- * //=> true
- * console.log(nm.isMatch('a.b', '*.a'));
- * //=> false
- * ```
- * @param {String} `string` String to match
- * @param {String} `pattern` Glob pattern to use for matching.
- * @param {Object} `options` See available [options](#options) for changing how matches are performed
- * @return {Boolean} Returns true if the string matches the glob pattern.
- * @api public
- */
-
-nanomatch.isMatch = function(str, pattern, options) {
- if (typeof str !== 'string') {
- throw new TypeError('expected a string: "' + util.inspect(str) + '"');
- }
-
- if (utils.isEmptyString(str) || utils.isEmptyString(pattern)) {
- return false;
- }
-
- var equals = utils.equalsPattern(options);
- if (equals(str)) {
- return true;
- }
-
- var isMatch = memoize('isMatch', pattern, options, nanomatch.matcher);
- return isMatch(str);
-};
-
-/**
- * Returns true if some of the elements in the given `list` match any of the
- * given glob `patterns`.
- *
- * ```js
- * var nm = require('nanomatch');
- * nm.some(list, patterns[, options]);
- *
- * console.log(nm.some(['foo.js', 'bar.js'], ['*.js', '!foo.js']));
- * // true
- * console.log(nm.some(['foo.js'], ['*.js', '!foo.js']));
- * // false
- * ```
- * @param {String|Array} `list` The string or array of strings to test. Returns as soon as the first match is found.
- * @param {String|Array} `patterns` One or more glob patterns to use for matching.
- * @param {Object} `options` See available [options](#options) for changing how matches are performed
- * @return {Boolean} Returns true if any patterns match `str`
- * @api public
- */
-
-nanomatch.some = function(list, patterns, options) {
- if (typeof list === 'string') {
- list = [list];
- }
-
- for (var i = 0; i < list.length; i++) {
- if (nanomatch(list[i], patterns, options).length === 1) {
- return true;
- }
- }
-
- return false;
-};
-
-/**
- * Returns true if every element in the given `list` matches
- * at least one of the given glob `patterns`.
- *
- * ```js
- * var nm = require('nanomatch');
- * nm.every(list, patterns[, options]);
- *
- * console.log(nm.every('foo.js', ['foo.js']));
- * // true
- * console.log(nm.every(['foo.js', 'bar.js'], ['*.js']));
- * // true
- * console.log(nm.every(['foo.js', 'bar.js'], ['*.js', '!foo.js']));
- * // false
- * console.log(nm.every(['foo.js'], ['*.js', '!foo.js']));
- * // false
- * ```
- * @param {String|Array} `list` The string or array of strings to test.
- * @param {String|Array} `patterns` One or more glob patterns to use for matching.
- * @param {Object} `options` See available [options](#options) for changing how matches are performed
- * @return {Boolean} Returns true if any patterns match `str`
- * @api public
- */
-
-nanomatch.every = function(list, patterns, options) {
- if (typeof list === 'string') {
- list = [list];
- }
-
- for (var i = 0; i < list.length; i++) {
- if (nanomatch(list[i], patterns, options).length !== 1) {
- return false;
- }
- }
-
- return true;
-};
-
-/**
- * Returns true if **any** of the given glob `patterns`
- * match the specified `string`.
- *
- * ```js
- * var nm = require('nanomatch');
- * nm.any(string, patterns[, options]);
- *
- * console.log(nm.any('a.a', ['b.*', '*.a']));
- * //=> true
- * console.log(nm.any('a.a', 'b.*'));
- * //=> false
- * ```
- * @param {String|Array} `str` The string to test.
- * @param {String|Array} `patterns` One or more glob patterns to use for matching.
- * @param {Object} `options` See available [options](#options) for changing how matches are performed
- * @return {Boolean} Returns true if any patterns match `str`
- * @api public
- */
-
-nanomatch.any = function(str, patterns, options) {
- if (typeof str !== 'string') {
- throw new TypeError('expected a string: "' + util.inspect(str) + '"');
- }
-
- if (utils.isEmptyString(str) || utils.isEmptyString(patterns)) {
- return false;
- }
-
- if (typeof patterns === 'string') {
- patterns = [patterns];
- }
-
- for (var i = 0; i < patterns.length; i++) {
- if (nanomatch.isMatch(str, patterns[i], options)) {
- return true;
- }
- }
- return false;
-};
-
-/**
- * Returns true if **all** of the given `patterns`
- * match the specified string.
- *
- * ```js
- * var nm = require('nanomatch');
- * nm.all(string, patterns[, options]);
- *
- * console.log(nm.all('foo.js', ['foo.js']));
- * // true
- *
- * console.log(nm.all('foo.js', ['*.js', '!foo.js']));
- * // false
- *
- * console.log(nm.all('foo.js', ['*.js', 'foo.js']));
- * // true
- *
- * console.log(nm.all('foo.js', ['*.js', 'f*', '*o*', '*o.js']));
- * // true
- * ```
- * @param {String|Array} `str` The string to test.
- * @param {String|Array} `patterns` One or more glob patterns to use for matching.
- * @param {Object} `options` See available [options](#options) for changing how matches are performed
- * @return {Boolean} Returns true if any patterns match `str`
- * @api public
- */
-
-nanomatch.all = function(str, patterns, options) {
- if (typeof str !== 'string') {
- throw new TypeError('expected a string: "' + util.inspect(str) + '"');
- }
-
- if (typeof patterns === 'string') {
- patterns = [patterns];
- }
-
- for (var i = 0; i < patterns.length; i++) {
- if (!nanomatch.isMatch(str, patterns[i], options)) {
- return false;
- }
- }
- return true;
-};
-
-/**
- * Returns a list of strings that _**do not match any**_ of the given `patterns`.
- *
- * ```js
- * var nm = require('nanomatch');
- * nm.not(list, patterns[, options]);
- *
- * console.log(nm.not(['a.a', 'b.b', 'c.c'], '*.a'));
- * //=> ['b.b', 'c.c']
- * ```
- * @param {Array} `list` Array of strings to match.
- * @param {String|Array} `patterns` One or more glob pattern to use for matching.
- * @param {Object} `options` See available [options](#options) for changing how matches are performed
- * @return {Array} Returns an array of strings that **do not match** the given patterns.
- * @api public
- */
-
-nanomatch.not = function(list, patterns, options) {
- var opts = extend({}, options);
- var ignore = opts.ignore;
- delete opts.ignore;
-
- list = utils.arrayify(list);
-
- var matches = utils.diff(list, nanomatch(list, patterns, opts));
- if (ignore) {
- matches = utils.diff(matches, nanomatch(list, ignore));
- }
-
- return opts.nodupes !== false ? utils.unique(matches) : matches;
-};
-
-/**
- * Returns true if the given `string` contains the given pattern. Similar
- * to [.isMatch](#isMatch) but the pattern can match any part of the string.
- *
- * ```js
- * var nm = require('nanomatch');
- * nm.contains(string, pattern[, options]);
- *
- * console.log(nm.contains('aa/bb/cc', '*b'));
- * //=> true
- * console.log(nm.contains('aa/bb/cc', '*d'));
- * //=> false
- * ```
- * @param {String} `str` The string to match.
- * @param {String|Array} `patterns` Glob pattern to use for matching.
- * @param {Object} `options` See available [options](#options) for changing how matches are performed
- * @return {Boolean} Returns true if the patter matches any part of `str`.
- * @api public
- */
-
-nanomatch.contains = function(str, patterns, options) {
- if (typeof str !== 'string') {
- throw new TypeError('expected a string: "' + util.inspect(str) + '"');
- }
-
- if (typeof patterns === 'string') {
- if (utils.isEmptyString(str) || utils.isEmptyString(patterns)) {
- return false;
- }
-
- var equals = utils.equalsPattern(patterns, options);
- if (equals(str)) {
- return true;
- }
- var contains = utils.containsPattern(patterns, options);
- if (contains(str)) {
- return true;
- }
- }
-
- var opts = extend({}, options, {contains: true});
- return nanomatch.any(str, patterns, opts);
-};
-
-/**
- * Returns true if the given pattern and options should enable
- * the `matchBase` option.
- * @return {Boolean}
- * @api private
- */
-
-nanomatch.matchBase = function(pattern, options) {
- if (pattern && pattern.indexOf('/') !== -1 || !options) return false;
- return options.basename === true || options.matchBase === true;
-};
-
-/**
- * Filter the keys of the given object with the given `glob` pattern
- * and `options`. Does not attempt to match nested keys. If you need this feature,
- * use [glob-object][] instead.
- *
- * ```js
- * var nm = require('nanomatch');
- * nm.matchKeys(object, patterns[, options]);
- *
- * var obj = { aa: 'a', ab: 'b', ac: 'c' };
- * console.log(nm.matchKeys(obj, '*b'));
- * //=> { ab: 'b' }
- * ```
- * @param {Object} `object` The object with keys to filter.
- * @param {String|Array} `patterns` One or more glob patterns to use for matching.
- * @param {Object} `options` See available [options](#options) for changing how matches are performed
- * @return {Object} Returns an object with only keys that match the given patterns.
- * @api public
- */
-
-nanomatch.matchKeys = function(obj, patterns, options) {
- if (!utils.isObject(obj)) {
- throw new TypeError('expected the first argument to be an object');
- }
- var keys = nanomatch(Object.keys(obj), patterns, options);
- return utils.pick(obj, keys);
-};
-
-/**
- * Returns a memoized matcher function from the given glob `pattern` and `options`.
- * The returned function takes a string to match as its only argument and returns
- * true if the string is a match.
- *
- * ```js
- * var nm = require('nanomatch');
- * nm.matcher(pattern[, options]);
- *
- * var isMatch = nm.matcher('*.!(*a)');
- * console.log(isMatch('a.a'));
- * //=> false
- * console.log(isMatch('a.b'));
- * //=> true
- * ```
- * @param {String} `pattern` Glob pattern
- * @param {Object} `options` See available [options](#options) for changing how matches are performed.
- * @return {Function} Returns a matcher function.
- * @api public
- */
-
-nanomatch.matcher = function matcher(pattern, options) {
- if (utils.isEmptyString(pattern)) {
- return function() {
- return false;
- };
- }
-
- if (Array.isArray(pattern)) {
- return compose(pattern, options, matcher);
- }
-
- // if pattern is a regex
- if (pattern instanceof RegExp) {
- return test(pattern);
- }
-
- // if pattern is invalid
- if (!utils.isString(pattern)) {
- throw new TypeError('expected pattern to be an array, string or regex');
- }
-
- // if pattern is a non-glob string
- if (!utils.hasSpecialChars(pattern)) {
- if (options && options.nocase === true) {
- pattern = pattern.toLowerCase();
- }
- return utils.matchPath(pattern, options);
- }
-
- // if pattern is a glob string
- var re = nanomatch.makeRe(pattern, options);
-
- // if `options.matchBase` or `options.basename` is defined
- if (nanomatch.matchBase(pattern, options)) {
- return utils.matchBasename(re, options);
- }
-
- function test(regex) {
- var equals = utils.equalsPattern(options);
- var unixify = utils.unixify(options);
-
- return function(str) {
- if (equals(str)) {
- return true;
- }
-
- if (regex.test(unixify(str))) {
- return true;
- }
- return false;
- };
- }
-
- // create matcher function
- var matcherFn = test(re);
- // set result object from compiler on matcher function,
- // as a non-enumerable property. useful for debugging
- utils.define(matcherFn, 'result', re.result);
- return matcherFn;
-};
-
-/**
- * Returns an array of matches captured by `pattern` in `string, or
- * `null` if the pattern did not match.
- *
- * ```js
- * var nm = require('nanomatch');
- * nm.capture(pattern, string[, options]);
- *
- * console.log(nm.capture('test/*.js', 'test/foo.js'));
- * //=> ['foo']
- * console.log(nm.capture('test/*.js', 'foo/bar.css'));
- * //=> null
- * ```
- * @param {String} `pattern` Glob pattern to use for matching.
- * @param {String} `string` String to match
- * @param {Object} `options` See available [options](#options) for changing how matches are performed
- * @return {Boolean} Returns an array of captures if the string matches the glob pattern, otherwise `null`.
- * @api public
- */
-
-nanomatch.capture = function(pattern, str, options) {
- var re = nanomatch.makeRe(pattern, extend({capture: true}, options));
- var unixify = utils.unixify(options);
-
- function match() {
- return function(string) {
- var match = re.exec(unixify(string));
- if (!match) {
- return null;
- }
-
- return match.slice(1);
- };
- }
-
- var capture = memoize('capture', pattern, options, match);
- return capture(str);
-};
-
-/**
- * Create a regular expression from the given glob `pattern`.
- *
- * ```js
- * var nm = require('nanomatch');
- * nm.makeRe(pattern[, options]);
- *
- * console.log(nm.makeRe('*.js'));
- * //=> /^(?:(\.[\\\/])?(?!\.)(?=.)[^\/]*?\.js)$/
- * ```
- * @param {String} `pattern` A glob pattern to convert to regex.
- * @param {Object} `options` See available [options](#options) for changing how matches are performed.
- * @return {RegExp} Returns a regex created from the given pattern.
- * @api public
- */
-
-nanomatch.makeRe = function(pattern, options) {
- if (pattern instanceof RegExp) {
- return pattern;
- }
-
- if (typeof pattern !== 'string') {
- throw new TypeError('expected pattern to be a string');
- }
-
- if (pattern.length > MAX_LENGTH) {
- throw new Error('expected pattern to be less than ' + MAX_LENGTH + ' characters');
- }
-
- function makeRe() {
- var opts = utils.extend({wrap: false}, options);
- var result = nanomatch.create(pattern, opts);
- var regex = toRegex(result.output, opts);
- utils.define(regex, 'result', result);
- return regex;
- }
-
- return memoize('makeRe', pattern, options, makeRe);
-};
-
-/**
- * Parses the given glob `pattern` and returns an object with the compiled `output`
- * and optional source `map`.
- *
- * ```js
- * var nm = require('nanomatch');
- * nm.create(pattern[, options]);
- *
- * console.log(nm.create('abc/*.js'));
- * // { options: { source: 'string', sourcemap: true },
- * // state: {},
- * // compilers:
- * // { ... },
- * // output: '(\\.[\\\\\\/])?abc\\/(?!\\.)(?=.)[^\\/]*?\\.js',
- * // ast:
- * // { type: 'root',
- * // errors: [],
- * // nodes:
- * // [ ... ],
- * // dot: false,
- * // input: 'abc/*.js' },
- * // parsingErrors: [],
- * // map:
- * // { version: 3,
- * // sources: [ 'string' ],
- * // names: [],
- * // mappings: 'AAAA,GAAG,EAAC,kBAAC,EAAC,EAAE',
- * // sourcesContent: [ 'abc/*.js' ] },
- * // position: { line: 1, column: 28 },
- * // content: {},
- * // files: {},
- * // idx: 6 }
- * ```
- * @param {String} `pattern` Glob pattern to parse and compile.
- * @param {Object} `options` Any [options](#options) to change how parsing and compiling is performed.
- * @return {Object} Returns an object with the parsed AST, compiled string and optional source map.
- * @api public
- */
-
-nanomatch.create = function(pattern, options) {
- if (typeof pattern !== 'string') {
- throw new TypeError('expected a string');
- }
- function create() {
- return nanomatch.compile(nanomatch.parse(pattern, options), options);
- }
- return memoize('create', pattern, options, create);
-};
-
-/**
- * Parse the given `str` with the given `options`.
- *
- * ```js
- * var nm = require('nanomatch');
- * nm.parse(pattern[, options]);
- *
- * var ast = nm.parse('a/{b,c}/d');
- * console.log(ast);
- * // { type: 'root',
- * // errors: [],
- * // input: 'a/{b,c}/d',
- * // nodes:
- * // [ { type: 'bos', val: '' },
- * // { type: 'text', val: 'a/' },
- * // { type: 'brace',
- * // nodes:
- * // [ { type: 'brace.open', val: '{' },
- * // { type: 'text', val: 'b,c' },
- * // { type: 'brace.close', val: '}' } ] },
- * // { type: 'text', val: '/d' },
- * // { type: 'eos', val: '' } ] }
- * ```
- * @param {String} `str`
- * @param {Object} `options`
- * @return {Object} Returns an AST
- * @api public
- */
-
-nanomatch.parse = function(pattern, options) {
- if (typeof pattern !== 'string') {
- throw new TypeError('expected a string');
- }
-
- function parse() {
- var snapdragon = utils.instantiate(null, options);
- parsers(snapdragon, options);
-
- var ast = snapdragon.parse(pattern, options);
- utils.define(ast, 'snapdragon', snapdragon);
- ast.input = pattern;
- return ast;
- }
-
- return memoize('parse', pattern, options, parse);
-};
-
-/**
- * Compile the given `ast` or string with the given `options`.
- *
- * ```js
- * var nm = require('nanomatch');
- * nm.compile(ast[, options]);
- *
- * var ast = nm.parse('a/{b,c}/d');
- * console.log(nm.compile(ast));
- * // { options: { source: 'string' },
- * // state: {},
- * // compilers:
- * // { eos: [Function],
- * // noop: [Function],
- * // bos: [Function],
- * // brace: [Function],
- * // 'brace.open': [Function],
- * // text: [Function],
- * // 'brace.close': [Function] },
- * // output: [ 'a/(b|c)/d' ],
- * // ast:
- * // { ... },
- * // parsingErrors: [] }
- * ```
- * @param {Object|String} `ast`
- * @param {Object} `options`
- * @return {Object} Returns an object that has an `output` property with the compiled string.
- * @api public
- */
-
-nanomatch.compile = function(ast, options) {
- if (typeof ast === 'string') {
- ast = nanomatch.parse(ast, options);
- }
-
- function compile() {
- var snapdragon = utils.instantiate(ast, options);
- compilers(snapdragon, options);
- return snapdragon.compile(ast, options);
- }
-
- return memoize('compile', ast.input, options, compile);
-};
-
-/**
- * Clear the regex cache.
- *
- * ```js
- * nm.clearCache();
- * ```
- * @api public
- */
-
-nanomatch.clearCache = function() {
- nanomatch.cache.__data__ = {};
-};
-
-/**
- * Compose a matcher function with the given patterns.
- * This allows matcher functions to be compiled once and
- * called multiple times.
- */
-
-function compose(patterns, options, matcher) {
- var matchers;
-
- return memoize('compose', String(patterns), options, function() {
- return function(file) {
- // delay composition until it's invoked the first time,
- // after that it won't be called again
- if (!matchers) {
- matchers = [];
- for (var i = 0; i < patterns.length; i++) {
- matchers.push(matcher(patterns[i], options));
- }
- }
-
- var len = matchers.length;
- while (len--) {
- if (matchers[len](file) === true) {
- return true;
- }
- }
- return false;
- };
- });
-}
-
-/**
- * Memoize a generated regex or function. A unique key is generated
- * from the `type` (usually method name), the `pattern`, and
- * user-defined options.
- */
-
-function memoize(type, pattern, options, fn) {
- var key = utils.createKey(type + '=' + pattern, options);
-
- if (options && options.cache === false) {
- return fn(pattern, options);
- }
-
- if (cache.has(type, key)) {
- return cache.get(type, key);
- }
-
- var val = fn(pattern, options);
- cache.set(type, key, val);
- return val;
-}
-
-/**
- * Expose compiler, parser and cache on `nanomatch`
- */
-
-nanomatch.compilers = compilers;
-nanomatch.parsers = parsers;
-nanomatch.cache = cache;
-
-/**
- * Expose `nanomatch`
- * @type {Function}
- */
-
-module.exports = nanomatch;
diff --git a/node_modules/nanomatch/lib/cache.js b/node_modules/nanomatch/lib/cache.js
deleted file mode 100644
index fffc4c1..0000000
--- a/node_modules/nanomatch/lib/cache.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = new (require('fragment-cache'))();
diff --git a/node_modules/nanomatch/lib/compilers.js b/node_modules/nanomatch/lib/compilers.js
deleted file mode 100644
index d7a786e..0000000
--- a/node_modules/nanomatch/lib/compilers.js
+++ /dev/null
@@ -1,339 +0,0 @@
-'use strict';
-
-/**
-* Nanomatch compilers
-*/
-
-module.exports = function(nanomatch, options) {
- function slash() {
- if (options && typeof options.slash === 'string') {
- return options.slash;
- }
- if (options && typeof options.slash === 'function') {
- return options.slash.call(nanomatch);
- }
- return '\\\\/';
- }
-
- function star() {
- if (options && typeof options.star === 'string') {
- return options.star;
- }
- if (options && typeof options.star === 'function') {
- return options.star.call(nanomatch);
- }
- return '[^' + slash() + ']*?';
- }
-
- var ast = nanomatch.ast = nanomatch.parser.ast;
- ast.state = nanomatch.parser.state;
- nanomatch.compiler.state = ast.state;
- nanomatch.compiler
-
- /**
- * Negation / escaping
- */
-
- .set('not', function(node) {
- var prev = this.prev();
- if (this.options.nonegate === true || prev.type !== 'bos') {
- return this.emit('\\' + node.val, node);
- }
- return this.emit(node.val, node);
- })
- .set('escape', function(node) {
- if (this.options.unescape && /^[-\w_.]/.test(node.val)) {
- return this.emit(node.val, node);
- }
- return this.emit('\\' + node.val, node);
- })
- .set('quoted', function(node) {
- return this.emit(node.val, node);
- })
-
- /**
- * Regex
- */
-
- .set('dollar', function(node) {
- if (node.parent.type === 'bracket') {
- return this.emit(node.val, node);
- }
- return this.emit('\\' + node.val, node);
- })
-
- /**
- * Dot: "."
- */
-
- .set('dot', function(node) {
- if (node.dotfiles === true) this.dotfiles = true;
- return this.emit('\\' + node.val, node);
- })
-
- /**
- * Slashes: "/" and "\"
- */
-
- .set('backslash', function(node) {
- return this.emit(node.val, node);
- })
- .set('slash', function(node, nodes, i) {
- var val = '[' + slash() + ']';
- var parent = node.parent;
- var prev = this.prev();
-
- // set "node.hasSlash" to true on all ancestor parens nodes
- while (parent.type === 'paren' && !parent.hasSlash) {
- parent.hasSlash = true;
- parent = parent.parent;
- }
-
- if (prev.addQmark) {
- val += '?';
- }
-
- // word boundary
- if (node.rest.slice(0, 2) === '\\b') {
- return this.emit(val, node);
- }
-
- // globstars
- if (node.parsed === '**' || node.parsed === './**') {
- this.output = '(?:' + this.output;
- return this.emit(val + ')?', node);
- }
-
- // negation
- if (node.parsed === '!**' && this.options.nonegate !== true) {
- return this.emit(val + '?\\b', node);
- }
- return this.emit(val, node);
- })
-
- /**
- * Square brackets
- */
-
- .set('bracket', function(node) {
- var close = node.close;
- var open = !node.escaped ? '[' : '\\[';
- var negated = node.negated;
- var inner = node.inner;
- var val = node.val;
-
- if (node.escaped === true) {
- inner = inner.replace(/\\?(\W)/g, '\\$1');
- negated = '';
- }
-
- if (inner === ']-') {
- inner = '\\]\\-';
- }
-
- if (negated && inner.indexOf('.') === -1) {
- inner += '.';
- }
- if (negated && inner.indexOf('/') === -1) {
- inner += '/';
- }
-
- val = open + negated + inner + close;
- return this.emit(val, node);
- })
-
- /**
- * Square: "[.]" (only matches a single character in brackets)
- */
-
- .set('square', function(node) {
- var val = (/^\W/.test(node.val) ? '\\' : '') + node.val;
- return this.emit(val, node);
- })
-
- /**
- * Question mark: "?"
- */
-
- .set('qmark', function(node) {
- var prev = this.prev();
- // don't use "slash" variable so that we always avoid
- // matching backslashes and slashes with a qmark
- var val = '[^.\\\\/]';
- if (this.options.dot || (prev.type !== 'bos' && prev.type !== 'slash')) {
- val = '[^\\\\/]';
- }
-
- if (node.parsed.slice(-1) === '(') {
- var ch = node.rest.charAt(0);
- if (ch === '!' || ch === '=' || ch === ':') {
- return this.emit(node.val, node);
- }
- }
-
- if (node.val.length > 1) {
- val += '{' + node.val.length + '}';
- }
- return this.emit(val, node);
- })
-
- /**
- * Plus
- */
-
- .set('plus', function(node) {
- var prev = node.parsed.slice(-1);
- if (prev === ']' || prev === ')') {
- return this.emit(node.val, node);
- }
- if (!this.output || (/[?*+]/.test(ch) && node.parent.type !== 'bracket')) {
- return this.emit('\\+', node);
- }
- var ch = this.output.slice(-1);
- if (/\w/.test(ch) && !node.inside) {
- return this.emit('+\\+?', node);
- }
- return this.emit('+', node);
- })
-
- /**
- * globstar: '**'
- */
-
- .set('globstar', function(node, nodes, i) {
- if (!this.output) {
- this.state.leadingGlobstar = true;
- }
-
- var prev = this.prev();
- var before = this.prev(2);
- var next = this.next();
- var after = this.next(2);
- var type = prev.type;
- var val = node.val;
-
- if (prev.type === 'slash' && next.type === 'slash') {
- if (before.type === 'text') {
- this.output += '?';
-
- if (after.type !== 'text') {
- this.output += '\\b';
- }
- }
- }
-
- var parsed = node.parsed;
- if (parsed.charAt(0) === '!') {
- parsed = parsed.slice(1);
- }
-
- var isInside = node.isInside.paren || node.isInside.brace;
- if (parsed && type !== 'slash' && type !== 'bos' && !isInside) {
- val = star();
- } else {
- val = this.options.dot !== true
- ? '(?:(?!(?:[' + slash() + ']|^)\\.).)*?'
- : '(?:(?!(?:[' + slash() + ']|^)(?:\\.{1,2})($|[' + slash() + ']))(?!\\.{2}).)*?';
- }
-
- if ((type === 'slash' || type === 'bos') && this.options.dot !== true) {
- val = '(?!\\.)' + val;
- }
-
- if (prev.type === 'slash' && next.type === 'slash' && before.type !== 'text') {
- if (after.type === 'text' || after.type === 'star') {
- node.addQmark = true;
- }
- }
-
- if (this.options.capture) {
- val = '(' + val + ')';
- }
-
- return this.emit(val, node);
- })
-
- /**
- * Star: "*"
- */
-
- .set('star', function(node, nodes, i) {
- var prior = nodes[i - 2] || {};
- var prev = this.prev();
- var next = this.next();
- var type = prev.type;
-
- function isStart(n) {
- return n.type === 'bos' || n.type === 'slash';
- }
-
- if (this.output === '' && this.options.contains !== true) {
- this.output = '(?![' + slash() + '])';
- }
-
- if (type === 'bracket' && this.options.bash === false) {
- var str = next && next.type === 'bracket' ? star() : '*?';
- if (!prev.nodes || prev.nodes[1].type !== 'posix') {
- return this.emit(str, node);
- }
- }
-
- var prefix = !this.dotfiles && type !== 'text' && type !== 'escape'
- ? (this.options.dot ? '(?!(?:^|[' + slash() + '])\\.{1,2}(?:$|[' + slash() + ']))' : '(?!\\.)')
- : '';
-
- if (isStart(prev) || (isStart(prior) && type === 'not')) {
- if (prefix !== '(?!\\.)') {
- prefix += '(?!(\\.{2}|\\.[' + slash() + ']))(?=.)';
- } else {
- prefix += '(?=.)';
- }
- } else if (prefix === '(?!\\.)') {
- prefix = '';
- }
-
- if (prev.type === 'not' && prior.type === 'bos' && this.options.dot === true) {
- this.output = '(?!\\.)' + this.output;
- }
-
- var output = prefix + star();
- if (this.options.capture) {
- output = '(' + output + ')';
- }
-
- return this.emit(output, node);
- })
-
- /**
- * Text
- */
-
- .set('text', function(node) {
- return this.emit(node.val, node);
- })
-
- /**
- * End-of-string
- */
-
- .set('eos', function(node) {
- var prev = this.prev();
- var val = node.val;
-
- this.output = '(?:\\.[' + slash() + '](?=.))?' + this.output;
- if (this.state.metachar && prev.type !== 'qmark' && prev.type !== 'slash') {
- val += (this.options.contains ? '[' + slash() + ']?' : '(?:[' + slash() + ']|$)');
- }
-
- return this.emit(val, node);
- });
-
- /**
- * Allow custom compilers to be passed on options
- */
-
- if (options && typeof options.compilers === 'function') {
- options.compilers(nanomatch.compiler);
- }
-};
-
diff --git a/node_modules/nanomatch/lib/parsers.js b/node_modules/nanomatch/lib/parsers.js
deleted file mode 100644
index f87df8f..0000000
--- a/node_modules/nanomatch/lib/parsers.js
+++ /dev/null
@@ -1,386 +0,0 @@
-'use strict';
-
-var regexNot = require('regex-not');
-var toRegex = require('to-regex');
-
-/**
- * Characters to use in negation regex (we want to "not" match
- * characters that are matched by other parsers)
- */
-
-var cached;
-var NOT_REGEX = '[\\[!*+?$^"\'.\\\\/]+';
-var not = createTextRegex(NOT_REGEX);
-
-/**
- * Nanomatch parsers
- */
-
-module.exports = function(nanomatch, options) {
- var parser = nanomatch.parser;
- var opts = parser.options;
-
- parser.state = {
- slashes: 0,
- paths: []
- };
-
- parser.ast.state = parser.state;
- parser
-
- /**
- * Beginning-of-string
- */
-
- .capture('prefix', function() {
- if (this.parsed) return;
- var m = this.match(/^\.[\\/]/);
- if (!m) return;
- this.state.strictOpen = !!this.options.strictOpen;
- this.state.addPrefix = true;
- })
-
- /**
- * Escape: "\\."
- */
-
- .capture('escape', function() {
- if (this.isInside('bracket')) return;
- var pos = this.position();
- var m = this.match(/^(?:\\(.)|([$^]))/);
- if (!m) return;
-
- return pos({
- type: 'escape',
- val: m[2] || m[1]
- });
- })
-
- /**
- * Quoted strings
- */
-
- .capture('quoted', function() {
- var pos = this.position();
- var m = this.match(/^["']/);
- if (!m) return;
-
- var quote = m[0];
- if (this.input.indexOf(quote) === -1) {
- return pos({
- type: 'escape',
- val: quote
- });
- }
-
- var tok = advanceTo(this.input, quote);
- this.consume(tok.len);
-
- return pos({
- type: 'quoted',
- val: tok.esc
- });
- })
-
- /**
- * Negations: "!"
- */
-
- .capture('not', function() {
- var parsed = this.parsed;
- var pos = this.position();
- var m = this.match(this.notRegex || /^!+/);
- if (!m) return;
- var val = m[0];
-
- var isNegated = (val.length % 2) === 1;
- if (parsed === '' && !isNegated) {
- val = '';
- }
-
- // if nothing has been parsed, we know `!` is at the start,
- // so we need to wrap the result in a negation regex
- if (parsed === '' && isNegated && this.options.nonegate !== true) {
- this.bos.val = '(?!^(?:';
- this.append = ')$).*';
- val = '';
- }
- return pos({
- type: 'not',
- val: val
- });
- })
-
- /**
- * Dot: "."
- */
-
- .capture('dot', function() {
- var parsed = this.parsed;
- var pos = this.position();
- var m = this.match(/^\.+/);
- if (!m) return;
-
- var val = m[0];
- this.state.dot = val === '.' && (parsed === '' || parsed.slice(-1) === '/');
-
- return pos({
- type: 'dot',
- dotfiles: this.state.dot,
- val: val
- });
- })
-
- /**
- * Plus: "+"
- */
-
- .capture('plus', /^\+(?!\()/)
-
- /**
- * Question mark: "?"
- */
-
- .capture('qmark', function() {
- var parsed = this.parsed;
- var pos = this.position();
- var m = this.match(/^\?+(?!\()/);
- if (!m) return;
-
- this.state.metachar = true;
- this.state.qmark = true;
-
- return pos({
- type: 'qmark',
- parsed: parsed,
- val: m[0]
- });
- })
-
- /**
- * Globstar: "**"
- */
-
- .capture('globstar', function() {
- var parsed = this.parsed;
- var pos = this.position();
- var m = this.match(/^\*{2}(?![*(])(?=[,)/]|$)/);
- if (!m) return;
-
- var type = opts.noglobstar !== true ? 'globstar' : 'star';
- var node = pos({type: type, parsed: parsed});
- this.state.metachar = true;
-
- while (this.input.slice(0, 4) === '/**/') {
- this.input = this.input.slice(3);
- }
-
- node.isInside = {
- brace: this.isInside('brace'),
- paren: this.isInside('paren')
- };
-
- if (type === 'globstar') {
- this.state.globstar = true;
- node.val = '**';
-
- } else {
- this.state.star = true;
- node.val = '*';
- }
-
- return node;
- })
-
- /**
- * Star: "*"
- */
-
- .capture('star', function() {
- var pos = this.position();
- var starRe = /^(?:\*(?![*(])|[*]{3,}(?!\()|[*]{2}(?![(/]|$)|\*(?=\*\())/;
- var m = this.match(starRe);
- if (!m) return;
-
- this.state.metachar = true;
- this.state.star = true;
- return pos({
- type: 'star',
- val: m[0]
- });
- })
-
- /**
- * Slash: "/"
- */
-
- .capture('slash', function() {
- var pos = this.position();
- var m = this.match(/^\//);
- if (!m) return;
-
- this.state.slashes++;
- return pos({
- type: 'slash',
- val: m[0]
- });
- })
-
- /**
- * Backslash: "\\"
- */
-
- .capture('backslash', function() {
- var pos = this.position();
- var m = this.match(/^\\(?![*+?(){}[\]'"])/);
- if (!m) return;
-
- var val = m[0];
-
- if (this.isInside('bracket')) {
- val = '\\';
- } else if (val.length > 1) {
- val = '\\\\';
- }
-
- return pos({
- type: 'backslash',
- val: val
- });
- })
-
- /**
- * Square: "[.]"
- */
-
- .capture('square', function() {
- if (this.isInside('bracket')) return;
- var pos = this.position();
- var m = this.match(/^\[([^!^\\])\]/);
- if (!m) return;
-
- return pos({
- type: 'square',
- val: m[1]
- });
- })
-
- /**
- * Brackets: "[...]" (basic, this can be overridden by other parsers)
- */
-
- .capture('bracket', function() {
- var pos = this.position();
- var m = this.match(/^(?:\[([!^]?)([^\]]+|\]-)(\]|[^*+?]+)|\[)/);
- if (!m) return;
-
- var val = m[0];
- var negated = m[1] ? '^' : '';
- var inner = (m[2] || '').replace(/\\\\+/, '\\\\');
- var close = m[3] || '';
-
- if (m[2] && inner.length < m[2].length) {
- val = val.replace(/\\\\+/, '\\\\');
- }
-
- var esc = this.input.slice(0, 2);
- if (inner === '' && esc === '\\]') {
- inner += esc;
- this.consume(2);
-
- var str = this.input;
- var idx = -1;
- var ch;
-
- while ((ch = str[++idx])) {
- this.consume(1);
- if (ch === ']') {
- close = ch;
- break;
- }
- inner += ch;
- }
- }
-
- return pos({
- type: 'bracket',
- val: val,
- escaped: close !== ']',
- negated: negated,
- inner: inner,
- close: close
- });
- })
-
- /**
- * Text
- */
-
- .capture('text', function() {
- if (this.isInside('bracket')) return;
- var pos = this.position();
- var m = this.match(not);
- if (!m || !m[0]) return;
-
- return pos({
- type: 'text',
- val: m[0]
- });
- });
-
- /**
- * Allow custom parsers to be passed on options
- */
-
- if (options && typeof options.parsers === 'function') {
- options.parsers(nanomatch.parser);
- }
-};
-
-/**
- * Advance to the next non-escaped character
- */
-
-function advanceTo(input, endChar) {
- var ch = input.charAt(0);
- var tok = { len: 1, val: '', esc: '' };
- var idx = 0;
-
- function advance() {
- if (ch !== '\\') {
- tok.esc += '\\' + ch;
- tok.val += ch;
- }
-
- ch = input.charAt(++idx);
- tok.len++;
-
- if (ch === '\\') {
- advance();
- advance();
- }
- }
-
- while (ch && ch !== endChar) {
- advance();
- }
- return tok;
-}
-
-/**
- * Create text regex
- */
-
-function createTextRegex(pattern) {
- if (cached) return cached;
- var opts = {contains: true, strictClose: false};
- var not = regexNot.create(pattern, opts);
- var re = toRegex('^(?:[*]\\((?=.)|' + not + ')', opts);
- return (cached = re);
-}
-
-/**
- * Expose negation string
- */
-
-module.exports.not = NOT_REGEX;
diff --git a/node_modules/nanomatch/lib/utils.js b/node_modules/nanomatch/lib/utils.js
deleted file mode 100644
index 0cf1501..0000000
--- a/node_modules/nanomatch/lib/utils.js
+++ /dev/null
@@ -1,379 +0,0 @@
-'use strict';
-
-var utils = module.exports;
-var path = require('path');
-
-/**
- * Module dependencies
- */
-
-var isWindows = require('is-windows')();
-var Snapdragon = require('snapdragon');
-utils.define = require('define-property');
-utils.diff = require('arr-diff');
-utils.extend = require('extend-shallow');
-utils.pick = require('object.pick');
-utils.typeOf = require('kind-of');
-utils.unique = require('array-unique');
-
-/**
- * Returns true if the given value is effectively an empty string
- */
-
-utils.isEmptyString = function(val) {
- return String(val) === '' || String(val) === './';
-};
-
-/**
- * Returns true if the platform is windows, or `path.sep` is `\\`.
- * This is defined as a function to allow `path.sep` to be set in unit tests,
- * or by the user, if there is a reason to do so.
- * @return {Boolean}
- */
-
-utils.isWindows = function() {
- return path.sep === '\\' || isWindows === true;
-};
-
-/**
- * Return the last element from an array
- */
-
-utils.last = function(arr, n) {
- return arr[arr.length - (n || 1)];
-};
-
-/**
- * Get the `Snapdragon` instance to use
- */
-
-utils.instantiate = function(ast, options) {
- var snapdragon;
- // if an instance was created by `.parse`, use that instance
- if (utils.typeOf(ast) === 'object' && ast.snapdragon) {
- snapdragon = ast.snapdragon;
- // if the user supplies an instance on options, use that instance
- } else if (utils.typeOf(options) === 'object' && options.snapdragon) {
- snapdragon = options.snapdragon;
- // create a new instance
- } else {
- snapdragon = new Snapdragon(options);
- }
-
- utils.define(snapdragon, 'parse', function(str, options) {
- var parsed = Snapdragon.prototype.parse.call(this, str, options);
- parsed.input = str;
-
- // escape unmatched brace/bracket/parens
- var last = this.parser.stack.pop();
- if (last && this.options.strictErrors !== true) {
- var open = last.nodes[0];
- var inner = last.nodes[1];
- if (last.type === 'bracket') {
- if (inner.val.charAt(0) === '[') {
- inner.val = '\\' + inner.val;
- }
-
- } else {
- open.val = '\\' + open.val;
- var sibling = open.parent.nodes[1];
- if (sibling.type === 'star') {
- sibling.loose = true;
- }
- }
- }
-
- // add non-enumerable parser reference
- utils.define(parsed, 'parser', this.parser);
- return parsed;
- });
-
- return snapdragon;
-};
-
-/**
- * Create the key to use for memoization. The key is generated
- * by iterating over the options and concatenating key-value pairs
- * to the pattern string.
- */
-
-utils.createKey = function(pattern, options) {
- if (typeof options === 'undefined') {
- return pattern;
- }
- var key = pattern;
- for (var prop in options) {
- if (options.hasOwnProperty(prop)) {
- key += ';' + prop + '=' + String(options[prop]);
- }
- }
- return key;
-};
-
-/**
- * Cast `val` to an array
- * @return {Array}
- */
-
-utils.arrayify = function(val) {
- if (typeof val === 'string') return [val];
- return val ? (Array.isArray(val) ? val : [val]) : [];
-};
-
-/**
- * Return true if `val` is a non-empty string
- */
-
-utils.isString = function(val) {
- return typeof val === 'string';
-};
-
-/**
- * Return true if `val` is a non-empty string
- */
-
-utils.isRegex = function(val) {
- return utils.typeOf(val) === 'regexp';
-};
-
-/**
- * Return true if `val` is a non-empty string
- */
-
-utils.isObject = function(val) {
- return utils.typeOf(val) === 'object';
-};
-
-/**
- * Escape regex characters in the given string
- */
-
-utils.escapeRegex = function(str) {
- return str.replace(/[-[\]{}()^$|*+?.\\/\s]/g, '\\$&');
-};
-
-/**
- * Combines duplicate characters in the provided `input` string.
- * @param {String} `input`
- * @returns {String}
- */
-
-utils.combineDupes = function(input, patterns) {
- patterns = utils.arrayify(patterns).join('|').split('|');
- patterns = patterns.map(function(s) {
- return s.replace(/\\?([+*\\/])/g, '\\$1');
- });
- var substr = patterns.join('|');
- var regex = new RegExp('(' + substr + ')(?=\\1)', 'g');
- return input.replace(regex, '');
-};
-
-/**
- * Returns true if the given `str` has special characters
- */
-
-utils.hasSpecialChars = function(str) {
- return /(?:(?:(^|\/)[!.])|[*?+()|[\]{}]|[+@]\()/.test(str);
-};
-
-/**
- * Normalize slashes in the given filepath.
- *
- * @param {String} `filepath`
- * @return {String}
- */
-
-utils.toPosixPath = function(str) {
- return str.replace(/\\+/g, '/');
-};
-
-/**
- * Strip backslashes before special characters in a string.
- *
- * @param {String} `str`
- * @return {String}
- */
-
-utils.unescape = function(str) {
- return utils.toPosixPath(str.replace(/\\(?=[*+?!.])/g, ''));
-};
-
-/**
- * Strip the drive letter from a windows filepath
- * @param {String} `fp`
- * @return {String}
- */
-
-utils.stripDrive = function(fp) {
- return utils.isWindows() ? fp.replace(/^[a-z]:[\\/]+?/i, '/') : fp;
-};
-
-/**
- * Strip the prefix from a filepath
- * @param {String} `fp`
- * @return {String}
- */
-
-utils.stripPrefix = function(str) {
- if (str.charAt(0) === '.' && (str.charAt(1) === '/' || str.charAt(1) === '\\')) {
- return str.slice(2);
- }
- return str;
-};
-
-/**
- * Returns true if `str` is a common character that doesn't need
- * to be processed to be used for matching.
- * @param {String} `str`
- * @return {Boolean}
- */
-
-utils.isSimpleChar = function(str) {
- return str.trim() === '' || str === '.';
-};
-
-/**
- * Returns true if the given str is an escaped or
- * unescaped path character
- */
-
-utils.isSlash = function(str) {
- return str === '/' || str === '\\/' || str === '\\' || str === '\\\\';
-};
-
-/**
- * Returns a function that returns true if the given
- * pattern matches or contains a `filepath`
- *
- * @param {String} `pattern`
- * @return {Function}
- */
-
-utils.matchPath = function(pattern, options) {
- return (options && options.contains)
- ? utils.containsPattern(pattern, options)
- : utils.equalsPattern(pattern, options);
-};
-
-/**
- * Returns true if the given (original) filepath or unixified path are equal
- * to the given pattern.
- */
-
-utils._equals = function(filepath, unixPath, pattern) {
- return pattern === filepath || pattern === unixPath;
-};
-
-/**
- * Returns true if the given (original) filepath or unixified path contain
- * the given pattern.
- */
-
-utils._contains = function(filepath, unixPath, pattern) {
- return filepath.indexOf(pattern) !== -1 || unixPath.indexOf(pattern) !== -1;
-};
-
-/**
- * Returns a function that returns true if the given
- * pattern is the same as a given `filepath`
- *
- * @param {String} `pattern`
- * @return {Function}
- */
-
-utils.equalsPattern = function(pattern, options) {
- var unixify = utils.unixify(options);
- options = options || {};
-
- return function fn(filepath) {
- var equal = utils._equals(filepath, unixify(filepath), pattern);
- if (equal === true || options.nocase !== true) {
- return equal;
- }
- var lower = filepath.toLowerCase();
- return utils._equals(lower, unixify(lower), pattern);
- };
-};
-
-/**
- * Returns a function that returns true if the given
- * pattern contains a `filepath`
- *
- * @param {String} `pattern`
- * @return {Function}
- */
-
-utils.containsPattern = function(pattern, options) {
- var unixify = utils.unixify(options);
- options = options || {};
-
- return function(filepath) {
- var contains = utils._contains(filepath, unixify(filepath), pattern);
- if (contains === true || options.nocase !== true) {
- return contains;
- }
- var lower = filepath.toLowerCase();
- return utils._contains(lower, unixify(lower), pattern);
- };
-};
-
-/**
- * Returns a function that returns true if the given
- * regex matches the `filename` of a file path.
- *
- * @param {RegExp} `re` Matching regex
- * @return {Function}
- */
-
-utils.matchBasename = function(re) {
- return function(filepath) {
- return re.test(filepath) || re.test(path.basename(filepath));
- };
-};
-
-/**
- * Returns the given value unchanced.
- * @return {any}
- */
-
-utils.identity = function(val) {
- return val;
-};
-
-/**
- * Determines the filepath to return based on the provided options.
- * @return {any}
- */
-
-utils.value = function(str, unixify, options) {
- if (options && options.unixify === false) {
- return str;
- }
- if (options && typeof options.unixify === 'function') {
- return options.unixify(str);
- }
- return unixify(str);
-};
-
-/**
- * Returns a function that normalizes slashes in a string to forward
- * slashes, strips `./` from beginning of paths, and optionally unescapes
- * special characters.
- * @return {Function}
- */
-
-utils.unixify = function(options) {
- var opts = options || {};
- return function(filepath) {
- if (opts.stripPrefix !== false) {
- filepath = utils.stripPrefix(filepath);
- }
- if (opts.unescape === true) {
- filepath = utils.unescape(filepath);
- }
- if (opts.unixify === true || utils.isWindows()) {
- filepath = utils.toPosixPath(filepath);
- }
- return filepath;
- };
-};
diff --git a/node_modules/nanomatch/node_modules/extend-shallow/LICENSE b/node_modules/nanomatch/node_modules/extend-shallow/LICENSE
deleted file mode 100644
index 99c9369..0000000
--- a/node_modules/nanomatch/node_modules/extend-shallow/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2015, 2017, 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/nanomatch/node_modules/extend-shallow/README.md b/node_modules/nanomatch/node_modules/extend-shallow/README.md
deleted file mode 100644
index dee226f..0000000
--- a/node_modules/nanomatch/node_modules/extend-shallow/README.md
+++ /dev/null
@@ -1,97 +0,0 @@
-# extend-shallow [![NPM version](https://img.shields.io/npm/v/extend-shallow.svg?style=flat)](https://www.npmjs.com/package/extend-shallow) [![NPM monthly downloads](https://img.shields.io/npm/dm/extend-shallow.svg?style=flat)](https://npmjs.org/package/extend-shallow) [![NPM total downloads](https://img.shields.io/npm/dt/extend-shallow.svg?style=flat)](https://npmjs.org/package/extend-shallow) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/extend-shallow.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/extend-shallow)
-
-> Extend an object with the properties of additional objects. node.js/javascript util.
-
-Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save extend-shallow
-```
-
-## 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'}
-```
-
-## About
-
-
-Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-
-
-
-Running Tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-
-
-
-Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-
-
-### Related projects
-
-You might also be interested in these projects:
-
-* [extend-shallow](https://www.npmjs.com/package/extend-shallow): Extend an object with the properties of additional objects. node.js/javascript util. | [homepage](https://github.com/jonschlinkert/extend-shallow "Extend an object with the properties of additional objects. node.js/javascript util.")
-* [for-in](https://www.npmjs.com/package/for-in): Iterate over the own and inherited enumerable properties of an object, and return an object… [more](https://github.com/jonschlinkert/for-in) | [homepage](https://github.com/jonschlinkert/for-in "Iterate over the own and inherited enumerable properties of an object, and return an object with properties that evaluate to true from the callback. Exit early by returning `false`. JavaScript/Node.js")
-* [for-own](https://www.npmjs.com/package/for-own): Iterate over the own enumerable properties of an object, and return an object with properties… [more](https://github.com/jonschlinkert/for-own) | [homepage](https://github.com/jonschlinkert/for-own "Iterate over the own enumerable properties of an object, and return an object with properties that evaluate to true from the callback. Exit early by returning `false`. JavaScript/Node.js.")
-* [is-plain-object](https://www.npmjs.com/package/is-plain-object): Returns true if an object was created by the `Object` constructor. | [homepage](https://github.com/jonschlinkert/is-plain-object "Returns true if an object was created by the `Object` constructor.")
-* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.")
-* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.")
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 33 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 1 | [pdehaan](https://github.com/pdehaan) |
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on November 19, 2017._
\ No newline at end of file
diff --git a/node_modules/nanomatch/node_modules/extend-shallow/index.js b/node_modules/nanomatch/node_modules/extend-shallow/index.js
deleted file mode 100644
index c9582f8..0000000
--- a/node_modules/nanomatch/node_modules/extend-shallow/index.js
+++ /dev/null
@@ -1,60 +0,0 @@
-'use strict';
-
-var isExtendable = require('is-extendable');
-var assignSymbols = require('assign-symbols');
-
-module.exports = Object.assign || function(obj/*, objects*/) {
- if (obj === null || typeof obj === 'undefined') {
- throw new TypeError('Cannot convert undefined or null to object');
- }
- if (!isObject(obj)) {
- obj = {};
- }
- for (var i = 1; i < arguments.length; i++) {
- var val = arguments[i];
- if (isString(val)) {
- val = toObject(val);
- }
- if (isObject(val)) {
- assign(obj, val);
- assignSymbols(obj, val);
- }
- }
- return obj;
-};
-
-function assign(a, b) {
- for (var key in b) {
- if (hasOwn(b, key)) {
- a[key] = b[key];
- }
- }
-}
-
-function isString(val) {
- return (val && typeof val === 'string');
-}
-
-function toObject(str) {
- var obj = {};
- for (var i in str) {
- obj[i] = str[i];
- }
- return obj;
-}
-
-function isObject(val) {
- return (val && typeof val === 'object') || isExtendable(val);
-}
-
-/**
- * Returns true if the given `key` is an own property of `obj`.
- */
-
-function hasOwn(obj, key) {
- return Object.prototype.hasOwnProperty.call(obj, key);
-}
-
-function isEnum(obj, key) {
- return Object.prototype.propertyIsEnumerable.call(obj, key);
-}
diff --git a/node_modules/nanomatch/node_modules/extend-shallow/package.json b/node_modules/nanomatch/node_modules/extend-shallow/package.json
deleted file mode 100644
index e5e9105..0000000
--- a/node_modules/nanomatch/node_modules/extend-shallow/package.json
+++ /dev/null
@@ -1,83 +0,0 @@
-{
- "name": "extend-shallow",
- "description": "Extend an object with the properties of additional objects. node.js/javascript util.",
- "version": "3.0.2",
- "homepage": "https://github.com/jonschlinkert/extend-shallow",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Peter deHaan (http://about.me/peterdehaan)"
- ],
- "repository": "jonschlinkert/extend-shallow",
- "bugs": {
- "url": "https://github.com/jonschlinkert/extend-shallow/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- },
- "devDependencies": {
- "array-slice": "^1.0.0",
- "benchmarked": "^2.0.0",
- "for-own": "^1.0.0",
- "gulp-format-md": "^1.0.0",
- "is-plain-object": "^2.0.4",
- "kind-of": "^6.0.1",
- "minimist": "^1.2.0",
- "mocha": "^3.5.3",
- "object-assign": "^4.1.1"
- },
- "keywords": [
- "assign",
- "clone",
- "extend",
- "merge",
- "obj",
- "object",
- "object-assign",
- "object.assign",
- "prop",
- "properties",
- "property",
- "props",
- "shallow",
- "util",
- "utility",
- "utils",
- "value"
- ],
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "related": {
- "list": [
- "extend-shallow",
- "for-in",
- "for-own",
- "is-plain-object",
- "isobject",
- "kind-of"
- ]
- },
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/nanomatch/node_modules/is-extendable/LICENSE b/node_modules/nanomatch/node_modules/is-extendable/LICENSE
deleted file mode 100644
index c0d7f13..0000000
--- a/node_modules/nanomatch/node_modules/is-extendable/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015-2017, 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.
\ No newline at end of file
diff --git a/node_modules/nanomatch/node_modules/is-extendable/README.md b/node_modules/nanomatch/node_modules/is-extendable/README.md
deleted file mode 100644
index 875b56a..0000000
--- a/node_modules/nanomatch/node_modules/is-extendable/README.md
+++ /dev/null
@@ -1,88 +0,0 @@
-# is-extendable [![NPM version](https://img.shields.io/npm/v/is-extendable.svg?style=flat)](https://www.npmjs.com/package/is-extendable) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-extendable.svg?style=flat)](https://npmjs.org/package/is-extendable) [![NPM total downloads](https://img.shields.io/npm/dt/is-extendable.svg?style=flat)](https://npmjs.org/package/is-extendable) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-extendable.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-extendable)
-
-> Returns true if a value is a plain object, array or function.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save is-extendable
-```
-
-## Usage
-
-```js
-var isExtendable = require('is-extendable');
-```
-
-Returns true if the value is any of the following:
-
-* array
-* plain object
-* function
-
-## Notes
-
-All objects in JavaScript can have keys, but it's a pain to check for this, since we ether need to verify that the value is not `null` or `undefined` and:
-
-* the value is not a primitive, or
-* that the object is a plain object, function or array
-
-Also note that an `extendable` object is not the same as an [extensible object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isExtensible), which is one that (in es6) is not sealed, frozen, or marked as non-extensible using `preventExtensions`.
-
-## Release history
-
-### v1.0.0 - 2017/07/20
-
-**Breaking changes**
-
-* No longer considers date, regex or error objects to be extendable
-
-## About
-
-### Related projects
-
-* [assign-deep](https://www.npmjs.com/package/assign-deep): Deeply assign the enumerable properties and/or es6 Symbol properies of source objects to the target… [more](https://github.com/jonschlinkert/assign-deep) | [homepage](https://github.com/jonschlinkert/assign-deep "Deeply assign the enumerable properties and/or es6 Symbol properies of source objects to the target (first) object.")
-* [is-equal-shallow](https://www.npmjs.com/package/is-equal-shallow): Does a shallow comparison of two objects, returning false if the keys or values differ. | [homepage](https://github.com/jonschlinkert/is-equal-shallow "Does a shallow comparison of two objects, returning false if the keys or values differ.")
-* [is-plain-object](https://www.npmjs.com/package/is-plain-object): Returns true if an object was created by the `Object` constructor. | [homepage](https://github.com/jonschlinkert/is-plain-object "Returns true if an object was created by the `Object` constructor.")
-* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.")
-* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on July 20, 2017._
\ No newline at end of file
diff --git a/node_modules/nanomatch/node_modules/is-extendable/index.d.ts b/node_modules/nanomatch/node_modules/is-extendable/index.d.ts
deleted file mode 100644
index b96d507..0000000
--- a/node_modules/nanomatch/node_modules/is-extendable/index.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export = isExtendable;
-
-declare function isExtendable(val: any): boolean;
-
-declare namespace isExtendable {}
diff --git a/node_modules/nanomatch/node_modules/is-extendable/index.js b/node_modules/nanomatch/node_modules/is-extendable/index.js
deleted file mode 100644
index a8b26ad..0000000
--- a/node_modules/nanomatch/node_modules/is-extendable/index.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/*!
- * is-extendable
- *
- * Copyright (c) 2015-2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-var isPlainObject = require('is-plain-object');
-
-module.exports = function isExtendable(val) {
- return isPlainObject(val) || typeof val === 'function' || Array.isArray(val);
-};
diff --git a/node_modules/nanomatch/node_modules/is-extendable/package.json b/node_modules/nanomatch/node_modules/is-extendable/package.json
deleted file mode 100644
index 2aaab65..0000000
--- a/node_modules/nanomatch/node_modules/is-extendable/package.json
+++ /dev/null
@@ -1,67 +0,0 @@
-{
- "name": "is-extendable",
- "description": "Returns true if a value is a plain object, array or function.",
- "version": "1.0.1",
- "homepage": "https://github.com/jonschlinkert/is-extendable",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/is-extendable",
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-extendable/issues"
- },
- "license": "MIT",
- "files": [
- "index.js",
- "index.d.ts"
- ],
- "main": "index.js",
- "types": "index.d.ts",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "is-plain-object": "^2.0.4"
- },
- "devDependencies": {
- "gulp-format-md": "^1.0.0",
- "mocha": "^3.4.2"
- },
- "keywords": [
- "array",
- "assign",
- "check",
- "date",
- "extend",
- "extendable",
- "extensible",
- "function",
- "is",
- "object",
- "regex",
- "test"
- ],
- "verb": {
- "related": {
- "list": [
- "assign-deep",
- "is-equal-shallow",
- "is-plain-object",
- "isobject",
- "kind-of"
- ]
- },
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/nanomatch/node_modules/is-plain-object/LICENSE b/node_modules/nanomatch/node_modules/is-plain-object/LICENSE
deleted file mode 100644
index 3f2eca1..0000000
--- a/node_modules/nanomatch/node_modules/is-plain-object/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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/nanomatch/node_modules/is-plain-object/README.md b/node_modules/nanomatch/node_modules/is-plain-object/README.md
deleted file mode 100644
index 1f9d0c8..0000000
--- a/node_modules/nanomatch/node_modules/is-plain-object/README.md
+++ /dev/null
@@ -1,104 +0,0 @@
-# is-plain-object [![NPM version](https://img.shields.io/npm/v/is-plain-object.svg?style=flat)](https://www.npmjs.com/package/is-plain-object) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-plain-object.svg?style=flat)](https://npmjs.org/package/is-plain-object) [![NPM total downloads](https://img.shields.io/npm/dt/is-plain-object.svg?style=flat)](https://npmjs.org/package/is-plain-object) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-plain-object.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-plain-object)
-
-> Returns true if an object was created by the `Object` constructor.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save is-plain-object
-```
-
-Use [isobject](https://github.com/jonschlinkert/isobject) if you only want to check if the value is an object and not an array or null.
-
-## Usage
-
-```js
-var isPlainObject = require('is-plain-object');
-```
-
-**true** when created by the `Object` constructor.
-
-```js
-isPlainObject(Object.create({}));
-//=> true
-isPlainObject(Object.create(Object.prototype));
-//=> true
-isPlainObject({foo: 'bar'});
-//=> true
-isPlainObject({});
-//=> true
-```
-
-**false** when not created by the `Object` constructor.
-
-```js
-isPlainObject(1);
-//=> false
-isPlainObject(['foo', 'bar']);
-//=> false
-isPlainObject([]);
-//=> false
-isPlainObject(new Foo);
-//=> false
-isPlainObject(null);
-//=> false
-isPlainObject(Object.create(null));
-//=> false
-```
-
-## About
-
-### Related projects
-
-* [is-number](https://www.npmjs.com/package/is-number): Returns true if the value is a number. comprehensive tests. | [homepage](https://github.com/jonschlinkert/is-number "Returns true if the value is a number. comprehensive tests.")
-* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.")
-* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 17 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 6 | [stevenvachon](https://github.com/stevenvachon) |
-| 3 | [onokumus](https://github.com/onokumus) |
-| 1 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) |
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on July 11, 2017._
\ No newline at end of file
diff --git a/node_modules/nanomatch/node_modules/is-plain-object/index.d.ts b/node_modules/nanomatch/node_modules/is-plain-object/index.d.ts
deleted file mode 100644
index 74a44e9..0000000
--- a/node_modules/nanomatch/node_modules/is-plain-object/index.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export = isPlainObject;
-
-declare function isPlainObject(o: any): boolean;
-
-declare namespace isPlainObject {}
diff --git a/node_modules/nanomatch/node_modules/is-plain-object/index.js b/node_modules/nanomatch/node_modules/is-plain-object/index.js
deleted file mode 100644
index c328484..0000000
--- a/node_modules/nanomatch/node_modules/is-plain-object/index.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/*!
- * is-plain-object
- *
- * Copyright (c) 2014-2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-var isObject = require('isobject');
-
-function isObjectObject(o) {
- return isObject(o) === true
- && Object.prototype.toString.call(o) === '[object Object]';
-}
-
-module.exports = function isPlainObject(o) {
- var ctor,prot;
-
- if (isObjectObject(o) === false) return false;
-
- // If has modified constructor
- ctor = o.constructor;
- if (typeof ctor !== 'function') return false;
-
- // If has modified prototype
- prot = ctor.prototype;
- if (isObjectObject(prot) === false) return false;
-
- // If constructor does not have an Object-specific method
- if (prot.hasOwnProperty('isPrototypeOf') === false) {
- return false;
- }
-
- // Most likely a plain Object
- return true;
-};
diff --git a/node_modules/nanomatch/node_modules/is-plain-object/package.json b/node_modules/nanomatch/node_modules/is-plain-object/package.json
deleted file mode 100644
index dd60498..0000000
--- a/node_modules/nanomatch/node_modules/is-plain-object/package.json
+++ /dev/null
@@ -1,79 +0,0 @@
-{
- "name": "is-plain-object",
- "description": "Returns true if an object was created by the `Object` constructor.",
- "version": "2.0.4",
- "homepage": "https://github.com/jonschlinkert/is-plain-object",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Osman Nuri Okumuş (http://onokumus.com)",
- "Steven Vachon (https://svachon.com)",
- "(https://github.com/wtgtybhertgeghgtwtg)"
- ],
- "repository": "jonschlinkert/is-plain-object",
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-plain-object/issues"
- },
- "license": "MIT",
- "files": [
- "index.d.ts",
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "browserify": "browserify index.js --standalone isPlainObject | uglifyjs --compress --mangle -o browser/is-plain-object.js",
- "test_browser": "mocha-phantomjs test/browser.html",
- "test_node": "mocha",
- "test": "npm run test_node && npm run browserify && npm run test_browser"
- },
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "devDependencies": {
- "browserify": "^14.4.0",
- "chai": "^4.0.2",
- "gulp-format-md": "^1.0.0",
- "mocha": "^3.4.2",
- "mocha-phantomjs": "^4.1.0",
- "phantomjs": "^2.1.7",
- "uglify-js": "^3.0.24"
- },
- "keywords": [
- "check",
- "is",
- "is-object",
- "isobject",
- "javascript",
- "kind",
- "kind-of",
- "object",
- "plain",
- "type",
- "typeof",
- "value"
- ],
- "types": "index.d.ts",
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "is-number",
- "isobject",
- "kind-of"
- ]
- },
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/nanomatch/node_modules/kind-of/CHANGELOG.md b/node_modules/nanomatch/node_modules/kind-of/CHANGELOG.md
deleted file mode 100644
index 01687d5..0000000
--- a/node_modules/nanomatch/node_modules/kind-of/CHANGELOG.md
+++ /dev/null
@@ -1,160 +0,0 @@
-# Release history
-
-All notable changes to this project will be documented in this file.
-
-The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
-and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
-
-
- Guiding Principles
-
-- Changelogs are for humans, not machines.
-- There should be an entry for every single version.
-- The same types of changes should be grouped.
-- Versions and sections should be linkable.
-- The latest version comes first.
-- The release date of each versions is displayed.
-- Mention whether you follow Semantic Versioning.
-
-
-
-
- Types of changes
-
-Changelog entries are classified using the following labels _(from [keep-a-changelog](http://keepachangelog.com/)_):
-
-- `Added` for new features.
-- `Changed` for changes in existing functionality.
-- `Deprecated` for soon-to-be removed features.
-- `Removed` for now removed features.
-- `Fixed` for any bug fixes.
-- `Security` in case of vulnerabilities.
-
-
-
-## [6.0.3] - 2020-01-16
-
-- Merge pull request #31 for issue #30
-
-## [6.0.0] - 2017-10-13
-
-- refactor code to be more performant
-- refactor benchmarks
-
-## [5.1.0] - 2017-10-13
-
-**Added**
-
-- Merge pull request #15 from aretecode/patch-1
-- adds support and tests for string & array iterators
-
-**Changed**
-
-- updates benchmarks
-
-## [5.0.2] - 2017-08-02
-
-- Merge pull request #14 from struct78/master
-- Added `undefined` check
-
-## [5.0.0] - 2017-06-21
-
-- Merge pull request #12 from aretecode/iterator
-- Set Iterator + Map Iterator
-- streamline `isbuffer`, minor edits
-
-## [4.0.0] - 2017-05-19
-
-- Merge pull request #8 from tunnckoCore/master
-- update deps
-
-## [3.2.2] - 2017-05-16
-
-- fix version
-
-## [3.2.1] - 2017-05-16
-
-- add browserify
-
-## [3.2.0] - 2017-04-25
-
-- Merge pull request #10 from ksheedlo/unrequire-buffer
-- add `promise` support and tests
-- Remove unnecessary `Buffer` check
-
-## [3.1.0] - 2016-12-07
-
-- Merge pull request #7 from laggingreflex/err
-- add support for `error` and tests
-- run update
-
-## [3.0.4] - 2016-07-29
-
-- move tests
-- run update
-
-## [3.0.3] - 2016-05-03
-
-- fix prepublish script
-- remove unused dep
-
-## [3.0.0] - 2015-11-17
-
-- add typed array support
-- Merge pull request #5 from miguelmota/typed-arrays
-- adds new tests
-
-## [2.0.1] - 2015-08-21
-
-- use `is-buffer` module
-
-## [2.0.0] - 2015-05-31
-
-- Create fallback for `Array.isArray` if used as a browser package
-- Merge pull request #2 from dtothefp/patch-1
-- Merge pull request #3 from pdehaan/patch-1
-- Merge branch 'master' of https://github.com/chorks/kind-of into chorks-master
-- optimizations, mostly date and regex
-
-## [1.1.0] - 2015-02-09
-
-- adds `buffer` support
-- adds tests for `buffer`
-
-## [1.0.0] - 2015-01-19
-
-- update benchmarks
-- optimizations based on benchmarks
-
-## [0.1.2] - 2014-10-26
-
-- return `typeof` value if it's not an object. very slight speed improvement
-- use `.slice`
-- adds benchmarks
-
-## [0.1.0] - 2014-9-26
-
-- first commit
-
-[6.0.0]: https://github.com/jonschlinkert/kind-of/compare/5.1.0...6.0.0
-[5.1.0]: https://github.com/jonschlinkert/kind-of/compare/5.0.2...5.1.0
-[5.0.2]: https://github.com/jonschlinkert/kind-of/compare/5.0.1...5.0.2
-[5.0.1]: https://github.com/jonschlinkert/kind-of/compare/5.0.0...5.0.1
-[5.0.0]: https://github.com/jonschlinkert/kind-of/compare/4.0.0...5.0.0
-[4.0.0]: https://github.com/jonschlinkert/kind-of/compare/3.2.2...4.0.0
-[3.2.2]: https://github.com/jonschlinkert/kind-of/compare/3.2.1...3.2.2
-[3.2.1]: https://github.com/jonschlinkert/kind-of/compare/3.2.0...3.2.1
-[3.2.0]: https://github.com/jonschlinkert/kind-of/compare/3.1.0...3.2.0
-[3.1.0]: https://github.com/jonschlinkert/kind-of/compare/3.0.4...3.1.0
-[3.0.4]: https://github.com/jonschlinkert/kind-of/compare/3.0.3...3.0.4
-[3.0.3]: https://github.com/jonschlinkert/kind-of/compare/3.0.0...3.0.3
-[3.0.0]: https://github.com/jonschlinkert/kind-of/compare/2.0.1...3.0.0
-[2.0.1]: https://github.com/jonschlinkert/kind-of/compare/2.0.0...2.0.1
-[2.0.0]: https://github.com/jonschlinkert/kind-of/compare/1.1.0...2.0.0
-[1.1.0]: https://github.com/jonschlinkert/kind-of/compare/1.0.0...1.1.0
-[1.0.0]: https://github.com/jonschlinkert/kind-of/compare/0.1.2...1.0.0
-[0.1.2]: https://github.com/jonschlinkert/kind-of/compare/0.1.0...0.1.2
-[0.1.0]: https://github.com/jonschlinkert/kind-of/commit/2fae09b0b19b1aadb558e9be39f0c3ef6034eb87
-
-[Unreleased]: https://github.com/jonschlinkert/kind-of/compare/0.1.2...HEAD
-[keep-a-changelog]: https://github.com/olivierlacan/keep-a-changelog
\ No newline at end of file
diff --git a/node_modules/nanomatch/node_modules/kind-of/LICENSE b/node_modules/nanomatch/node_modules/kind-of/LICENSE
deleted file mode 100644
index 3f2eca1..0000000
--- a/node_modules/nanomatch/node_modules/kind-of/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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/nanomatch/node_modules/kind-of/README.md b/node_modules/nanomatch/node_modules/kind-of/README.md
deleted file mode 100644
index 0411dc5..0000000
--- a/node_modules/nanomatch/node_modules/kind-of/README.md
+++ /dev/null
@@ -1,367 +0,0 @@
-# kind-of [![NPM version](https://img.shields.io/npm/v/kind-of.svg?style=flat)](https://www.npmjs.com/package/kind-of) [![NPM monthly downloads](https://img.shields.io/npm/dm/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![NPM total downloads](https://img.shields.io/npm/dt/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/kind-of.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/kind-of)
-
-> Get the native type of a value.
-
-Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save kind-of
-```
-
-Install with [bower](https://bower.io/)
-
-```sh
-$ bower install kind-of --save
-```
-
-## Why use this?
-
-1. [it's fast](#benchmarks) | [optimizations](#optimizations)
-2. [better type checking](#better-type-checking)
-
-## Usage
-
-> es5, es6, and browser ready
-
-```js
-var kindOf = require('kind-of');
-
-kindOf(undefined);
-//=> 'undefined'
-
-kindOf(null);
-//=> 'null'
-
-kindOf(true);
-//=> 'boolean'
-
-kindOf(false);
-//=> 'boolean'
-
-kindOf(new Buffer(''));
-//=> 'buffer'
-
-kindOf(42);
-//=> 'number'
-
-kindOf('str');
-//=> 'string'
-
-kindOf(arguments);
-//=> 'arguments'
-
-kindOf({});
-//=> 'object'
-
-kindOf(Object.create(null));
-//=> 'object'
-
-kindOf(new Test());
-//=> 'object'
-
-kindOf(new Date());
-//=> 'date'
-
-kindOf([1, 2, 3]);
-//=> 'array'
-
-kindOf(/foo/);
-//=> 'regexp'
-
-kindOf(new RegExp('foo'));
-//=> 'regexp'
-
-kindOf(new Error('error'));
-//=> 'error'
-
-kindOf(function () {});
-//=> 'function'
-
-kindOf(function * () {});
-//=> 'generatorfunction'
-
-kindOf(Symbol('str'));
-//=> 'symbol'
-
-kindOf(new Map());
-//=> 'map'
-
-kindOf(new WeakMap());
-//=> 'weakmap'
-
-kindOf(new Set());
-//=> 'set'
-
-kindOf(new WeakSet());
-//=> 'weakset'
-
-kindOf(new Int8Array());
-//=> 'int8array'
-
-kindOf(new Uint8Array());
-//=> 'uint8array'
-
-kindOf(new Uint8ClampedArray());
-//=> 'uint8clampedarray'
-
-kindOf(new Int16Array());
-//=> 'int16array'
-
-kindOf(new Uint16Array());
-//=> 'uint16array'
-
-kindOf(new Int32Array());
-//=> 'int32array'
-
-kindOf(new Uint32Array());
-//=> 'uint32array'
-
-kindOf(new Float32Array());
-//=> 'float32array'
-
-kindOf(new Float64Array());
-//=> 'float64array'
-```
-
-## Benchmarks
-
-Benchmarked against [typeof](http://github.com/CodingFu/typeof) and [type-of](https://github.com/ForbesLindesay/type-of).
-
-```bash
-# arguments (32 bytes)
- kind-of x 17,024,098 ops/sec ±1.90% (86 runs sampled)
- lib-type-of x 11,926,235 ops/sec ±1.34% (83 runs sampled)
- lib-typeof x 9,245,257 ops/sec ±1.22% (87 runs sampled)
-
- fastest is kind-of (by 161% avg)
-
-# array (22 bytes)
- kind-of x 17,196,492 ops/sec ±1.07% (88 runs sampled)
- lib-type-of x 8,838,283 ops/sec ±1.02% (87 runs sampled)
- lib-typeof x 8,677,848 ops/sec ±0.87% (87 runs sampled)
-
- fastest is kind-of (by 196% avg)
-
-# boolean (24 bytes)
- kind-of x 16,841,600 ops/sec ±1.10% (86 runs sampled)
- lib-type-of x 8,096,787 ops/sec ±0.95% (87 runs sampled)
- lib-typeof x 8,423,345 ops/sec ±1.15% (86 runs sampled)
-
- fastest is kind-of (by 204% avg)
-
-# buffer (38 bytes)
- kind-of x 14,848,060 ops/sec ±1.05% (86 runs sampled)
- lib-type-of x 3,671,577 ops/sec ±1.49% (87 runs sampled)
- lib-typeof x 8,360,236 ops/sec ±1.24% (86 runs sampled)
-
- fastest is kind-of (by 247% avg)
-
-# date (30 bytes)
- kind-of x 16,067,761 ops/sec ±1.58% (86 runs sampled)
- lib-type-of x 8,954,436 ops/sec ±1.40% (87 runs sampled)
- lib-typeof x 8,488,307 ops/sec ±1.51% (84 runs sampled)
-
- fastest is kind-of (by 184% avg)
-
-# error (36 bytes)
- kind-of x 9,634,090 ops/sec ±1.12% (89 runs sampled)
- lib-type-of x 7,735,624 ops/sec ±1.32% (86 runs sampled)
- lib-typeof x 7,442,160 ops/sec ±1.11% (90 runs sampled)
-
- fastest is kind-of (by 127% avg)
-
-# function (34 bytes)
- kind-of x 10,031,494 ops/sec ±1.27% (86 runs sampled)
- lib-type-of x 9,502,757 ops/sec ±1.17% (89 runs sampled)
- lib-typeof x 8,278,985 ops/sec ±1.08% (88 runs sampled)
-
- fastest is kind-of (by 113% avg)
-
-# null (24 bytes)
- kind-of x 18,159,808 ops/sec ±1.92% (86 runs sampled)
- lib-type-of x 12,927,635 ops/sec ±1.01% (88 runs sampled)
- lib-typeof x 7,958,234 ops/sec ±1.21% (89 runs sampled)
-
- fastest is kind-of (by 174% avg)
-
-# number (22 bytes)
- kind-of x 17,846,779 ops/sec ±0.91% (85 runs sampled)
- lib-type-of x 3,316,636 ops/sec ±1.19% (86 runs sampled)
- lib-typeof x 2,329,477 ops/sec ±2.21% (85 runs sampled)
-
- fastest is kind-of (by 632% avg)
-
-# object-plain (47 bytes)
- kind-of x 7,085,155 ops/sec ±1.05% (88 runs sampled)
- lib-type-of x 8,870,930 ops/sec ±1.06% (83 runs sampled)
- lib-typeof x 8,716,024 ops/sec ±1.05% (87 runs sampled)
-
- fastest is lib-type-of (by 112% avg)
-
-# regex (25 bytes)
- kind-of x 14,196,052 ops/sec ±1.65% (84 runs sampled)
- lib-type-of x 9,554,164 ops/sec ±1.25% (88 runs sampled)
- lib-typeof x 8,359,691 ops/sec ±1.07% (87 runs sampled)
-
- fastest is kind-of (by 158% avg)
-
-# string (33 bytes)
- kind-of x 16,131,428 ops/sec ±1.41% (85 runs sampled)
- lib-type-of x 7,273,172 ops/sec ±1.05% (87 runs sampled)
- lib-typeof x 7,382,635 ops/sec ±1.17% (85 runs sampled)
-
- fastest is kind-of (by 220% avg)
-
-# symbol (34 bytes)
- kind-of x 17,011,537 ops/sec ±1.24% (86 runs sampled)
- lib-type-of x 3,492,454 ops/sec ±1.23% (89 runs sampled)
- lib-typeof x 7,471,235 ops/sec ±2.48% (87 runs sampled)
-
- fastest is kind-of (by 310% avg)
-
-# template-strings (36 bytes)
- kind-of x 15,434,250 ops/sec ±1.46% (83 runs sampled)
- lib-type-of x 7,157,907 ops/sec ±0.97% (87 runs sampled)
- lib-typeof x 7,517,986 ops/sec ±0.92% (86 runs sampled)
-
- fastest is kind-of (by 210% avg)
-
-# undefined (29 bytes)
- kind-of x 19,167,115 ops/sec ±1.71% (87 runs sampled)
- lib-type-of x 15,477,740 ops/sec ±1.63% (85 runs sampled)
- lib-typeof x 19,075,495 ops/sec ±1.17% (83 runs sampled)
-
- fastest is lib-typeof,kind-of
-
-```
-
-## Optimizations
-
-In 7 out of 8 cases, this library is 2x-10x faster than other top libraries included in the benchmarks. There are a few things that lead to this performance advantage, none of them hard and fast rules, but all of them simple and repeatable in almost any code library:
-
-1. Optimize around the fastest and most common use cases first. Of course, this will change from project-to-project, but I took some time to understand how and why `typeof` checks were being used in my own libraries and other libraries I use a lot.
-2. Optimize around bottlenecks - In other words, the order in which conditionals are implemented is significant, because each check is only as fast as the failing checks that came before it. Here, the biggest bottleneck by far is checking for plain objects (an object that was created by the `Object` constructor). I opted to make this check happen by process of elimination rather than brute force up front (e.g. by using something like `val.constructor.name`), so that every other type check would not be penalized it.
-3. Don't do uneccessary processing - why do `.slice(8, -1).toLowerCase();` just to get the word `regex`? It's much faster to do `if (type === '[object RegExp]') return 'regex'`
-4. There is no reason to make the code in a microlib as terse as possible, just to win points for making it shorter. It's always better to favor performant code over terse code. You will always only be using a single `require()` statement to use the library anyway, regardless of how the code is written.
-
-## Better type checking
-
-kind-of seems to be more consistently "correct" than other type checking libs I've looked at. For example, here are some differing results from other popular libs:
-
-### [typeof](https://github.com/CodingFu/typeof) lib
-
-Incorrectly identifies instances of custom constructors (pretty common):
-
-```js
-var typeOf = require('typeof');
-function Test() {}
-console.log(typeOf(new Test()));
-//=> 'test'
-```
-
-Returns `object` instead of `arguments`:
-
-```js
-function foo() {
- console.log(typeOf(arguments)) //=> 'object'
-}
-foo();
-```
-
-### [type-of](https://github.com/ForbesLindesay/type-of) lib
-
-Incorrectly returns `object` for generator functions, buffers, `Map`, `Set`, `WeakMap` and `WeakSet`:
-
-```js
-function * foo() {}
-console.log(typeOf(foo));
-//=> 'object'
-console.log(typeOf(new Buffer('')));
-//=> 'object'
-console.log(typeOf(new Map()));
-//=> 'object'
-console.log(typeOf(new Set()));
-//=> 'object'
-console.log(typeOf(new WeakMap()));
-//=> 'object'
-console.log(typeOf(new WeakSet()));
-//=> 'object'
-```
-
-## About
-
-
-Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-
-
-
-Running Tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-
-
-
-Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-
-
-### Related projects
-
-You might also be interested in these projects:
-
-* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/micromatch/is-glob) | [homepage](https://github.com/micromatch/is-glob "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet")
-* [is-number](https://www.npmjs.com/package/is-number): Returns true if a number or string value is a finite number. Useful for regex… [more](https://github.com/jonschlinkert/is-number) | [homepage](https://github.com/jonschlinkert/is-number "Returns true if a number or string value is a finite number. Useful for regex matches, parsing, user input, etc.")
-* [is-primitive](https://www.npmjs.com/package/is-primitive): Returns `true` if the value is a primitive. | [homepage](https://github.com/jonschlinkert/is-primitive "Returns `true` if the value is a primitive. ")
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 102 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 3 | [aretecode](https://github.com/aretecode) |
-| 2 | [miguelmota](https://github.com/miguelmota) |
-| 1 | [doowb](https://github.com/doowb) |
-| 1 | [dtothefp](https://github.com/dtothefp) |
-| 1 | [ianstormtaylor](https://github.com/ianstormtaylor) |
-| 1 | [ksheedlo](https://github.com/ksheedlo) |
-| 1 | [pdehaan](https://github.com/pdehaan) |
-| 1 | [laggingreflex](https://github.com/laggingreflex) |
-| 1 | [tunnckoCore](https://github.com/tunnckoCore) |
-| 1 | [xiaofen9](https://github.com/xiaofen9) |
-
-### Author
-
-**Jon Schlinkert**
-
-* [GitHub Profile](https://github.com/jonschlinkert)
-* [Twitter Profile](https://twitter.com/jonschlinkert)
-* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert)
-
-### License
-
-Copyright © 2020, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on January 16, 2020._
\ No newline at end of file
diff --git a/node_modules/nanomatch/node_modules/kind-of/index.js b/node_modules/nanomatch/node_modules/kind-of/index.js
deleted file mode 100644
index dfa799b..0000000
--- a/node_modules/nanomatch/node_modules/kind-of/index.js
+++ /dev/null
@@ -1,129 +0,0 @@
-var toString = Object.prototype.toString;
-
-module.exports = function kindOf(val) {
- if (val === void 0) return 'undefined';
- if (val === null) return 'null';
-
- var type = typeof val;
- if (type === 'boolean') return 'boolean';
- if (type === 'string') return 'string';
- if (type === 'number') return 'number';
- if (type === 'symbol') return 'symbol';
- if (type === 'function') {
- return isGeneratorFn(val) ? 'generatorfunction' : 'function';
- }
-
- if (isArray(val)) return 'array';
- if (isBuffer(val)) return 'buffer';
- if (isArguments(val)) return 'arguments';
- if (isDate(val)) return 'date';
- if (isError(val)) return 'error';
- if (isRegexp(val)) return 'regexp';
-
- switch (ctorName(val)) {
- case 'Symbol': return 'symbol';
- case 'Promise': return 'promise';
-
- // Set, Map, WeakSet, WeakMap
- case 'WeakMap': return 'weakmap';
- case 'WeakSet': return 'weakset';
- case 'Map': return 'map';
- case 'Set': return 'set';
-
- // 8-bit typed arrays
- case 'Int8Array': return 'int8array';
- case 'Uint8Array': return 'uint8array';
- case 'Uint8ClampedArray': return 'uint8clampedarray';
-
- // 16-bit typed arrays
- case 'Int16Array': return 'int16array';
- case 'Uint16Array': return 'uint16array';
-
- // 32-bit typed arrays
- case 'Int32Array': return 'int32array';
- case 'Uint32Array': return 'uint32array';
- case 'Float32Array': return 'float32array';
- case 'Float64Array': return 'float64array';
- }
-
- if (isGeneratorObj(val)) {
- return 'generator';
- }
-
- // Non-plain objects
- type = toString.call(val);
- switch (type) {
- case '[object Object]': return 'object';
- // iterators
- case '[object Map Iterator]': return 'mapiterator';
- case '[object Set Iterator]': return 'setiterator';
- case '[object String Iterator]': return 'stringiterator';
- case '[object Array Iterator]': return 'arrayiterator';
- }
-
- // other
- return type.slice(8, -1).toLowerCase().replace(/\s/g, '');
-};
-
-function ctorName(val) {
- return typeof val.constructor === 'function' ? val.constructor.name : null;
-}
-
-function isArray(val) {
- if (Array.isArray) return Array.isArray(val);
- return val instanceof Array;
-}
-
-function isError(val) {
- return val instanceof Error || (typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number');
-}
-
-function isDate(val) {
- if (val instanceof Date) return true;
- return typeof val.toDateString === 'function'
- && typeof val.getDate === 'function'
- && typeof val.setDate === 'function';
-}
-
-function isRegexp(val) {
- if (val instanceof RegExp) return true;
- return typeof val.flags === 'string'
- && typeof val.ignoreCase === 'boolean'
- && typeof val.multiline === 'boolean'
- && typeof val.global === 'boolean';
-}
-
-function isGeneratorFn(name, val) {
- return ctorName(name) === 'GeneratorFunction';
-}
-
-function isGeneratorObj(val) {
- return typeof val.throw === 'function'
- && typeof val.return === 'function'
- && typeof val.next === 'function';
-}
-
-function isArguments(val) {
- try {
- if (typeof val.length === 'number' && typeof val.callee === 'function') {
- return true;
- }
- } catch (err) {
- if (err.message.indexOf('callee') !== -1) {
- return true;
- }
- }
- return false;
-}
-
-/**
- * If you need to support Safari 5-7 (8-10 yr-old browser),
- * take a look at https://github.com/feross/is-buffer
- */
-
-function isBuffer(val) {
- if (val.constructor && typeof val.constructor.isBuffer === 'function') {
- return val.constructor.isBuffer(val);
- }
- return false;
-}
diff --git a/node_modules/nanomatch/node_modules/kind-of/package.json b/node_modules/nanomatch/node_modules/kind-of/package.json
deleted file mode 100644
index 5820cad..0000000
--- a/node_modules/nanomatch/node_modules/kind-of/package.json
+++ /dev/null
@@ -1,88 +0,0 @@
-{
- "name": "kind-of",
- "description": "Get the native type of a value.",
- "version": "6.0.3",
- "homepage": "https://github.com/jonschlinkert/kind-of",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "David Fox-Powell (https://dtothefp.github.io/me)",
- "James (https://twitter.com/aretecode)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Ken Sheedlo (kensheedlo.com)",
- "laggingreflex (https://github.com/laggingreflex)",
- "Miguel Mota (https://miguelmota.com)",
- "Peter deHaan (http://about.me/peterdehaan)",
- "tunnckoCore (https://i.am.charlike.online)"
- ],
- "repository": "jonschlinkert/kind-of",
- "bugs": {
- "url": "https://github.com/jonschlinkert/kind-of/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha",
- "prepublish": "browserify -o browser.js -e index.js -s index --bare"
- },
- "devDependencies": {
- "benchmarked": "^2.0.0",
- "browserify": "^14.4.0",
- "gulp-format-md": "^1.0.0",
- "mocha": "^4.0.1",
- "write": "^1.0.3"
- },
- "keywords": [
- "arguments",
- "array",
- "boolean",
- "check",
- "date",
- "function",
- "is",
- "is-type",
- "is-type-of",
- "kind",
- "kind-of",
- "number",
- "object",
- "of",
- "regexp",
- "string",
- "test",
- "type",
- "type-of",
- "typeof",
- "types"
- ],
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- },
- "related": {
- "list": [
- "is-glob",
- "is-number",
- "is-primitive"
- ]
- },
- "reflinks": [
- "type-of",
- "typeof",
- "verb"
- ]
- }
-}
diff --git a/node_modules/nanomatch/package.json b/node_modules/nanomatch/package.json
deleted file mode 100644
index 0a85f0a..0000000
--- a/node_modules/nanomatch/package.json
+++ /dev/null
@@ -1,134 +0,0 @@
-{
- "name": "nanomatch",
- "description": "Fast, minimal glob matcher for node.js. Similar to micromatch, minimatch and multimatch, but complete Bash 4.3 wildcard support only (no support for exglobs, posix brackets or braces)",
- "version": "1.2.13",
- "homepage": "https://github.com/micromatch/nanomatch",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Devon Govett (http://badassjs.com)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)"
- ],
- "repository": "micromatch/nanomatch",
- "bugs": {
- "url": "https://github.com/micromatch/nanomatch/issues"
- },
- "license": "MIT",
- "files": [
- "index.js",
- "lib"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "fragment-cache": "^0.2.1",
- "is-windows": "^1.0.2",
- "kind-of": "^6.0.2",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "devDependencies": {
- "bash-match": "^1.0.2",
- "for-own": "^1.0.0",
- "gulp": "^3.9.1",
- "gulp-format-md": "^1.0.0",
- "gulp-istanbul": "^1.1.3",
- "gulp-mocha": "^5.0.0",
- "helper-changelog": "^0.3.0",
- "minimatch": "^3.0.4",
- "minimist": "^1.2.0",
- "mocha": "^3.5.3",
- "multimatch": "^2.1.0"
- },
- "keywords": [
- "bash",
- "expand",
- "expansion",
- "expression",
- "file",
- "files",
- "filter",
- "find",
- "glob",
- "globbing",
- "globs",
- "globstar",
- "match",
- "matcher",
- "matches",
- "matching",
- "micromatch",
- "minimatch",
- "multimatch",
- "nanomatch",
- "path",
- "pattern",
- "patterns",
- "regex",
- "regexp",
- "regular",
- "shell",
- "wildcard"
- ],
- "lintDeps": {
- "dependencies": {
- "options": {
- "lock": {
- "snapdragon": "^0.8.1"
- }
- }
- },
- "devDependencies": {
- "files": {
- "options": {
- "ignore": [
- "benchmark/**"
- ]
- }
- }
- }
- },
- "verb": {
- "toc": "collapsible",
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "helpers": [
- "helper-changelog"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "extglob",
- "is-extglob",
- "is-glob",
- "micromatch"
- ]
- },
- "reflinks": [
- "expand-brackets",
- "expand-tilde",
- "glob-object",
- "micromatch",
- "minimatch",
- "options",
- "snapdragon"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/next-tick/.lint b/node_modules/next-tick/.lint
deleted file mode 100644
index 7f0f7f0..0000000
--- a/node_modules/next-tick/.lint
+++ /dev/null
@@ -1,14 +0,0 @@
-@root
-
-module
-es5
-
-indent 2
-maxlen 100
-tabs
-
-ass
-bitwise
-nomen
-plusplus
-predef+ process, setImmediate, setTimeout, clearTimeout, document, MutationObserver, WebKitMutationObserver
diff --git a/node_modules/next-tick/.npmignore b/node_modules/next-tick/.npmignore
deleted file mode 100644
index 155e41f..0000000
--- a/node_modules/next-tick/.npmignore
+++ /dev/null
@@ -1,4 +0,0 @@
-.DS_Store
-/node_modules
-/npm-debug.log
-/.lintcache
diff --git a/node_modules/next-tick/.travis.yml b/node_modules/next-tick/.travis.yml
deleted file mode 100644
index d867be5..0000000
--- a/node_modules/next-tick/.travis.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-sudo: false # http://docs.travis-ci.com/user/workers/container-based-infrastructure/
-language: node_js
-node_js:
- - 0.12
- - 4
- - 5
- - 6
-
-before_install:
- - mkdir node_modules; ln -s ../ node_modules/next-tick
-
-notifications:
- email:
- - medikoo+next-tick@medikoo.com
-
-script: "npm test && npm run lint"
diff --git a/node_modules/next-tick/CHANGES b/node_modules/next-tick/CHANGES
deleted file mode 100644
index 6f59c88..0000000
--- a/node_modules/next-tick/CHANGES
+++ /dev/null
@@ -1,24 +0,0 @@
-v1.0.0 -- 2016.06.09
-* In case MutationObserver based solution ensure all callbacks are propagated
- even if any on the way crashes (fixes #3)
-* Support older engines (as IE8) which see typeof setTimeout as 'object'
-* Fix spelling of LICENSE
-* Configure lint scripts
-
-v0.2.2 -- 2014.04.18
-- Do not rely on es5-ext's valid-callable. Replace it with simple internal function
-- In MutationObserver fallback rely on text node instead of attribute and assure
- mutation event is invoked by real change of data
-
-v0.2.1 -- 2014.02.24
-- Fix case in import path
-
-v0.2.0 -- 2014.02.24
-- Assure microtask resultion if MutationObserver is available (thanks @Raynos) #1
-- Unify validation of callback. TypeError is throw for any non callable input
-- Move main module from `lib` to root directory
-- Improve documentation
-- Remove Makefile (it's environment agnostic pacakge)
-
-v0.1.0 -- 2012.08.29
-Initial
diff --git a/node_modules/next-tick/LICENSE b/node_modules/next-tick/LICENSE
deleted file mode 100644
index fa5fffd..0000000
--- a/node_modules/next-tick/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License
-
-Copyright (C) 2012-2016 Mariusz Nowak
-
-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/next-tick/README.md b/node_modules/next-tick/README.md
deleted file mode 100644
index 5e73a8b..0000000
--- a/node_modules/next-tick/README.md
+++ /dev/null
@@ -1,24 +0,0 @@
-# next-tick
-## Environment agnostic nextTick polyfill
-
-To be used in environment agnostic modules that need nextTick functionality.
-
-- When run in Node.js `process.nextTick` is used
-- In modern browsers microtask resolution is guaranteed by `MutationObserver`
-- In other engines `setImmediate` or `setTimeout(fn, 0)` is used as fallback.
-- If none of the above is supported module resolves to `null`
-
-## Installation
-### NPM
-
-In your project path:
-
- $ npm install next-tick
-
-#### Browser
-
-You can easily bundle `next-tick` for browser with any CJS bundler, e.g. [modules-webmake](https://github.com/medikoo/modules-webmake)
-
-## Tests [![Build Status](https://api.travis-ci.org/medikoo/next-tick.png?branch=master)](https://travis-ci.org/medikoo/next-tick)
-
- $ npm test
diff --git a/node_modules/next-tick/index.js b/node_modules/next-tick/index.js
deleted file mode 100644
index ec2138e..0000000
--- a/node_modules/next-tick/index.js
+++ /dev/null
@@ -1,71 +0,0 @@
-'use strict';
-
-var callable, byObserver;
-
-callable = function (fn) {
- if (typeof fn !== 'function') throw new TypeError(fn + " is not a function");
- return fn;
-};
-
-byObserver = function (Observer) {
- var node = document.createTextNode(''), queue, currentQueue, i = 0;
- new Observer(function () {
- var callback;
- if (!queue) {
- if (!currentQueue) return;
- queue = currentQueue;
- } else if (currentQueue) {
- queue = currentQueue.concat(queue);
- }
- currentQueue = queue;
- queue = null;
- if (typeof currentQueue === 'function') {
- callback = currentQueue;
- currentQueue = null;
- callback();
- return;
- }
- node.data = (i = ++i % 2); // Invoke other batch, to handle leftover callbacks in case of crash
- while (currentQueue) {
- callback = currentQueue.shift();
- if (!currentQueue.length) currentQueue = null;
- callback();
- }
- }).observe(node, { characterData: true });
- return function (fn) {
- callable(fn);
- if (queue) {
- if (typeof queue === 'function') queue = [queue, fn];
- else queue.push(fn);
- return;
- }
- queue = fn;
- node.data = (i = ++i % 2);
- };
-};
-
-module.exports = (function () {
- // Node.js
- if ((typeof process === 'object') && process && (typeof process.nextTick === 'function')) {
- return process.nextTick;
- }
-
- // MutationObserver
- if ((typeof document === 'object') && document) {
- if (typeof MutationObserver === 'function') return byObserver(MutationObserver);
- if (typeof WebKitMutationObserver === 'function') return byObserver(WebKitMutationObserver);
- }
-
- // W3C Draft
- // http://dvcs.w3.org/hg/webperf/raw-file/tip/specs/setImmediate/Overview.html
- if (typeof setImmediate === 'function') {
- return function (cb) { setImmediate(callable(cb)); };
- }
-
- // Wide available standard
- if ((typeof setTimeout === 'function') || (typeof setTimeout === 'object')) {
- return function (cb) { setTimeout(callable(cb), 0); };
- }
-
- return null;
-}());
diff --git a/node_modules/next-tick/package.json b/node_modules/next-tick/package.json
deleted file mode 100644
index 752ba2e..0000000
--- a/node_modules/next-tick/package.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "name": "next-tick",
- "version": "1.0.0",
- "description": "Environment agnostic nextTick polyfill",
- "author": "Mariusz Nowak (http://www.medikoo.com/)",
- "keywords": [
- "nexttick",
- "setImmediate",
- "setTimeout",
- "async"
- ],
- "repository": {
- "type": "git",
- "url": "git://github.com/medikoo/next-tick.git"
- },
- "devDependencies": {
- "tad": "^0.2.4",
- "xlint": "^0.2.2",
- "xlint-jslint-medikoo": "^0.1.4"
- },
- "scripts": {
- "lint": "node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --no-cache --no-stream",
- "lint-console": "node node_modules/xlint/bin/xlint --linter=node_modules/xlint-jslint-medikoo/index.js --watch",
- "test": "node node_modules/tad/bin/tad"
- },
- "license": "MIT"
-}
diff --git a/node_modules/next-tick/test/index.js b/node_modules/next-tick/test/index.js
deleted file mode 100644
index 6b22cf4..0000000
--- a/node_modules/next-tick/test/index.js
+++ /dev/null
@@ -1,22 +0,0 @@
-'use strict';
-
-module.exports = function (t, a, d) {
- var invoked;
-
- a(t(function () {
- a(arguments.length, 0, "Arguments");
- invoked = true;
- }), undefined, "Return");
- a(invoked, undefined, "Is not run immediately");
- setTimeout(function () {
- a(invoked, true, "Run in next tick");
- invoked = [];
- t(function () { invoked.push(0); });
- t(function () { invoked.push(1); });
- t(function () { invoked.push(2); });
- setTimeout(function () {
- a.deep(invoked, [0, 1, 2], "Serial");
- d();
- }, 10);
- }, 10);
-};
diff --git a/node_modules/normalize-package-data/AUTHORS b/node_modules/normalize-package-data/AUTHORS
deleted file mode 100644
index 66282ba..0000000
--- a/node_modules/normalize-package-data/AUTHORS
+++ /dev/null
@@ -1,4 +0,0 @@
-# Names sorted by how much code was originally theirs.
-Isaac Z. Schlueter
-Meryn Stol
-Robert Kowalski
diff --git a/node_modules/normalize-package-data/LICENSE b/node_modules/normalize-package-data/LICENSE
deleted file mode 100644
index 6ed662c..0000000
--- a/node_modules/normalize-package-data/LICENSE
+++ /dev/null
@@ -1,30 +0,0 @@
-This package contains code originally written by Isaac Z. Schlueter.
-Used with permission.
-
-Copyright (c) Meryn Stol ("Author")
-All rights reserved.
-
-The BSD License
-
-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.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
-BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
-OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/node_modules/normalize-package-data/README.md b/node_modules/normalize-package-data/README.md
deleted file mode 100644
index d2bd7bc..0000000
--- a/node_modules/normalize-package-data/README.md
+++ /dev/null
@@ -1,106 +0,0 @@
-# normalize-package-data [![Build Status](https://travis-ci.org/npm/normalize-package-data.png?branch=master)](https://travis-ci.org/npm/normalize-package-data)
-
-normalize-package-data exports a function that normalizes package metadata. This data is typically found in a package.json file, but in principle could come from any source - for example the npm registry.
-
-normalize-package-data is used by [read-package-json](https://npmjs.org/package/read-package-json) to normalize the data it reads from a package.json file. In turn, read-package-json is used by [npm](https://npmjs.org/package/npm) and various npm-related tools.
-
-## Installation
-
-```
-npm install normalize-package-data
-```
-
-## Usage
-
-Basic usage is really simple. You call the function that normalize-package-data exports. Let's call it `normalizeData`.
-
-```javascript
-normalizeData = require('normalize-package-data')
-packageData = require("./package.json")
-normalizeData(packageData)
-// packageData is now normalized
-```
-
-#### Strict mode
-
-You may activate strict validation by passing true as the second argument.
-
-```javascript
-normalizeData = require('normalize-package-data')
-packageData = require("./package.json")
-normalizeData(packageData, true)
-// packageData is now normalized
-```
-
-If strict mode is activated, only Semver 2.0 version strings are accepted. Otherwise, Semver 1.0 strings are accepted as well. Packages must have a name, and the name field must not have contain leading or trailing whitespace.
-
-#### Warnings
-
-Optionally, you may pass a "warning" function. It gets called whenever the `normalizeData` function encounters something that doesn't look right. It indicates less than perfect input data.
-
-```javascript
-normalizeData = require('normalize-package-data')
-packageData = require("./package.json")
-warnFn = function(msg) { console.error(msg) }
-normalizeData(packageData, warnFn)
-// packageData is now normalized. Any number of warnings may have been logged.
-```
-
-You may combine strict validation with warnings by passing `true` as the second argument, and `warnFn` as third.
-
-When `private` field is set to `true`, warnings will be suppressed.
-
-### Potential exceptions
-
-If the supplied data has an invalid name or version vield, `normalizeData` will throw an error. Depending on where you call `normalizeData`, you may want to catch these errors so can pass them to a callback.
-
-## What normalization (currently) entails
-
-* The value of `name` field gets trimmed (unless in strict mode).
-* The value of the `version` field gets cleaned by `semver.clean`. See [documentation for the semver module](https://github.com/isaacs/node-semver).
-* If `name` and/or `version` fields are missing, they are set to empty strings.
-* If `files` field is not an array, it will be removed.
-* If `bin` field is a string, then `bin` field will become an object with `name` set to the value of the `name` field, and `bin` set to the original string value.
-* If `man` field is a string, it will become an array with the original string as its sole member.
-* If `keywords` field is string, it is considered to be a list of keywords separated by one or more white-space characters. It gets converted to an array by splitting on `\s+`.
-* All people fields (`author`, `maintainers`, `contributors`) get converted into objects with name, email and url properties.
-* If `bundledDependencies` field (a typo) exists and `bundleDependencies` field does not, `bundledDependencies` will get renamed to `bundleDependencies`.
-* If the value of any of the dependencies fields (`dependencies`, `devDependencies`, `optionalDependencies`) is a string, it gets converted into an object with familiar `name=>value` pairs.
-* The values in `optionalDependencies` get added to `dependencies`. The `optionalDependencies` array is left untouched.
-* As of v2: Dependencies that point at known hosted git providers (currently: github, bitbucket, gitlab) will have their URLs canonicalized, but protocols will be preserved.
-* As of v2: Dependencies that use shortcuts for hosted git providers (`org/proj`, `github:org/proj`, `bitbucket:org/proj`, `gitlab:org/proj`, `gist:docid`) will have the shortcut left in place. (In the case of github, the `org/proj` form will be expanded to `github:org/proj`.) THIS MARKS A BREAKING CHANGE FROM V1, where the shorcut was previously expanded to a URL.
-* If `description` field does not exist, but `readme` field does, then (more or less) the first paragraph of text that's found in the readme is taken as value for `description`.
-* If `repository` field is a string, it will become an object with `url` set to the original string value, and `type` set to `"git"`.
-* If `repository.url` is not a valid url, but in the style of "[owner-name]/[repo-name]", `repository.url` will be set to git+https://github.com/[owner-name]/[repo-name].git
-* If `bugs` field is a string, the value of `bugs` field is changed into an object with `url` set to the original string value.
-* If `bugs` field does not exist, but `repository` field points to a repository hosted on GitHub, the value of the `bugs` field gets set to an url in the form of https://github.com/[owner-name]/[repo-name]/issues . If the repository field points to a GitHub Gist repo url, the associated http url is chosen.
-* If `bugs` field is an object, the resulting value only has email and url properties. If email and url properties are not strings, they are ignored. If no valid values for either email or url is found, bugs field will be removed.
-* If `homepage` field is not a string, it will be removed.
-* If the url in the `homepage` field does not specify a protocol, then http is assumed. For example, `myproject.org` will be changed to `http://myproject.org`.
-* If `homepage` field does not exist, but `repository` field points to a repository hosted on GitHub, the value of the `homepage` field gets set to an url in the form of https://github.com/[owner-name]/[repo-name]#readme . If the repository field points to a GitHub Gist repo url, the associated http url is chosen.
-
-### Rules for name field
-
-If `name` field is given, the value of the name field must be a string. The string may not:
-
-* start with a period.
-* contain the following characters: `/@\s+%`
-* contain any characters that would need to be encoded for use in urls.
-* resemble the word `node_modules` or `favicon.ico` (case doesn't matter).
-
-### Rules for version field
-
-If `version` field is given, the value of the version field must be a valid *semver* string, as determined by the `semver.valid` method. See [documentation for the semver module](https://github.com/isaacs/node-semver).
-
-### Rules for license field
-
-The `license` field should be a valid *SPDX license expression* or one of the special values allowed by [validate-npm-package-license](https://npmjs.com/package/validate-npm-package-license). See [documentation for the license field in package.json](https://docs.npmjs.com/files/package.json#license).
-
-## Credits
-
-This package contains code based on read-package-json written by Isaac Z. Schlueter. Used with permisson.
-
-## License
-
-normalize-package-data is released under the [BSD 2-Clause License](http://opensource.org/licenses/MIT).
-Copyright (c) 2013 Meryn Stol
diff --git a/node_modules/normalize-package-data/lib/extract_description.js b/node_modules/normalize-package-data/lib/extract_description.js
deleted file mode 100644
index 83f10aa..0000000
--- a/node_modules/normalize-package-data/lib/extract_description.js
+++ /dev/null
@@ -1,14 +0,0 @@
-module.exports = extractDescription
-
-// Extracts description from contents of a readme file in markdown format
-function extractDescription (d) {
- if (!d) return;
- if (d === "ERROR: No README data found!") return;
- // the first block of text before the first heading
- // that isn't the first line heading
- d = d.trim().split('\n')
- for (var s = 0; d[s] && d[s].trim().match(/^(#|$)/); s ++);
- var l = d.length
- for (var e = s + 1; e < l && d[e].trim(); e ++);
- return d.slice(s, e).join(' ').trim()
-}
diff --git a/node_modules/normalize-package-data/lib/fixer.js b/node_modules/normalize-package-data/lib/fixer.js
deleted file mode 100644
index 27682e9..0000000
--- a/node_modules/normalize-package-data/lib/fixer.js
+++ /dev/null
@@ -1,418 +0,0 @@
-var semver = require("semver")
-var validateLicense = require('validate-npm-package-license');
-var hostedGitInfo = require("hosted-git-info")
-var isBuiltinModule = require("resolve").isCore
-var depTypes = ["dependencies","devDependencies","optionalDependencies"]
-var extractDescription = require("./extract_description")
-var url = require("url")
-var typos = require("./typos.json")
-
-var fixer = module.exports = {
- // default warning function
- warn: function() {},
-
- fixRepositoryField: function(data) {
- if (data.repositories) {
- this.warn("repositories");
- data.repository = data.repositories[0]
- }
- if (!data.repository) return this.warn("missingRepository")
- if (typeof data.repository === "string") {
- data.repository = {
- type: "git",
- url: data.repository
- }
- }
- var r = data.repository.url || ""
- if (r) {
- var hosted = hostedGitInfo.fromUrl(r)
- if (hosted) {
- r = data.repository.url
- = hosted.getDefaultRepresentation() == "shortcut" ? hosted.https() : hosted.toString()
- }
- }
-
- if (r.match(/github.com\/[^\/]+\/[^\/]+\.git\.git$/)) {
- this.warn("brokenGitUrl", r)
- }
- }
-
-, fixTypos: function(data) {
- Object.keys(typos.topLevel).forEach(function (d) {
- if (data.hasOwnProperty(d)) {
- this.warn("typo", d, typos.topLevel[d])
- }
- }, this)
- }
-
-, fixScriptsField: function(data) {
- if (!data.scripts) return
- if (typeof data.scripts !== "object") {
- this.warn("nonObjectScripts")
- delete data.scripts
- return
- }
- Object.keys(data.scripts).forEach(function (k) {
- if (typeof data.scripts[k] !== "string") {
- this.warn("nonStringScript")
- delete data.scripts[k]
- } else if (typos.script[k] && !data.scripts[typos.script[k]]) {
- this.warn("typo", k, typos.script[k], "scripts")
- }
- }, this)
- }
-
-, fixFilesField: function(data) {
- var files = data.files
- if (files && !Array.isArray(files)) {
- this.warn("nonArrayFiles")
- delete data.files
- } else if (data.files) {
- data.files = data.files.filter(function(file) {
- if (!file || typeof file !== "string") {
- this.warn("invalidFilename", file)
- return false
- } else {
- return true
- }
- }, this)
- }
- }
-
-, fixBinField: function(data) {
- if (!data.bin) return;
- if (typeof data.bin === "string") {
- var b = {}
- var match
- if (match = data.name.match(/^@[^/]+[/](.*)$/)) {
- b[match[1]] = data.bin
- } else {
- b[data.name] = data.bin
- }
- data.bin = b
- }
- }
-
-, fixManField: function(data) {
- if (!data.man) return;
- if (typeof data.man === "string") {
- data.man = [ data.man ]
- }
- }
-, fixBundleDependenciesField: function(data) {
- var bdd = "bundledDependencies"
- var bd = "bundleDependencies"
- if (data[bdd] && !data[bd]) {
- data[bd] = data[bdd]
- delete data[bdd]
- }
- if (data[bd] && !Array.isArray(data[bd])) {
- this.warn("nonArrayBundleDependencies")
- delete data[bd]
- } else if (data[bd]) {
- data[bd] = data[bd].filter(function(bd) {
- if (!bd || typeof bd !== 'string') {
- this.warn("nonStringBundleDependency", bd)
- return false
- } else {
- if (!data.dependencies) {
- data.dependencies = {}
- }
- if (!data.dependencies.hasOwnProperty(bd)) {
- this.warn("nonDependencyBundleDependency", bd)
- data.dependencies[bd] = "*"
- }
- return true
- }
- }, this)
- }
- }
-
-, fixDependencies: function(data, strict) {
- var loose = !strict
- objectifyDeps(data, this.warn)
- addOptionalDepsToDeps(data, this.warn)
- this.fixBundleDependenciesField(data)
-
- ;['dependencies','devDependencies'].forEach(function(deps) {
- if (!(deps in data)) return
- if (!data[deps] || typeof data[deps] !== "object") {
- this.warn("nonObjectDependencies", deps)
- delete data[deps]
- return
- }
- Object.keys(data[deps]).forEach(function (d) {
- var r = data[deps][d]
- if (typeof r !== 'string') {
- this.warn("nonStringDependency", d, JSON.stringify(r))
- delete data[deps][d]
- }
- var hosted = hostedGitInfo.fromUrl(data[deps][d])
- if (hosted) data[deps][d] = hosted.toString()
- }, this)
- }, this)
- }
-
-, fixModulesField: function (data) {
- if (data.modules) {
- this.warn("deprecatedModules")
- delete data.modules
- }
- }
-
-, fixKeywordsField: function (data) {
- if (typeof data.keywords === "string") {
- data.keywords = data.keywords.split(/,\s+/)
- }
- if (data.keywords && !Array.isArray(data.keywords)) {
- delete data.keywords
- this.warn("nonArrayKeywords")
- } else if (data.keywords) {
- data.keywords = data.keywords.filter(function(kw) {
- if (typeof kw !== "string" || !kw) {
- this.warn("nonStringKeyword");
- return false
- } else {
- return true
- }
- }, this)
- }
- }
-
-, fixVersionField: function(data, strict) {
- // allow "loose" semver 1.0 versions in non-strict mode
- // enforce strict semver 2.0 compliance in strict mode
- var loose = !strict
- if (!data.version) {
- data.version = ""
- return true
- }
- if (!semver.valid(data.version, loose)) {
- throw new Error('Invalid version: "'+ data.version + '"')
- }
- data.version = semver.clean(data.version, loose)
- return true
- }
-
-, fixPeople: function(data) {
- modifyPeople(data, unParsePerson)
- modifyPeople(data, parsePerson)
- }
-
-, fixNameField: function(data, options) {
- if (typeof options === "boolean") options = {strict: options}
- else if (typeof options === "undefined") options = {}
- var strict = options.strict
- if (!data.name && !strict) {
- data.name = ""
- return
- }
- if (typeof data.name !== "string") {
- throw new Error("name field must be a string.")
- }
- if (!strict)
- data.name = data.name.trim()
- ensureValidName(data.name, strict, options.allowLegacyCase)
- if (isBuiltinModule(data.name))
- this.warn("conflictingName", data.name)
- }
-
-
-, fixDescriptionField: function (data) {
- if (data.description && typeof data.description !== 'string') {
- this.warn("nonStringDescription")
- delete data.description
- }
- if (data.readme && !data.description)
- data.description = extractDescription(data.readme)
- if(data.description === undefined) delete data.description;
- if (!data.description) this.warn("missingDescription")
- }
-
-, fixReadmeField: function (data) {
- if (!data.readme) {
- this.warn("missingReadme")
- data.readme = "ERROR: No README data found!"
- }
- }
-
-, fixBugsField: function(data) {
- if (!data.bugs && data.repository && data.repository.url) {
- var hosted = hostedGitInfo.fromUrl(data.repository.url)
- if(hosted && hosted.bugs()) {
- data.bugs = {url: hosted.bugs()}
- }
- }
- else if(data.bugs) {
- var emailRe = /^.+@.*\..+$/
- if(typeof data.bugs == "string") {
- if(emailRe.test(data.bugs))
- data.bugs = {email:data.bugs}
- else if(url.parse(data.bugs).protocol)
- data.bugs = {url: data.bugs}
- else
- this.warn("nonEmailUrlBugsString")
- }
- else {
- bugsTypos(data.bugs, this.warn)
- var oldBugs = data.bugs
- data.bugs = {}
- if(oldBugs.url) {
- if(typeof(oldBugs.url) == "string" && url.parse(oldBugs.url).protocol)
- data.bugs.url = oldBugs.url
- else
- this.warn("nonUrlBugsUrlField")
- }
- if(oldBugs.email) {
- if(typeof(oldBugs.email) == "string" && emailRe.test(oldBugs.email))
- data.bugs.email = oldBugs.email
- else
- this.warn("nonEmailBugsEmailField")
- }
- }
- if(!data.bugs.email && !data.bugs.url) {
- delete data.bugs
- this.warn("emptyNormalizedBugs")
- }
- }
- }
-
-, fixHomepageField: function(data) {
- if (!data.homepage && data.repository && data.repository.url) {
- var hosted = hostedGitInfo.fromUrl(data.repository.url)
- if (hosted && hosted.docs()) data.homepage = hosted.docs()
- }
- if (!data.homepage) return
-
- if(typeof data.homepage !== "string") {
- this.warn("nonUrlHomepage")
- return delete data.homepage
- }
- if(!url.parse(data.homepage).protocol) {
- data.homepage = "http://" + data.homepage
- }
- }
-
-, fixLicenseField: function(data) {
- if (!data.license) {
- return this.warn("missingLicense")
- } else{
- if (
- typeof(data.license) !== 'string' ||
- data.license.length < 1 ||
- data.license.trim() === ''
- ) {
- this.warn("invalidLicense")
- } else {
- if (!validateLicense(data.license).validForNewPackages)
- this.warn("invalidLicense")
- }
- }
- }
-}
-
-function isValidScopedPackageName(spec) {
- if (spec.charAt(0) !== '@') return false
-
- var rest = spec.slice(1).split('/')
- if (rest.length !== 2) return false
-
- return rest[0] && rest[1] &&
- rest[0] === encodeURIComponent(rest[0]) &&
- rest[1] === encodeURIComponent(rest[1])
-}
-
-function isCorrectlyEncodedName(spec) {
- return !spec.match(/[\/@\s\+%:]/) &&
- spec === encodeURIComponent(spec)
-}
-
-function ensureValidName (name, strict, allowLegacyCase) {
- if (name.charAt(0) === "." ||
- !(isValidScopedPackageName(name) || isCorrectlyEncodedName(name)) ||
- (strict && (!allowLegacyCase) && name !== name.toLowerCase()) ||
- name.toLowerCase() === "node_modules" ||
- name.toLowerCase() === "favicon.ico") {
- throw new Error("Invalid name: " + JSON.stringify(name))
- }
-}
-
-function modifyPeople (data, fn) {
- if (data.author) data.author = fn(data.author)
- ;["maintainers", "contributors"].forEach(function (set) {
- if (!Array.isArray(data[set])) return;
- data[set] = data[set].map(fn)
- })
- return data
-}
-
-function unParsePerson (person) {
- if (typeof person === "string") return person
- var name = person.name || ""
- var u = person.url || person.web
- var url = u ? (" ("+u+")") : ""
- var e = person.email || person.mail
- var email = e ? (" <"+e+">") : ""
- return name+email+url
-}
-
-function parsePerson (person) {
- if (typeof person !== "string") return person
- var name = person.match(/^([^\(<]+)/)
- var url = person.match(/\(([^\)]+)\)/)
- var email = person.match(/<([^>]+)>/)
- var obj = {}
- if (name && name[0].trim()) obj.name = name[0].trim()
- if (email) obj.email = email[1];
- if (url) obj.url = url[1];
- return obj
-}
-
-function addOptionalDepsToDeps (data, warn) {
- var o = data.optionalDependencies
- if (!o) return;
- var d = data.dependencies || {}
- Object.keys(o).forEach(function (k) {
- d[k] = o[k]
- })
- data.dependencies = d
-}
-
-function depObjectify (deps, type, warn) {
- if (!deps) return {}
- if (typeof deps === "string") {
- deps = deps.trim().split(/[\n\r\s\t ,]+/)
- }
- if (!Array.isArray(deps)) return deps
- warn("deprecatedArrayDependencies", type)
- var o = {}
- deps.filter(function (d) {
- return typeof d === "string"
- }).forEach(function(d) {
- d = d.trim().split(/(:?[@\s><=])/)
- var dn = d.shift()
- var dv = d.join("")
- dv = dv.trim()
- dv = dv.replace(/^@/, "")
- o[dn] = dv
- })
- return o
-}
-
-function objectifyDeps (data, warn) {
- depTypes.forEach(function (type) {
- if (!data[type]) return;
- data[type] = depObjectify(data[type], type, warn)
- })
-}
-
-function bugsTypos(bugs, warn) {
- if (!bugs) return
- Object.keys(bugs).forEach(function (k) {
- if (typos.bugs[k]) {
- warn("typo", k, typos.bugs[k], "bugs")
- bugs[typos.bugs[k]] = bugs[k]
- delete bugs[k]
- }
- })
-}
diff --git a/node_modules/normalize-package-data/lib/make_warning.js b/node_modules/normalize-package-data/lib/make_warning.js
deleted file mode 100644
index 4ac74ad..0000000
--- a/node_modules/normalize-package-data/lib/make_warning.js
+++ /dev/null
@@ -1,23 +0,0 @@
-var util = require("util")
-var messages = require("./warning_messages.json")
-
-module.exports = function() {
- var args = Array.prototype.slice.call(arguments, 0)
- var warningName = args.shift()
- if (warningName == "typo") {
- return makeTypoWarning.apply(null,args)
- }
- else {
- var msgTemplate = messages[warningName] ? messages[warningName] : warningName + ": '%s'"
- args.unshift(msgTemplate)
- return util.format.apply(null, args)
- }
-}
-
-function makeTypoWarning (providedName, probableName, field) {
- if (field) {
- providedName = field + "['" + providedName + "']"
- probableName = field + "['" + probableName + "']"
- }
- return util.format(messages.typo, providedName, probableName)
-}
diff --git a/node_modules/normalize-package-data/lib/normalize.js b/node_modules/normalize-package-data/lib/normalize.js
deleted file mode 100644
index bd1bfef..0000000
--- a/node_modules/normalize-package-data/lib/normalize.js
+++ /dev/null
@@ -1,39 +0,0 @@
-module.exports = normalize
-
-var fixer = require("./fixer")
-normalize.fixer = fixer
-
-var makeWarning = require("./make_warning")
-
-var fieldsToFix = ['name','version','description','repository','modules','scripts'
- ,'files','bin','man','bugs','keywords','readme','homepage','license']
-var otherThingsToFix = ['dependencies','people', 'typos']
-
-var thingsToFix = fieldsToFix.map(function(fieldName) {
- return ucFirst(fieldName) + "Field"
-})
-// two ways to do this in CoffeeScript on only one line, sub-70 chars:
-// thingsToFix = fieldsToFix.map (name) -> ucFirst(name) + "Field"
-// thingsToFix = (ucFirst(name) + "Field" for name in fieldsToFix)
-thingsToFix = thingsToFix.concat(otherThingsToFix)
-
-function normalize (data, warn, strict) {
- if(warn === true) warn = null, strict = true
- if(!strict) strict = false
- if(!warn || data.private) warn = function(msg) { /* noop */ }
-
- if (data.scripts &&
- data.scripts.install === "node-gyp rebuild" &&
- !data.scripts.preinstall) {
- data.gypfile = true
- }
- fixer.warn = function() { warn(makeWarning.apply(null, arguments)) }
- thingsToFix.forEach(function(thingName) {
- fixer["fix" + ucFirst(thingName)](data, strict)
- })
- data._id = data.name + "@" + data.version
-}
-
-function ucFirst (string) {
- return string.charAt(0).toUpperCase() + string.slice(1);
-}
diff --git a/node_modules/normalize-package-data/lib/safe_format.js b/node_modules/normalize-package-data/lib/safe_format.js
deleted file mode 100644
index b07f100..0000000
--- a/node_modules/normalize-package-data/lib/safe_format.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var util = require('util')
-
-module.exports = function() {
- var args = Array.prototype.slice.call(arguments, 0)
- args.forEach(function(arg) {
- if (!arg) throw new TypeError('Bad arguments.')
- })
- return util.format.apply(null, arguments)
-}
diff --git a/node_modules/normalize-package-data/lib/typos.json b/node_modules/normalize-package-data/lib/typos.json
deleted file mode 100644
index 7f9dd28..0000000
--- a/node_modules/normalize-package-data/lib/typos.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
- "topLevel": {
- "dependancies": "dependencies"
- ,"dependecies": "dependencies"
- ,"depdenencies": "dependencies"
- ,"devEependencies": "devDependencies"
- ,"depends": "dependencies"
- ,"dev-dependencies": "devDependencies"
- ,"devDependences": "devDependencies"
- ,"devDepenencies": "devDependencies"
- ,"devdependencies": "devDependencies"
- ,"repostitory": "repository"
- ,"repo": "repository"
- ,"prefereGlobal": "preferGlobal"
- ,"hompage": "homepage"
- ,"hampage": "homepage"
- ,"autohr": "author"
- ,"autor": "author"
- ,"contributers": "contributors"
- ,"publicationConfig": "publishConfig"
- ,"script": "scripts"
- },
- "bugs": { "web": "url", "name": "url" },
- "script": { "server": "start", "tests": "test" }
-}
diff --git a/node_modules/normalize-package-data/lib/warning_messages.json b/node_modules/normalize-package-data/lib/warning_messages.json
deleted file mode 100644
index 4890f50..0000000
--- a/node_modules/normalize-package-data/lib/warning_messages.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "repositories": "'repositories' (plural) Not supported. Please pick one as the 'repository' field"
- ,"missingRepository": "No repository field."
- ,"brokenGitUrl": "Probably broken git url: %s"
- ,"nonObjectScripts": "scripts must be an object"
- ,"nonStringScript": "script values must be string commands"
- ,"nonArrayFiles": "Invalid 'files' member"
- ,"invalidFilename": "Invalid filename in 'files' list: %s"
- ,"nonArrayBundleDependencies": "Invalid 'bundleDependencies' list. Must be array of package names"
- ,"nonStringBundleDependency": "Invalid bundleDependencies member: %s"
- ,"nonDependencyBundleDependency": "Non-dependency in bundleDependencies: %s"
- ,"nonObjectDependencies": "%s field must be an object"
- ,"nonStringDependency": "Invalid dependency: %s %s"
- ,"deprecatedArrayDependencies": "specifying %s as array is deprecated"
- ,"deprecatedModules": "modules field is deprecated"
- ,"nonArrayKeywords": "keywords should be an array of strings"
- ,"nonStringKeyword": "keywords should be an array of strings"
- ,"conflictingName": "%s is also the name of a node core module."
- ,"nonStringDescription": "'description' field should be a string"
- ,"missingDescription": "No description"
- ,"missingReadme": "No README data"
- ,"missingLicense": "No license field."
- ,"nonEmailUrlBugsString": "Bug string field must be url, email, or {email,url}"
- ,"nonUrlBugsUrlField": "bugs.url field must be a string url. Deleted."
- ,"nonEmailBugsEmailField": "bugs.email field must be a string email. Deleted."
- ,"emptyNormalizedBugs": "Normalized value of bugs field is an empty object. Deleted."
- ,"nonUrlHomepage": "homepage field must be a string url. Deleted."
- ,"invalidLicense": "license should be a valid SPDX license expression"
- ,"typo": "%s should probably be %s."
-}
diff --git a/node_modules/normalize-package-data/package.json b/node_modules/normalize-package-data/package.json
deleted file mode 100644
index dea34bb..0000000
--- a/node_modules/normalize-package-data/package.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "name": "normalize-package-data",
- "version": "2.5.0",
- "author": "Meryn Stol ",
- "description": "Normalizes data that can be found in package.json files.",
- "license": "BSD-2-Clause",
- "repository": {
- "type": "git",
- "url": "git://github.com/npm/normalize-package-data.git"
- },
- "main": "lib/normalize.js",
- "scripts": {
- "test": "tap test/*.js"
- },
- "dependencies": {
- "hosted-git-info": "^2.1.4",
- "resolve": "^1.10.0",
- "semver": "2 || 3 || 4 || 5",
- "validate-npm-package-license": "^3.0.1"
- },
- "devDependencies": {
- "async": "^2.6.1",
- "tap": "^12.4.0",
- "underscore": "^1.8.3"
- },
- "files": [
- "lib/*.js",
- "lib/*.json",
- "AUTHORS"
- ]
-}
diff --git a/node_modules/normalize-path/LICENSE b/node_modules/normalize-path/LICENSE
deleted file mode 100644
index d32ab44..0000000
--- a/node_modules/normalize-path/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-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/normalize-path/README.md b/node_modules/normalize-path/README.md
deleted file mode 100644
index 726d4d6..0000000
--- a/node_modules/normalize-path/README.md
+++ /dev/null
@@ -1,127 +0,0 @@
-# normalize-path [![NPM version](https://img.shields.io/npm/v/normalize-path.svg?style=flat)](https://www.npmjs.com/package/normalize-path) [![NPM monthly downloads](https://img.shields.io/npm/dm/normalize-path.svg?style=flat)](https://npmjs.org/package/normalize-path) [![NPM total downloads](https://img.shields.io/npm/dt/normalize-path.svg?style=flat)](https://npmjs.org/package/normalize-path) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/normalize-path.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/normalize-path)
-
-> Normalize slashes in a file path to be posix/unix-like forward slashes. Also condenses repeat slashes to a single slash and removes and trailing slashes, unless disabled.
-
-Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save normalize-path
-```
-
-## Usage
-
-```js
-const normalize = require('normalize-path');
-
-console.log(normalize('\\foo\\bar\\baz\\'));
-//=> '/foo/bar/baz'
-```
-
-**win32 namespaces**
-
-```js
-console.log(normalize('\\\\?\\UNC\\Server01\\user\\docs\\Letter.txt'));
-//=> '//?/UNC/Server01/user/docs/Letter.txt'
-
-console.log(normalize('\\\\.\\CdRomX'));
-//=> '//./CdRomX'
-```
-
-**Consecutive slashes**
-
-Condenses multiple consecutive forward slashes (except for leading slashes in win32 namespaces) to a single slash.
-
-```js
-console.log(normalize('.//foo//bar///////baz/'));
-//=> './foo/bar/baz'
-```
-
-### Trailing slashes
-
-By default trailing slashes are removed. Pass `false` as the last argument to disable this behavior and _**keep** trailing slashes_:
-
-```js
-console.log(normalize('foo\\bar\\baz\\', false)); //=> 'foo/bar/baz/'
-console.log(normalize('./foo/bar/baz/', false)); //=> './foo/bar/baz/'
-```
-
-## Release history
-
-### v3.0
-
-No breaking changes in this release.
-
-* a check was added to ensure that [win32 namespaces](https://msdn.microsoft.com/library/windows/desktop/aa365247(v=vs.85).aspx#namespaces) are handled properly by win32 `path.parse()` after a path has been normalized by this library.
-* a minor optimization was made to simplify how the trailing separator was handled
-
-## About
-
-
-Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-
-
-
-Running Tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-
-
-
-Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-
-
-### Related projects
-
-Other useful path-related libraries:
-
-* [contains-path](https://www.npmjs.com/package/contains-path): Return true if a file path contains the given path. | [homepage](https://github.com/jonschlinkert/contains-path "Return true if a file path contains the given path.")
-* [is-absolute](https://www.npmjs.com/package/is-absolute): Returns true if a file path is absolute. Does not rely on the path module… [more](https://github.com/jonschlinkert/is-absolute) | [homepage](https://github.com/jonschlinkert/is-absolute "Returns true if a file path is absolute. Does not rely on the path module and can be used as a polyfill for node.js native `path.isAbolute`.")
-* [is-relative](https://www.npmjs.com/package/is-relative): Returns `true` if the path appears to be relative. | [homepage](https://github.com/jonschlinkert/is-relative "Returns `true` if the path appears to be relative.")
-* [parse-filepath](https://www.npmjs.com/package/parse-filepath): Pollyfill for node.js `path.parse`, parses a filepath into an object. | [homepage](https://github.com/jonschlinkert/parse-filepath "Pollyfill for node.js `path.parse`, parses a filepath into an object.")
-* [path-ends-with](https://www.npmjs.com/package/path-ends-with): Return `true` if a file path ends with the given string/suffix. | [homepage](https://github.com/jonschlinkert/path-ends-with "Return `true` if a file path ends with the given string/suffix.")
-* [unixify](https://www.npmjs.com/package/unixify): Convert Windows file paths to unix paths. | [homepage](https://github.com/jonschlinkert/unixify "Convert Windows file paths to unix paths.")
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 35 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 1 | [phated](https://github.com/phated) |
-
-### Author
-
-**Jon Schlinkert**
-
-* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert)
-* [GitHub Profile](https://github.com/jonschlinkert)
-* [Twitter Profile](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2018, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on April 19, 2018._
\ No newline at end of file
diff --git a/node_modules/normalize-path/index.js b/node_modules/normalize-path/index.js
deleted file mode 100644
index 6fac553..0000000
--- a/node_modules/normalize-path/index.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/*!
- * normalize-path
- *
- * Copyright (c) 2014-2018, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-module.exports = function(path, stripTrailing) {
- if (typeof path !== 'string') {
- throw new TypeError('expected path to be a string');
- }
-
- if (path === '\\' || path === '/') return '/';
-
- var len = path.length;
- if (len <= 1) return path;
-
- // ensure that win32 namespaces has two leading slashes, so that the path is
- // handled properly by the win32 version of path.parse() after being normalized
- // https://msdn.microsoft.com/library/windows/desktop/aa365247(v=vs.85).aspx#namespaces
- var prefix = '';
- if (len > 4 && path[3] === '\\') {
- var ch = path[2];
- if ((ch === '?' || ch === '.') && path.slice(0, 2) === '\\\\') {
- path = path.slice(2);
- prefix = '//';
- }
- }
-
- var segs = path.split(/[/\\]+/);
- if (stripTrailing !== false && segs[segs.length - 1] === '') {
- segs.pop();
- }
- return prefix + segs.join('/');
-};
diff --git a/node_modules/normalize-path/package.json b/node_modules/normalize-path/package.json
deleted file mode 100644
index ad61098..0000000
--- a/node_modules/normalize-path/package.json
+++ /dev/null
@@ -1,77 +0,0 @@
-{
- "name": "normalize-path",
- "description": "Normalize slashes in a file path to be posix/unix-like forward slashes. Also condenses repeat slashes to a single slash and removes and trailing slashes, unless disabled.",
- "version": "3.0.0",
- "homepage": "https://github.com/jonschlinkert/normalize-path",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Blaine Bublitz (https://twitter.com/BlaineBublitz)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)"
- ],
- "repository": "jonschlinkert/normalize-path",
- "bugs": {
- "url": "https://github.com/jonschlinkert/normalize-path/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "devDependencies": {
- "gulp-format-md": "^1.0.0",
- "minimist": "^1.2.0",
- "mocha": "^3.5.3"
- },
- "keywords": [
- "absolute",
- "backslash",
- "delimiter",
- "file",
- "file-path",
- "filepath",
- "fix",
- "forward",
- "fp",
- "fs",
- "normalize",
- "path",
- "relative",
- "separator",
- "slash",
- "slashes",
- "trailing",
- "unix",
- "urix"
- ],
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "description": "Other useful path-related libraries:",
- "list": [
- "contains-path",
- "is-absolute",
- "is-relative",
- "parse-filepath",
- "path-ends-with",
- "path-ends-with",
- "unixify"
- ]
- },
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/now-and-later/LICENSE b/node_modules/now-and-later/LICENSE
deleted file mode 100644
index 0b2955a..0000000
--- a/node_modules/now-and-later/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014 Blaine Bublitz, Eric Schoffstall and other contributors
-
-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/now-and-later/README.md b/node_modules/now-and-later/README.md
deleted file mode 100644
index 15486a8..0000000
--- a/node_modules/now-and-later/README.md
+++ /dev/null
@@ -1,203 +0,0 @@
-
-
-
-
-
-
-# now-and-later
-
-[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Build Status][travis-image]][travis-url] [![AppVeyor Build Status][appveyor-image]][appveyor-url] [![Coveralls Status][coveralls-image]][coveralls-url] [![Gitter chat][gitter-image]][gitter-url]
-
-Map over an array or object of values in parallel or series, passing each through the async iterator, with optional lifecycle hooks.
-
-## Usage
-
-```js
-var nal = require('now-and-later');
-
-function iterator(value, key, cb){
- // called with each value in sequence
- // also passes the key
- cb(null, value * 2)
-}
-
-function create(value, key){
- // called at the beginning of every iteration
- // return a storage object to be passed to each lifecycle method
- return { key: key, value: value };
-}
-
-function before(storage){
- // called before the iterator function of every iteration
- // receives the storage returned from `create`
-}
-
-function after(result, storage){
- // called after a success occurs in the iterator function of any iteration
- // receives the `result` of the iterator and the storage returned from `create`
-}
-
-function error(error, storage){
- // called after an error occurs in the iterator function of any iteration
- // receives the `error` of the iterator and the storage returned from `create`
-}
-
-function done(error, results) {
- // called after all iterations complete or an error occurs in an iterator
- // receives an `error` if one occurred and all results (or partial results upon error) of the iterators
-}
-
-/*
- Calling mapSeries with an object can't guarantee order
- It uses Object.keys to get an order
- It is better to use an array if order must be guaranteed
- */
-nal.mapSeries([1, 2, 3], iterator, {
- create: create,
- before: before,
- after: after,
- error: error
-}, done);
-
-nal.map({
- iter1: 1,
- iter2: 2
-}, iterator, {
- create: create,
- before: before,
- after: after,
- error: error
-}, done);
-```
-
-## API
-
-### `map(values, iterator[, extensions][, callback])`
-
-Takes an object or array of `values` and an `iterator` function to execute with each value.
-Optionally, takes an `extensions` object and a `callback` function that is called upon completion of the iterations.
-
-All iterations run in parallel.
-
-#### `values`
-
-An array or object of values to iterate over.
-
-If `values` is an array, iterations are started in order by index. If `values` is an object, iterations are started in order by the order returned by `Object.keys` (order is not guaranteed).
-
-If `values` is an array, the results of each iteration will be mapped to an array. If `values` is an object, the results of each iteration will be mapped to an object with corresponding keys.
-
-#### `iterator(value, key, done)`
-
-An async function called per iteration. All iterations are run in parallel.
-
-The `iterator` function is called once with each `value`, `key` and a function (`done(error, result)`) to call when the async work is complete.
-
-If `done` is passed an error as the first argument, the iteration will fail and the sequence will be ended; however, any iterations in progress will still complete. If `done` is passed a `result` value as the second argument, it will be added to the final results array or object.
-
-#### `extensions`
-
-The `extensions` object is used for specifying functions that give insight into the lifecycle of each iteration. The possible extension points are `create`, `before`, `after` and `error`. If an extension point is not specified, it defaults to a no-op function.
-
-##### `extensions.create(value, key)`
-
-Called at the very beginning of each iteration with the `value` being iterated and the `key` from the array or object. If `create` returns a value (`storage`), it is passed to the `before`, `after` and `error` extension points.
-
-If a value is not returned, an empty object is used as `storage` for each other extension point.
-
-This is useful for tracking information across an iteration.
-
-##### `extensions.before(storage)`
-
-Called immediately before each iteration with the `storage` value returned from the `create` extension point.
-
-##### `extensions.after(result, storage)`
-
-Called immediately after each iteration with the `result` of the iteration and the `storage` value returned from the `create` extension point.
-
-##### `extensions.error(error, storage)`
-
-Called immediately after a failed iteration with the `error` of the iteration and the `storage` value returned from the `create` extension point.
-
-#### `callback(error, results)`
-
-A function that is called after all iterations have completed or one iteration has errored.
-
-If all iterations completed successfully, the `error` argument will be empty and the `results` will be a mapping of the `iterator` results.
-
-If an iteration errored, the `error` argument will be passed from that iteration and the `results` will be whatever partial results had completed successfully before the error occurred.
-
-### `mapSeries(values, iterator[, extensions][, callback])`
-
-Takes an object or array of `values` and an `iterator` function to execute with each value.
-Optionally, takes an `extensions` object and a `callback` function that is called upon completion of the iterations.
-
-All iterations run in serial.
-
-#### `values`
-
-An array or object of values to iterate over.
-
-If `values` is an array, iterations are started in order by index. If `values` is an object, iterations are started in order by the order returned by `Object.keys` (order is not guaranteed).
-
-If `values` is an array, the results of each iteration will be mapped to an array. If `values` is an object, the results of each iteration will be mapped to an object with corresponding keys.
-
-#### `iterator(value, key, done)`
-
-An async function called per iteration. All iterations are run in serial.
-
-The `iterator` function is called once with each `value`, `key` and a function (`done(error, result)`) to call when the async work is complete.
-
-If `done` is passed an error as the first argument, the iteration will fail and the sequence will be ended without executing any more iterations. If `done` is passed a `result` value as the second argument, it will be added to the final results array or object.
-
-#### `extensions`
-
-The `extensions` object is used for specifying functions that give insight into the lifecycle of each iteration. The possible extension points are `create`, `before`, `after` and `error`. If an extension point is not specified, it defaults to a no-op function.
-
-##### `extensions.create(value, key)`
-
-Called at the very beginning of each iteration with the `value` being iterated and the `key` from the array or object. If `create` returns a value (`storage`), it is passed to the `before`, `after` and `error` extension points.
-
-If a value is not returned, an empty object is used as `storage` for each other extension point.
-
-This is useful for tracking information across an iteration.
-
-##### `extensions.before(storage)`
-
-Called immediately before each iteration with the `storage` value returned from the `create` extension point.
-
-##### `extensions.after(result, storage)`
-
-Called immediately after each iteration with the `result` of the iteration and the `storage` value returned from the `create` extension point.
-
-##### `extensions.error(error, storage)`
-
-Called immediately after a failed iteration with the `error` of the iteration and the `storage` value returned from the `create` extension point.
-
-#### `callback(error, results)`
-
-A function that is called after all iterations have completed or one iteration has errored.
-
-If all iterations completed successfully, the `error` argument will be empty and the `results` will be a mapping of the `iterator` results.
-
-If an iteration errored, the `error` argument will be passed from that iteration and the `results` will be whatever partial results had completed successfully before the error occurred.
-
-## License
-
-MIT
-
-[downloads-image]: http://img.shields.io/npm/dm/now-and-later.svg
-[npm-url]: https://www.npmjs.com/package/now-and-later
-[npm-image]: http://img.shields.io/npm/v/now-and-later.svg
-
-[travis-url]: https://travis-ci.org/gulpjs/now-and-later
-[travis-image]: http://img.shields.io/travis/gulpjs/now-and-later.svg?label=travis-ci
-
-[appveyor-url]: https://ci.appveyor.com/project/gulpjs/now-and-later
-[appveyor-image]: https://img.shields.io/appveyor/ci/gulpjs/now-and-later.svg?label=appveyor
-
-[coveralls-url]: https://coveralls.io/r/gulpjs/now-and-later
-[coveralls-image]: http://img.shields.io/coveralls/gulpjs/now-and-later/master.svg
-
-[gitter-url]: https://gitter.im/gulpjs/gulp
-[gitter-image]: https://badges.gitter.im/gulpjs/gulp.svg
diff --git a/node_modules/now-and-later/index.js b/node_modules/now-and-later/index.js
deleted file mode 100644
index 692f0b7..0000000
--- a/node_modules/now-and-later/index.js
+++ /dev/null
@@ -1,6 +0,0 @@
-'use strict';
-
-module.exports = {
- map: require('./lib/map'),
- mapSeries: require('./lib/mapSeries'),
-};
diff --git a/node_modules/now-and-later/lib/helpers.js b/node_modules/now-and-later/lib/helpers.js
deleted file mode 100644
index b0e913c..0000000
--- a/node_modules/now-and-later/lib/helpers.js
+++ /dev/null
@@ -1,41 +0,0 @@
-'use strict';
-
-function noop() {}
-
-var defaultExts = {
- create: noop,
- before: noop,
- after: noop,
- error: noop,
-};
-
-function defaultExtensions(extensions) {
- extensions = extensions || {};
- return {
- create: extensions.create || defaultExts.create,
- before: extensions.before || defaultExts.before,
- after: extensions.after || defaultExts.after,
- error: extensions.error || defaultExts.error,
- };
-}
-
-function initializeResults(values) {
- var keys = Object.keys(values);
- var results = Array.isArray(values) ? [] : {};
-
- var idx = 0;
- var length = keys.length;
-
- for (idx = 0; idx < length; idx++) {
- var key = keys[idx];
- results[key] = undefined;
- }
-
- return results;
-}
-
-module.exports = {
- defaultExtensions: defaultExtensions,
- noop: noop,
- initializeResults: initializeResults,
-};
diff --git a/node_modules/now-and-later/lib/map.js b/node_modules/now-and-later/lib/map.js
deleted file mode 100644
index cd278fe..0000000
--- a/node_modules/now-and-later/lib/map.js
+++ /dev/null
@@ -1,63 +0,0 @@
-'use strict';
-
-var once = require('once');
-
-var helpers = require('./helpers');
-
-function map(values, iterator, extensions, done) {
- // Allow for extensions to not be specified
- if (typeof extensions === 'function') {
- done = extensions;
- extensions = {};
- }
-
- // Handle no callback case
- if (typeof done !== 'function') {
- done = helpers.noop;
- }
-
- done = once(done);
-
- // Will throw if non-object
- var keys = Object.keys(values);
- var length = keys.length;
- var count = length;
- var idx = 0;
- // Return the same type as passed in
- var results = helpers.initializeResults(values);
-
- var exts = helpers.defaultExtensions(extensions);
-
- if (length === 0) {
- return done(null, results);
- }
-
- for (idx = 0; idx < length; idx++) {
- var key = keys[idx];
- next(key);
- }
-
- function next(key) {
- var value = values[key];
-
- var storage = exts.create(value, key) || {};
-
- exts.before(storage);
- iterator(value, key, once(handler));
-
- function handler(err, result) {
- if (err) {
- exts.error(err, storage);
- return done(err, results);
- }
-
- exts.after(result, storage);
- results[key] = result;
- if (--count === 0) {
- done(err, results);
- }
- }
- }
-}
-
-module.exports = map;
diff --git a/node_modules/now-and-later/lib/mapSeries.js b/node_modules/now-and-later/lib/mapSeries.js
deleted file mode 100644
index 02cce77..0000000
--- a/node_modules/now-and-later/lib/mapSeries.js
+++ /dev/null
@@ -1,63 +0,0 @@
-'use strict';
-
-var once = require('once');
-
-var helpers = require('./helpers');
-
-function mapSeries(values, iterator, extensions, done) {
- // Allow for extensions to not be specified
- if (typeof extensions === 'function') {
- done = extensions;
- extensions = {};
- }
-
- // Handle no callback case
- if (typeof done !== 'function') {
- done = helpers.noop;
- }
-
- done = once(done);
-
- // Will throw if non-object
- var keys = Object.keys(values);
- var length = keys.length;
- var idx = 0;
- // Return the same type as passed in
- var results = helpers.initializeResults(values);
-
- var exts = helpers.defaultExtensions(extensions);
-
- if (length === 0) {
- return done(null, results);
- }
-
- var key = keys[idx];
- next(key);
-
- function next(key) {
- var value = values[key];
-
- var storage = exts.create(value, key) || {};
-
- exts.before(storage);
- iterator(value, key, once(handler));
-
- function handler(err, result) {
- if (err) {
- exts.error(err, storage);
- return done(err, results);
- }
-
- exts.after(result, storage);
- results[key] = result;
-
- if (++idx >= length) {
- done(err, results);
- } else {
- next(keys[idx]);
- }
- }
- }
-}
-
-module.exports = mapSeries;
diff --git a/node_modules/now-and-later/package.json b/node_modules/now-and-later/package.json
deleted file mode 100644
index 9b2a0f0..0000000
--- a/node_modules/now-and-later/package.json
+++ /dev/null
@@ -1,54 +0,0 @@
-{
- "name": "now-and-later",
- "version": "2.0.1",
- "description": "Map over an array or object of values in parallel or series, passing each through the async iterator, with optional lifecycle hooks.",
- "author": "Gulp Team (http://gulpjs.com/)",
- "contributors": [
- "Blaine Bublitz "
- ],
- "repository": "gulpjs/now-and-later",
- "license": "MIT",
- "engines": {
- "node": ">= 0.10"
- },
- "main": "index.js",
- "files": [
- "index.js",
- "lib",
- "LICENSE"
- ],
- "scripts": {
- "lint": "eslint . && jscs index.js lib/ test/",
- "pretest": "npm run lint",
- "test": "mocha --async-only",
- "cover": "istanbul cover _mocha --report lcovonly",
- "coveralls": "npm run cover && istanbul-coveralls"
- },
- "dependencies": {
- "once": "^1.3.2"
- },
- "devDependencies": {
- "eslint": "^1.7.3",
- "eslint-config-gulp": "^2.0.0",
- "expect": "^1.19.0",
- "istanbul": "^0.4.3",
- "istanbul-coveralls": "^1.0.3",
- "jscs": "^2.3.5",
- "jscs-preset-gulp": "^1.0.0",
- "mocha": "^2.4.5"
- },
- "keywords": [
- "async",
- "async.js",
- "map",
- "control",
- "flow",
- "extension",
- "tracing",
- "debug",
- "aop",
- "aspect",
- "timing",
- "tracing"
- ]
-}
diff --git a/node_modules/number-is-nan/index.js b/node_modules/number-is-nan/index.js
deleted file mode 100644
index 79be4b9..0000000
--- a/node_modules/number-is-nan/index.js
+++ /dev/null
@@ -1,4 +0,0 @@
-'use strict';
-module.exports = Number.isNaN || function (x) {
- return x !== x;
-};
diff --git a/node_modules/number-is-nan/license b/node_modules/number-is-nan/license
deleted file mode 100644
index 654d0bf..0000000
--- a/node_modules/number-is-nan/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus (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/number-is-nan/package.json b/node_modules/number-is-nan/package.json
deleted file mode 100644
index d2f51d4..0000000
--- a/node_modules/number-is-nan/package.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "name": "number-is-nan",
- "version": "1.0.1",
- "description": "ES2015 Number.isNaN() ponyfill",
- "license": "MIT",
- "repository": "sindresorhus/number-is-nan",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "ava"
- },
- "files": [
- "index.js"
- ],
- "keywords": [
- "es2015",
- "ecmascript",
- "ponyfill",
- "polyfill",
- "shim",
- "number",
- "is",
- "nan",
- "not"
- ],
- "devDependencies": {
- "ava": "*"
- }
-}
diff --git a/node_modules/number-is-nan/readme.md b/node_modules/number-is-nan/readme.md
deleted file mode 100644
index 2463508..0000000
--- a/node_modules/number-is-nan/readme.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# number-is-nan [![Build Status](https://travis-ci.org/sindresorhus/number-is-nan.svg?branch=master)](https://travis-ci.org/sindresorhus/number-is-nan)
-
-> ES2015 [`Number.isNaN()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN) [ponyfill](https://ponyfill.com)
-
-
-## Install
-
-```
-$ npm install --save number-is-nan
-```
-
-
-## Usage
-
-```js
-var numberIsNan = require('number-is-nan');
-
-numberIsNan(NaN);
-//=> true
-
-numberIsNan('unicorn');
-//=> false
-```
-
-
-## License
-
-MIT © [Sindre Sorhus](http://sindresorhus.com)
diff --git a/node_modules/object-copy/LICENSE b/node_modules/object-copy/LICENSE
deleted file mode 100644
index e28e603..0000000
--- a/node_modules/object-copy/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2016, 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/object-copy/index.js b/node_modules/object-copy/index.js
deleted file mode 100644
index f9faa22..0000000
--- a/node_modules/object-copy/index.js
+++ /dev/null
@@ -1,174 +0,0 @@
-'use strict';
-
-var typeOf = require('kind-of');
-var copyDescriptor = require('copy-descriptor');
-var define = require('define-property');
-
-/**
- * Copy static properties, prototype properties, and descriptors from one object to another.
- *
- * ```js
- * function App() {}
- * var proto = App.prototype;
- * App.prototype.set = function() {};
- * App.prototype.get = function() {};
- *
- * var obj = {};
- * copy(obj, proto);
- * ```
- * @param {Object} `receiver`
- * @param {Object} `provider`
- * @param {String|Array} `omit` One or more properties to omit
- * @return {Object}
- * @api public
- */
-
-function copy(receiver, provider, omit) {
- if (!isObject(receiver)) {
- throw new TypeError('expected receiving object to be an object.');
- }
- if (!isObject(provider)) {
- throw new TypeError('expected providing object to be an object.');
- }
-
- var props = nativeKeys(provider);
- var keys = Object.keys(provider);
- var len = props.length;
- omit = arrayify(omit);
-
- while (len--) {
- var key = props[len];
-
- if (has(keys, key)) {
- define(receiver, key, provider[key]);
- } else if (!(key in receiver) && !has(omit, key)) {
- copyDescriptor(receiver, provider, key);
- }
- }
-};
-
-/**
- * Return true if the given value is an object or function
- */
-
-function isObject(val) {
- return typeOf(val) === 'object' || typeof val === 'function';
-}
-
-/**
- * Returns true if an array has any of the given elements, or an
- * object has any of the give keys.
- *
- * ```js
- * has(['a', 'b', 'c'], 'c');
- * //=> true
- *
- * has(['a', 'b', 'c'], ['c', 'z']);
- * //=> true
- *
- * has({a: 'b', c: 'd'}, ['c', 'z']);
- * //=> true
- * ```
- * @param {Object} `obj`
- * @param {String|Array} `val`
- * @return {Boolean}
- */
-
-function has(obj, val) {
- val = arrayify(val);
- var len = val.length;
-
- if (isObject(obj)) {
- for (var key in obj) {
- if (val.indexOf(key) > -1) {
- return true;
- }
- }
-
- var keys = nativeKeys(obj);
- return has(keys, val);
- }
-
- if (Array.isArray(obj)) {
- var arr = obj;
- while (len--) {
- if (arr.indexOf(val[len]) > -1) {
- return true;
- }
- }
- return false;
- }
-
- throw new TypeError('expected an array or object.');
-}
-
-/**
- * Cast the given value to an array.
- *
- * ```js
- * arrayify('foo');
- * //=> ['foo']
- *
- * arrayify(['foo']);
- * //=> ['foo']
- * ```
- *
- * @param {String|Array} `val`
- * @return {Array}
- */
-
-function arrayify(val) {
- return val ? (Array.isArray(val) ? val : [val]) : [];
-}
-
-/**
- * Returns true if a value has a `contructor`
- *
- * ```js
- * hasConstructor({});
- * //=> true
- *
- * hasConstructor(Object.create(null));
- * //=> false
- * ```
- * @param {Object} `value`
- * @return {Boolean}
- */
-
-function hasConstructor(val) {
- return isObject(val) && typeof val.constructor !== 'undefined';
-}
-
-/**
- * Get the native `ownPropertyNames` from the constructor of the
- * given `object`. An empty array is returned if the object does
- * not have a constructor.
- *
- * ```js
- * nativeKeys({a: 'b', b: 'c', c: 'd'})
- * //=> ['a', 'b', 'c']
- *
- * nativeKeys(function(){})
- * //=> ['length', 'caller']
- * ```
- *
- * @param {Object} `obj` Object that has a `constructor`.
- * @return {Array} Array of keys.
- */
-
-function nativeKeys(val) {
- if (!hasConstructor(val)) return [];
- return Object.getOwnPropertyNames(val);
-}
-
-/**
- * Expose `copy`
- */
-
-module.exports = copy;
-
-/**
- * Expose `copy.has` for tests
- */
-
-module.exports.has = has;
diff --git a/node_modules/object-copy/node_modules/define-property/LICENSE b/node_modules/object-copy/node_modules/define-property/LICENSE
deleted file mode 100644
index 65f90ac..0000000
--- a/node_modules/object-copy/node_modules/define-property/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015, 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/object-copy/node_modules/define-property/README.md b/node_modules/object-copy/node_modules/define-property/README.md
deleted file mode 100644
index 8cac698..0000000
--- a/node_modules/object-copy/node_modules/define-property/README.md
+++ /dev/null
@@ -1,77 +0,0 @@
-# define-property [![NPM version](https://badge.fury.io/js/define-property.svg)](http://badge.fury.io/js/define-property)
-
-> Define a non-enumerable property on an object.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/)
-
-```sh
-$ npm i define-property --save
-```
-
-## Usage
-
-**Params**
-
-* `obj`: The object on which to define the property.
-* `prop`: The name of the property to be defined or modified.
-* `descriptor`: The descriptor for the property being defined or modified.
-
-```js
-var define = require('define-property');
-var obj = {};
-define(obj, 'foo', function(val) {
- return val.toUpperCase();
-});
-
-console.log(obj);
-//=> {}
-
-console.log(obj.foo('bar'));
-//=> 'BAR'
-```
-
-**get/set**
-
-```js
-define(obj, 'foo', {
- get: function() {},
- set: function() {}
-});
-```
-
-## Related projects
-
-* [delegate-object](https://www.npmjs.com/package/delegate-object): Copy properties from an object to another object, where properties with function values will be… [more](https://www.npmjs.com/package/delegate-object) | [homepage](https://github.com/doowb/delegate-object)
-* [forward-object](https://www.npmjs.com/package/forward-object): Copy properties from an object to another object, where properties with function values will be… [more](https://www.npmjs.com/package/forward-object) | [homepage](https://github.com/doowb/forward-object)
-* [mixin-deep](https://www.npmjs.com/package/mixin-deep): Deeply mix the properties of objects into the first object. Like merge-deep, but doesn't clone. | [homepage](https://github.com/jonschlinkert/mixin-deep)
-* [mixin-object](https://www.npmjs.com/package/mixin-object): Mixin the own and inherited properties of other objects onto the first object. Pass an… [more](https://www.npmjs.com/package/mixin-object) | [homepage](https://github.com/jonschlinkert/mixin-object)
-
-## Running tests
-
-Install dev dependencies:
-
-```sh
-$ npm i -d && npm test
-```
-
-## Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/define-property/issues/new).
-
-## 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 August 31, 2015._
diff --git a/node_modules/object-copy/node_modules/define-property/index.js b/node_modules/object-copy/node_modules/define-property/index.js
deleted file mode 100644
index 3e0e5e1..0000000
--- a/node_modules/object-copy/node_modules/define-property/index.js
+++ /dev/null
@@ -1,31 +0,0 @@
-/*!
- * define-property
- *
- * Copyright (c) 2015, Jon Schlinkert.
- * Licensed under the MIT License.
- */
-
-'use strict';
-
-var isDescriptor = require('is-descriptor');
-
-module.exports = function defineProperty(obj, prop, val) {
- if (typeof obj !== 'object' && typeof obj !== 'function') {
- throw new TypeError('expected an object or function.');
- }
-
- if (typeof prop !== 'string') {
- throw new TypeError('expected `prop` to be a string.');
- }
-
- if (isDescriptor(val) && ('set' in val || 'get' in val)) {
- return Object.defineProperty(obj, prop, val);
- }
-
- return Object.defineProperty(obj, prop, {
- configurable: true,
- enumerable: false,
- writable: true,
- value: val
- });
-};
diff --git a/node_modules/object-copy/node_modules/define-property/package.json b/node_modules/object-copy/node_modules/define-property/package.json
deleted file mode 100644
index 43561bf..0000000
--- a/node_modules/object-copy/node_modules/define-property/package.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
- "name": "define-property",
- "description": "Define a non-enumerable property on an object.",
- "version": "0.2.5",
- "homepage": "https://github.com/jonschlinkert/define-property",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/define-property",
- "bugs": {
- "url": "https://github.com/jonschlinkert/define-property/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "devDependencies": {
- "mocha": "*",
- "should": "^7.0.4"
- },
- "keywords": [
- "define",
- "define-property",
- "enumerable",
- "key",
- "non",
- "non-enumerable",
- "object",
- "prop",
- "property",
- "value"
- ],
- "verb": {
- "related": {
- "list": [
- "mixin-deep",
- "mixin-object",
- "delegate-object",
- "forward-object"
- ]
- }
- },
- "dependencies": {
- "is-descriptor": "^0.1.0"
- }
-}
diff --git a/node_modules/object-copy/node_modules/is-accessor-descriptor/LICENSE b/node_modules/object-copy/node_modules/is-accessor-descriptor/LICENSE
deleted file mode 100644
index 65f90ac..0000000
--- a/node_modules/object-copy/node_modules/is-accessor-descriptor/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015, 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/object-copy/node_modules/is-accessor-descriptor/README.md b/node_modules/object-copy/node_modules/is-accessor-descriptor/README.md
deleted file mode 100644
index 3743fe6..0000000
--- a/node_modules/object-copy/node_modules/is-accessor-descriptor/README.md
+++ /dev/null
@@ -1,123 +0,0 @@
-# is-accessor-descriptor [![NPM version](https://img.shields.io/npm/v/is-accessor-descriptor.svg)](https://www.npmjs.com/package/is-accessor-descriptor) [![Build Status](https://img.shields.io/travis/jonschlinkert/is-accessor-descriptor.svg)](https://travis-ci.org/jonschlinkert/is-accessor-descriptor)
-
-> Returns true if a value has the characteristics of a valid JavaScript accessor descriptor.
-
-- [Install](#install)
-- [Usage](#usage)
-- [Examples](#examples)
-- [API](#api)
-- [Related projects](#related-projects)
-- [Running tests](#running-tests)
-- [Contributing](#contributing)
-- [Author](#author)
-- [License](#license)
-
-_(TOC generated by [verb](https://github.com/verbose/verb) using [markdown-toc](https://github.com/jonschlinkert/markdown-toc))_
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm i is-accessor-descriptor --save
-```
-
-## Usage
-
-```js
-var isAccessor = require('is-accessor-descriptor');
-
-isAccessor({get: function() {}});
-//=> true
-```
-
-You may also pass an object and property name to check if the property is an accessor:
-
-```js
-isAccessor(foo, 'bar');
-```
-
-## Examples
-
-`false` when not an object
-
-```js
-isAccessor('a')
-isAccessor(null)
-isAccessor([])
-//=> false
-```
-
-`true` when the object has valid properties
-
-and the properties all have the correct JavaScript types:
-
-```js
-isAccessor({get: noop, set: noop})
-isAccessor({get: noop})
-isAccessor({set: noop})
-//=> true
-```
-
-`false` when the object has invalid properties
-
-```js
-isAccessor({get: noop, set: noop, bar: 'baz'})
-isAccessor({get: noop, writable: true})
-isAccessor({get: noop, value: true})
-//=> false
-```
-
-`false` when an accessor is not a function
-
-```js
-isAccessor({get: noop, set: 'baz'})
-isAccessor({get: 'foo', set: noop})
-isAccessor({get: 'foo', bar: 'baz'})
-isAccessor({get: 'foo', set: 'baz'})
-//=> false
-```
-
-`false` when a value is not the correct type
-
-```js
-isAccessor({get: noop, set: noop, enumerable: 'foo'})
-isAccessor({set: noop, configurable: 'foo'})
-isAccessor({get: noop, configurable: 'foo'})
-//=> false
-```
-
-## Related projects
-
-* [is-accessor-descriptor](https://www.npmjs.com/package/is-accessor-descriptor): Returns true if a value has the characteristics of a valid JavaScript accessor descriptor. | [homepage](https://github.com/jonschlinkert/is-accessor-descriptor)
-* [is-data-descriptor](https://www.npmjs.com/package/is-data-descriptor): Returns true if a value has the characteristics of a valid JavaScript data descriptor. | [homepage](https://github.com/jonschlinkert/is-data-descriptor)
-* [is-descriptor](https://www.npmjs.com/package/is-descriptor): Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for… [more](https://www.npmjs.com/package/is-descriptor) | [homepage](https://github.com/jonschlinkert/is-descriptor)
-* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject)
-
-## Running tests
-
-Install dev dependencies:
-
-```sh
-$ npm i -d && npm test
-```
-
-## Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/is-accessor-descriptor/issues/new).
-
-## Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
-
-## License
-
-Copyright © 2015 [Jon Schlinkert](https://github.com/jonschlinkert)
-Released under the MIT license.
-
-***
-
-_This file was generated by [verb](https://github.com/verbose/verb) on December 28, 2015._
\ No newline at end of file
diff --git a/node_modules/object-copy/node_modules/is-accessor-descriptor/index.js b/node_modules/object-copy/node_modules/is-accessor-descriptor/index.js
deleted file mode 100644
index 2ca4af8..0000000
--- a/node_modules/object-copy/node_modules/is-accessor-descriptor/index.js
+++ /dev/null
@@ -1,69 +0,0 @@
-/*!
- * is-accessor-descriptor
- *
- * Copyright (c) 2015, Jon Schlinkert.
- * Licensed 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/object-copy/node_modules/is-accessor-descriptor/package.json b/node_modules/object-copy/node_modules/is-accessor-descriptor/package.json
deleted file mode 100644
index 0f39c64..0000000
--- a/node_modules/object-copy/node_modules/is-accessor-descriptor/package.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{
- "name": "is-accessor-descriptor",
- "description": "Returns true if a value has the characteristics of a valid JavaScript accessor descriptor.",
- "version": "0.1.6",
- "homepage": "https://github.com/jonschlinkert/is-accessor-descriptor",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/is-accessor-descriptor",
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-accessor-descriptor/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "devDependencies": {
- "mocha": "*",
- "should": "*"
- },
- "keywords": [
- "accessor",
- "check",
- "data",
- "descriptor",
- "get",
- "getter",
- "is",
- "keys",
- "object",
- "properties",
- "property",
- "set",
- "setter",
- "type",
- "valid",
- "value"
- ],
- "verb": {
- "related": {
- "list": [
- "is-accessor-descriptor",
- "is-data-descriptor",
- "is-descriptor",
- "isobject"
- ]
- },
- "plugins": [
- "gulp-format-md"
- ],
- "layout": "default"
- }
-}
diff --git a/node_modules/object-copy/node_modules/is-data-descriptor/LICENSE b/node_modules/object-copy/node_modules/is-data-descriptor/LICENSE
deleted file mode 100644
index 65f90ac..0000000
--- a/node_modules/object-copy/node_modules/is-data-descriptor/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015, 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/object-copy/node_modules/is-data-descriptor/README.md b/node_modules/object-copy/node_modules/is-data-descriptor/README.md
deleted file mode 100644
index 41e1643..0000000
--- a/node_modules/object-copy/node_modules/is-data-descriptor/README.md
+++ /dev/null
@@ -1,128 +0,0 @@
-# is-data-descriptor [![NPM version](https://img.shields.io/npm/v/is-data-descriptor.svg)](https://www.npmjs.com/package/is-data-descriptor) [![Build Status](https://img.shields.io/travis/jonschlinkert/is-data-descriptor.svg)](https://travis-ci.org/jonschlinkert/is-data-descriptor)
-
-> Returns true if a value has the characteristics of a valid JavaScript data descriptor.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm i is-data-descriptor --save
-```
-
-## Usage
-
-```js
-var isDataDesc = require('is-data-descriptor');
-```
-
-## Examples
-
-`true` when the descriptor has valid properties with valid values.
-
-```js
-// `value` can be anything
-isDataDesc({value: 'foo'})
-isDataDesc({value: function() {}})
-isDataDesc({value: true})
-//=> true
-```
-
-`false` when not an object
-
-```js
-isDataDesc('a')
-//=> false
-isDataDesc(null)
-//=> false
-isDataDesc([])
-//=> false
-```
-
-`false` when the object has invalid properties
-
-```js
-isDataDesc({value: 'foo', bar: 'baz'})
-//=> false
-isDataDesc({value: 'foo', bar: 'baz'})
-//=> false
-isDataDesc({value: 'foo', get: function(){}})
-//=> false
-isDataDesc({get: function(){}, value: 'foo'})
-//=> false
-```
-
-`false` when a value is not the correct type
-
-```js
-isDataDesc({value: 'foo', enumerable: 'foo'})
-//=> false
-isDataDesc({value: 'foo', configurable: 'foo'})
-//=> false
-isDataDesc({value: 'foo', writable: 'foo'})
-//=> false
-```
-
-## Valid properties
-
-The only valid data descriptor properties are the following:
-
-* `configurable` (required)
-* `enumerable` (required)
-* `value` (optional)
-* `writable` (optional)
-
-To be a valid data descriptor, either `value` or `writable` must be defined.
-
-**Invalid properties**
-
-A descriptor may have additional _invalid_ properties (an error will **not** be thrown).
-
-```js
-var foo = {};
-
-Object.defineProperty(foo, 'bar', {
- enumerable: true,
- whatever: 'blah', // invalid, but doesn't cause an error
- get: function() {
- return 'baz';
- }
-});
-
-console.log(foo.bar);
-//=> 'baz'
-```
-
-## Related projects
-
-* [is-accessor-descriptor](https://www.npmjs.com/package/is-accessor-descriptor): Returns true if a value has the characteristics of a valid JavaScript accessor descriptor. | [homepage](https://github.com/jonschlinkert/is-accessor-descriptor)
-* [is-descriptor](https://www.npmjs.com/package/is-descriptor): Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for… [more](https://www.npmjs.com/package/is-descriptor) | [homepage](https://github.com/jonschlinkert/is-descriptor)
-* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject)
-
-## Running tests
-
-Install dev dependencies:
-
-```sh
-$ npm i -d && npm test
-```
-
-## Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/is-data-descriptor/issues/new).
-
-## Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
-
-## License
-
-Copyright © 2015 [Jon Schlinkert](https://github.com/jonschlinkert)
-Released under the MIT license.
-
-***
-
-_This file was generated by [verb](https://github.com/verbose/verb) on December 28, 2015._
\ No newline at end of file
diff --git a/node_modules/object-copy/node_modules/is-data-descriptor/index.js b/node_modules/object-copy/node_modules/is-data-descriptor/index.js
deleted file mode 100644
index d4d09c9..0000000
--- a/node_modules/object-copy/node_modules/is-data-descriptor/index.js
+++ /dev/null
@@ -1,55 +0,0 @@
-/*!
- * is-data-descriptor
- *
- * Copyright (c) 2015, Jon Schlinkert.
- * Licensed under the MIT License.
- */
-
-'use strict';
-
-var typeOf = require('kind-of');
-
-// data descriptor properties
-var data = {
- configurable: 'boolean',
- enumerable: 'boolean',
- writable: 'boolean'
-};
-
-function isDataDescriptor(obj, prop) {
- if (typeOf(obj) !== 'object') {
- return false;
- }
-
- if (typeof prop === 'string') {
- var val = Object.getOwnPropertyDescriptor(obj, prop);
- return typeof val !== 'undefined';
- }
-
- if (!('value' in obj) && !('writable' in obj)) {
- return false;
- }
-
- for (var key in obj) {
- if (key === 'value') continue;
-
- if (!data.hasOwnProperty(key)) {
- continue;
- }
-
- if (typeOf(obj[key]) === data[key]) {
- continue;
- }
-
- if (typeof obj[key] !== 'undefined') {
- return false;
- }
- }
- return true;
-}
-
-/**
- * Expose `isDataDescriptor`
- */
-
-module.exports = isDataDescriptor;
diff --git a/node_modules/object-copy/node_modules/is-data-descriptor/package.json b/node_modules/object-copy/node_modules/is-data-descriptor/package.json
deleted file mode 100644
index 5fb294b..0000000
--- a/node_modules/object-copy/node_modules/is-data-descriptor/package.json
+++ /dev/null
@@ -1,60 +0,0 @@
-{
- "name": "is-data-descriptor",
- "description": "Returns true if a value has the characteristics of a valid JavaScript data descriptor.",
- "version": "0.1.4",
- "homepage": "https://github.com/jonschlinkert/is-data-descriptor",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/is-data-descriptor",
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-data-descriptor/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "devDependencies": {
- "mocha": "*",
- "should": "*"
- },
- "keywords": [
- "accessor",
- "check",
- "data",
- "descriptor",
- "get",
- "getter",
- "is",
- "keys",
- "object",
- "properties",
- "property",
- "set",
- "setter",
- "type",
- "valid",
- "value"
- ],
- "verb": {
- "related": {
- "list": [
- "is-accessor-descriptor",
- "is-data-descriptor",
- "is-descriptor",
- "isobject"
- ]
- },
- "plugins": [
- "gulp-format-md"
- ]
- }
-}
diff --git a/node_modules/object-copy/node_modules/is-descriptor/LICENSE b/node_modules/object-copy/node_modules/is-descriptor/LICENSE
deleted file mode 100644
index c0d7f13..0000000
--- a/node_modules/object-copy/node_modules/is-descriptor/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015-2017, 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.
\ No newline at end of file
diff --git a/node_modules/object-copy/node_modules/is-descriptor/README.md b/node_modules/object-copy/node_modules/is-descriptor/README.md
deleted file mode 100644
index 658e533..0000000
--- a/node_modules/object-copy/node_modules/is-descriptor/README.md
+++ /dev/null
@@ -1,193 +0,0 @@
-# is-descriptor [![NPM version](https://img.shields.io/npm/v/is-descriptor.svg?style=flat)](https://www.npmjs.com/package/is-descriptor) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-descriptor.svg?style=flat)](https://npmjs.org/package/is-descriptor) [![NPM total downloads](https://img.shields.io/npm/dt/is-descriptor.svg?style=flat)](https://npmjs.org/package/is-descriptor) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-descriptor.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-descriptor)
-
-> Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for data descriptors and accessor descriptors.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save is-descriptor
-```
-
-## Usage
-
-```js
-var isDescriptor = require('is-descriptor');
-
-isDescriptor({value: 'foo'})
-//=> true
-isDescriptor({get: function(){}, set: function(){}})
-//=> true
-isDescriptor({get: 'foo', set: function(){}})
-//=> false
-```
-
-You may also check for a descriptor by passing an object as the first argument and property name (`string`) as the second argument.
-
-```js
-var obj = {};
-obj.foo = 'abc';
-
-Object.defineProperty(obj, 'bar', {
- value: 'xyz'
-});
-
-isDescriptor(obj, 'foo');
-//=> true
-isDescriptor(obj, 'bar');
-//=> true
-```
-
-## Examples
-
-### value type
-
-`false` when not an object
-
-```js
-isDescriptor('a');
-//=> false
-isDescriptor(null);
-//=> false
-isDescriptor([]);
-//=> false
-```
-
-### data descriptor
-
-`true` when the object has valid properties with valid values.
-
-```js
-isDescriptor({value: 'foo'});
-//=> true
-isDescriptor({value: noop});
-//=> true
-```
-
-`false` when the object has invalid properties
-
-```js
-isDescriptor({value: 'foo', bar: 'baz'});
-//=> false
-isDescriptor({value: 'foo', bar: 'baz'});
-//=> false
-isDescriptor({value: 'foo', get: noop});
-//=> false
-isDescriptor({get: noop, value: noop});
-//=> false
-```
-
-`false` when a value is not the correct type
-
-```js
-isDescriptor({value: 'foo', enumerable: 'foo'});
-//=> false
-isDescriptor({value: 'foo', configurable: 'foo'});
-//=> false
-isDescriptor({value: 'foo', writable: 'foo'});
-//=> false
-```
-
-### accessor descriptor
-
-`true` when the object has valid properties with valid values.
-
-```js
-isDescriptor({get: noop, set: noop});
-//=> true
-isDescriptor({get: noop});
-//=> true
-isDescriptor({set: noop});
-//=> true
-```
-
-`false` when the object has invalid properties
-
-```js
-isDescriptor({get: noop, set: noop, bar: 'baz'});
-//=> false
-isDescriptor({get: noop, writable: true});
-//=> false
-isDescriptor({get: noop, value: true});
-//=> false
-```
-
-`false` when an accessor is not a function
-
-```js
-isDescriptor({get: noop, set: 'baz'});
-//=> false
-isDescriptor({get: 'foo', set: noop});
-//=> false
-isDescriptor({get: 'foo', bar: 'baz'});
-//=> false
-isDescriptor({get: 'foo', set: 'baz'});
-//=> false
-```
-
-`false` when a value is not the correct type
-
-```js
-isDescriptor({get: noop, set: noop, enumerable: 'foo'});
-//=> false
-isDescriptor({set: noop, configurable: 'foo'});
-//=> false
-isDescriptor({get: noop, configurable: 'foo'});
-//=> false
-```
-
-## About
-
-### Related projects
-
-* [is-accessor-descriptor](https://www.npmjs.com/package/is-accessor-descriptor): Returns true if a value has the characteristics of a valid JavaScript accessor descriptor. | [homepage](https://github.com/jonschlinkert/is-accessor-descriptor "Returns true if a value has the characteristics of a valid JavaScript accessor descriptor.")
-* [is-data-descriptor](https://www.npmjs.com/package/is-data-descriptor): Returns true if a value has the characteristics of a valid JavaScript data descriptor. | [homepage](https://github.com/jonschlinkert/is-data-descriptor "Returns true if a value has the characteristics of a valid JavaScript data descriptor.")
-* [is-descriptor](https://www.npmjs.com/package/is-descriptor): Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for… [more](https://github.com/jonschlinkert/is-descriptor) | [homepage](https://github.com/jonschlinkert/is-descriptor "Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for data descriptors and accessor descriptors.")
-* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 24 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 1 | [doowb](https://github.com/doowb) |
-| 1 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) |
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on July 22, 2017._
\ No newline at end of file
diff --git a/node_modules/object-copy/node_modules/is-descriptor/index.js b/node_modules/object-copy/node_modules/is-descriptor/index.js
deleted file mode 100644
index c9b91d7..0000000
--- a/node_modules/object-copy/node_modules/is-descriptor/index.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/*!
- * is-descriptor
- *
- * Copyright (c) 2015-2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-var typeOf = require('kind-of');
-var isAccessor = require('is-accessor-descriptor');
-var isData = require('is-data-descriptor');
-
-module.exports = function isDescriptor(obj, key) {
- if (typeOf(obj) !== 'object') {
- return false;
- }
- if ('get' in obj) {
- return isAccessor(obj, key);
- }
- return isData(obj, key);
-};
diff --git a/node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of/LICENSE b/node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of/LICENSE
deleted file mode 100644
index 3f2eca1..0000000
--- a/node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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/object-copy/node_modules/is-descriptor/node_modules/kind-of/README.md b/node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of/README.md
deleted file mode 100644
index 170bf30..0000000
--- a/node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of/README.md
+++ /dev/null
@@ -1,342 +0,0 @@
-# kind-of [![NPM version](https://img.shields.io/npm/v/kind-of.svg?style=flat)](https://www.npmjs.com/package/kind-of) [![NPM monthly downloads](https://img.shields.io/npm/dm/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![NPM total downloads](https://img.shields.io/npm/dt/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/kind-of.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/kind-of)
-
-> Get the native type of a value.
-
-Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save kind-of
-```
-
-Install with [bower](https://bower.io/)
-
-```sh
-$ bower install kind-of --save
-```
-
-## Why use this?
-
-1. [it's fast](#benchmarks) | [optimizations](#optimizations)
-2. [better type checking](#better-type-checking)
-
-## Usage
-
-> es5, browser and es6 ready
-
-```js
-var kindOf = require('kind-of');
-
-kindOf(undefined);
-//=> 'undefined'
-
-kindOf(null);
-//=> 'null'
-
-kindOf(true);
-//=> 'boolean'
-
-kindOf(false);
-//=> 'boolean'
-
-kindOf(new Boolean(true));
-//=> 'boolean'
-
-kindOf(new Buffer(''));
-//=> 'buffer'
-
-kindOf(42);
-//=> 'number'
-
-kindOf(new Number(42));
-//=> 'number'
-
-kindOf('str');
-//=> 'string'
-
-kindOf(new String('str'));
-//=> 'string'
-
-kindOf(arguments);
-//=> 'arguments'
-
-kindOf({});
-//=> 'object'
-
-kindOf(Object.create(null));
-//=> 'object'
-
-kindOf(new Test());
-//=> 'object'
-
-kindOf(new Date());
-//=> 'date'
-
-kindOf([]);
-//=> 'array'
-
-kindOf([1, 2, 3]);
-//=> 'array'
-
-kindOf(new Array());
-//=> 'array'
-
-kindOf(/foo/);
-//=> 'regexp'
-
-kindOf(new RegExp('foo'));
-//=> 'regexp'
-
-kindOf(function () {});
-//=> 'function'
-
-kindOf(function * () {});
-//=> 'function'
-
-kindOf(new Function());
-//=> 'function'
-
-kindOf(new Map());
-//=> 'map'
-
-kindOf(new WeakMap());
-//=> 'weakmap'
-
-kindOf(new Set());
-//=> 'set'
-
-kindOf(new WeakSet());
-//=> 'weakset'
-
-kindOf(Symbol('str'));
-//=> 'symbol'
-
-kindOf(new Int8Array());
-//=> 'int8array'
-
-kindOf(new Uint8Array());
-//=> 'uint8array'
-
-kindOf(new Uint8ClampedArray());
-//=> 'uint8clampedarray'
-
-kindOf(new Int16Array());
-//=> 'int16array'
-
-kindOf(new Uint16Array());
-//=> 'uint16array'
-
-kindOf(new Int32Array());
-//=> 'int32array'
-
-kindOf(new Uint32Array());
-//=> 'uint32array'
-
-kindOf(new Float32Array());
-//=> 'float32array'
-
-kindOf(new Float64Array());
-//=> 'float64array'
-```
-
-## Release history
-
-### v4.0.0
-
-**Added**
-
-* `promise` support
-
-### v5.0.0
-
-**Added**
-
-* `Set Iterator` and `Map Iterator` support
-
-**Fixed**
-
-* Now returns `generatorfunction` for generator functions
-
-## Benchmarks
-
-Benchmarked against [typeof](http://github.com/CodingFu/typeof) and [type-of](https://github.com/ForbesLindesay/type-of).
-Note that performaces is slower for es6 features `Map`, `WeakMap`, `Set` and `WeakSet`.
-
-```bash
-#1: array
- current x 23,329,397 ops/sec ±0.82% (94 runs sampled)
- lib-type-of x 4,170,273 ops/sec ±0.55% (94 runs sampled)
- lib-typeof x 9,686,935 ops/sec ±0.59% (98 runs sampled)
-
-#2: boolean
- current x 27,197,115 ops/sec ±0.85% (94 runs sampled)
- lib-type-of x 3,145,791 ops/sec ±0.73% (97 runs sampled)
- lib-typeof x 9,199,562 ops/sec ±0.44% (99 runs sampled)
-
-#3: date
- current x 20,190,117 ops/sec ±0.86% (92 runs sampled)
- lib-type-of x 5,166,970 ops/sec ±0.74% (94 runs sampled)
- lib-typeof x 9,610,821 ops/sec ±0.50% (96 runs sampled)
-
-#4: function
- current x 23,855,460 ops/sec ±0.60% (97 runs sampled)
- lib-type-of x 5,667,740 ops/sec ±0.54% (100 runs sampled)
- lib-typeof x 10,010,644 ops/sec ±0.44% (100 runs sampled)
-
-#5: null
- current x 27,061,047 ops/sec ±0.97% (96 runs sampled)
- lib-type-of x 13,965,573 ops/sec ±0.62% (97 runs sampled)
- lib-typeof x 8,460,194 ops/sec ±0.61% (97 runs sampled)
-
-#6: number
- current x 25,075,682 ops/sec ±0.53% (99 runs sampled)
- lib-type-of x 2,266,405 ops/sec ±0.41% (98 runs sampled)
- lib-typeof x 9,821,481 ops/sec ±0.45% (99 runs sampled)
-
-#7: object
- current x 3,348,980 ops/sec ±0.49% (99 runs sampled)
- lib-type-of x 3,245,138 ops/sec ±0.60% (94 runs sampled)
- lib-typeof x 9,262,952 ops/sec ±0.59% (99 runs sampled)
-
-#8: regex
- current x 21,284,827 ops/sec ±0.72% (96 runs sampled)
- lib-type-of x 4,689,241 ops/sec ±0.43% (100 runs sampled)
- lib-typeof x 8,957,593 ops/sec ±0.62% (98 runs sampled)
-
-#9: string
- current x 25,379,234 ops/sec ±0.58% (96 runs sampled)
- lib-type-of x 3,635,148 ops/sec ±0.76% (93 runs sampled)
- lib-typeof x 9,494,134 ops/sec ±0.49% (98 runs sampled)
-
-#10: undef
- current x 27,459,221 ops/sec ±1.01% (93 runs sampled)
- lib-type-of x 14,360,433 ops/sec ±0.52% (99 runs sampled)
- lib-typeof x 23,202,868 ops/sec ±0.59% (94 runs sampled)
-
-```
-
-## Optimizations
-
-In 7 out of 8 cases, this library is 2x-10x faster than other top libraries included in the benchmarks. There are a few things that lead to this performance advantage, none of them hard and fast rules, but all of them simple and repeatable in almost any code library:
-
-1. Optimize around the fastest and most common use cases first. Of course, this will change from project-to-project, but I took some time to understand how and why `typeof` checks were being used in my own libraries and other libraries I use a lot.
-2. Optimize around bottlenecks - In other words, the order in which conditionals are implemented is significant, because each check is only as fast as the failing checks that came before it. Here, the biggest bottleneck by far is checking for plain objects (an object that was created by the `Object` constructor). I opted to make this check happen by process of elimination rather than brute force up front (e.g. by using something like `val.constructor.name`), so that every other type check would not be penalized it.
-3. Don't do uneccessary processing - why do `.slice(8, -1).toLowerCase();` just to get the word `regex`? It's much faster to do `if (type === '[object RegExp]') return 'regex'`
-4. There is no reason to make the code in a microlib as terse as possible, just to win points for making it shorter. It's always better to favor performant code over terse code. You will always only be using a single `require()` statement to use the library anyway, regardless of how the code is written.
-
-## Better type checking
-
-kind-of is more correct than other type checking libs I've looked at. For example, here are some differing results from other popular libs:
-
-### [typeof](https://github.com/CodingFu/typeof) lib
-
-Incorrectly tests instances of custom constructors (pretty common):
-
-```js
-var typeOf = require('typeof');
-function Test() {}
-console.log(typeOf(new Test()));
-//=> 'test'
-```
-
-Returns `object` instead of `arguments`:
-
-```js
-function foo() {
- console.log(typeOf(arguments)) //=> 'object'
-}
-foo();
-```
-
-### [type-of](https://github.com/ForbesLindesay/type-of) lib
-
-Incorrectly returns `object` for generator functions, buffers, `Map`, `Set`, `WeakMap` and `WeakSet`:
-
-```js
-function * foo() {}
-console.log(typeOf(foo));
-//=> 'object'
-console.log(typeOf(new Buffer('')));
-//=> 'object'
-console.log(typeOf(new Map()));
-//=> 'object'
-console.log(typeOf(new Set()));
-//=> 'object'
-console.log(typeOf(new WeakMap()));
-//=> 'object'
-console.log(typeOf(new WeakSet()));
-//=> 'object'
-```
-
-## About
-
-
-Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-
-
-
-Running Tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-
-
-
-Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-
-
-### Related projects
-
-You might also be interested in these projects:
-
-* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/jonschlinkert/is-glob) | [homepage](https://github.com/jonschlinkert/is-glob "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet")
-* [is-number](https://www.npmjs.com/package/is-number): Returns true if the value is a number. comprehensive tests. | [homepage](https://github.com/jonschlinkert/is-number "Returns true if the value is a number. comprehensive tests.")
-* [is-primitive](https://www.npmjs.com/package/is-primitive): Returns `true` if the value is a primitive. | [homepage](https://github.com/jonschlinkert/is-primitive "Returns `true` if the value is a primitive. ")
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 82 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 3 | [aretecode](https://github.com/aretecode) |
-| 2 | [miguelmota](https://github.com/miguelmota) |
-| 1 | [dtothefp](https://github.com/dtothefp) |
-| 1 | [ksheedlo](https://github.com/ksheedlo) |
-| 1 | [pdehaan](https://github.com/pdehaan) |
-| 1 | [laggingreflex](https://github.com/laggingreflex) |
-| 1 | [charlike](https://github.com/charlike) |
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on October 13, 2017._
\ No newline at end of file
diff --git a/node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of/index.js b/node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of/index.js
deleted file mode 100644
index fc5cde9..0000000
--- a/node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of/index.js
+++ /dev/null
@@ -1,147 +0,0 @@
-var toString = Object.prototype.toString;
-
-/**
- * Get the native `typeof` a value.
- *
- * @param {*} `val`
- * @return {*} Native javascript type
- */
-
-module.exports = function kindOf(val) {
- var type = typeof val;
-
- // primitivies
- if (type === 'undefined') {
- return 'undefined';
- }
- if (val === null) {
- return 'null';
- }
- if (val === true || val === false || val instanceof Boolean) {
- return 'boolean';
- }
- if (type === 'string' || val instanceof String) {
- return 'string';
- }
- if (type === 'number' || val instanceof Number) {
- return 'number';
- }
-
- // functions
- if (type === 'function' || val instanceof Function) {
- if (typeof val.constructor.name !== 'undefined' && val.constructor.name.slice(0, 9) === 'Generator') {
- return 'generatorfunction';
- }
- return 'function';
- }
-
- // array
- if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) {
- return 'array';
- }
-
- // check for instances of RegExp and Date before calling `toString`
- if (val instanceof RegExp) {
- return 'regexp';
- }
- if (val instanceof Date) {
- return 'date';
- }
-
- // other objects
- type = toString.call(val);
-
- if (type === '[object RegExp]') {
- return 'regexp';
- }
- if (type === '[object Date]') {
- return 'date';
- }
- if (type === '[object Arguments]') {
- return 'arguments';
- }
- if (type === '[object Error]') {
- return 'error';
- }
- if (type === '[object Promise]') {
- return 'promise';
- }
-
- // buffer
- if (isBuffer(val)) {
- return 'buffer';
- }
-
- // es6: Map, WeakMap, Set, WeakSet
- if (type === '[object Set]') {
- return 'set';
- }
- if (type === '[object WeakSet]') {
- return 'weakset';
- }
- if (type === '[object Map]') {
- return 'map';
- }
- if (type === '[object WeakMap]') {
- return 'weakmap';
- }
- if (type === '[object Symbol]') {
- return 'symbol';
- }
-
- if (type === '[object Map Iterator]') {
- return 'mapiterator';
- }
- if (type === '[object Set Iterator]') {
- return 'setiterator';
- }
- if (type === '[object String Iterator]') {
- return 'stringiterator';
- }
- if (type === '[object Array Iterator]') {
- return 'arrayiterator';
- }
-
- // typed arrays
- if (type === '[object Int8Array]') {
- return 'int8array';
- }
- if (type === '[object Uint8Array]') {
- return 'uint8array';
- }
- if (type === '[object Uint8ClampedArray]') {
- return 'uint8clampedarray';
- }
- if (type === '[object Int16Array]') {
- return 'int16array';
- }
- if (type === '[object Uint16Array]') {
- return 'uint16array';
- }
- if (type === '[object Int32Array]') {
- return 'int32array';
- }
- if (type === '[object Uint32Array]') {
- return 'uint32array';
- }
- if (type === '[object Float32Array]') {
- return 'float32array';
- }
- if (type === '[object Float64Array]') {
- return 'float64array';
- }
-
- // must be a plain object
- return 'object';
-};
-
-/**
- * If you need to support Safari 5-7 (8-10 yr-old browser),
- * take a look at https://github.com/feross/is-buffer
- */
-
-function isBuffer(val) {
- return val.constructor
- && typeof val.constructor.isBuffer === 'function'
- && val.constructor.isBuffer(val);
-}
diff --git a/node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of/package.json b/node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of/package.json
deleted file mode 100644
index 334235f..0000000
--- a/node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of/package.json
+++ /dev/null
@@ -1,91 +0,0 @@
-{
- "name": "kind-of",
- "description": "Get the native type of a value.",
- "version": "5.1.0",
- "homepage": "https://github.com/jonschlinkert/kind-of",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "David Fox-Powell (https://dtothefp.github.io/me)",
- "James (https://twitter.com/aretecode)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Ken Sheedlo (kensheedlo.com)",
- "laggingreflex (https://github.com/laggingreflex)",
- "Miguel Mota (https://miguelmota.com)",
- "Peter deHaan (http://about.me/peterdehaan)",
- "tunnckoCore (https://i.am.charlike.online)"
- ],
- "repository": "jonschlinkert/kind-of",
- "bugs": {
- "url": "https://github.com/jonschlinkert/kind-of/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha",
- "prepublish": "browserify -o browser.js -e index.js -s index --bare"
- },
- "devDependencies": {
- "ansi-bold": "^0.1.1",
- "benchmarked": "^1.1.1",
- "browserify": "^14.4.0",
- "gulp-format-md": "^0.1.12",
- "matched": "^0.4.4",
- "mocha": "^3.4.2",
- "type-of": "^2.0.1",
- "typeof": "^1.0.0"
- },
- "keywords": [
- "arguments",
- "array",
- "boolean",
- "check",
- "date",
- "function",
- "is",
- "is-type",
- "is-type-of",
- "kind",
- "kind-of",
- "number",
- "object",
- "of",
- "regexp",
- "string",
- "test",
- "type",
- "type-of",
- "typeof",
- "types"
- ],
- "verb": {
- "related": {
- "list": [
- "is-glob",
- "is-number",
- "is-primitive"
- ]
- },
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- },
- "reflinks": [
- "type-of",
- "typeof",
- "verb"
- ]
- }
-}
diff --git a/node_modules/object-copy/node_modules/is-descriptor/package.json b/node_modules/object-copy/node_modules/is-descriptor/package.json
deleted file mode 100644
index a561bfe..0000000
--- a/node_modules/object-copy/node_modules/is-descriptor/package.json
+++ /dev/null
@@ -1,75 +0,0 @@
-{
- "name": "is-descriptor",
- "description": "Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for data descriptors and accessor descriptors.",
- "version": "0.1.6",
- "homepage": "https://github.com/jonschlinkert/is-descriptor",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Brian Woodward (https://twitter.com/doowb)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "(https://github.com/wtgtybhertgeghgtwtg)"
- ],
- "repository": "jonschlinkert/is-descriptor",
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-descriptor/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
- },
- "devDependencies": {
- "gulp-format-md": "^1.0.0",
- "mocha": "^3.4.2"
- },
- "keywords": [
- "accessor",
- "check",
- "data",
- "descriptor",
- "get",
- "getter",
- "is",
- "keys",
- "object",
- "properties",
- "property",
- "set",
- "setter",
- "type",
- "valid",
- "value"
- ],
- "verb": {
- "related": {
- "list": [
- "is-accessor-descriptor",
- "is-data-descriptor",
- "is-descriptor",
- "isobject"
- ]
- },
- "plugins": [
- "gulp-format-md"
- ],
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/object-copy/node_modules/kind-of/LICENSE b/node_modules/object-copy/node_modules/kind-of/LICENSE
deleted file mode 100644
index d734237..0000000
--- a/node_modules/object-copy/node_modules/kind-of/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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/object-copy/node_modules/kind-of/README.md b/node_modules/object-copy/node_modules/kind-of/README.md
deleted file mode 100644
index 6a9df36..0000000
--- a/node_modules/object-copy/node_modules/kind-of/README.md
+++ /dev/null
@@ -1,261 +0,0 @@
-# kind-of [![NPM version](https://img.shields.io/npm/v/kind-of.svg?style=flat)](https://www.npmjs.com/package/kind-of) [![NPM monthly downloads](https://img.shields.io/npm/dm/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![NPM total downloads](https://img.shields.io/npm/dt/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/kind-of.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/kind-of)
-
-> Get the native type of a value.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save kind-of
-```
-
-## Install
-
-Install with [bower](https://bower.io/)
-
-```sh
-$ bower install kind-of --save
-```
-
-## Usage
-
-> es5, browser and es6 ready
-
-```js
-var kindOf = require('kind-of');
-
-kindOf(undefined);
-//=> 'undefined'
-
-kindOf(null);
-//=> 'null'
-
-kindOf(true);
-//=> 'boolean'
-
-kindOf(false);
-//=> 'boolean'
-
-kindOf(new Boolean(true));
-//=> 'boolean'
-
-kindOf(new Buffer(''));
-//=> 'buffer'
-
-kindOf(42);
-//=> 'number'
-
-kindOf(new Number(42));
-//=> 'number'
-
-kindOf('str');
-//=> 'string'
-
-kindOf(new String('str'));
-//=> 'string'
-
-kindOf(arguments);
-//=> 'arguments'
-
-kindOf({});
-//=> 'object'
-
-kindOf(Object.create(null));
-//=> 'object'
-
-kindOf(new Test());
-//=> 'object'
-
-kindOf(new Date());
-//=> 'date'
-
-kindOf([]);
-//=> 'array'
-
-kindOf([1, 2, 3]);
-//=> 'array'
-
-kindOf(new Array());
-//=> 'array'
-
-kindOf(/foo/);
-//=> 'regexp'
-
-kindOf(new RegExp('foo'));
-//=> 'regexp'
-
-kindOf(function () {});
-//=> 'function'
-
-kindOf(function * () {});
-//=> 'function'
-
-kindOf(new Function());
-//=> 'function'
-
-kindOf(new Map());
-//=> 'map'
-
-kindOf(new WeakMap());
-//=> 'weakmap'
-
-kindOf(new Set());
-//=> 'set'
-
-kindOf(new WeakSet());
-//=> 'weakset'
-
-kindOf(Symbol('str'));
-//=> 'symbol'
-
-kindOf(new Int8Array());
-//=> 'int8array'
-
-kindOf(new Uint8Array());
-//=> 'uint8array'
-
-kindOf(new Uint8ClampedArray());
-//=> 'uint8clampedarray'
-
-kindOf(new Int16Array());
-//=> 'int16array'
-
-kindOf(new Uint16Array());
-//=> 'uint16array'
-
-kindOf(new Int32Array());
-//=> 'int32array'
-
-kindOf(new Uint32Array());
-//=> 'uint32array'
-
-kindOf(new Float32Array());
-//=> 'float32array'
-
-kindOf(new Float64Array());
-//=> 'float64array'
-```
-
-## Benchmarks
-
-Benchmarked against [typeof](http://github.com/CodingFu/typeof) and [type-of](https://github.com/ForbesLindesay/type-of).
-Note that performaces is slower for es6 features `Map`, `WeakMap`, `Set` and `WeakSet`.
-
-```bash
-#1: array
- current x 23,329,397 ops/sec ±0.82% (94 runs sampled)
- lib-type-of x 4,170,273 ops/sec ±0.55% (94 runs sampled)
- lib-typeof x 9,686,935 ops/sec ±0.59% (98 runs sampled)
-
-#2: boolean
- current x 27,197,115 ops/sec ±0.85% (94 runs sampled)
- lib-type-of x 3,145,791 ops/sec ±0.73% (97 runs sampled)
- lib-typeof x 9,199,562 ops/sec ±0.44% (99 runs sampled)
-
-#3: date
- current x 20,190,117 ops/sec ±0.86% (92 runs sampled)
- lib-type-of x 5,166,970 ops/sec ±0.74% (94 runs sampled)
- lib-typeof x 9,610,821 ops/sec ±0.50% (96 runs sampled)
-
-#4: function
- current x 23,855,460 ops/sec ±0.60% (97 runs sampled)
- lib-type-of x 5,667,740 ops/sec ±0.54% (100 runs sampled)
- lib-typeof x 10,010,644 ops/sec ±0.44% (100 runs sampled)
-
-#5: null
- current x 27,061,047 ops/sec ±0.97% (96 runs sampled)
- lib-type-of x 13,965,573 ops/sec ±0.62% (97 runs sampled)
- lib-typeof x 8,460,194 ops/sec ±0.61% (97 runs sampled)
-
-#6: number
- current x 25,075,682 ops/sec ±0.53% (99 runs sampled)
- lib-type-of x 2,266,405 ops/sec ±0.41% (98 runs sampled)
- lib-typeof x 9,821,481 ops/sec ±0.45% (99 runs sampled)
-
-#7: object
- current x 3,348,980 ops/sec ±0.49% (99 runs sampled)
- lib-type-of x 3,245,138 ops/sec ±0.60% (94 runs sampled)
- lib-typeof x 9,262,952 ops/sec ±0.59% (99 runs sampled)
-
-#8: regex
- current x 21,284,827 ops/sec ±0.72% (96 runs sampled)
- lib-type-of x 4,689,241 ops/sec ±0.43% (100 runs sampled)
- lib-typeof x 8,957,593 ops/sec ±0.62% (98 runs sampled)
-
-#9: string
- current x 25,379,234 ops/sec ±0.58% (96 runs sampled)
- lib-type-of x 3,635,148 ops/sec ±0.76% (93 runs sampled)
- lib-typeof x 9,494,134 ops/sec ±0.49% (98 runs sampled)
-
-#10: undef
- current x 27,459,221 ops/sec ±1.01% (93 runs sampled)
- lib-type-of x 14,360,433 ops/sec ±0.52% (99 runs sampled)
- lib-typeof x 23,202,868 ops/sec ±0.59% (94 runs sampled)
-
-```
-
-## Optimizations
-
-In 7 out of 8 cases, this library is 2x-10x faster than other top libraries included in the benchmarks. There are a few things that lead to this performance advantage, none of them hard and fast rules, but all of them simple and repeatable in almost any code library:
-
-1. Optimize around the fastest and most common use cases first. Of course, this will change from project-to-project, but I took some time to understand how and why `typeof` checks were being used in my own libraries and other libraries I use a lot.
-2. Optimize around bottlenecks - In other words, the order in which conditionals are implemented is significant, because each check is only as fast as the failing checks that came before it. Here, the biggest bottleneck by far is checking for plain objects (an object that was created by the `Object` constructor). I opted to make this check happen by process of elimination rather than brute force up front (e.g. by using something like `val.constructor.name`), so that every other type check would not be penalized it.
-3. Don't do uneccessary processing - why do `.slice(8, -1).toLowerCase();` just to get the word `regex`? It's much faster to do `if (type === '[object RegExp]') return 'regex'`
-
-## About
-
-### Related projects
-
-* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/jonschlinkert/is-glob) | [homepage](https://github.com/jonschlinkert/is-glob "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet")
-* [is-number](https://www.npmjs.com/package/is-number): Returns true if the value is a number. comprehensive tests. | [homepage](https://github.com/jonschlinkert/is-number "Returns true if the value is a number. comprehensive tests.")
-* [is-primitive](https://www.npmjs.com/package/is-primitive): Returns `true` if the value is a primitive. | [homepage](https://github.com/jonschlinkert/is-primitive "Returns `true` if the value is a primitive. ")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 59 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 2 | [miguelmota](https://github.com/miguelmota) |
-| 1 | [dtothefp](https://github.com/dtothefp) |
-| 1 | [ksheedlo](https://github.com/ksheedlo) |
-| 1 | [pdehaan](https://github.com/pdehaan) |
-| 1 | [laggingreflex](https://github.com/laggingreflex) |
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on May 16, 2017._
\ No newline at end of file
diff --git a/node_modules/object-copy/node_modules/kind-of/index.js b/node_modules/object-copy/node_modules/kind-of/index.js
deleted file mode 100644
index b52c291..0000000
--- a/node_modules/object-copy/node_modules/kind-of/index.js
+++ /dev/null
@@ -1,116 +0,0 @@
-var isBuffer = require('is-buffer');
-var toString = Object.prototype.toString;
-
-/**
- * Get the native `typeof` a value.
- *
- * @param {*} `val`
- * @return {*} Native javascript type
- */
-
-module.exports = function kindOf(val) {
- // primitivies
- if (typeof val === 'undefined') {
- return 'undefined';
- }
- if (val === null) {
- return 'null';
- }
- if (val === true || val === false || val instanceof Boolean) {
- return 'boolean';
- }
- if (typeof val === 'string' || val instanceof String) {
- return 'string';
- }
- if (typeof val === 'number' || val instanceof Number) {
- return 'number';
- }
-
- // functions
- if (typeof val === 'function' || val instanceof Function) {
- return 'function';
- }
-
- // array
- if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) {
- return 'array';
- }
-
- // check for instances of RegExp and Date before calling `toString`
- if (val instanceof RegExp) {
- return 'regexp';
- }
- if (val instanceof Date) {
- return 'date';
- }
-
- // other objects
- var type = toString.call(val);
-
- if (type === '[object RegExp]') {
- return 'regexp';
- }
- if (type === '[object Date]') {
- return 'date';
- }
- if (type === '[object Arguments]') {
- return 'arguments';
- }
- if (type === '[object Error]') {
- return 'error';
- }
-
- // buffer
- if (isBuffer(val)) {
- return 'buffer';
- }
-
- // es6: Map, WeakMap, Set, WeakSet
- if (type === '[object Set]') {
- return 'set';
- }
- if (type === '[object WeakSet]') {
- return 'weakset';
- }
- if (type === '[object Map]') {
- return 'map';
- }
- if (type === '[object WeakMap]') {
- return 'weakmap';
- }
- if (type === '[object Symbol]') {
- return 'symbol';
- }
-
- // typed arrays
- if (type === '[object Int8Array]') {
- return 'int8array';
- }
- if (type === '[object Uint8Array]') {
- return 'uint8array';
- }
- if (type === '[object Uint8ClampedArray]') {
- return 'uint8clampedarray';
- }
- if (type === '[object Int16Array]') {
- return 'int16array';
- }
- if (type === '[object Uint16Array]') {
- return 'uint16array';
- }
- if (type === '[object Int32Array]') {
- return 'int32array';
- }
- if (type === '[object Uint32Array]') {
- return 'uint32array';
- }
- if (type === '[object Float32Array]') {
- return 'float32array';
- }
- if (type === '[object Float64Array]') {
- return 'float64array';
- }
-
- // must be a plain object
- return 'object';
-};
diff --git a/node_modules/object-copy/node_modules/kind-of/package.json b/node_modules/object-copy/node_modules/kind-of/package.json
deleted file mode 100644
index 5de879e..0000000
--- a/node_modules/object-copy/node_modules/kind-of/package.json
+++ /dev/null
@@ -1,90 +0,0 @@
-{
- "name": "kind-of",
- "description": "Get the native type of a value.",
- "version": "3.2.2",
- "homepage": "https://github.com/jonschlinkert/kind-of",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "David Fox-Powell (https://dtothefp.github.io/me)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Ken Sheedlo (kensheedlo.com)",
- "laggingreflex (https://github.com/laggingreflex)",
- "Miguel Mota (https://miguelmota.com)",
- "Peter deHaan (http://about.me/peterdehaan)"
- ],
- "repository": "jonschlinkert/kind-of",
- "bugs": {
- "url": "https://github.com/jonschlinkert/kind-of/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha",
- "prepublish": "browserify -o browser.js -e index.js -s index --bare"
- },
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "devDependencies": {
- "ansi-bold": "^0.1.1",
- "benchmarked": "^1.0.0",
- "browserify": "^14.3.0",
- "glob": "^7.1.1",
- "gulp-format-md": "^0.1.12",
- "mocha": "^3.3.0",
- "type-of": "^2.0.1",
- "typeof": "^1.0.0"
- },
- "keywords": [
- "arguments",
- "array",
- "boolean",
- "check",
- "date",
- "function",
- "is",
- "is-type",
- "is-type-of",
- "kind",
- "kind-of",
- "number",
- "object",
- "of",
- "regexp",
- "string",
- "test",
- "type",
- "type-of",
- "typeof",
- "types"
- ],
- "verb": {
- "related": {
- "list": [
- "is-glob",
- "is-number",
- "is-primitive"
- ]
- },
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- },
- "reflinks": [
- "verb"
- ]
- }
-}
diff --git a/node_modules/object-copy/package.json b/node_modules/object-copy/package.json
deleted file mode 100644
index f02a96c..0000000
--- a/node_modules/object-copy/package.json
+++ /dev/null
@@ -1,47 +0,0 @@
-{
- "name": "object-copy",
- "description": "Copy static properties, prototype properties, and descriptors from one object to another.",
- "version": "0.1.0",
- "homepage": "https://github.com/jonschlinkert/object-copy",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/object-copy",
- "bugs": {
- "url": "https://github.com/jonschlinkert/object-copy/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "copy-descriptor": "^0.1.0",
- "define-property": "^0.2.5",
- "kind-of": "^3.0.3"
- },
- "devDependencies": {
- "gulp-format-md": "*",
- "mocha": "*"
- },
- "keywords": [
- "copy",
- "object"
- ],
- "verb": {
- "layout": "default",
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": []
- },
- "reflinks": [
- "verb"
- ]
- }
-}
diff --git a/node_modules/object-keys/.editorconfig b/node_modules/object-keys/.editorconfig
deleted file mode 100644
index eaa2141..0000000
--- a/node_modules/object-keys/.editorconfig
+++ /dev/null
@@ -1,13 +0,0 @@
-root = true
-
-[*]
-indent_style = tab;
-insert_final_newline = true;
-quote_type = auto;
-space_after_anonymous_functions = true;
-space_after_control_statements = true;
-spaces_around_operators = true;
-trim_trailing_whitespace = true;
-spaces_in_brackets = false;
-end_of_line = lf;
-
diff --git a/node_modules/object-keys/.eslintrc b/node_modules/object-keys/.eslintrc
deleted file mode 100644
index 9a8d5b0..0000000
--- a/node_modules/object-keys/.eslintrc
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "root": true,
-
- "extends": "@ljharb",
-
- "rules": {
- "complexity": [2, 23],
- "id-length": [2, { "min": 1, "max": 40 }],
- "max-params": [2, 3],
- "max-statements": [2, 23],
- "max-statements-per-line": [2, { "max": 2 }],
- "no-extra-parens": [1],
- "no-invalid-this": [1],
- "no-restricted-syntax": [2, "BreakStatement", "ContinueStatement", "LabeledStatement", "WithStatement"],
- "operator-linebreak": [2, "after"]
- }
-}
diff --git a/node_modules/object-keys/.travis.yml b/node_modules/object-keys/.travis.yml
deleted file mode 100644
index 94a6ce4..0000000
--- a/node_modules/object-keys/.travis.yml
+++ /dev/null
@@ -1,277 +0,0 @@
-language: node_js
-os:
- - linux
-node_js:
- - "11.8"
- - "10.15"
- - "9.11"
- - "8.15"
- - "7.10"
- - "6.16"
- - "5.12"
- - "4.9"
- - "iojs-v3.3"
- - "iojs-v2.5"
- - "iojs-v1.8"
- - "0.12"
- - "0.10"
- - "0.8"
-before_install:
- - 'case "${TRAVIS_NODE_VERSION}" in 0.*) export NPM_CONFIG_STRICT_SSL=false ;; esac'
- - 'nvm install-latest-npm'
-install:
- - 'if [ "${TRAVIS_NODE_VERSION}" = "0.6" ] || [ "${TRAVIS_NODE_VERSION}" = "0.9" ]; then nvm install --latest-npm 0.8 && npm install && nvm use "${TRAVIS_NODE_VERSION}"; else npm install; fi;'
-script:
- - 'if [ -n "${PRETEST-}" ]; then npm run pretest ; fi'
- - 'if [ -n "${POSTTEST-}" ]; then npm run posttest ; fi'
- - 'if [ -n "${COVERAGE-}" ]; then npm run coverage ; fi'
- - 'if [ -n "${TEST-}" ]; then npm run tests-only ; fi'
-sudo: false
-env:
- - TEST=true
-matrix:
- fast_finish: true
- include:
- - node_js: "lts/*"
- env: PRETEST=true
- - node_js: "lts/*"
- env: POSTTEST=true
- - node_js: "4"
- env: COVERAGE=true
- - node_js: "11.7"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "11.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "11.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "11.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "11.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "11.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "11.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "11.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "10.14"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "10.13"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "10.12"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "10.11"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "10.10"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "10.9"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "10.8"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "10.7"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "10.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "10.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "10.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "10.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "10.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "10.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "10.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "9.10"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "9.9"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "9.8"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "9.7"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "9.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "9.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "9.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "9.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "9.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "9.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "9.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.14"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.13"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.12"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.11"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.10"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.9"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.8"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.7"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "8.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.9"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.8"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.7"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "7.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.15"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.14"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.13"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.12"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.11"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.10"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.9"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.8"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.7"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "6.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.11"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.10"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.9"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.8"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.7"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "5.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.8"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.7"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "4.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v3.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v3.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v3.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v2.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v2.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v2.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v2.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v2.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.7"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.5"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.4"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.3"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.2"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.1"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "iojs-v1.0"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "0.11"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "0.9"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "0.6"
- env: TEST=true ALLOW_FAILURE=true
- - node_js: "0.4"
- env: TEST=true ALLOW_FAILURE=true
- allow_failures:
- - os: osx
- - env: TEST=true ALLOW_FAILURE=true
- - env: COVERAGE=true
- - env: POSTTEST=true
diff --git a/node_modules/object-keys/CHANGELOG.md b/node_modules/object-keys/CHANGELOG.md
deleted file mode 100644
index b7d92df..0000000
--- a/node_modules/object-keys/CHANGELOG.md
+++ /dev/null
@@ -1,232 +0,0 @@
-1.1.1 / 2019-04-06
-=================
- * [Fix] exclude deprecated Firefox keys (#53)
-
-1.1.0 / 2019-02-10
-=================
- * [New] [Refactor] move full implementation to `implementation` entry point
- * [Refactor] only evaluate the implementation if `Object.keys` is not present
- * [Tests] up to `node` `v11.8`, `v10.15`, `v8.15`, `v6.16`
- * [Tests] remove jscs
- * [Tests] switch to `npm audit` from `nsp`
-
-1.0.12 / 2018-06-18
-=================
- * [Fix] avoid accessing `window.applicationCache`, to avoid issues with latest Chrome on HTTP (#46)
-
-1.0.11 / 2016-07-05
-=================
- * [Fix] exclude keys regarding the style (eg. `pageYOffset`) on `window` to avoid reflow (#32)
-
-1.0.10 / 2016-07-04
-=================
- * [Fix] exclude `height` and `width` keys on `window` to avoid reflow (#31)
- * [Fix] In IE 6, `window.external` makes `Object.keys` throw
- * [Tests] up to `node` `v6.2`, `v5.10`, `v4.4`
- * [Tests] use pretest/posttest for linting/security
- * [Dev Deps] update `tape`, `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config`
- * [Dev Deps] remove unused eccheck script + dep
-
-1.0.9 / 2015-10-19
-=================
- * [Fix] Blacklist 'frame' property on window (#16, #17)
- * [Dev Deps] update `jscs`, `eslint`, `@ljharb/eslint-config`
-
-1.0.8 / 2015-10-14
-=================
- * [Fix] wrap automation equality bug checking in try/catch, per [es5-shim#327](https://github.com/es-shims/es5-shim/issues/327)
- * [Fix] Blacklist 'window.frameElement' per [es5-shim#322](https://github.com/es-shims/es5-shim/issues/322)
- * [Docs] Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG
- * [Tests] up to `io.js` `v3.3`, `node` `v4.2`
- * [Dev Deps] update `eslint`, `tape`, `@ljharb/eslint-config`, `jscs`
-
-1.0.7 / 2015-07-18
-=================
- * [Fix] A proper fix for 176f03335e90d5c8d0d8125a99f27819c9b9cdad / https://github.com/es-shims/es5-shim/issues/275 that doesn't break dontEnum/constructor fixes in IE 8.
- * [Fix] Remove deprecation message in Chrome by touching deprecated window properties (#15)
- * [Tests] Improve test output for automation equality bugfix
- * [Tests] Test on `io.js` `v2.4`
-
-1.0.6 / 2015-07-09
-=================
- * [Fix] Use an object lookup rather than ES5's `indexOf` (#14)
- * [Tests] ES3 browsers don't have `Array.isArray`
- * [Tests] Fix `no-shadow` rule, as well as an IE 8 bug caused by engine NFE shadowing bugs.
-
-1.0.5 / 2015-07-03
-=================
- * [Fix] Fix a flabbergasting IE 8 bug where `localStorage.constructor.prototype === localStorage` throws
- * [Tests] Test up to `io.js` `v2.3`
- * [Dev Deps] Update `nsp`, `eslint`
-
-1.0.4 / 2015-05-23
-=================
- * Fix a Safari 5.0 bug with `Object.keys` not working with `arguments`
- * Test on latest `node` and `io.js`
- * Update `jscs`, `tape`, `eslint`, `nsp`, `is`, `editorconfig-tools`, `covert`
-
-1.0.3 / 2015-01-06
-=================
- * Revert "Make `object-keys` more robust against later environment tampering" to maintain ES3 compliance
-
-1.0.2 / 2014-12-28
-=================
- * Update lots of dev dependencies
- * Tweaks to README
- * Make `object-keys` more robust against later environment tampering
-
-1.0.1 / 2014-09-03
-=================
- * Update URLs and badges in README
-
-1.0.0 / 2014-08-26
-=================
- * v1.0.0
-
-0.6.1 / 2014-08-25
-=================
- * v0.6.1
- * Updating dependencies (tape, covert, is)
- * Update badges in readme
- * Use separate var statements
-
-0.6.0 / 2014-04-23
-=================
- * v0.6.0
- * Updating dependencies (tape, covert)
- * Make sure boxed primitives, and arguments objects, work properly in ES3 browsers
- * Improve test matrix: test all node versions, but only latest two stables are a failure
- * Remove internal foreach shim.
-
-0.5.1 / 2014-03-09
-=================
- * 0.5.1
- * Updating dependencies (tape, covert, is)
- * Removing forEach from the module (but keeping it in tests)
-
-0.5.0 / 2014-01-30
-=================
- * 0.5.0
- * Explicitly returning the shim, instead of returning native Object.keys when present
- * Adding a changelog.
- * Cleaning up IIFE wrapping
- * Testing on node 0.4 through 0.11
-
-0.4.0 / 2013-08-14
-==================
-
- * v0.4.0
- * In Chrome 4-10 and Safari 4, typeof (new RegExp) === 'function'
- * If it's a string, make sure to use charAt instead of brackets.
- * Only use Function#call if necessary.
- * Making sure the context tests actually run.
- * Better function detection
- * Adding the android browser
- * Fixing testling files
- * Updating tape
- * Removing the "is" dependency.
- * Making an isArguments shim.
- * Adding a local forEach shim and tests.
- * Updating paths.
- * Moving the shim test.
- * v0.3.0
-
-0.3.0 / 2013-05-18
-==================
-
- * README tweak.
- * Fixing constructor enum issue. Fixes [#5](https://github.com/ljharb/object-keys/issues/5).
- * Adding a test for [#5](https://github.com/ljharb/object-keys/issues/5)
- * Updating readme.
- * Updating dependencies.
- * Giving credit to lodash.
- * Make sure that a prototype's constructor property is not enumerable. Fixes [#3](https://github.com/ljharb/object-keys/issues/3).
- * Adding additional tests to handle arguments objects, and to skip "prototype" in functions. Fixes [#2](https://github.com/ljharb/object-keys/issues/2).
- * Fixing a typo on this test for [#3](https://github.com/ljharb/object-keys/issues/3).
- * Adding node 0.10 to travis.
- * Adding an IE < 9 test per [#3](https://github.com/ljharb/object-keys/issues/3)
- * Adding an iOS 5 mobile Safari test per [#2](https://github.com/ljharb/object-keys/issues/2)
- * Moving "indexof" and "is" to be dev dependencies.
- * Making sure the shim works with functions.
- * Flattening the tests.
-
-0.2.0 / 2013-05-10
-==================
-
- * v0.2.0
- * Object.keys should work with arrays.
-
-0.1.8 / 2013-05-10
-==================
-
- * v0.1.8
- * Upgrading dependencies.
- * Using a simpler check.
- * Fixing a bug in hasDontEnumBug browsers.
- * Using the newest tape!
- * Fixing this error test.
- * "undefined" is probably a reserved word in ES3.
- * Better test message.
-
-0.1.7 / 2013-04-17
-==================
-
- * Upgrading "is" once more.
- * The key "null" is breaking some browsers.
-
-0.1.6 / 2013-04-17
-==================
-
- * v0.1.6
- * Upgrading "is"
-
-0.1.5 / 2013-04-14
-==================
-
- * Bumping version.
- * Adding more testling browsers.
- * Updating "is"
-
-0.1.4 / 2013-04-08
-==================
-
- * Using "is" instead of "is-extended".
-
-0.1.3 / 2013-04-07
-==================
-
- * Using "foreach" instead of my own shim.
- * Removing "tap"; I'll just wait for "tape" to fix its node 0.10 bug.
-
-0.1.2 / 2013-04-03
-==================
-
- * Adding dependency status; moving links to an index at the bottom.
- * Upgrading is-extended; version 0.1.2
- * Adding an npm version badge.
-
-0.1.1 / 2013-04-01
-==================
-
- * Adding Travis CI.
- * Bumping the version.
- * Adding indexOf since IE sucks.
- * Adding a forEach shim since older browsers don't have Array#forEach.
- * Upgrading tape - 0.3.2 uses Array#map
- * Using explicit end instead of plan.
- * Can't test with Array.isArray in older browsers.
- * Using is-extended.
- * Fixing testling files.
- * JSHint/JSLint-ing.
- * Removing an unused object.
- * Using strict mode.
-
-0.1.0 / 2013-03-30
-==================
-
- * Changing the exports should have meant a higher version bump.
- * Oops, fixing the repo URL.
- * Adding more tests.
- * 0.0.2
- * Merge branch 'export_one_thing'; closes [#1](https://github.com/ljharb/object-keys/issues/1)
- * Move shim export to a separate file.
diff --git a/node_modules/object-keys/LICENSE b/node_modules/object-keys/LICENSE
deleted file mode 100644
index 28553fd..0000000
--- a/node_modules/object-keys/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (C) 2013 Jordan Harband
-
-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.
\ No newline at end of file
diff --git a/node_modules/object-keys/README.md b/node_modules/object-keys/README.md
deleted file mode 100644
index ed4c277..0000000
--- a/node_modules/object-keys/README.md
+++ /dev/null
@@ -1,76 +0,0 @@
-#object-keys [![Version Badge][npm-version-svg]][package-url]
-
-[![Build Status][travis-svg]][travis-url]
-[![dependency status][deps-svg]][deps-url]
-[![dev dependency status][dev-deps-svg]][dev-deps-url]
-[![License][license-image]][license-url]
-[![Downloads][downloads-image]][downloads-url]
-
-[![npm badge][npm-badge-png]][package-url]
-
-[![browser support][testling-svg]][testling-url]
-
-An Object.keys shim. Invoke its "shim" method to shim Object.keys if it is unavailable.
-
-Most common usage:
-```js
-var keys = Object.keys || require('object-keys');
-```
-
-## Example
-
-```js
-var keys = require('object-keys');
-var assert = require('assert');
-var obj = {
- a: true,
- b: true,
- c: true
-};
-
-assert.deepEqual(keys(obj), ['a', 'b', 'c']);
-```
-
-```js
-var keys = require('object-keys');
-var assert = require('assert');
-/* when Object.keys is not present */
-delete Object.keys;
-var shimmedKeys = keys.shim();
-assert.equal(shimmedKeys, keys);
-assert.deepEqual(Object.keys(obj), keys(obj));
-```
-
-```js
-var keys = require('object-keys');
-var assert = require('assert');
-/* when Object.keys is present */
-var shimmedKeys = keys.shim();
-assert.equal(shimmedKeys, Object.keys);
-assert.deepEqual(Object.keys(obj), keys(obj));
-```
-
-## Source
-Implementation taken directly from [es5-shim][es5-shim-url], with modifications, including from [lodash][lodash-url].
-
-## Tests
-Simply clone the repo, `npm install`, and run `npm test`
-
-[package-url]: https://npmjs.org/package/object-keys
-[npm-version-svg]: http://versionbadg.es/ljharb/object-keys.svg
-[travis-svg]: https://travis-ci.org/ljharb/object-keys.svg
-[travis-url]: https://travis-ci.org/ljharb/object-keys
-[deps-svg]: https://david-dm.org/ljharb/object-keys.svg
-[deps-url]: https://david-dm.org/ljharb/object-keys
-[dev-deps-svg]: https://david-dm.org/ljharb/object-keys/dev-status.svg
-[dev-deps-url]: https://david-dm.org/ljharb/object-keys#info=devDependencies
-[testling-svg]: https://ci.testling.com/ljharb/object-keys.png
-[testling-url]: https://ci.testling.com/ljharb/object-keys
-[es5-shim-url]: https://github.com/es-shims/es5-shim/blob/master/es5-shim.js#L542-589
-[lodash-url]: https://github.com/lodash/lodash
-[npm-badge-png]: https://nodei.co/npm/object-keys.png?downloads=true&stars=true
-[license-image]: http://img.shields.io/npm/l/object-keys.svg
-[license-url]: LICENSE
-[downloads-image]: http://img.shields.io/npm/dm/object-keys.svg
-[downloads-url]: http://npm-stat.com/charts.html?package=object-keys
-
diff --git a/node_modules/object-keys/implementation.js b/node_modules/object-keys/implementation.js
deleted file mode 100644
index 5b32986..0000000
--- a/node_modules/object-keys/implementation.js
+++ /dev/null
@@ -1,122 +0,0 @@
-'use strict';
-
-var keysShim;
-if (!Object.keys) {
- // modified from https://github.com/es-shims/es5-shim
- var has = Object.prototype.hasOwnProperty;
- var toStr = Object.prototype.toString;
- var isArgs = require('./isArguments'); // eslint-disable-line global-require
- var isEnumerable = Object.prototype.propertyIsEnumerable;
- var hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');
- var hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');
- var dontEnums = [
- 'toString',
- 'toLocaleString',
- 'valueOf',
- 'hasOwnProperty',
- 'isPrototypeOf',
- 'propertyIsEnumerable',
- 'constructor'
- ];
- var equalsConstructorPrototype = function (o) {
- var ctor = o.constructor;
- return ctor && ctor.prototype === o;
- };
- var excludedKeys = {
- $applicationCache: true,
- $console: true,
- $external: true,
- $frame: true,
- $frameElement: true,
- $frames: true,
- $innerHeight: true,
- $innerWidth: true,
- $onmozfullscreenchange: true,
- $onmozfullscreenerror: true,
- $outerHeight: true,
- $outerWidth: true,
- $pageXOffset: true,
- $pageYOffset: true,
- $parent: true,
- $scrollLeft: true,
- $scrollTop: true,
- $scrollX: true,
- $scrollY: true,
- $self: true,
- $webkitIndexedDB: true,
- $webkitStorageInfo: true,
- $window: true
- };
- var hasAutomationEqualityBug = (function () {
- /* global window */
- if (typeof window === 'undefined') { return false; }
- for (var k in window) {
- try {
- if (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {
- try {
- equalsConstructorPrototype(window[k]);
- } catch (e) {
- return true;
- }
- }
- } catch (e) {
- return true;
- }
- }
- return false;
- }());
- var equalsConstructorPrototypeIfNotBuggy = function (o) {
- /* global window */
- if (typeof window === 'undefined' || !hasAutomationEqualityBug) {
- return equalsConstructorPrototype(o);
- }
- try {
- return equalsConstructorPrototype(o);
- } catch (e) {
- return false;
- }
- };
-
- keysShim = function keys(object) {
- var isObject = object !== null && typeof object === 'object';
- var isFunction = toStr.call(object) === '[object Function]';
- var isArguments = isArgs(object);
- var isString = isObject && toStr.call(object) === '[object String]';
- var theKeys = [];
-
- if (!isObject && !isFunction && !isArguments) {
- throw new TypeError('Object.keys called on a non-object');
- }
-
- var skipProto = hasProtoEnumBug && isFunction;
- if (isString && object.length > 0 && !has.call(object, 0)) {
- for (var i = 0; i < object.length; ++i) {
- theKeys.push(String(i));
- }
- }
-
- if (isArguments && object.length > 0) {
- for (var j = 0; j < object.length; ++j) {
- theKeys.push(String(j));
- }
- } else {
- for (var name in object) {
- if (!(skipProto && name === 'prototype') && has.call(object, name)) {
- theKeys.push(String(name));
- }
- }
- }
-
- if (hasDontEnumBug) {
- var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);
-
- for (var k = 0; k < dontEnums.length; ++k) {
- if (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {
- theKeys.push(dontEnums[k]);
- }
- }
- }
- return theKeys;
- };
-}
-module.exports = keysShim;
diff --git a/node_modules/object-keys/index.js b/node_modules/object-keys/index.js
deleted file mode 100644
index a43807d..0000000
--- a/node_modules/object-keys/index.js
+++ /dev/null
@@ -1,32 +0,0 @@
-'use strict';
-
-var slice = Array.prototype.slice;
-var isArgs = require('./isArguments');
-
-var origKeys = Object.keys;
-var keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');
-
-var originalKeys = Object.keys;
-
-keysShim.shim = function shimObjectKeys() {
- if (Object.keys) {
- var keysWorksWithArguments = (function () {
- // Safari 5.0 bug
- var args = Object.keys(arguments);
- return args && args.length === arguments.length;
- }(1, 2));
- if (!keysWorksWithArguments) {
- Object.keys = function keys(object) { // eslint-disable-line func-name-matching
- if (isArgs(object)) {
- return originalKeys(slice.call(object));
- }
- return originalKeys(object);
- };
- }
- } else {
- Object.keys = keysShim;
- }
- return Object.keys || keysShim;
-};
-
-module.exports = keysShim;
diff --git a/node_modules/object-keys/isArguments.js b/node_modules/object-keys/isArguments.js
deleted file mode 100644
index f2a2a90..0000000
--- a/node_modules/object-keys/isArguments.js
+++ /dev/null
@@ -1,17 +0,0 @@
-'use strict';
-
-var toStr = Object.prototype.toString;
-
-module.exports = function isArguments(value) {
- var str = toStr.call(value);
- var isArgs = str === '[object Arguments]';
- if (!isArgs) {
- isArgs = str !== '[object Array]' &&
- value !== null &&
- typeof value === 'object' &&
- typeof value.length === 'number' &&
- value.length >= 0 &&
- toStr.call(value.callee) === '[object Function]';
- }
- return isArgs;
-};
diff --git a/node_modules/object-keys/package.json b/node_modules/object-keys/package.json
deleted file mode 100644
index 99ea923..0000000
--- a/node_modules/object-keys/package.json
+++ /dev/null
@@ -1,88 +0,0 @@
-{
- "name": "object-keys",
- "version": "1.1.1",
- "author": {
- "name": "Jordan Harband",
- "email": "ljharb@gmail.com",
- "url": "http://ljharb.codes"
- },
- "contributors": [
- {
- "name": "Jordan Harband",
- "email": "ljharb@gmail.com",
- "url": "http://ljharb.codes"
- },
- {
- "name": "Raynos",
- "email": "raynos2@gmail.com"
- },
- {
- "name": "Nathan Rajlich",
- "email": "nathan@tootallnate.net"
- },
- {
- "name": "Ivan Starkov",
- "email": "istarkov@gmail.com"
- },
- {
- "name": "Gary Katsevman",
- "email": "git@gkatsev.com"
- }
- ],
- "description": "An Object.keys replacement, in case Object.keys is not available. From https://github.com/es-shims/es5-shim",
- "license": "MIT",
- "main": "index.js",
- "scripts": {
- "pretest": "npm run --silent lint",
- "test": "npm run --silent tests-only",
- "posttest": "npm run --silent audit",
- "tests-only": "node test/index.js",
- "coverage": "covert test/*.js",
- "coverage-quiet": "covert test/*.js --quiet",
- "lint": "eslint .",
- "preaudit": "npm install --package-lock --package-lock-only",
- "audit": "npm audit",
- "postaudit": "rm package-lock.json"
- },
- "repository": {
- "type": "git",
- "url": "git://github.com/ljharb/object-keys.git"
- },
- "keywords": [
- "Object.keys",
- "keys",
- "ES5",
- "shim"
- ],
- "dependencies": {},
- "devDependencies": {
- "@ljharb/eslint-config": "^13.1.1",
- "covert": "^1.1.1",
- "eslint": "^5.13.0",
- "foreach": "^2.0.5",
- "indexof": "^0.0.1",
- "is": "^3.3.0",
- "tape": "^4.9.2"
- },
- "testling": {
- "files": "test/index.js",
- "browsers": [
- "iexplore/6.0..latest",
- "firefox/3.0..6.0",
- "firefox/15.0..latest",
- "firefox/nightly",
- "chrome/4.0..10.0",
- "chrome/20.0..latest",
- "chrome/canary",
- "opera/10.0..latest",
- "opera/next",
- "safari/4.0..latest",
- "ipad/6.0..latest",
- "iphone/6.0..latest",
- "android-browser/4.2"
- ]
- },
- "engines": {
- "node": ">= 0.4"
- }
-}
diff --git a/node_modules/object-keys/test/index.js b/node_modules/object-keys/test/index.js
deleted file mode 100644
index 5402465..0000000
--- a/node_modules/object-keys/test/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-'use strict';
-
-require('./isArguments');
-
-require('./shim');
diff --git a/node_modules/object-visit/LICENSE b/node_modules/object-visit/LICENSE
deleted file mode 100644
index ec85897..0000000
--- a/node_modules/object-visit/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015, 2017, 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/object-visit/README.md b/node_modules/object-visit/README.md
deleted file mode 100644
index 64015cb..0000000
--- a/node_modules/object-visit/README.md
+++ /dev/null
@@ -1,83 +0,0 @@
-# object-visit [![NPM version](https://img.shields.io/npm/v/object-visit.svg?style=flat)](https://www.npmjs.com/package/object-visit) [![NPM monthly downloads](https://img.shields.io/npm/dm/object-visit.svg?style=flat)](https://npmjs.org/package/object-visit) [![NPM total downloads](https://img.shields.io/npm/dt/object-visit.svg?style=flat)](https://npmjs.org/package/object-visit) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/object-visit.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/object-visit)
-
-> Call a specified method on each value in the given object.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save object-visit
-```
-
-## Usage
-
-```js
-var visit = require('object-visit');
-
-var ctx = {
- data: {},
- set: function (key, value) {
- if (typeof key === 'object') {
- visit(ctx, 'set', key);
- } else {
- ctx.data[key] = value;
- }
- }
-};
-
-ctx.set('a', 'a');
-ctx.set('b', 'b');
-ctx.set('c', 'c');
-ctx.set({d: {e: 'f'}});
-
-console.log(ctx.data);
-//=> {a: 'a', b: 'b', c: 'c', d: { e: 'f' }};
-```
-
-## About
-
-### Related projects
-
-* [base-methods](https://www.npmjs.com/package/base-methods): base-methods is the foundation for creating modular, unit testable and highly pluggable node.js applications, starting… [more](https://github.com/jonschlinkert/base-methods) | [homepage](https://github.com/jonschlinkert/base-methods "base-methods is the foundation for creating modular, unit testable and highly pluggable node.js applications, starting with a handful of common methods, like `set`, `get`, `del` and `use`.")
-* [collection-visit](https://www.npmjs.com/package/collection-visit): Visit a method over the items in an object, or map visit over the objects… [more](https://github.com/jonschlinkert/collection-visit) | [homepage](https://github.com/jonschlinkert/collection-visit "Visit a method over the items in an object, or map visit over the objects in an array.")
-* [define-property](https://www.npmjs.com/package/define-property): Define a non-enumerable property on an object. | [homepage](https://github.com/jonschlinkert/define-property "Define a non-enumerable property on an object.")
-* [map-visit](https://www.npmjs.com/package/map-visit): Map `visit` over an array of objects. | [homepage](https://github.com/jonschlinkert/map-visit "Map `visit` over an array of objects.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on May 30, 2017._
\ No newline at end of file
diff --git a/node_modules/object-visit/index.js b/node_modules/object-visit/index.js
deleted file mode 100644
index fcaeda9..0000000
--- a/node_modules/object-visit/index.js
+++ /dev/null
@@ -1,33 +0,0 @@
-/*!
- * object-visit
- *
- * Copyright (c) 2015, 2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-var isObject = require('isobject');
-
-module.exports = function visit(thisArg, method, target, val) {
- if (!isObject(thisArg) && typeof thisArg !== 'function') {
- throw new Error('object-visit expects `thisArg` to be an object.');
- }
-
- if (typeof method !== 'string') {
- throw new Error('object-visit expects `method` name to be a string');
- }
-
- if (typeof thisArg[method] !== 'function') {
- return thisArg;
- }
-
- var args = [].slice.call(arguments, 3);
- target = target || {};
-
- for (var key in target) {
- var arr = [key, target[key]].concat(args);
- thisArg[method].apply(thisArg, arr);
- }
- return thisArg;
-};
diff --git a/node_modules/object-visit/package.json b/node_modules/object-visit/package.json
deleted file mode 100644
index 15fd0ff..0000000
--- a/node_modules/object-visit/package.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "name": "object-visit",
- "description": "Call a specified method on each value in the given object.",
- "version": "1.0.1",
- "homepage": "https://github.com/jonschlinkert/object-visit",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/object-visit",
- "bugs": {
- "url": "https://github.com/jonschlinkert/object-visit/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "isobject": "^3.0.0"
- },
- "devDependencies": {
- "gulp": "^3.9.1",
- "gulp-eslint": "^3.0.1",
- "gulp-format-md": "^0.1.12",
- "gulp-istanbul": "^1.1.1",
- "gulp-mocha": "^3.0.0",
- "mocha": "^3.2.0"
- },
- "keywords": [
- "context",
- "function",
- "helper",
- "key",
- "method",
- "object",
- "value",
- "visit",
- "visitor"
- ],
- "verb": {
- "related": {
- "list": [
- "base-methods",
- "collection-visit",
- "define-property",
- "map-visit"
- ]
- },
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/object.assign/.editorconfig b/node_modules/object.assign/.editorconfig
deleted file mode 100644
index bc228f8..0000000
--- a/node_modules/object.assign/.editorconfig
+++ /dev/null
@@ -1,20 +0,0 @@
-root = true
-
-[*]
-indent_style = tab
-indent_size = 4
-end_of_line = lf
-charset = utf-8
-trim_trailing_whitespace = true
-insert_final_newline = true
-max_line_length = 150
-
-[CHANGELOG.md]
-indent_style = space
-indent_size = 2
-
-[*.json]
-max_line_length = off
-
-[Makefile]
-max_line_length = off
diff --git a/node_modules/object.assign/.eslintignore b/node_modules/object.assign/.eslintignore
deleted file mode 100644
index 849ddff..0000000
--- a/node_modules/object.assign/.eslintignore
+++ /dev/null
@@ -1 +0,0 @@
-dist/
diff --git a/node_modules/object.assign/.eslintrc b/node_modules/object.assign/.eslintrc
deleted file mode 100644
index 6d4cafd..0000000
--- a/node_modules/object.assign/.eslintrc
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "root": true,
-
- "extends": "@ljharb",
-
- "rules": {
- "complexity": [2, 19],
- "id-length": [2, { "min": 1, "max": 30 }],
- "max-statements": [2, 33],
- "max-statements-per-line": [2, { "max": 2 }],
- "no-magic-numbers": [1, { "ignore": [0] }],
- "no-restricted-syntax": [2, "BreakStatement", "ContinueStatement", "DebuggerStatement", "LabeledStatement", "WithStatement"],
- },
-
- "overrides": [
- {
- "files": "test/**",
- "rules": {
- "no-invalid-this": 1,
- "max-lines-per-function": 0,
- "max-statements-per-line": [2, { "max": 3 }],
- "no-magic-numbers": 0,
- },
- },
- ],
-}
diff --git a/node_modules/object.assign/.github/FUNDING.yml b/node_modules/object.assign/.github/FUNDING.yml
deleted file mode 100644
index ef7fdbf..0000000
--- a/node_modules/object.assign/.github/FUNDING.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-# These are supported funding model platforms
-
-github: [ljharb]
-patreon: # Replace with a single Patreon username
-open_collective: # Replace with a single Open Collective username
-ko_fi: # Replace with a single Ko-fi username
-tidelift: npm/object.assign
-community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
-liberapay: # Replace with a single Liberapay username
-issuehunt: # Replace with a single IssueHunt username
-otechie: # Replace with a single Otechie username
-custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
diff --git a/node_modules/object.assign/.github/workflows/rebase.yml b/node_modules/object.assign/.github/workflows/rebase.yml
deleted file mode 100644
index 0c2ad39..0000000
--- a/node_modules/object.assign/.github/workflows/rebase.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-name: Automatic Rebase
-
-on: [pull_request_target]
-
-jobs:
- _:
- name: "Automatic Rebase"
-
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v1
- - uses: ljharb/rebase@master
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/node_modules/object.assign/.github/workflows/require-allow-edits.yml b/node_modules/object.assign/.github/workflows/require-allow-edits.yml
deleted file mode 100644
index aac42d3..0000000
--- a/node_modules/object.assign/.github/workflows/require-allow-edits.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-name: Require “Allow Edits”
-
-on: [pull_request_target]
-
-jobs:
- _:
- name: "Require “Allow Edits”"
-
- runs-on: ubuntu-latest
-
- steps:
- - uses: ljharb/require-allow-edits@main
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/node_modules/object.assign/.nycrc b/node_modules/object.assign/.nycrc
deleted file mode 100644
index d316b4d..0000000
--- a/node_modules/object.assign/.nycrc
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "all": true,
- "check-coverage": false,
- "reporter": ["text-summary", "text", "html", "json"],
- "lines": 86,
- "statements": 85.93,
- "functions": 82.43,
- "branches": 76.06,
- "exclude": [
- "coverage",
- "operations",
- "test"
- ]
-}
diff --git a/node_modules/object.assign/CHANGELOG.md b/node_modules/object.assign/CHANGELOG.md
deleted file mode 100644
index ac543d5..0000000
--- a/node_modules/object.assign/CHANGELOG.md
+++ /dev/null
@@ -1,201 +0,0 @@
-4.1.2 / 2020-10-30
-==================
- * [Refactor] use extracted `call-bind` instead of full `es-abstract`
- * [Dev Deps] update `eslint`, `ses`, `browserify`
- * [Tests] run tests in SES
- * [Tests] ses-compat: show error stacks
-
-4.1.1 / 2020-09-11
-==================
- * [Fix] avoid mutating `Object.assign` in modern engines
- * [Refactor] use `callBind` from `es-abstract` instead of `function-bind`
- * [Deps] update `has-symbols`, `object-keys`, `define-properties`
- * [meta] add `funding` field, FUNDING.yml
- * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `@es-shims/api`, `browserify`, `covert`, `for-each`, `is`, `tape`, `functions-have-names`; add `aud`, `safe-publish-latest`; remove `jscs`
- * [actions] add Require Allow Edits workflow
- * [actions] add automatic rebasing / merge commit blocking
- * [Tests] ses-compat - add test to ensure package initializes correctly after ses lockdown (#77)
- * [Tests] Add passing test for a source of `window.location` (#68)
- * [Tests] use shared travis-ci config
- * [Tests] use `npx aud` instead of `npm audit` with hoops or `nsp`
- * [Tests] use `functions-have-names`
-
-4.1.0 / 2017-12-21
-==================
- * [New] add `auto` entry point (#52)
- * [Refactor] Use `has-symbols` module
- * [Deps] update `function-bind`, `object-keys`
- * [Dev Deps] update `@es-shims/api`, `browserify`, `nsp`, `eslint`, `@ljharb/eslint-config`, `is`
- * [Tests] up to `node` `v9.3`, `v8.9`, `v6.12`; use `nvm install-latest-npm`; pin included builds to LTS
-
-4.0.4 / 2016-07-04
-==================
- * [Fix] Cache original `getOwnPropertySymbols`, and use that when `Object.getOwnPropertySymbols` is unavailable
- * [Deps] update `object-keys`
- * [Dev Deps] update `eslint`, `get-own-property-symbols`, `core-js`, `jscs`, `nsp`, `browserify`, `@ljharb/eslint-config`, `tape`, `@es-shims/api`
- * [Tests] up to `node` `v6.2`, `v5.10`, `v4.4`
- * [Tests] run sham tests on node 0.10
- * [Tests] use pretest/posttest for linting/security
-
-4.0.3 / 2015-10-21
-==================
- * [Fix] Support core-js's Symbol sham (#17)
- * [Fix] Ensure that properties removed or made non-enumerable during enumeration are not assigned (#16)
- * [Fix] Avoid looking up keys and values more than once
- * [Tests] Avoid using `reduce` so `npm run test:shams:corejs` passes in `node` `v0.8` ([core-js#122](https://github.com/zloirock/core-js/issues/122))
- * [Tests] Refactor to use my conventional structure that separates shimmed, implementation, and common tests
- * [Tests] Create `npm run test:shams` and better organize tests for symbol shams
- * [Tests] Remove `nsp` in favor of `requiresafe`
-
-4.0.2 / 2015-10-20
-==================
- * [Fix] Ensure correct property enumeration order, particularly in v8 (#15)
- * [Deps] update `object-keys`, `define-properties`
- * [Dev Deps] update `browserify`, `is`, `tape`, `jscs`, `eslint`, `@ljharb/eslint-config`
- * [Tests] up to `io.js` `v3.3`, `node` `v4.2`
-
-4.0.1 / 2015-08-16
-==================
- * [Docs] Add `Symbol` note to readme
-
-4.0.0 / 2015-08-15
-==================
- * [Breaking] Implement the [es-shim API](es-shims/api).
- * [Robustness] Make implementation robust against later modification of environment methods.
- * [Refactor] Move implementation to `implementation.js`
- * [Docs] Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG
- * [Deps] update `object-keys`, `define-properties`
- * [Dev Deps] update `browserify`, `tape`, `eslint`, `jscs`, `browserify`
- * [Tests] Add `npm run tests-only`
- * [Tests] use my personal shared `eslint` config.
- * [Tests] up to `io.js` `v3.0`
-
-3.0.1 / 2015-06-28
-==================
- * Cache `Object` and `Array#push` to make the shim more robust.
- * [Fix] Remove use of `Array#filter`, which isn't in ES3.
- * [Deps] Update `object-keys`, `define-properties`
- * [Dev Deps] Update `get-own-property-symbols`, `browserify`, `eslint`, `nsp`
- * [Tests] Test up to `io.js` `v2.3`
- * [Tests] Adding `Object.assign` tests for non-object targets, per https://github.com/paulmillr/es6-shim/issues/348
-
-3.0.0 / 2015-05-20
-==================
- * Attempt to feature-detect Symbols, even if `typeof Symbol() !== 'symbol'` (#12)
- * Make a separate `hasSymbols` internal module
- * Update `browserify`, `eslint`
-
-2.0.3 / 2015-06-28
-==================
- * Cache `Object` and `Array#push` to make the shim more robust.
- * [Fix] Remove use of `Array#filter`, which isn't in ES3
- * [Deps] Update `object-keys`, `define-properties`
- * [Dev Deps] Update `browserify`, `nsp`, `eslint`
- * [Tests] Test up to `io.js` `v2.3`
-
-2.0.2 / 2015-05-20
-==================
- * Make sure `.shim` is non-enumerable.
- * Refactor `.shim` implementation to use `define-properties` predicates, rather than `delete`ing the original.
- * Update docs to match spec/implementation. (#11)
- * Add `npm run eslint`
- * Test up to `io.js` `v2.0`
- * Update `jscs`, `browserify`, `covert`
-
-2.0.1 / 2015-04-12
-==================
- * Make sure non-enumerable Symbols are excluded.
-
-2.0.0 / 2015-04-12
-==================
- * Make sure the shim function overwrites a broken implementation with pending exceptions.
- * Ensure shim is not enumerable using `define-properties`
- * Ensure `Object.assign` includes symbols.
- * All grade A-supported `node`/`iojs` versions now ship with an `npm` that understands `^`.
- * Run `travis-ci` tests on `iojs` and `node` v0.12; speed up builds; allow 0.8 failures.
- * Add `npm run security` via `nsp`
- * Update `browserify`, `jscs`, `tape`, `object-keys`, `is`
-
-1.1.1 / 2014-12-14
-==================
- * Actually include the browser build in `npm`
-
-1.1.0 / 2014-12-14
-==================
- * Add `npm run build`, and build an automatic-shimming browser distribution as part of the npm publish process.
- * Update `is`, `jscs`
-
-1.0.3 / 2014-11-29
-==================
- * Revert "optimize --production installs"
-
-1.0.2 / 2014-11-27
-==================
- * Update `jscs`, `is`, `object-keys`, `tape`
- * Add badges to README
- * Name URLs in README
- * Lock `covert` to `v1.0.0`
- * Optimize --production installs
-
-1.0.1 / 2014-08-26
-==================
- * Update `is`, `covert`
-
-1.0.0 / 2014-08-07
-==================
- * Update `object-keys`, `tape`
-
-0.5.0 / 2014-07-31
-==================
- * Object.assign no longer throws on null or undefined sources, per https://bugs.ecmascript.org/show_bug.cgi?id=3096
-
-0.4.3 / 2014-07-30
-==================
- * Don’t modify vars in the function signature, since it deoptimizes v8
-
-0.4.2 / 2014-07-30
-==================
- * Fixing the version number: v0.4.2
-
-0.4.1 / 2014-07-19
-==================
- * Revert "Use the native Object.keys if it’s available."
-
-0.4.0 / 2014-07-19
-==================
- * Use the native Object.keys if it’s available.
- * Fixes [#2](https://github.com/ljharb/object.assign/issues/2).
- * Adding failing tests for [#2](https://github.com/ljharb/object.assign/issues/2).
- * Fix indentation.
- * Adding `npm run lint`
- * Update `tape`, `covert`
- * README: Use SVG badge for Travis [#1](https://github.com/ljharb/object.assign/issues/1) from mathiasbynens/patch-1
-
-0.3.1 / 2014-04-10
-==================
- * Object.assign does partially modify objects if it throws, per https://twitter.com/awbjs/status/454320863093862400
-
-0.3.0 / 2014-04-10
-==================
- * Update with newest ES6 behavior - Object.assign now takes a variable number of source objects.
- * Update `tape`
- * Make sure old and unstable nodes don’t fail Travis
-
-0.2.1 / 2014-03-16
-==================
- * Let object-keys handle the fallback
- * Update dependency badges
- * Adding bower.json
-
-0.2.0 / 2014-03-16
-==================
- * Use a for loop, because ES3 browsers don’t have "reduce"
-
-0.1.1 / 2014-03-14
-==================
- * Updating readme
-
-0.1.0 / 2014-03-14
-==================
- * Initial release.
-
diff --git a/node_modules/object.assign/LICENSE b/node_modules/object.assign/LICENSE
deleted file mode 100644
index ab29cbd..0000000
--- a/node_modules/object.assign/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014 Jordan Harband
-
-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.
\ No newline at end of file
diff --git a/node_modules/object.assign/README.md b/node_modules/object.assign/README.md
deleted file mode 100644
index 70b6ac4..0000000
--- a/node_modules/object.assign/README.md
+++ /dev/null
@@ -1,135 +0,0 @@
-#object.assign [![Version Badge][npm-version-svg]][npm-url]
-
-[![Build Status][travis-svg]][travis-url]
-[![dependency status][deps-svg]][deps-url]
-[![dev dependency status][dev-deps-svg]][dev-deps-url]
-[![License][license-image]][license-url]
-[![Downloads][downloads-image]][downloads-url]
-
-[![npm badge][npm-badge-png]][npm-url]
-
-[![browser support][testling-png]][testling-url]
-
-An Object.assign shim. Invoke its "shim" method to shim Object.assign if it is unavailable.
-
-This package implements the [es-shim API](https://github.com/es-shims/api) interface. It works in an ES3-supported environment and complies with the [spec](http://www.ecma-international.org/ecma-262/6.0/#sec-object.assign). In an ES6 environment, it will also work properly with `Symbol`s.
-
-Takes a minimum of 2 arguments: `target` and `source`.
-Takes a variable sized list of source arguments - at least 1, as many as you want.
-Throws a TypeError if the `target` argument is `null` or `undefined`.
-
-Most common usage:
-```js
-var assign = require('object.assign').getPolyfill(); // returns native method if compliant
- /* or */
-var assign = require('object.assign/polyfill')(); // returns native method if compliant
-```
-
-## Example
-
-```js
-var assert = require('assert');
-
-// Multiple sources!
-var target = { a: true };
-var source1 = { b: true };
-var source2 = { c: true };
-var sourceN = { n: true };
-
-var expected = {
- a: true,
- b: true,
- c: true,
- n: true
-};
-
-assign(target, source1, source2, sourceN);
-assert.deepEqual(target, expected); // AWESOME!
-```
-
-```js
-var target = {
- a: true,
- b: true,
- c: true
-};
-var source1 = {
- c: false,
- d: false
-};
-var sourceN = {
- e: false
-};
-
-var assigned = assign(target, source1, sourceN);
-assert.equal(target, assigned); // returns the target object
-assert.deepEqual(assigned, {
- a: true,
- b: true,
- c: false,
- d: false,
- e: false
-});
-```
-
-```js
-/* when Object.assign is not present */
-delete Object.assign;
-var shimmedAssign = require('object.assign').shim();
- /* or */
-var shimmedAssign = require('object.assign/shim')();
-
-assert.equal(shimmedAssign, assign);
-
-var target = {
- a: true,
- b: true,
- c: true
-};
-var source = {
- c: false,
- d: false,
- e: false
-};
-
-var assigned = assign(target, source);
-assert.deepEqual(Object.assign(target, source), assign(target, source));
-```
-
-```js
-/* when Object.assign is present */
-var shimmedAssign = require('object.assign').shim();
-assert.equal(shimmedAssign, Object.assign);
-
-var target = {
- a: true,
- b: true,
- c: true
-};
-var source = {
- c: false,
- d: false,
- e: false
-};
-
-assert.deepEqual(Object.assign(target, source), assign(target, source));
-```
-
-## Tests
-Simply clone the repo, `npm install`, and run `npm test`
-
-[npm-url]: https://npmjs.org/package/object.assign
-[npm-version-svg]: http://versionbadg.es/ljharb/object.assign.svg
-[travis-svg]: https://travis-ci.org/ljharb/object.assign.svg
-[travis-url]: https://travis-ci.org/ljharb/object.assign
-[deps-svg]: https://david-dm.org/ljharb/object.assign.svg?theme=shields.io
-[deps-url]: https://david-dm.org/ljharb/object.assign
-[dev-deps-svg]: https://david-dm.org/ljharb/object.assign/dev-status.svg?theme=shields.io
-[dev-deps-url]: https://david-dm.org/ljharb/object.assign#info=devDependencies
-[testling-png]: https://ci.testling.com/ljharb/object.assign.png
-[testling-url]: https://ci.testling.com/ljharb/object.assign
-[npm-badge-png]: https://nodei.co/npm/object.assign.png?downloads=true&stars=true
-[license-image]: http://img.shields.io/npm/l/object.assign.svg
-[license-url]: LICENSE
-[downloads-image]: http://img.shields.io/npm/dm/object.assign.svg
-[downloads-url]: http://npm-stat.com/charts.html?package=object.assign
diff --git a/node_modules/object.assign/auto.js b/node_modules/object.assign/auto.js
deleted file mode 100644
index 8ebf606..0000000
--- a/node_modules/object.assign/auto.js
+++ /dev/null
@@ -1,3 +0,0 @@
-'use strict';
-
-require('./shim')();
diff --git a/node_modules/object.assign/dist/browser.js b/node_modules/object.assign/dist/browser.js
deleted file mode 100644
index 15f0e20..0000000
--- a/node_modules/object.assign/dist/browser.js
+++ /dev/null
@@ -1,865 +0,0 @@
-(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i -1) {
- return callBind(intrinsic);
- }
- return intrinsic;
-};
-
-},{"./":5,"get-intrinsic":9}],5:[function(require,module,exports){
-'use strict';
-
-var bind = require('function-bind');
-var GetIntrinsic = require('get-intrinsic');
-
-var $apply = GetIntrinsic('%Function.prototype.apply%');
-var $call = GetIntrinsic('%Function.prototype.call%');
-var $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);
-
-var $defineProperty = GetIntrinsic('%Object.defineProperty%', true);
-
-if ($defineProperty) {
- try {
- $defineProperty({}, 'a', { value: 1 });
- } catch (e) {
- // IE 8 has a broken defineProperty
- $defineProperty = null;
- }
-}
-
-module.exports = function callBind() {
- return $reflectApply(bind, $call, arguments);
-};
-
-var applyBind = function applyBind() {
- return $reflectApply(bind, $apply, arguments);
-};
-
-if ($defineProperty) {
- $defineProperty(module.exports, 'apply', { value: applyBind });
-} else {
- module.exports.apply = applyBind;
-}
-
-},{"function-bind":8,"get-intrinsic":9}],6:[function(require,module,exports){
-'use strict';
-
-var keys = require('object-keys');
-var hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';
-
-var toStr = Object.prototype.toString;
-var concat = Array.prototype.concat;
-var origDefineProperty = Object.defineProperty;
-
-var isFunction = function (fn) {
- return typeof fn === 'function' && toStr.call(fn) === '[object Function]';
-};
-
-var arePropertyDescriptorsSupported = function () {
- var obj = {};
- try {
- origDefineProperty(obj, 'x', { enumerable: false, value: obj });
- // eslint-disable-next-line no-unused-vars, no-restricted-syntax
- for (var _ in obj) { // jscs:ignore disallowUnusedVariables
- return false;
- }
- return obj.x === obj;
- } catch (e) { /* this is IE 8. */
- return false;
- }
-};
-var supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported();
-
-var defineProperty = function (object, name, value, predicate) {
- if (name in object && (!isFunction(predicate) || !predicate())) {
- return;
- }
- if (supportsDescriptors) {
- origDefineProperty(object, name, {
- configurable: true,
- enumerable: false,
- value: value,
- writable: true
- });
- } else {
- object[name] = value;
- }
-};
-
-var defineProperties = function (object, map) {
- var predicates = arguments.length > 2 ? arguments[2] : {};
- var props = keys(map);
- if (hasSymbols) {
- props = concat.call(props, Object.getOwnPropertySymbols(map));
- }
- for (var i = 0; i < props.length; i += 1) {
- defineProperty(object, props[i], map[props[i]], predicates[props[i]]);
- }
-};
-
-defineProperties.supportsDescriptors = !!supportsDescriptors;
-
-module.exports = defineProperties;
-
-},{"object-keys":14}],7:[function(require,module,exports){
-'use strict';
-
-/* eslint no-invalid-this: 1 */
-
-var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';
-var slice = Array.prototype.slice;
-var toStr = Object.prototype.toString;
-var funcType = '[object Function]';
-
-module.exports = function bind(that) {
- var target = this;
- if (typeof target !== 'function' || toStr.call(target) !== funcType) {
- throw new TypeError(ERROR_MESSAGE + target);
- }
- var args = slice.call(arguments, 1);
-
- var bound;
- var binder = function () {
- if (this instanceof bound) {
- var result = target.apply(
- this,
- args.concat(slice.call(arguments))
- );
- if (Object(result) === result) {
- return result;
- }
- return this;
- } else {
- return target.apply(
- that,
- args.concat(slice.call(arguments))
- );
- }
- };
-
- var boundLength = Math.max(0, target.length - args.length);
- var boundArgs = [];
- for (var i = 0; i < boundLength; i++) {
- boundArgs.push('$' + i);
- }
-
- bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);
-
- if (target.prototype) {
- var Empty = function Empty() {};
- Empty.prototype = target.prototype;
- bound.prototype = new Empty();
- Empty.prototype = null;
- }
-
- return bound;
-};
-
-},{}],8:[function(require,module,exports){
-'use strict';
-
-var implementation = require('./implementation');
-
-module.exports = Function.prototype.bind || implementation;
-
-},{"./implementation":7}],9:[function(require,module,exports){
-'use strict';
-
-/* globals
- AggregateError,
- Atomics,
- FinalizationRegistry,
- SharedArrayBuffer,
- WeakRef,
-*/
-
-var undefined;
-
-var $SyntaxError = SyntaxError;
-var $Function = Function;
-var $TypeError = TypeError;
-
-// eslint-disable-next-line consistent-return
-var getEvalledConstructor = function (expressionSyntax) {
- try {
- // eslint-disable-next-line no-new-func
- return Function('"use strict"; return (' + expressionSyntax + ').constructor;')();
- } catch (e) {}
-};
-
-var $gOPD = Object.getOwnPropertyDescriptor;
-if ($gOPD) {
- try {
- $gOPD({}, '');
- } catch (e) {
- $gOPD = null; // this is IE 8, which has a broken gOPD
- }
-}
-
-var throwTypeError = function () {
- throw new $TypeError();
-};
-var ThrowTypeError = $gOPD
- ? (function () {
- try {
- // eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties
- arguments.callee; // IE 8 does not throw here
- return throwTypeError;
- } catch (calleeThrows) {
- try {
- // IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')
- return $gOPD(arguments, 'callee').get;
- } catch (gOPDthrows) {
- return throwTypeError;
- }
- }
- }())
- : throwTypeError;
-
-var hasSymbols = require('has-symbols')();
-
-var getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto
-
-var asyncGenFunction = getEvalledConstructor('async function* () {}');
-var asyncGenFunctionPrototype = asyncGenFunction ? asyncGenFunction.prototype : undefined;
-var asyncGenPrototype = asyncGenFunctionPrototype ? asyncGenFunctionPrototype.prototype : undefined;
-
-var TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);
-
-var INTRINSICS = {
- '%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,
- '%Array%': Array,
- '%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,
- '%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,
- '%AsyncFromSyncIteratorPrototype%': undefined,
- '%AsyncFunction%': getEvalledConstructor('async function () {}'),
- '%AsyncGenerator%': asyncGenFunctionPrototype,
- '%AsyncGeneratorFunction%': asyncGenFunction,
- '%AsyncIteratorPrototype%': asyncGenPrototype ? getProto(asyncGenPrototype) : undefined,
- '%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,
- '%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,
- '%Boolean%': Boolean,
- '%DataView%': typeof DataView === 'undefined' ? undefined : DataView,
- '%Date%': Date,
- '%decodeURI%': decodeURI,
- '%decodeURIComponent%': decodeURIComponent,
- '%encodeURI%': encodeURI,
- '%encodeURIComponent%': encodeURIComponent,
- '%Error%': Error,
- '%eval%': eval, // eslint-disable-line no-eval
- '%EvalError%': EvalError,
- '%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,
- '%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,
- '%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,
- '%Function%': $Function,
- '%GeneratorFunction%': getEvalledConstructor('function* () {}'),
- '%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,
- '%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,
- '%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,
- '%isFinite%': isFinite,
- '%isNaN%': isNaN,
- '%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,
- '%JSON%': typeof JSON === 'object' ? JSON : undefined,
- '%Map%': typeof Map === 'undefined' ? undefined : Map,
- '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),
- '%Math%': Math,
- '%Number%': Number,
- '%Object%': Object,
- '%parseFloat%': parseFloat,
- '%parseInt%': parseInt,
- '%Promise%': typeof Promise === 'undefined' ? undefined : Promise,
- '%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,
- '%RangeError%': RangeError,
- '%ReferenceError%': ReferenceError,
- '%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,
- '%RegExp%': RegExp,
- '%Set%': typeof Set === 'undefined' ? undefined : Set,
- '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),
- '%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,
- '%String%': String,
- '%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,
- '%Symbol%': hasSymbols ? Symbol : undefined,
- '%SyntaxError%': $SyntaxError,
- '%ThrowTypeError%': ThrowTypeError,
- '%TypedArray%': TypedArray,
- '%TypeError%': $TypeError,
- '%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,
- '%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,
- '%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,
- '%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,
- '%URIError%': URIError,
- '%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,
- '%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,
- '%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet
-};
-
-var LEGACY_ALIASES = {
- '%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],
- '%ArrayPrototype%': ['Array', 'prototype'],
- '%ArrayProto_entries%': ['Array', 'prototype', 'entries'],
- '%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],
- '%ArrayProto_keys%': ['Array', 'prototype', 'keys'],
- '%ArrayProto_values%': ['Array', 'prototype', 'values'],
- '%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],
- '%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],
- '%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],
- '%BooleanPrototype%': ['Boolean', 'prototype'],
- '%DataViewPrototype%': ['DataView', 'prototype'],
- '%DatePrototype%': ['Date', 'prototype'],
- '%ErrorPrototype%': ['Error', 'prototype'],
- '%EvalErrorPrototype%': ['EvalError', 'prototype'],
- '%Float32ArrayPrototype%': ['Float32Array', 'prototype'],
- '%Float64ArrayPrototype%': ['Float64Array', 'prototype'],
- '%FunctionPrototype%': ['Function', 'prototype'],
- '%Generator%': ['GeneratorFunction', 'prototype'],
- '%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],
- '%Int8ArrayPrototype%': ['Int8Array', 'prototype'],
- '%Int16ArrayPrototype%': ['Int16Array', 'prototype'],
- '%Int32ArrayPrototype%': ['Int32Array', 'prototype'],
- '%JSONParse%': ['JSON', 'parse'],
- '%JSONStringify%': ['JSON', 'stringify'],
- '%MapPrototype%': ['Map', 'prototype'],
- '%NumberPrototype%': ['Number', 'prototype'],
- '%ObjectPrototype%': ['Object', 'prototype'],
- '%ObjProto_toString%': ['Object', 'prototype', 'toString'],
- '%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],
- '%PromisePrototype%': ['Promise', 'prototype'],
- '%PromiseProto_then%': ['Promise', 'prototype', 'then'],
- '%Promise_all%': ['Promise', 'all'],
- '%Promise_reject%': ['Promise', 'reject'],
- '%Promise_resolve%': ['Promise', 'resolve'],
- '%RangeErrorPrototype%': ['RangeError', 'prototype'],
- '%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],
- '%RegExpPrototype%': ['RegExp', 'prototype'],
- '%SetPrototype%': ['Set', 'prototype'],
- '%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],
- '%StringPrototype%': ['String', 'prototype'],
- '%SymbolPrototype%': ['Symbol', 'prototype'],
- '%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],
- '%TypedArrayPrototype%': ['TypedArray', 'prototype'],
- '%TypeErrorPrototype%': ['TypeError', 'prototype'],
- '%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],
- '%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],
- '%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],
- '%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],
- '%URIErrorPrototype%': ['URIError', 'prototype'],
- '%WeakMapPrototype%': ['WeakMap', 'prototype'],
- '%WeakSetPrototype%': ['WeakSet', 'prototype']
-};
-
-var bind = require('function-bind');
-var hasOwn = require('has');
-var $concat = bind.call(Function.call, Array.prototype.concat);
-var $spliceApply = bind.call(Function.apply, Array.prototype.splice);
-var $replace = bind.call(Function.call, String.prototype.replace);
-
-/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */
-var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g;
-var reEscapeChar = /\\(\\)?/g; /** Used to match backslashes in property paths. */
-var stringToPath = function stringToPath(string) {
- var result = [];
- $replace(string, rePropName, function (match, number, quote, subString) {
- result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;
- });
- return result;
-};
-/* end adaptation */
-
-var getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {
- var intrinsicName = name;
- var alias;
- if (hasOwn(LEGACY_ALIASES, intrinsicName)) {
- alias = LEGACY_ALIASES[intrinsicName];
- intrinsicName = '%' + alias[0] + '%';
- }
-
- if (hasOwn(INTRINSICS, intrinsicName)) {
- var value = INTRINSICS[intrinsicName];
- if (typeof value === 'undefined' && !allowMissing) {
- throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');
- }
-
- return {
- alias: alias,
- name: intrinsicName,
- value: value
- };
- }
-
- throw new $SyntaxError('intrinsic ' + name + ' does not exist!');
-};
-
-module.exports = function GetIntrinsic(name, allowMissing) {
- if (typeof name !== 'string' || name.length === 0) {
- throw new $TypeError('intrinsic name must be a non-empty string');
- }
- if (arguments.length > 1 && typeof allowMissing !== 'boolean') {
- throw new $TypeError('"allowMissing" argument must be a boolean');
- }
-
- var parts = stringToPath(name);
- var intrinsicBaseName = parts.length > 0 ? parts[0] : '';
-
- var intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);
- var intrinsicRealName = intrinsic.name;
- var value = intrinsic.value;
- var skipFurtherCaching = false;
-
- var alias = intrinsic.alias;
- if (alias) {
- intrinsicBaseName = alias[0];
- $spliceApply(parts, $concat([0, 1], alias));
- }
-
- for (var i = 1, isOwn = true; i < parts.length; i += 1) {
- var part = parts[i];
- if (part === 'constructor' || !isOwn) {
- skipFurtherCaching = true;
- }
-
- intrinsicBaseName += '.' + part;
- intrinsicRealName = '%' + intrinsicBaseName + '%';
-
- if (hasOwn(INTRINSICS, intrinsicRealName)) {
- value = INTRINSICS[intrinsicRealName];
- } else if (value != null) {
- if ($gOPD && (i + 1) >= parts.length) {
- var desc = $gOPD(value, part);
- isOwn = !!desc;
-
- if (!allowMissing && !(part in value)) {
- throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');
- }
- // By convention, when a data property is converted to an accessor
- // property to emulate a data property that does not suffer from
- // the override mistake, that accessor's getter is marked with
- // an `originalValue` property. Here, when we detect this, we
- // uphold the illusion by pretending to see that original data
- // property, i.e., returning the value rather than the getter
- // itself.
- if (isOwn && 'get' in desc && !('originalValue' in desc.get)) {
- value = desc.get;
- } else {
- value = value[part];
- }
- } else {
- isOwn = hasOwn(value, part);
- value = value[part];
- }
-
- if (isOwn && !skipFurtherCaching) {
- INTRINSICS[intrinsicRealName] = value;
- }
- }
- }
- return value;
-};
-
-},{"function-bind":8,"has":12,"has-symbols":10}],10:[function(require,module,exports){
-(function (global){(function (){
-'use strict';
-
-var origSymbol = global.Symbol;
-var hasSymbolSham = require('./shams');
-
-module.exports = function hasNativeSymbols() {
- if (typeof origSymbol !== 'function') { return false; }
- if (typeof Symbol !== 'function') { return false; }
- if (typeof origSymbol('foo') !== 'symbol') { return false; }
- if (typeof Symbol('bar') !== 'symbol') { return false; }
-
- return hasSymbolSham();
-};
-
-}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{"./shams":11}],11:[function(require,module,exports){
-'use strict';
-
-/* eslint complexity: [2, 18], max-statements: [2, 33] */
-module.exports = function hasSymbols() {
- if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }
- if (typeof Symbol.iterator === 'symbol') { return true; }
-
- var obj = {};
- var sym = Symbol('test');
- var symObj = Object(sym);
- if (typeof sym === 'string') { return false; }
-
- if (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }
- if (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }
-
- // temp disabled per https://github.com/ljharb/object.assign/issues/17
- // if (sym instanceof Symbol) { return false; }
- // temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4
- // if (!(symObj instanceof Symbol)) { return false; }
-
- // if (typeof Symbol.prototype.toString !== 'function') { return false; }
- // if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }
-
- var symVal = 42;
- obj[sym] = symVal;
- for (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax
- if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }
-
- if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }
-
- var syms = Object.getOwnPropertySymbols(obj);
- if (syms.length !== 1 || syms[0] !== sym) { return false; }
-
- if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }
-
- if (typeof Object.getOwnPropertyDescriptor === 'function') {
- var descriptor = Object.getOwnPropertyDescriptor(obj, sym);
- if (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }
- }
-
- return true;
-};
-
-},{}],12:[function(require,module,exports){
-'use strict';
-
-var bind = require('function-bind');
-
-module.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);
-
-},{"function-bind":8}],13:[function(require,module,exports){
-'use strict';
-
-var keysShim;
-if (!Object.keys) {
- // modified from https://github.com/es-shims/es5-shim
- var has = Object.prototype.hasOwnProperty;
- var toStr = Object.prototype.toString;
- var isArgs = require('./isArguments'); // eslint-disable-line global-require
- var isEnumerable = Object.prototype.propertyIsEnumerable;
- var hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');
- var hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');
- var dontEnums = [
- 'toString',
- 'toLocaleString',
- 'valueOf',
- 'hasOwnProperty',
- 'isPrototypeOf',
- 'propertyIsEnumerable',
- 'constructor'
- ];
- var equalsConstructorPrototype = function (o) {
- var ctor = o.constructor;
- return ctor && ctor.prototype === o;
- };
- var excludedKeys = {
- $applicationCache: true,
- $console: true,
- $external: true,
- $frame: true,
- $frameElement: true,
- $frames: true,
- $innerHeight: true,
- $innerWidth: true,
- $onmozfullscreenchange: true,
- $onmozfullscreenerror: true,
- $outerHeight: true,
- $outerWidth: true,
- $pageXOffset: true,
- $pageYOffset: true,
- $parent: true,
- $scrollLeft: true,
- $scrollTop: true,
- $scrollX: true,
- $scrollY: true,
- $self: true,
- $webkitIndexedDB: true,
- $webkitStorageInfo: true,
- $window: true
- };
- var hasAutomationEqualityBug = (function () {
- /* global window */
- if (typeof window === 'undefined') { return false; }
- for (var k in window) {
- try {
- if (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {
- try {
- equalsConstructorPrototype(window[k]);
- } catch (e) {
- return true;
- }
- }
- } catch (e) {
- return true;
- }
- }
- return false;
- }());
- var equalsConstructorPrototypeIfNotBuggy = function (o) {
- /* global window */
- if (typeof window === 'undefined' || !hasAutomationEqualityBug) {
- return equalsConstructorPrototype(o);
- }
- try {
- return equalsConstructorPrototype(o);
- } catch (e) {
- return false;
- }
- };
-
- keysShim = function keys(object) {
- var isObject = object !== null && typeof object === 'object';
- var isFunction = toStr.call(object) === '[object Function]';
- var isArguments = isArgs(object);
- var isString = isObject && toStr.call(object) === '[object String]';
- var theKeys = [];
-
- if (!isObject && !isFunction && !isArguments) {
- throw new TypeError('Object.keys called on a non-object');
- }
-
- var skipProto = hasProtoEnumBug && isFunction;
- if (isString && object.length > 0 && !has.call(object, 0)) {
- for (var i = 0; i < object.length; ++i) {
- theKeys.push(String(i));
- }
- }
-
- if (isArguments && object.length > 0) {
- for (var j = 0; j < object.length; ++j) {
- theKeys.push(String(j));
- }
- } else {
- for (var name in object) {
- if (!(skipProto && name === 'prototype') && has.call(object, name)) {
- theKeys.push(String(name));
- }
- }
- }
-
- if (hasDontEnumBug) {
- var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);
-
- for (var k = 0; k < dontEnums.length; ++k) {
- if (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {
- theKeys.push(dontEnums[k]);
- }
- }
- }
- return theKeys;
- };
-}
-module.exports = keysShim;
-
-},{"./isArguments":15}],14:[function(require,module,exports){
-'use strict';
-
-var slice = Array.prototype.slice;
-var isArgs = require('./isArguments');
-
-var origKeys = Object.keys;
-var keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');
-
-var originalKeys = Object.keys;
-
-keysShim.shim = function shimObjectKeys() {
- if (Object.keys) {
- var keysWorksWithArguments = (function () {
- // Safari 5.0 bug
- var args = Object.keys(arguments);
- return args && args.length === arguments.length;
- }(1, 2));
- if (!keysWorksWithArguments) {
- Object.keys = function keys(object) { // eslint-disable-line func-name-matching
- if (isArgs(object)) {
- return originalKeys(slice.call(object));
- }
- return originalKeys(object);
- };
- }
- } else {
- Object.keys = keysShim;
- }
- return Object.keys || keysShim;
-};
-
-module.exports = keysShim;
-
-},{"./implementation":13,"./isArguments":15}],15:[function(require,module,exports){
-'use strict';
-
-var toStr = Object.prototype.toString;
-
-module.exports = function isArguments(value) {
- var str = toStr.call(value);
- var isArgs = str === '[object Arguments]';
- if (!isArgs) {
- isArgs = str !== '[object Array]' &&
- value !== null &&
- typeof value === 'object' &&
- typeof value.length === 'number' &&
- value.length >= 0 &&
- toStr.call(value.callee) === '[object Function]';
- }
- return isArgs;
-};
-
-},{}],16:[function(require,module,exports){
-'use strict';
-
-var implementation = require('./implementation');
-
-var lacksProperEnumerationOrder = function () {
- if (!Object.assign) {
- return false;
- }
- /*
- * v8, specifically in node 4.x, has a bug with incorrect property enumeration order
- * note: this does not detect the bug unless there's 20 characters
- */
- var str = 'abcdefghijklmnopqrst';
- var letters = str.split('');
- var map = {};
- for (var i = 0; i < letters.length; ++i) {
- map[letters[i]] = letters[i];
- }
- var obj = Object.assign({}, map);
- var actual = '';
- for (var k in obj) {
- actual += k;
- }
- return str !== actual;
-};
-
-var assignHasPendingExceptions = function () {
- if (!Object.assign || !Object.preventExtensions) {
- return false;
- }
- /*
- * Firefox 37 still has "pending exception" logic in its Object.assign implementation,
- * which is 72% slower than our shim, and Firefox 40's native implementation.
- */
- var thrower = Object.preventExtensions({ 1: 2 });
- try {
- Object.assign(thrower, 'xy');
- } catch (e) {
- return thrower[1] === 'y';
- }
- return false;
-};
-
-module.exports = function getPolyfill() {
- if (!Object.assign) {
- return implementation;
- }
- if (lacksProperEnumerationOrder()) {
- return implementation;
- }
- if (assignHasPendingExceptions()) {
- return implementation;
- }
- return Object.assign;
-};
-
-},{"./implementation":2}],17:[function(require,module,exports){
-'use strict';
-
-var define = require('define-properties');
-var getPolyfill = require('./polyfill');
-
-module.exports = function shimAssign() {
- var polyfill = getPolyfill();
- define(
- Object,
- { assign: polyfill },
- { assign: function () { return Object.assign !== polyfill; } }
- );
- return polyfill;
-};
-
-},{"./polyfill":16,"define-properties":6}]},{},[1]);
diff --git a/node_modules/object.assign/hasSymbols.js b/node_modules/object.assign/hasSymbols.js
deleted file mode 100644
index 34841e0..0000000
--- a/node_modules/object.assign/hasSymbols.js
+++ /dev/null
@@ -1,43 +0,0 @@
-'use strict';
-
-var keys = require('object-keys');
-
-module.exports = function hasSymbols() {
- if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }
- if (typeof Symbol.iterator === 'symbol') { return true; }
-
- var obj = {};
- var sym = Symbol('test');
- var symObj = Object(sym);
- if (typeof sym === 'string') { return false; }
-
- if (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }
- if (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }
-
- /*
- * temp disabled per https://github.com/ljharb/object.assign/issues/17
- * if (sym instanceof Symbol) { return false; }
- * temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4
- * if (!(symObj instanceof Symbol)) { return false; }
- */
-
- var symVal = 42;
- obj[sym] = symVal;
- for (sym in obj) { return false; } // eslint-disable-line no-unreachable-loop
- if (keys(obj).length !== 0) { return false; }
- if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }
-
- if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }
-
- var syms = Object.getOwnPropertySymbols(obj);
- if (syms.length !== 1 || syms[0] !== sym) { return false; }
-
- if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }
-
- if (typeof Object.getOwnPropertyDescriptor === 'function') {
- var descriptor = Object.getOwnPropertyDescriptor(obj, sym);
- if (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }
- }
-
- return true;
-};
diff --git a/node_modules/object.assign/implementation.js b/node_modules/object.assign/implementation.js
deleted file mode 100644
index 567efe9..0000000
--- a/node_modules/object.assign/implementation.js
+++ /dev/null
@@ -1,42 +0,0 @@
-'use strict';
-
-// modified from https://github.com/es-shims/es6-shim
-var keys = require('object-keys');
-var canBeObject = function (obj) {
- return typeof obj !== 'undefined' && obj !== null;
-};
-var hasSymbols = require('has-symbols/shams')();
-var callBound = require('call-bind/callBound');
-var toObject = Object;
-var $push = callBound('Array.prototype.push');
-var $propIsEnumerable = callBound('Object.prototype.propertyIsEnumerable');
-var originalGetSymbols = hasSymbols ? Object.getOwnPropertySymbols : null;
-
-// eslint-disable-next-line no-unused-vars
-module.exports = function assign(target, source1) {
- if (!canBeObject(target)) { throw new TypeError('target must be an object'); }
- var objTarget = toObject(target);
- var s, source, i, props, syms, value, key;
- for (s = 1; s < arguments.length; ++s) {
- source = toObject(arguments[s]);
- props = keys(source);
- var getSymbols = hasSymbols && (Object.getOwnPropertySymbols || originalGetSymbols);
- if (getSymbols) {
- syms = getSymbols(source);
- for (i = 0; i < syms.length; ++i) {
- key = syms[i];
- if ($propIsEnumerable(source, key)) {
- $push(props, key);
- }
- }
- }
- for (i = 0; i < props.length; ++i) {
- key = props[i];
- value = source[key];
- if ($propIsEnumerable(source, key)) {
- objTarget[key] = value;
- }
- }
- }
- return objTarget;
-};
diff --git a/node_modules/object.assign/index.js b/node_modules/object.assign/index.js
deleted file mode 100644
index 9b50603..0000000
--- a/node_modules/object.assign/index.js
+++ /dev/null
@@ -1,22 +0,0 @@
-'use strict';
-
-var defineProperties = require('define-properties');
-var callBind = require('call-bind');
-
-var implementation = require('./implementation');
-var getPolyfill = require('./polyfill');
-var shim = require('./shim');
-
-var polyfill = callBind.apply(getPolyfill());
-// eslint-disable-next-line no-unused-vars
-var bound = function assign(target, source1) {
- return polyfill(Object, arguments);
-};
-
-defineProperties(bound, {
- getPolyfill: getPolyfill,
- implementation: implementation,
- shim: shim
-});
-
-module.exports = bound;
diff --git a/node_modules/object.assign/package.json b/node_modules/object.assign/package.json
deleted file mode 100644
index 25247a8..0000000
--- a/node_modules/object.assign/package.json
+++ /dev/null
@@ -1,83 +0,0 @@
-{
- "name": "object.assign",
- "version": "4.1.2",
- "author": "Jordan Harband",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- },
- "description": "ES6 spec-compliant Object.assign shim. From https://github.com/es-shims/es6-shim",
- "license": "MIT",
- "main": "index.js",
- "scripts": {
- "pretest": "npm run lint && es-shim-api --bound",
- "test": "npm run tests-only && npm run test:ses",
- "posttest": "aud --production",
- "tests-only": "npm run test:implementation && npm run test:shim",
- "test:native": "nyc node test/native",
- "test:shim": "nyc node test/shimmed",
- "test:implementation": "nyc node test",
- "test:ses": "node test/ses-compat",
- "lint": "eslint .",
- "build": "mkdir -p dist && browserify browserShim.js > dist/browser.js",
- "prepublish": "safe-publish-latest && npm run build"
- },
- "repository": {
- "type": "git",
- "url": "git://github.com/ljharb/object.assign.git"
- },
- "keywords": [
- "Object.assign",
- "assign",
- "ES6",
- "extend",
- "$.extend",
- "jQuery",
- "_.extend",
- "Underscore",
- "es-shim API",
- "polyfill",
- "shim"
- ],
- "dependencies": {
- "call-bind": "^1.0.0",
- "define-properties": "^1.1.3",
- "has-symbols": "^1.0.1",
- "object-keys": "^1.1.1"
- },
- "devDependencies": {
- "@es-shims/api": "^2.1.2",
- "@ljharb/eslint-config": "^17.2.0",
- "aud": "^1.1.2",
- "browserify": "^16.5.2",
- "eslint": "^7.12.1",
- "for-each": "^0.3.3",
- "functions-have-names": "^1.2.1",
- "has": "^1.0.3",
- "is": "^3.3.0",
- "nyc": "^10.3.2",
- "safe-publish-latest": "^1.1.4",
- "ses": "^0.10.4",
- "tape": "^5.0.1"
- },
- "testling": {
- "files": "test/index.js",
- "browsers": [
- "iexplore/6.0..latest",
- "firefox/3.0..6.0",
- "firefox/15.0..latest",
- "firefox/nightly",
- "chrome/4.0..10.0",
- "chrome/20.0..latest",
- "chrome/canary",
- "opera/10.0..latest",
- "opera/next",
- "safari/4.0..latest",
- "ipad/6.0..latest",
- "iphone/6.0..latest",
- "android-browser/4.2"
- ]
- },
- "engines": {
- "node": ">= 0.4"
- }
-}
diff --git a/node_modules/object.assign/polyfill.js b/node_modules/object.assign/polyfill.js
deleted file mode 100644
index ca94aea..0000000
--- a/node_modules/object.assign/polyfill.js
+++ /dev/null
@@ -1,55 +0,0 @@
-'use strict';
-
-var implementation = require('./implementation');
-
-var lacksProperEnumerationOrder = function () {
- if (!Object.assign) {
- return false;
- }
- /*
- * v8, specifically in node 4.x, has a bug with incorrect property enumeration order
- * note: this does not detect the bug unless there's 20 characters
- */
- var str = 'abcdefghijklmnopqrst';
- var letters = str.split('');
- var map = {};
- for (var i = 0; i < letters.length; ++i) {
- map[letters[i]] = letters[i];
- }
- var obj = Object.assign({}, map);
- var actual = '';
- for (var k in obj) {
- actual += k;
- }
- return str !== actual;
-};
-
-var assignHasPendingExceptions = function () {
- if (!Object.assign || !Object.preventExtensions) {
- return false;
- }
- /*
- * Firefox 37 still has "pending exception" logic in its Object.assign implementation,
- * which is 72% slower than our shim, and Firefox 40's native implementation.
- */
- var thrower = Object.preventExtensions({ 1: 2 });
- try {
- Object.assign(thrower, 'xy');
- } catch (e) {
- return thrower[1] === 'y';
- }
- return false;
-};
-
-module.exports = function getPolyfill() {
- if (!Object.assign) {
- return implementation;
- }
- if (lacksProperEnumerationOrder()) {
- return implementation;
- }
- if (assignHasPendingExceptions()) {
- return implementation;
- }
- return Object.assign;
-};
diff --git a/node_modules/object.assign/shim.js b/node_modules/object.assign/shim.js
deleted file mode 100644
index 9f896ae..0000000
--- a/node_modules/object.assign/shim.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict';
-
-var define = require('define-properties');
-var getPolyfill = require('./polyfill');
-
-module.exports = function shimAssign() {
- var polyfill = getPolyfill();
- define(
- Object,
- { assign: polyfill },
- { assign: function () { return Object.assign !== polyfill; } }
- );
- return polyfill;
-};
diff --git a/node_modules/object.assign/test/index.js b/node_modules/object.assign/test/index.js
deleted file mode 100644
index 776b2b3..0000000
--- a/node_modules/object.assign/test/index.js
+++ /dev/null
@@ -1,17 +0,0 @@
-'use strict';
-
-var assign = require('../');
-var test = require('tape');
-var runTests = require('./tests');
-
-test('as a function', function (t) {
- t.test('bad array/this value', function (st) {
- st['throws'](function () { assign(undefined); }, TypeError, 'undefined is not an object');
- st['throws'](function () { assign(null); }, TypeError, 'null is not an object');
- st.end();
- });
-
- runTests(assign, t);
-
- t.end();
-});
diff --git a/node_modules/object.assign/test/native.js b/node_modules/object.assign/test/native.js
deleted file mode 100644
index 49a70f7..0000000
--- a/node_modules/object.assign/test/native.js
+++ /dev/null
@@ -1,49 +0,0 @@
-'use strict';
-
-var test = require('tape');
-var defineProperties = require('define-properties');
-var isEnumerable = Object.prototype.propertyIsEnumerable;
-var functionsHaveNames = require('functions-have-names')();
-
-var runTests = require('./tests');
-
-test('native', function (t) {
- t.equal(Object.assign.length, 2, 'Object.assign has a length of 2');
- t.test('Function name', { skip: !functionsHaveNames }, function (st) {
- st.equal(Object.assign.name, 'assign', 'Object.assign has name "assign"');
- st.end();
- });
-
- t.test('enumerability', { skip: !defineProperties.supportsDescriptors }, function (et) {
- et.equal(false, isEnumerable.call(Object, 'assign'), 'Object.assign is not enumerable');
- et.end();
- });
-
- var supportsStrictMode = (function () { return typeof this === 'undefined'; }());
-
- t.test('bad object value', { skip: !supportsStrictMode }, function (st) {
- st['throws'](function () { return Object.assign(undefined); }, TypeError, 'undefined is not an object');
- st['throws'](function () { return Object.assign(null); }, TypeError, 'null is not an object');
- st.end();
- });
-
- // v8 in node 0.8 and 0.10 have non-enumerable string properties
- var stringCharsAreEnumerable = isEnumerable.call('xy', 0);
- t.test('when Object.assign is present and has pending exceptions', { skip: !stringCharsAreEnumerable || !Object.preventExtensions }, function (st) {
- /*
- * Firefox 37 still has "pending exception" logic in its Object.assign implementation,
- * which is 72% slower than our shim, and Firefox 40's native implementation.
- */
- var thrower = Object.preventExtensions({ 1: '2' });
- var error;
- try { Object.assign(thrower, 'xy'); } catch (e) { error = e; }
- st.equal(error instanceof TypeError, true, 'error is TypeError');
- st.equal(thrower[1], '2', 'thrower[1] === "2"');
-
- st.end();
- });
-
- runTests(Object.assign, t);
-
- t.end();
-});
diff --git a/node_modules/object.assign/test/ses-compat.js b/node_modules/object.assign/test/ses-compat.js
deleted file mode 100644
index 9669eb9..0000000
--- a/node_modules/object.assign/test/ses-compat.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-
-/* globals lockdown */
-
-// requiring ses exposes "lockdown" on the global
-require('ses');
-
-// lockdown freezes the primordials
-lockdown({ errorTaming: 'unsafe' });
-
-// initialize the module
-require('./');
diff --git a/node_modules/object.assign/test/shimmed.js b/node_modules/object.assign/test/shimmed.js
deleted file mode 100644
index ee57758..0000000
--- a/node_modules/object.assign/test/shimmed.js
+++ /dev/null
@@ -1,52 +0,0 @@
-'use strict';
-
-var assign = require('../');
-assign.shim();
-
-var test = require('tape');
-var defineProperties = require('define-properties');
-var isEnumerable = Object.prototype.propertyIsEnumerable;
-var functionsHaveNames = require('functions-have-names')();
-
-var runTests = require('./tests');
-
-test('shimmed', function (t) {
- t.equal(Object.assign.length, 2, 'Object.assign has a length of 2');
- t.test('Function name', { skip: !functionsHaveNames }, function (st) {
- st.equal(Object.assign.name, 'assign', 'Object.assign has name "assign"');
- st.end();
- });
-
- t.test('enumerability', { skip: !defineProperties.supportsDescriptors }, function (et) {
- et.equal(false, isEnumerable.call(Object, 'assign'), 'Object.assign is not enumerable');
- et.end();
- });
-
- var supportsStrictMode = (function () { return typeof this === 'undefined'; }());
-
- t.test('bad object value', { skip: !supportsStrictMode }, function (st) {
- st['throws'](function () { return Object.assign(undefined); }, TypeError, 'undefined is not an object');
- st['throws'](function () { return Object.assign(null); }, TypeError, 'null is not an object');
- st.end();
- });
-
- // v8 in node 0.8 and 0.10 have non-enumerable string properties
- var stringCharsAreEnumerable = isEnumerable.call('xy', 0);
- t.test('when Object.assign is present and has pending exceptions', { skip: !stringCharsAreEnumerable || !Object.preventExtensions }, function (st) {
- /*
- * Firefox 37 still has "pending exception" logic in its Object.assign implementation,
- * which is 72% slower than our shim, and Firefox 40's native implementation.
- */
- var thrower = Object.preventExtensions({ 1: '2' });
- var error;
- try { Object.assign(thrower, 'xy'); } catch (e) { error = e; }
- st.equal(error instanceof TypeError, true, 'error is TypeError');
- st.equal(thrower[1], '2', 'thrower[1] === "2"');
-
- st.end();
- });
-
- runTests(Object.assign, t);
-
- t.end();
-});
diff --git a/node_modules/object.assign/test/tests.js b/node_modules/object.assign/test/tests.js
deleted file mode 100644
index 81b1326..0000000
--- a/node_modules/object.assign/test/tests.js
+++ /dev/null
@@ -1,237 +0,0 @@
-'use strict';
-
-var hasSymbols = require('has-symbols/shams')();
-var forEach = require('for-each');
-var has = require('has');
-
-module.exports = function (assign, t) {
- t.test('error cases', function (st) {
- st['throws'](function () { assign(null); }, TypeError, 'target must be an object');
- st['throws'](function () { assign(undefined); }, TypeError, 'target must be an object');
- st['throws'](function () { assign(null, {}); }, TypeError, 'target must be an object');
- st['throws'](function () { assign(undefined, {}); }, TypeError, 'target must be an object');
- st.end();
- });
-
- t.test('non-object target, no sources', function (st) {
- var bool = assign(true);
- st.equal(typeof bool, 'object', 'bool is object');
- st.equal(Boolean.prototype.valueOf.call(bool), true, 'bool coerces to `true`');
-
- var number = assign(1);
- st.equal(typeof number, 'object', 'number is object');
- st.equal(Number.prototype.valueOf.call(number), 1, 'number coerces to `1`');
-
- var string = assign('1');
- st.equal(typeof string, 'object', 'number is object');
- st.equal(String.prototype.valueOf.call(string), '1', 'number coerces to `"1"`');
-
- st.end();
- });
-
- t.test('non-object target, with sources', function (st) {
- var signal = {};
-
- st.test('boolean', function (st2) {
- var bool = assign(true, { a: signal });
- st2.equal(typeof bool, 'object', 'bool is object');
- st2.equal(Boolean.prototype.valueOf.call(bool), true, 'bool coerces to `true`');
- st2.equal(bool.a, signal, 'source properties copied');
- st2.end();
- });
-
- st.test('number', function (st2) {
- var number = assign(1, { a: signal });
- st2.equal(typeof number, 'object', 'number is object');
- st2.equal(Number.prototype.valueOf.call(number), 1, 'number coerces to `1`');
- st2.equal(number.a, signal, 'source properties copied');
- st2.end();
- });
-
- st.test('string', function (st2) {
- var string = assign('1', { a: signal });
- st2.equal(typeof string, 'object', 'number is object');
- st2.equal(String.prototype.valueOf.call(string), '1', 'number coerces to `"1"`');
- st2.equal(string.a, signal, 'source properties copied');
- st2.end();
- });
-
- st.end();
- });
-
- t.test('non-object sources', function (st) {
- st.deepEqual(assign({ a: 1 }, null, { b: 2 }), { a: 1, b: 2 }, 'ignores null source');
- st.deepEqual(assign({ a: 1 }, { b: 2 }, undefined), { a: 1, b: 2 }, 'ignores undefined source');
- st.end();
- });
-
- t.test('returns the modified target object', function (st) {
- var target = {};
- var returned = assign(target, { a: 1 });
- st.equal(returned, target, 'returned object is the same reference as the target object');
- st.end();
- });
-
- t.test('has the right length', function (st) {
- st.equal(assign.length, 2, 'length is 2 => 2 required arguments');
- st.end();
- });
-
- t.test('merge two objects', function (st) {
- var target = { a: 1 };
- var returned = assign(target, { b: 2 });
- st.deepEqual(returned, { a: 1, b: 2 }, 'returned object has properties from both');
- st.end();
- });
-
- t.test('works with functions', function (st) {
- var target = function () {};
- target.a = 1;
- var returned = assign(target, { b: 2 });
- st.equal(target, returned, 'returned object is target');
- st.equal(returned.a, 1);
- st.equal(returned.b, 2);
- st.end();
- });
-
- t.test('works with primitives', function (st) {
- var target = 2;
- var source = { b: 42 };
- var returned = assign(target, source);
- st.equal(Object.prototype.toString.call(returned), '[object Number]', 'returned is object form of number primitive');
- st.equal(Number(returned), target, 'returned and target have same valueOf');
- st.equal(returned.b, source.b);
- st.end();
- });
-
- /* globals window */
- t.test('works with window.location', { skip: typeof window === 'undefined' }, function (st) {
- var target = {};
- assign(target, window.location);
- for (var prop in window.location) {
- if (has(window.location, prop)) {
- st.deepEqual(target[prop], window.location[prop], prop + ' is copied');
- }
- }
- st.end();
- });
-
- t.test('merge N objects', function (st) {
- var target = { a: 1 };
- var source1 = { b: 2 };
- var source2 = { c: 3 };
- var returned = assign(target, source1, source2);
- st.deepEqual(returned, { a: 1, b: 2, c: 3 }, 'returned object has properties from all sources');
- st.end();
- });
-
- t.test('only iterates over own keys', function (st) {
- var Foo = function () {};
- Foo.prototype.bar = true;
- var foo = new Foo();
- foo.baz = true;
- var target = { a: 1 };
- var returned = assign(target, foo);
- st.equal(returned, target, 'returned object is the same reference as the target object');
- st.deepEqual(target, { a: 1, baz: true }, 'returned object has only own properties from both');
- st.end();
- });
-
- t.test('includes enumerable symbols, after keys', { skip: !hasSymbols }, function (st) {
- var visited = [];
- var obj = {};
- Object.defineProperty(obj, 'a', { enumerable: true, get: function () { visited.push('a'); return 42; } });
- var symbol = Symbol('enumerable');
- Object.defineProperty(obj, symbol, {
- enumerable: true,
- get: function () { visited.push(symbol); return Infinity; }
- });
- var nonEnumSymbol = Symbol('non-enumerable');
- Object.defineProperty(obj, nonEnumSymbol, {
- enumerable: false,
- get: function () { visited.push(nonEnumSymbol); return -Infinity; }
- });
- var target = assign({}, obj);
- st.deepEqual(visited, ['a', symbol], 'key is visited first, then symbol');
- st.equal(target.a, 42, 'target.a is 42');
- st.equal(target[symbol], Infinity, 'target[symbol] is Infinity');
- st.notEqual(target[nonEnumSymbol], -Infinity, 'target[nonEnumSymbol] is not -Infinity');
- st.end();
- });
-
- t.test('does not fail when symbols are not present', { skip: !Object.isFrozen || Object.isFrozen(Object) }, function (st) {
- var getSyms;
- if (hasSymbols) {
- getSyms = Object.getOwnPropertySymbols;
- delete Object.getOwnPropertySymbols;
- }
-
- var visited = [];
- var obj = {};
- Object.defineProperty(obj, 'a', { enumerable: true, get: function () { visited.push('a'); return 42; } });
- var keys = ['a'];
- if (hasSymbols) {
- var symbol = Symbol('sym');
- Object.defineProperty(obj, symbol, {
- enumerable: true,
- get: function () { visited.push(symbol); return Infinity; }
- });
- keys.push(symbol);
- }
- var target = assign({}, obj);
- st.deepEqual(visited, keys, 'assign visits expected keys');
- st.equal(target.a, 42, 'target.a is 42');
-
- if (hasSymbols) {
- st.equal(target[symbol], Infinity);
-
- Object.getOwnPropertySymbols = getSyms;
- }
- st.end();
- });
-
- t.test('preserves correct property enumeration order', function (st) {
- var str = 'abcdefghijklmnopqrst';
- var letters = {};
- forEach(str.split(''), function (letter) {
- letters[letter] = letter;
- });
-
- var n = 5;
- st.comment('run the next test ' + n + ' times');
- var object = assign({}, letters);
- var actual = '';
- for (var k in object) {
- actual += k;
- }
- for (var i = 0; i < n; ++i) {
- st.equal(actual, str, 'property enumeration order should be followed');
- }
- st.end();
- });
-
- t.test('checks enumerability and existence, in case of modification during [[Get]]', { skip: !Object.defineProperty }, function (st) {
- var targetBvalue = {};
- var targetCvalue = {};
- var target = { b: targetBvalue, c: targetCvalue };
- var source = {};
- Object.defineProperty(source, 'a', {
- enumerable: true,
- get: function () {
- delete this.b;
- Object.defineProperty(this, 'c', { enumerable: false });
- return 'a';
- }
- });
- var sourceBvalue = {};
- var sourceCvalue = {};
- source.b = sourceBvalue;
- source.c = sourceCvalue;
- var result = assign(target, source);
- st.equal(result, target, 'sanity check: result is === target');
- st.equal(result.b, targetBvalue, 'target key not overwritten by deleted source key');
- st.equal(result.c, targetCvalue, 'target key not overwritten by non-enumerable source key');
-
- st.end();
- });
-};
diff --git a/node_modules/object.defaults/LICENSE b/node_modules/object.defaults/LICENSE
deleted file mode 100644
index d290fe0..0000000
--- a/node_modules/object.defaults/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2015, 2017, 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/object.defaults/README.md b/node_modules/object.defaults/README.md
deleted file mode 100644
index 435c897..0000000
--- a/node_modules/object.defaults/README.md
+++ /dev/null
@@ -1,85 +0,0 @@
-# object.defaults [![NPM version](https://img.shields.io/npm/v/object.defaults.svg?style=flat)](https://www.npmjs.com/package/object.defaults) [![NPM monthly downloads](https://img.shields.io/npm/dm/object.defaults.svg?style=flat)](https://npmjs.org/package/object.defaults) [![NPM total downloads](https://img.shields.io/npm/dt/object.defaults.svg?style=flat)](https://npmjs.org/package/object.defaults) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/object.defaults.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/object.defaults)
-
-> Like `extend` but only copies missing properties/values to the target object.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save object.defaults
-```
-
-Install with [bower](https://bower.io/)
-
-```sh
-$ bower install object.defaults --save
-```
-
-## Usage
-
-```js
-var defaults = require('object.defaults');
-
-var obj = {a: 'c'};
-defaults(obj, {a: 'bbb', d: 'c'});
-console.log(obj);
-//=> {a: 'c', d: 'c'}
-```
-
-Or immutable defaulting:
-```js
-var defaults = require('object.defaults/immutable');
-var obj = {a: 'c'};
-var defaulted = defaults(obj, {a: 'bbb', d: 'c'});
-console.log(obj !== defaulted);
-//=> true
-```
-
-## About
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 16 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 1 | [phated](https://github.com/phated) |
-| 1 | [sobolevn](https://github.com/sobolevn) |
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.5.0, on April 26, 2017._
\ No newline at end of file
diff --git a/node_modules/object.defaults/immutable.js b/node_modules/object.defaults/immutable.js
deleted file mode 100644
index 16d847e..0000000
--- a/node_modules/object.defaults/immutable.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-var slice = require('array-slice');
-
-var defaults = require('./mutable');
-
-/**
- * Extends an empty object with properties of one or
- * more additional `objects`
- *
- * @name .defaults.immutable
- * @param {Object} `objects`
- * @return {Object}
- * @api public
- */
-
-module.exports = function immutableDefaults() {
- var args = slice(arguments);
- return defaults.apply(null, [{}].concat(args));
-};
diff --git a/node_modules/object.defaults/index.js b/node_modules/object.defaults/index.js
deleted file mode 100644
index b9e6437..0000000
--- a/node_modules/object.defaults/index.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*!
- * object.defaults
- *
- * Copyright (c) 2014-2015, 2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-module.exports = require('./mutable');
-module.exports.immutable = require('./immutable');
diff --git a/node_modules/object.defaults/mutable.js b/node_modules/object.defaults/mutable.js
deleted file mode 100644
index fac447f..0000000
--- a/node_modules/object.defaults/mutable.js
+++ /dev/null
@@ -1,35 +0,0 @@
-'use strict';
-
-var each = require('array-each');
-var slice = require('array-slice');
-var forOwn = require('for-own');
-var isObject = require('isobject');
-
-/**
- * Extends the `target` object with properties of one or
- * more additional `objects`
- *
- * @name .defaults
- * @param {Object} `target` The target object. Pass an empty object to shallow clone.
- * @param {Object} `objects`
- * @return {Object}
- * @api public
- */
-
-module.exports = function defaults(target, objects) {
- if (target == null) {
- return {};
- }
-
- each(slice(arguments, 1), function(obj) {
- if (isObject(obj)) {
- forOwn(obj, function(val, key) {
- if (target[key] == null) {
- target[key] = val;
- }
- });
- }
- });
-
- return target;
-};
diff --git a/node_modules/object.defaults/package.json b/node_modules/object.defaults/package.json
deleted file mode 100644
index 56cf82c..0000000
--- a/node_modules/object.defaults/package.json
+++ /dev/null
@@ -1,67 +0,0 @@
-{
- "name": "object.defaults",
- "description": "Like `extend` but only copies missing properties/values to the target object.",
- "version": "1.1.0",
- "homepage": "https://github.com/jonschlinkert/object.defaults",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Sobolev Nikita (https://github.com/sobolevn)"
- ],
- "repository": "jonschlinkert/object.defaults",
- "bugs": {
- "url": "https://github.com/jonschlinkert/object.defaults/issues"
- },
- "license": "MIT",
- "files": [
- "index.js",
- "immutable.js",
- "mutable.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "array-each": "^1.0.1",
- "array-slice": "^1.0.0",
- "for-own": "^1.0.0",
- "isobject": "^3.0.0"
- },
- "devDependencies": {
- "gulp-format-md": "^0.1.11",
- "mocha": "^3.2.0"
- },
- "keywords": [
- "copy",
- "default",
- "defaults",
- "extend",
- "javascript",
- "js",
- "merge",
- "object",
- "properties",
- "property",
- "util",
- "utils",
- "value",
- "values"
- ],
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/object.map/LICENSE b/node_modules/object.map/LICENSE
deleted file mode 100644
index 2a3cb73..0000000
--- a/node_modules/object.map/LICENSE
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-Copyright (c) 2014-2017, Jon Schlinkert, contributors.
-
-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/object.map/README.md b/node_modules/object.map/README.md
deleted file mode 100644
index a189bb9..0000000
--- a/node_modules/object.map/README.md
+++ /dev/null
@@ -1,87 +0,0 @@
-# object.map [![NPM version](https://img.shields.io/npm/v/object.map.svg?style=flat)](https://www.npmjs.com/package/object.map) [![NPM monthly downloads](https://img.shields.io/npm/dm/object.map.svg?style=flat)](https://npmjs.org/package/object.map) [![NPM total downloads](https://img.shields.io/npm/dt/object.map.svg?style=flat)](https://npmjs.org/package/object.map) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/object.map.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/object.map) [![Windows Build Status](https://img.shields.io/appveyor/ci/jonschlinkert/object.map.svg?style=flat&label=AppVeyor)](https://ci.appveyor.com/project/jonschlinkert/object.map)
-
-> Similar to map for arrays, this creates a new object by calling the callback on each property of the original object.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save object.map
-```
-
-## Usage
-
-```js
-var mapValues = require('object.map');
-
-var result = mapValues({a: 'a', b: 'b'}, function(val, key, obj) {
- return val + val;
-});
-console.log(result);
-//=> {a: 'aa', b: 'bb'}
-```
-
-Optionally specify a `thisArg` as the last argument:
-
-```js
-var result = mapValues({a: 'b'}, function(val, key, obj) {
- return this.foo;
-}, {foo: 'bar'});
-console.log(result);
-//=> {a: 'bar'}
-```
-
-## About
-
-### Related projects
-
-* [arr-map](https://www.npmjs.com/package/arr-map): Faster, node.js focused alternative to JavaScript's native array map. | [homepage](https://github.com/jonschlinkert/arr-map "Faster, node.js focused alternative to JavaScript's native array map.")
-* [array-each](https://www.npmjs.com/package/array-each): Loop over each item in an array and call the given function on every element. | [homepage](https://github.com/jonschlinkert/array-each "Loop over each item in an array and call the given function on every element.")
-* [collection-map](https://www.npmjs.com/package/collection-map): Returns an array of mapped values from an array or object. | [homepage](https://github.com/jonschlinkert/collection-map "Returns an array of mapped values from an array or object.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 4 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 1 | [phated](https://github.com/phated) |
-| 1 | [doowb](https://github.com/doowb) |
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on December 20, 2017._
\ No newline at end of file
diff --git a/node_modules/object.map/index.js b/node_modules/object.map/index.js
deleted file mode 100644
index 0baef88..0000000
--- a/node_modules/object.map/index.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/*!
- * object.map
- *
- * Copyright (c) 2014-2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-var makeIterator = require('make-iterator');
-var forOwn = require('for-own');
-
-module.exports = function(obj, fn, thisArg) {
- var iterator = makeIterator(fn, thisArg);
- var result = {};
-
- forOwn(obj, function(value, key, orig) {
- result[key] = iterator(value, key, orig);
- });
-
- return result;
-};
diff --git a/node_modules/object.map/package.json b/node_modules/object.map/package.json
deleted file mode 100644
index 0f331e8..0000000
--- a/node_modules/object.map/package.json
+++ /dev/null
@@ -1,59 +0,0 @@
-{
- "name": "object.map",
- "description": "Similar to map for arrays, this creates a new object by calling the callback on each property of the original object.",
- "version": "1.0.1",
- "homepage": "https://github.com/jonschlinkert/object.map",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Blaine Bublitz (https://twitter.com/BlaineBublitz)",
- "Brian Woodward (https://twitter.com/doowb)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)"
- ],
- "repository": "jonschlinkert/object.map",
- "bugs": {
- "url": "https://github.com/jonschlinkert/object.map/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "for-own": "^1.0.0",
- "make-iterator": "^1.0.0"
- },
- "devDependencies": {
- "gulp-format-md": "^0.1.11",
- "mocha": "^3.2.0"
- },
- "keywords": [
- "map",
- "object"
- ],
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "arr-map",
- "array-each",
- "collection-map"
- ]
- },
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/object.pick/LICENSE b/node_modules/object.pick/LICENSE
deleted file mode 100644
index 39245ac..0000000
--- a/node_modules/object.pick/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2016, 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/object.pick/README.md b/node_modules/object.pick/README.md
deleted file mode 100644
index 48f7453..0000000
--- a/node_modules/object.pick/README.md
+++ /dev/null
@@ -1,76 +0,0 @@
-# object.pick [![NPM version](https://img.shields.io/npm/v/object.pick.svg?style=flat)](https://www.npmjs.com/package/object.pick) [![NPM monthly downloads](https://img.shields.io/npm/dm/object.pick.svg?style=flat)](https://npmjs.org/package/object.pick) [![NPM total downloads](https://img.shields.io/npm/dt/object.pick.svg?style=flat)](https://npmjs.org/package/object.pick) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/object.pick.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/object.pick)
-
-> Returns a filtered copy of an object with only the specified keys, similar to `_.pick` from lodash / underscore.
-
-You might also be interested in [object.omit](https://github.com/jonschlinkert/object.omit).
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save object.pick
-```
-
-## benchmarks
-
-This is the [fastest implementation](http://jsperf.com/pick-props) I tested. Pull requests welcome!
-
-## Usage
-
-```js
-var pick = require('object.pick');
-
-pick({a: 'a', b: 'b'}, 'a')
-//=> {a: 'a'}
-
-pick({a: 'a', b: 'b', c: 'c'}, ['a', 'b'])
-//=> {a: 'a', b: 'b'}
-```
-
-## About
-
-### Related projects
-
-* [extend-shallow](https://www.npmjs.com/package/extend-shallow): Extend an object with the properties of additional objects. node.js/javascript util. | [homepage](https://github.com/jonschlinkert/extend-shallow "Extend an object with the properties of additional objects. node.js/javascript util.")
-* [get-value](https://www.npmjs.com/package/get-value): Use property paths (`a.b.c`) to get a nested value from an object. | [homepage](https://github.com/jonschlinkert/get-value "Use property paths (`a.b.c`) to get a nested value from an object.")
-* [mixin-deep](https://www.npmjs.com/package/mixin-deep): Deeply mix the properties of objects into the first object. Like merge-deep, but doesn't clone. | [homepage](https://github.com/jonschlinkert/mixin-deep "Deeply mix the properties of objects into the first object. Like merge-deep, but doesn't clone.")
-* [set-value](https://www.npmjs.com/package/set-value): Create nested values and any intermediaries using dot notation (`'a.b.c'`) paths. | [homepage](https://github.com/jonschlinkert/set-value "Create nested values and any intermediaries using dot notation (`'a.b.c'`) paths.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Building docs
-
-_(This document was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme) (a [verb](https://github.com/verbose/verb) generator), please don't edit the readme directly. Any changes to the readme must be made in [.verb.md](.verb.md).)_
-
-To generate the readme and API documentation with [verb](https://github.com/verbose/verb):
-
-```sh
-$ npm install -g verb verb-generate-readme && verb
-```
-
-### Running tests
-
-Install dev dependencies:
-
-```sh
-$ npm install -d && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT license](https://github.com/jonschlinkert/object.pick/blob/master/LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.2.0, on October 27, 2016._
\ No newline at end of file
diff --git a/node_modules/object.pick/index.js b/node_modules/object.pick/index.js
deleted file mode 100644
index 0ce0178..0000000
--- a/node_modules/object.pick/index.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/*!
- * object.pick
- *
- * Copyright (c) 2014-2015 Jon Schlinkert, contributors.
- * Licensed under the MIT License
- */
-
-'use strict';
-
-var isObject = require('isobject');
-
-module.exports = function pick(obj, keys) {
- if (!isObject(obj) && typeof obj !== 'function') {
- return {};
- }
-
- var res = {};
- if (typeof keys === 'string') {
- if (keys in obj) {
- res[keys] = obj[keys];
- }
- return res;
- }
-
- var len = keys.length;
- var idx = -1;
-
- while (++idx < len) {
- var key = keys[idx];
- if (key in obj) {
- res[key] = obj[key];
- }
- }
- return res;
-};
diff --git a/node_modules/object.pick/package.json b/node_modules/object.pick/package.json
deleted file mode 100644
index b655dbe..0000000
--- a/node_modules/object.pick/package.json
+++ /dev/null
@@ -1,60 +0,0 @@
-{
- "name": "object.pick",
- "description": "Returns a filtered copy of an object with only the specified keys, similar to `_.pick` from lodash / underscore.",
- "version": "1.3.0",
- "homepage": "https://github.com/jonschlinkert/object.pick",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/object.pick",
- "bugs": {
- "url": "https://github.com/jonschlinkert/object.pick/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "devDependencies": {
- "gulp-format-md": "^1.0.0",
- "mocha": "^3.1.2",
- "vinyl": "^2.0.0"
- },
- "keywords": [
- "object",
- "pick"
- ],
- "verb": {
- "run": true,
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "extend-shallow",
- "get-value",
- "mixin-deep",
- "set-value"
- ],
- "highlight": "object.omit"
- },
- "reflinks": [
- "verb"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/object.reduce/LICENSE b/node_modules/object.reduce/LICENSE
deleted file mode 100644
index d290fe0..0000000
--- a/node_modules/object.reduce/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2015, 2017, 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/object.reduce/README.md b/node_modules/object.reduce/README.md
deleted file mode 100644
index 9c21207..0000000
--- a/node_modules/object.reduce/README.md
+++ /dev/null
@@ -1,95 +0,0 @@
-# object.reduce [![NPM version](https://img.shields.io/npm/v/object.reduce.svg?style=flat)](https://www.npmjs.com/package/object.reduce) [![NPM monthly downloads](https://img.shields.io/npm/dm/object.reduce.svg?style=flat)](https://npmjs.org/package/object.reduce) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/object.reduce.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/object.reduce)
-
-> Reduces an object to a value that is the accumulated result of running each property in the object through a callback.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save object.reduce
-```
-
-Install with [yarn](https://yarnpkg.com):
-
-```sh
-$ yarn add object.reduce
-```
-
-Install with [bower](https://bower.io/)
-
-```sh
-$ bower install object.reduce --save
-```
-
-## Usage
-
-the initial value (or value from the previous callback call), the `value` of the current property, the `key` of the current property, and the `object` over which the function is iterating. Node.js/JavaScript utility.)_
-
-**Params**
-
-* `object` **{Object}**: The object to iterate over (the iteratee)
-* `fn` **{Function}**: The function invoked per iteration.
-* `init` **{Object}**: The initial value to use for the accumulator.
-* `thisArg` **{Object}**: (optional) Object to use as the invocation context for the iterator (expose as `this` inside the iterator)
-
-Executes the given callback `fn` once for each own enumerable property in the object. The callback receives the following arguments:
-
-* `acc`: the initial value (or value from the previous callback call),
-* `value`: the of the current property,
-* `key`: the of the current property, and
-* the original `object` over which the function is iterating.
-
-**Example**
-
-```js
-var reduce = require('object.reduce');
-var a = {a: 'foo', b: 'bar', c: 'baz'};
-
-reduce(a, function(acc, value, key, obj) {
- acc[key] = value.toUpperCase();
- return acc;
-}, {});
-
-//=> {a: 'FOO', b: 'BAR', c: 'BAZ'};
-```
-
-## About
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.5.0, on April 17, 2017._
\ No newline at end of file
diff --git a/node_modules/object.reduce/index.js b/node_modules/object.reduce/index.js
deleted file mode 100644
index 29ec49c..0000000
--- a/node_modules/object.reduce/index.js
+++ /dev/null
@@ -1,31 +0,0 @@
-/*!
- * object.reduce
- *
- * Copyright (c) 2014-2015, 2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-var makeIterator = require('make-iterator');
-var forOwn = require('for-own');
-
-module.exports = function reduce(target, fn, acc, thisArg) {
- var first = arguments.length > 2;
- if (target && !Object.keys(target).length && !first) {
- return null;
- }
-
- var iterator = makeIterator(fn, thisArg);
-
- forOwn(target, function(value, key, orig) {
- if (!first) {
- acc = value;
- first = true;
- } else {
- acc = iterator(acc, value, key, orig);
- }
- });
-
- return acc;
-};
diff --git a/node_modules/object.reduce/package.json b/node_modules/object.reduce/package.json
deleted file mode 100644
index 61d4dc1..0000000
--- a/node_modules/object.reduce/package.json
+++ /dev/null
@@ -1,47 +0,0 @@
-{
- "name": "object.reduce",
- "description": "Reduces an object to a value that is the accumulated result of running each property in the object through a callback.",
- "version": "1.0.1",
- "homepage": "https://github.com/jonschlinkert/object.reduce",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/object.reduce",
- "bugs": {
- "url": "https://github.com/jonschlinkert/object.reduce/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "keywords": [
- "object",
- "reduce"
- ],
- "dependencies": {
- "for-own": "^1.0.0",
- "make-iterator": "^1.0.0"
- },
- "devDependencies": {
- "gulp-format-md": "^0.1.11",
- "mocha": "^3.2.0"
- },
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/once/LICENSE b/node_modules/once/LICENSE
deleted file mode 100644
index 19129e3..0000000
--- a/node_modules/once/LICENSE
+++ /dev/null
@@ -1,15 +0,0 @@
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/node_modules/once/README.md b/node_modules/once/README.md
deleted file mode 100644
index 1f1ffca..0000000
--- a/node_modules/once/README.md
+++ /dev/null
@@ -1,79 +0,0 @@
-# once
-
-Only call a function once.
-
-## usage
-
-```javascript
-var once = require('once')
-
-function load (file, cb) {
- cb = once(cb)
- loader.load('file')
- loader.once('load', cb)
- loader.once('error', cb)
-}
-```
-
-Or add to the Function.prototype in a responsible way:
-
-```javascript
-// only has to be done once
-require('once').proto()
-
-function load (file, cb) {
- cb = cb.once()
- loader.load('file')
- loader.once('load', cb)
- loader.once('error', cb)
-}
-```
-
-Ironically, the prototype feature makes this module twice as
-complicated as necessary.
-
-To check whether you function has been called, use `fn.called`. Once the
-function is called for the first time the return value of the original
-function is saved in `fn.value` and subsequent calls will continue to
-return this value.
-
-```javascript
-var once = require('once')
-
-function load (cb) {
- cb = once(cb)
- var stream = createStream()
- stream.once('data', cb)
- stream.once('end', function () {
- if (!cb.called) cb(new Error('not found'))
- })
-}
-```
-
-## `once.strict(func)`
-
-Throw an error if the function is called twice.
-
-Some functions are expected to be called only once. Using `once` for them would
-potentially hide logical errors.
-
-In the example below, the `greet` function has to call the callback only once:
-
-```javascript
-function greet (name, cb) {
- // return is missing from the if statement
- // when no name is passed, the callback is called twice
- if (!name) cb('Hello anonymous')
- cb('Hello ' + name)
-}
-
-function log (msg) {
- console.log(msg)
-}
-
-// this will print 'Hello anonymous' but the logical error will be missed
-greet(null, once(msg))
-
-// once.strict will print 'Hello anonymous' and throw an error when the callback will be called the second time
-greet(null, once.strict(msg))
-```
diff --git a/node_modules/once/once.js b/node_modules/once/once.js
deleted file mode 100644
index 2354067..0000000
--- a/node_modules/once/once.js
+++ /dev/null
@@ -1,42 +0,0 @@
-var wrappy = require('wrappy')
-module.exports = wrappy(once)
-module.exports.strict = wrappy(onceStrict)
-
-once.proto = once(function () {
- Object.defineProperty(Function.prototype, 'once', {
- value: function () {
- return once(this)
- },
- configurable: true
- })
-
- Object.defineProperty(Function.prototype, 'onceStrict', {
- value: function () {
- return onceStrict(this)
- },
- configurable: true
- })
-})
-
-function once (fn) {
- var f = function () {
- if (f.called) return f.value
- f.called = true
- return f.value = fn.apply(this, arguments)
- }
- f.called = false
- return f
-}
-
-function onceStrict (fn) {
- var f = function () {
- if (f.called)
- throw new Error(f.onceError)
- f.called = true
- return f.value = fn.apply(this, arguments)
- }
- var name = fn.name || 'Function wrapped with `once`'
- f.onceError = name + " shouldn't be called more than once"
- f.called = false
- return f
-}
diff --git a/node_modules/once/package.json b/node_modules/once/package.json
deleted file mode 100644
index 16815b2..0000000
--- a/node_modules/once/package.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- "name": "once",
- "version": "1.4.0",
- "description": "Run a function exactly one time",
- "main": "once.js",
- "directories": {
- "test": "test"
- },
- "dependencies": {
- "wrappy": "1"
- },
- "devDependencies": {
- "tap": "^7.0.1"
- },
- "scripts": {
- "test": "tap test/*.js"
- },
- "files": [
- "once.js"
- ],
- "repository": {
- "type": "git",
- "url": "git://github.com/isaacs/once"
- },
- "keywords": [
- "once",
- "function",
- "one",
- "single"
- ],
- "author": "Isaac Z. Schlueter (http://blog.izs.me/)",
- "license": "ISC"
-}
diff --git a/node_modules/ordered-read-streams/LICENSE b/node_modules/ordered-read-streams/LICENSE
deleted file mode 100644
index 16fd428..0000000
--- a/node_modules/ordered-read-streams/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014 Artem Medeusheyev
-
-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/ordered-read-streams/README.md b/node_modules/ordered-read-streams/README.md
deleted file mode 100644
index 2fa2489..0000000
--- a/node_modules/ordered-read-streams/README.md
+++ /dev/null
@@ -1,65 +0,0 @@
-# ordered-read-streams [![NPM version](https://img.shields.io/npm/v/ordered-read-streams.svg)](http://badge.fury.io/js/ordered-read-streams) [![Build Status](https://travis-ci.org/armed/ordered-read-streams.svg?branch=master)](https://travis-ci.org/armed/ordered-read-streams)
-
-Combines array of streams into one read stream in strict order.
-
-## Installation
-
-`npm install ordered-read-streams`
-
-## Overview
-
-`ordered-read-streams` handles all data/errors from input streams in parallel, but emits data/errors in strict order in which streams are passed to constructor. This is `objectMode = true` stream.
-
-## Example
-
-```js
-var through = require('through2');
-var Ordered = require('ordered-read-streams');
-
-var s1 = through.obj(function (data, enc, next) {
- var self = this;
- setTimeout(function () {
- self.push(data);
- next();
- }, 200)
-});
-var s2 = through.obj(function (data, enc, next) {
- var self = this;
- setTimeout(function () {
- self.push(data);
- next();
- }, 30)
-});
-var s3 = through.obj(function (data, enc, next) {
- var self = this;
- setTimeout(function () {
- self.push(data);
- next();
- }, 100)
-});
-
-var streams = new Ordered([s1, s2, s3]);
-streams.on('data', function (data) {
- console.log(data);
-})
-
-s1.write('stream 1');
-s1.end();
-
-s2.write('stream 2');
-s2.end();
-
-s3.write('stream 3');
-s3.end();
-```
-Ouput will be:
-
-```
-stream 1
-stream 2
-stream 3
-```
-
-## Licence
-
-MIT
diff --git a/node_modules/ordered-read-streams/index.js b/node_modules/ordered-read-streams/index.js
deleted file mode 100644
index 61f3886..0000000
--- a/node_modules/ordered-read-streams/index.js
+++ /dev/null
@@ -1,99 +0,0 @@
-var Readable = require('readable-stream/readable');
-var util = require('util');
-
-function isReadable(stream) {
- if (typeof stream.pipe !== 'function') {
- return false;
- }
-
- if (!stream.readable) {
- return false;
- }
-
- if (typeof stream._read !== 'function') {
- return false;
- }
-
- if (!stream._readableState) {
- return false;
- }
-
- return true;
-}
-
-function addStream (streams, stream) {
- if (!isReadable(stream)) {
- throw new Error('All input streams must be readable');
- }
-
- var self = this;
-
- stream._buffer = [];
-
- stream.on('readable', function () {
- var chunk = stream.read();
- while (chunk) {
- if (this === streams[0]) {
- self.push(chunk);
- } else {
- this._buffer.push(chunk);
- }
- chunk = stream.read();
- }
- });
-
- stream.on('end', function () {
- for (var stream = streams[0];
- stream && stream._readableState.ended;
- stream = streams[0]) {
- while (stream._buffer.length) {
- self.push(stream._buffer.shift());
- }
-
- streams.shift();
- }
-
- if (!streams.length) {
- self.push(null);
- }
- });
-
- stream.on('error', this.emit.bind(this, 'error'));
-
- streams.push(stream);
-}
-
-function OrderedStreams (streams, options) {
- if (!(this instanceof(OrderedStreams))) {
- return new OrderedStreams(streams, options);
- }
-
- streams = streams || [];
- options = options || {};
-
- options.objectMode = true;
-
- Readable.call(this, options);
-
- if (!Array.isArray(streams)) {
- streams = [streams];
- }
- if (!streams.length) {
- return this.push(null); // no streams, close
- }
-
- var addStreamBinded = addStream.bind(this, []);
-
- streams.forEach(function (item) {
- if (Array.isArray(item)) {
- item.forEach(addStreamBinded);
- } else {
- addStreamBinded(item);
- }
- });
-}
-util.inherits(OrderedStreams, Readable);
-
-OrderedStreams.prototype._read = function () {};
-
-module.exports = OrderedStreams;
diff --git a/node_modules/ordered-read-streams/package.json b/node_modules/ordered-read-streams/package.json
deleted file mode 100644
index 56a0742..0000000
--- a/node_modules/ordered-read-streams/package.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "name": "ordered-read-streams",
- "version": "1.0.1",
- "description": "Combines array of streams into one read stream in strict order",
- "files": [
- "index.js"
- ],
- "scripts": {
- "test": "jscs *.js test/*js && jshint *.js test/*.js && mocha"
- },
- "repository": "armed/ordered-read-streams",
- "author": "Artem Medeusheyev ",
- "license": "MIT",
- "dependencies": {
- "readable-stream": "^2.0.1"
- },
- "devDependencies": {
- "expect": "^1.20.2",
- "jscs": "^1.13.1",
- "jshint": "^2.8.0",
- "mississippi": "^1.3.0",
- "mocha": "^2.2.5",
- "pre-commit": "^1.0.10",
- "through2": "^2.0.0"
- }
-}
diff --git a/node_modules/os-locale/index.js b/node_modules/os-locale/index.js
deleted file mode 100644
index 2c8a006..0000000
--- a/node_modules/os-locale/index.js
+++ /dev/null
@@ -1,127 +0,0 @@
-'use strict';
-var childProcess = require('child_process');
-var execFileSync = childProcess.execFileSync;
-var lcid = require('lcid');
-var defaultOpts = {spawn: true};
-var cache;
-
-function fallback() {
- cache = 'en_US';
- return cache;
-}
-
-function getEnvLocale(env) {
- env = env || process.env;
- var ret = env.LC_ALL || env.LC_MESSAGES || env.LANG || env.LANGUAGE;
- cache = getLocale(ret);
- return ret;
-}
-
-function parseLocale(x) {
- var env = x.split('\n').reduce(function (env, def) {
- def = def.split('=');
- env[def[0]] = def[1];
- return env;
- }, {});
- return getEnvLocale(env);
-}
-
-function getLocale(str) {
- return (str && str.replace(/[.:].*/, '')) || fallback();
-}
-
-module.exports = function (opts, cb) {
- if (typeof opts === 'function') {
- cb = opts;
- opts = defaultOpts;
- } else {
- opts = opts || defaultOpts;
- }
-
- if (cache || getEnvLocale() || opts.spawn === false) {
- setImmediate(cb, null, cache);
- return;
- }
-
- var getAppleLocale = function () {
- childProcess.execFile('defaults', ['read', '-g', 'AppleLocale'], function (err, stdout) {
- if (err) {
- fallback();
- return;
- }
-
- cache = stdout.trim() || fallback();
- cb(null, cache);
- });
- };
-
- if (process.platform === 'win32') {
- childProcess.execFile('wmic', ['os', 'get', 'locale'], function (err, stdout) {
- if (err) {
- fallback();
- return;
- }
-
- var lcidCode = parseInt(stdout.replace('Locale', ''), 16);
- cache = lcid.from(lcidCode) || fallback();
- cb(null, cache);
- });
- } else {
- childProcess.execFile('locale', function (err, stdout) {
- if (err) {
- fallback();
- return;
- }
-
- var res = parseLocale(stdout);
-
- if (!res && process.platform === 'darwin') {
- getAppleLocale();
- return;
- }
-
- cache = getLocale(res);
- cb(null, cache);
- });
- }
-};
-
-module.exports.sync = function (opts) {
- opts = opts || defaultOpts;
-
- if (cache || getEnvLocale() || !execFileSync || opts.spawn === false) {
- return cache;
- }
-
- if (process.platform === 'win32') {
- var stdout;
-
- try {
- stdout = execFileSync('wmic', ['os', 'get', 'locale'], {encoding: 'utf8'});
- } catch (err) {
- return fallback();
- }
-
- var lcidCode = parseInt(stdout.replace('Locale', ''), 16);
- cache = lcid.from(lcidCode) || fallback();
- return cache;
- }
-
- var res;
-
- try {
- res = parseLocale(execFileSync('locale', {encoding: 'utf8'}));
- } catch (err) {}
-
- if (!res && process.platform === 'darwin') {
- try {
- cache = execFileSync('defaults', ['read', '-g', 'AppleLocale'], {encoding: 'utf8'}).trim() || fallback();
- return cache;
- } catch (err) {
- return fallback();
- }
- }
-
- cache = getLocale(res);
- return cache;
-};
diff --git a/node_modules/os-locale/license b/node_modules/os-locale/license
deleted file mode 100644
index 654d0bf..0000000
--- a/node_modules/os-locale/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus (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/os-locale/package.json b/node_modules/os-locale/package.json
deleted file mode 100644
index 934f572..0000000
--- a/node_modules/os-locale/package.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "name": "os-locale",
- "version": "1.4.0",
- "description": "Get the system locale",
- "license": "MIT",
- "repository": "sindresorhus/os-locale",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "files": [
- "index.js"
- ],
- "keywords": [
- "locale",
- "lang",
- "language",
- "system",
- "os",
- "string",
- "str",
- "user",
- "country",
- "id",
- "identifier",
- "region"
- ],
- "dependencies": {
- "lcid": "^1.0.0"
- },
- "devDependencies": {
- "ava": "*",
- "require-uncached": "^1.0.2",
- "xo": "*"
- }
-}
diff --git a/node_modules/os-locale/readme.md b/node_modules/os-locale/readme.md
deleted file mode 100644
index b80a0bd..0000000
--- a/node_modules/os-locale/readme.md
+++ /dev/null
@@ -1,47 +0,0 @@
-# os-locale [![Build Status](https://travis-ci.org/sindresorhus/os-locale.svg?branch=master)](https://travis-ci.org/sindresorhus/os-locale)
-
-> Get the system [locale](http://en.wikipedia.org/wiki/Locale)
-
-Useful for localizing your module or app.
-
-POSIX systems: The returned locale refers to the [`LC_MESSAGE`](http://www.gnu.org/software/libc/manual/html_node/Locale-Categories.html#Locale-Categories) category, suitable for selecting the language used in the user interface for message translation.
-
-
-## Install
-
-```
-$ npm install --save os-locale
-```
-
-
-## Usage
-
-```js
-var osLocale = require('os-locale');
-
-osLocale(function (err, locale) {
- console.log(locale);
- //=> 'en_US'
-});
-```
-
-
-## API
-
-### osLocale([options], callback(error, locale))
-
-### osLocale.sync([options])
-
-Returns the locale.
-
-#### options.spawn
-
-Type: `boolean`
-Default: `true`
-
-Set to `false` to avoid spawning subprocesses and instead only resolve the locale from environment variables.
-
-
-## License
-
-MIT © [Sindre Sorhus](http://sindresorhus.com)
diff --git a/node_modules/parse-filepath/LICENSE b/node_modules/parse-filepath/LICENSE
deleted file mode 100644
index fa30c4c..0000000
--- a/node_modules/parse-filepath/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2015, 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/parse-filepath/README.md b/node_modules/parse-filepath/README.md
deleted file mode 100644
index 3eb7ce5..0000000
--- a/node_modules/parse-filepath/README.md
+++ /dev/null
@@ -1,111 +0,0 @@
-# parse-filepath [![NPM version](https://img.shields.io/npm/v/parse-filepath.svg?style=flat)](https://www.npmjs.com/package/parse-filepath) [![NPM downloads](https://img.shields.io/npm/dm/parse-filepath.svg?style=flat)](https://npmjs.org/package/parse-filepath) [![Build Status](https://img.shields.io/travis/jonschlinkert/parse-filepath.svg?style=flat)](https://travis-ci.org/jonschlinkert/parse-filepath)
-
-> Pollyfill for node.js `path.parse`, parses a filepath into an object.
-
-You might also be interested in [global-prefix](https://github.com/jonschlinkert/global-prefix).
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install parse-filepath --save
-```
-
-## Usage
-
-```js
-var parsePath = require('parse-filepath');
-parsePath(filepath);
-```
-
-This can be used as a polyfill for the native node.js `path.parse()` method, and it also adds a few properties:
-
-* `path`: the original filepath
-* `isAbsolute`: (getter) true if the given path is absolute
-* `absolute`: (getter) fully resolved, absolute filepath
-* `dirname`: alias for `dir`
-* `basename`: alias for `base`
-* `extname`: alias for `ext`
-* `stem`: alias for `name`
-
-**Example**
-
-```js
-var parsePath = require('parse-filepath');
-console.log(parsePath('foo/bar/baz/index.js'));
-```
-
-Returns:
-
-```js
-{ root: '',
- dir: 'foo/bar/baz',
- base: 'index.js',
- ext: '.js',
- name: 'index',
-
- // aliases
- extname: '.js',
- basename: 'index.js',
- dirname: 'foo/bar/baz',
- stem: 'index',
-
- // original path
- path: 'foo/bar/baz/index.js',
-
- // getters
- absolute: [Getter/Setter],
- isAbsolute: [Getter/Setter] }
-```
-
-## Related projects
-
-You might also be interested in these projects:
-
-* [global-prefix](https://www.npmjs.com/package/global-prefix): Get the npm global path prefix. | [homepage](https://github.com/jonschlinkert/global-prefix)
-* [is-absolute](https://www.npmjs.com/package/is-absolute): Polyfill for node.js `path.isAbolute`. Returns true if a file path is absolute. | [homepage](https://github.com/jonschlinkert/is-absolute)
-* [is-relative](https://www.npmjs.com/package/is-relative): Returns `true` if the path appears to be relative. | [homepage](https://github.com/jonschlinkert/is-relative)
-* [relative](https://www.npmjs.com/package/relative): Get the relative filepath from path A to path B. Calculates from file-to-directory, file-to-file, directory-to-file,… [more](https://www.npmjs.com/package/relative) | [homepage](https://github.com/jonschlinkert/relative)
-
-## Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/parse-filepath/issues/new).
-
-## Building docs
-
-Generate readme and API documentation with [verb](https://github.com/verbose/verb):
-
-```sh
-$ npm install verb && npm run docs
-```
-
-Or, if [verb](https://github.com/verbose/verb) is installed globally:
-
-```sh
-$ verb
-```
-
-## Running tests
-
-Install dev dependencies:
-
-```sh
-$ npm install -d && npm test
-```
-
-## Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
-
-## License
-
-Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT license](https://github.com/jonschlinkert/parse-filepath/blob/master/LICENSE).
-
-***
-
-_This file was generated by [verb](https://github.com/verbose/verb), v, on March 29, 2016._
\ No newline at end of file
diff --git a/node_modules/parse-filepath/index.js b/node_modules/parse-filepath/index.js
deleted file mode 100644
index 0df0170..0000000
--- a/node_modules/parse-filepath/index.js
+++ /dev/null
@@ -1,95 +0,0 @@
-'use strict';
-
-var path = require('path');
-var isAbsolute = require('is-absolute');
-var pathRoot = require('path-root');
-var MapCache = require('map-cache');
-var cache = new MapCache();
-
-module.exports = function(filepath) {
- if (typeof filepath !== 'string') {
- throw new TypeError('parse-filepath expects a string');
- }
-
- if (cache.has(filepath)) {
- return cache.get(filepath);
- }
-
- var obj = {};
- if (typeof path.parse === 'function') {
- obj = path.parse(filepath);
- obj.extname = obj.ext;
- obj.basename = obj.base;
- obj.dirname = obj.dir;
- obj.stem = obj.name;
-
- } else {
- define(obj, 'root', function() {
- return pathRoot(this.path);
- });
-
- define(obj, 'extname', function() {
- return path.extname(filepath);
- });
-
- define(obj, 'ext', function() {
- return this.extname;
- });
-
- define(obj, 'name', function() {
- return path.basename(filepath, this.ext);
- });
-
- define(obj, 'stem', function() {
- return this.name;
- });
-
- define(obj, 'base', function() {
- return this.name + this.ext;
- });
-
- define(obj, 'basename', function() {
- return this.base;
- });
-
- define(obj, 'dir', function() {
- var dir = path.dirname(filepath);
- if (dir === '.') {
- return (filepath[0] === '.') ? dir : '';
- } else {
- return dir;
- }
- });
-
- define(obj, 'dirname', function() {
- return this.dir;
- });
- }
-
- obj.path = filepath;
-
- define(obj, 'absolute', function() {
- return path.resolve(this.path);
- });
-
- define(obj, 'isAbsolute', function() {
- return isAbsolute(this.path);
- });
-
- cache.set(filepath, obj);
- return obj;
-};
-
-function define(obj, prop, fn) {
- var cached;
- Object.defineProperty(obj, prop, {
- configurable: true,
- enumerable: true,
- set: function(val) {
- cached = val;
- },
- get: function() {
- return cached || (cached = fn.call(obj));
- }
- });
-}
diff --git a/node_modules/parse-filepath/package.json b/node_modules/parse-filepath/package.json
deleted file mode 100644
index 1f0ab47..0000000
--- a/node_modules/parse-filepath/package.json
+++ /dev/null
@@ -1,79 +0,0 @@
-{
- "name": "parse-filepath",
- "description": "Pollyfill for node.js `path.parse`, parses a filepath into an object.",
- "version": "1.0.2",
- "homepage": "https://github.com/jonschlinkert/parse-filepath",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/parse-filepath",
- "bugs": {
- "url": "https://github.com/jonschlinkert/parse-filepath/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.8"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "is-absolute": "^1.0.0",
- "map-cache": "^0.2.0",
- "path-root": "^0.1.1"
- },
- "devDependencies": {
- "gulp-format-md": "^0.1.7",
- "mocha": "^2.2.5",
- "should": "^7.0.2"
- },
- "keywords": [
- "absolute",
- "basename",
- "dir",
- "directory",
- "dirname",
- "ext",
- "extension",
- "extname",
- "file",
- "filename",
- "filepath",
- "is-absolute",
- "name",
- "object",
- "parse",
- "parser",
- "parts",
- "path",
- "segment"
- ],
- "verb": {
- "run": true,
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "highlight": "global-prefix",
- "list": [
- "global-prefix",
- "is-absolute",
- "is-relative",
- "relative"
- ]
- },
- "reflinks": [
- "verb"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/parse-json/index.js b/node_modules/parse-json/index.js
deleted file mode 100644
index 04add8a..0000000
--- a/node_modules/parse-json/index.js
+++ /dev/null
@@ -1,35 +0,0 @@
-'use strict';
-var errorEx = require('error-ex');
-var fallback = require('./vendor/parse');
-
-var JSONError = errorEx('JSONError', {
- fileName: errorEx.append('in %s')
-});
-
-module.exports = function (x, reviver, filename) {
- if (typeof reviver === 'string') {
- filename = reviver;
- reviver = null;
- }
-
- try {
- try {
- return JSON.parse(x, reviver);
- } catch (err) {
- fallback.parse(x, {
- mode: 'json',
- reviver: reviver
- });
-
- throw err;
- }
- } catch (err) {
- var jsonErr = new JSONError(err);
-
- if (filename) {
- jsonErr.fileName = filename;
- }
-
- throw jsonErr;
- }
-};
diff --git a/node_modules/parse-json/license b/node_modules/parse-json/license
deleted file mode 100644
index 654d0bf..0000000
--- a/node_modules/parse-json/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus (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/parse-json/package.json b/node_modules/parse-json/package.json
deleted file mode 100644
index 93e3c41..0000000
--- a/node_modules/parse-json/package.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
- "name": "parse-json",
- "version": "2.2.0",
- "description": "Parse JSON with more helpful errors",
- "license": "MIT",
- "repository": "sindresorhus/parse-json",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "xo && node test.js"
- },
- "files": [
- "index.js",
- "vendor"
- ],
- "keywords": [
- "parse",
- "json",
- "graceful",
- "error",
- "message",
- "humanize",
- "friendly",
- "helpful",
- "string",
- "str"
- ],
- "dependencies": {
- "error-ex": "^1.2.0"
- },
- "devDependencies": {
- "ava": "0.0.4",
- "xo": "*"
- },
- "xo": {
- "ignores": [
- "vendor/**"
- ]
- }
-}
diff --git a/node_modules/parse-json/readme.md b/node_modules/parse-json/readme.md
deleted file mode 100644
index ca96e60..0000000
--- a/node_modules/parse-json/readme.md
+++ /dev/null
@@ -1,83 +0,0 @@
-# parse-json [![Build Status](https://travis-ci.org/sindresorhus/parse-json.svg?branch=master)](https://travis-ci.org/sindresorhus/parse-json)
-
-> Parse JSON with more helpful errors
-
-
-## Install
-
-```
-$ npm install --save parse-json
-```
-
-
-## Usage
-
-```js
-var parseJson = require('parse-json');
-var json = '{\n\t"foo": true,\n}';
-
-
-JSON.parse(json);
-/*
-undefined:3
-}
-^
-SyntaxError: Unexpected token }
-*/
-
-
-parseJson(json);
-/*
-JSONError: Trailing comma in object at 3:1
-}
-^
-*/
-
-
-parseJson(json, 'foo.json');
-/*
-JSONError: Trailing comma in object at 3:1 in foo.json
-}
-^
-*/
-
-
-// you can also add the filename at a later point
-try {
- parseJson(json);
-} catch (err) {
- err.fileName = 'foo.json';
- throw err;
-}
-/*
-JSONError: Trailing comma in object at 3:1 in foo.json
-}
-^
-*/
-```
-
-## API
-
-### parseJson(input, [reviver], [filename])
-
-#### input
-
-Type: `string`
-
-#### reviver
-
-Type: `function`
-
-Prescribes how the value originally produced by parsing is transformed, before being returned. See [`JSON.parse` docs](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Using_the_reviver_parameter
-) for more.
-
-#### filename
-
-Type: `string`
-
-Filename displayed in the error message.
-
-
-## License
-
-MIT © [Sindre Sorhus](http://sindresorhus.com)
diff --git a/node_modules/parse-json/vendor/parse.js b/node_modules/parse-json/vendor/parse.js
deleted file mode 100644
index 5f9fe99..0000000
--- a/node_modules/parse-json/vendor/parse.js
+++ /dev/null
@@ -1,752 +0,0 @@
-/*
- * Author: Alex Kocharin
- * GIT: https://github.com/rlidwka/jju
- * License: WTFPL, grab your copy here: http://www.wtfpl.net/txt/copying/
- */
-
-// RTFM: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf
-
-var Uni = require('./unicode')
-
-function isHexDigit(x) {
- return (x >= '0' && x <= '9')
- || (x >= 'A' && x <= 'F')
- || (x >= 'a' && x <= 'f')
-}
-
-function isOctDigit(x) {
- return x >= '0' && x <= '7'
-}
-
-function isDecDigit(x) {
- return x >= '0' && x <= '9'
-}
-
-var unescapeMap = {
- '\'': '\'',
- '"' : '"',
- '\\': '\\',
- 'b' : '\b',
- 'f' : '\f',
- 'n' : '\n',
- 'r' : '\r',
- 't' : '\t',
- 'v' : '\v',
- '/' : '/',
-}
-
-function formatError(input, msg, position, lineno, column, json5) {
- var result = msg + ' at ' + (lineno + 1) + ':' + (column + 1)
- , tmppos = position - column - 1
- , srcline = ''
- , underline = ''
-
- var isLineTerminator = json5 ? Uni.isLineTerminator : Uni.isLineTerminatorJSON
-
- // output no more than 70 characters before the wrong ones
- if (tmppos < position - 70) {
- tmppos = position - 70
- }
-
- while (1) {
- var chr = input[++tmppos]
-
- if (isLineTerminator(chr) || tmppos === input.length) {
- if (position >= tmppos) {
- // ending line error, so show it after the last char
- underline += '^'
- }
- break
- }
- srcline += chr
-
- if (position === tmppos) {
- underline += '^'
- } else if (position > tmppos) {
- underline += input[tmppos] === '\t' ? '\t' : ' '
- }
-
- // output no more than 78 characters on the string
- if (srcline.length > 78) break
- }
-
- return result + '\n' + srcline + '\n' + underline
-}
-
-function parse(input, options) {
- // parse as a standard JSON mode
- var json5 = !(options.mode === 'json' || options.legacy)
- var isLineTerminator = json5 ? Uni.isLineTerminator : Uni.isLineTerminatorJSON
- var isWhiteSpace = json5 ? Uni.isWhiteSpace : Uni.isWhiteSpaceJSON
-
- var length = input.length
- , lineno = 0
- , linestart = 0
- , position = 0
- , stack = []
-
- var tokenStart = function() {}
- var tokenEnd = function(v) {return v}
-
- /* tokenize({
- raw: '...',
- type: 'whitespace'|'comment'|'key'|'literal'|'separator'|'newline',
- value: 'number'|'string'|'whatever',
- path: [...],
- })
- */
- if (options._tokenize) {
- ;(function() {
- var start = null
- tokenStart = function() {
- if (start !== null) throw Error('internal error, token overlap')
- start = position
- }
-
- tokenEnd = function(v, type) {
- if (start != position) {
- var hash = {
- raw: input.substr(start, position-start),
- type: type,
- stack: stack.slice(0),
- }
- if (v !== undefined) hash.value = v
- options._tokenize.call(null, hash)
- }
- start = null
- return v
- }
- })()
- }
-
- function fail(msg) {
- var column = position - linestart
-
- if (!msg) {
- if (position < length) {
- var token = '\'' +
- JSON
- .stringify(input[position])
- .replace(/^"|"$/g, '')
- .replace(/'/g, "\\'")
- .replace(/\\"/g, '"')
- + '\''
-
- if (!msg) msg = 'Unexpected token ' + token
- } else {
- if (!msg) msg = 'Unexpected end of input'
- }
- }
-
- var error = SyntaxError(formatError(input, msg, position, lineno, column, json5))
- error.row = lineno + 1
- error.column = column + 1
- throw error
- }
-
- function newline(chr) {
- // account for
- if (chr === '\r' && input[position] === '\n') position++
- linestart = position
- lineno++
- }
-
- function parseGeneric() {
- var result
-
- while (position < length) {
- tokenStart()
- var chr = input[position++]
-
- if (chr === '"' || (chr === '\'' && json5)) {
- return tokenEnd(parseString(chr), 'literal')
-
- } else if (chr === '{') {
- tokenEnd(undefined, 'separator')
- return parseObject()
-
- } else if (chr === '[') {
- tokenEnd(undefined, 'separator')
- return parseArray()
-
- } else if (chr === '-'
- || chr === '.'
- || isDecDigit(chr)
- // + number Infinity NaN
- || (json5 && (chr === '+' || chr === 'I' || chr === 'N'))
- ) {
- return tokenEnd(parseNumber(), 'literal')
-
- } else if (chr === 'n') {
- parseKeyword('null')
- return tokenEnd(null, 'literal')
-
- } else if (chr === 't') {
- parseKeyword('true')
- return tokenEnd(true, 'literal')
-
- } else if (chr === 'f') {
- parseKeyword('false')
- return tokenEnd(false, 'literal')
-
- } else {
- position--
- return tokenEnd(undefined)
- }
- }
- }
-
- function parseKey() {
- var result
-
- while (position < length) {
- tokenStart()
- var chr = input[position++]
-
- if (chr === '"' || (chr === '\'' && json5)) {
- return tokenEnd(parseString(chr), 'key')
-
- } else if (chr === '{') {
- tokenEnd(undefined, 'separator')
- return parseObject()
-
- } else if (chr === '[') {
- tokenEnd(undefined, 'separator')
- return parseArray()
-
- } else if (chr === '.'
- || isDecDigit(chr)
- ) {
- return tokenEnd(parseNumber(true), 'key')
-
- } else if (json5
- && Uni.isIdentifierStart(chr) || (chr === '\\' && input[position] === 'u')) {
- // unicode char or a unicode sequence
- var rollback = position - 1
- var result = parseIdentifier()
-
- if (result === undefined) {
- position = rollback
- return tokenEnd(undefined)
- } else {
- return tokenEnd(result, 'key')
- }
-
- } else {
- position--
- return tokenEnd(undefined)
- }
- }
- }
-
- function skipWhiteSpace() {
- tokenStart()
- while (position < length) {
- var chr = input[position++]
-
- if (isLineTerminator(chr)) {
- position--
- tokenEnd(undefined, 'whitespace')
- tokenStart()
- position++
- newline(chr)
- tokenEnd(undefined, 'newline')
- tokenStart()
-
- } else if (isWhiteSpace(chr)) {
- // nothing
-
- } else if (chr === '/'
- && json5
- && (input[position] === '/' || input[position] === '*')
- ) {
- position--
- tokenEnd(undefined, 'whitespace')
- tokenStart()
- position++
- skipComment(input[position++] === '*')
- tokenEnd(undefined, 'comment')
- tokenStart()
-
- } else {
- position--
- break
- }
- }
- return tokenEnd(undefined, 'whitespace')
- }
-
- function skipComment(multi) {
- while (position < length) {
- var chr = input[position++]
-
- if (isLineTerminator(chr)) {
- // LineTerminator is an end of singleline comment
- if (!multi) {
- // let parent function deal with newline
- position--
- return
- }
-
- newline(chr)
-
- } else if (chr === '*' && multi) {
- // end of multiline comment
- if (input[position] === '/') {
- position++
- return
- }
-
- } else {
- // nothing
- }
- }
-
- if (multi) {
- fail('Unclosed multiline comment')
- }
- }
-
- function parseKeyword(keyword) {
- // keyword[0] is not checked because it should've checked earlier
- var _pos = position
- var len = keyword.length
- for (var i=1; i= length || keyword[i] != input[position]) {
- position = _pos-1
- fail()
- }
- position++
- }
- }
-
- function parseObject() {
- var result = options.null_prototype ? Object.create(null) : {}
- , empty_object = {}
- , is_non_empty = false
-
- while (position < length) {
- skipWhiteSpace()
- var item1 = parseKey()
- skipWhiteSpace()
- tokenStart()
- var chr = input[position++]
- tokenEnd(undefined, 'separator')
-
- if (chr === '}' && item1 === undefined) {
- if (!json5 && is_non_empty) {
- position--
- fail('Trailing comma in object')
- }
- return result
-
- } else if (chr === ':' && item1 !== undefined) {
- skipWhiteSpace()
- stack.push(item1)
- var item2 = parseGeneric()
- stack.pop()
-
- if (item2 === undefined) fail('No value found for key ' + item1)
- if (typeof(item1) !== 'string') {
- if (!json5 || typeof(item1) !== 'number') {
- fail('Wrong key type: ' + item1)
- }
- }
-
- if ((item1 in empty_object || empty_object[item1] != null) && options.reserved_keys !== 'replace') {
- if (options.reserved_keys === 'throw') {
- fail('Reserved key: ' + item1)
- } else {
- // silently ignore it
- }
- } else {
- if (typeof(options.reviver) === 'function') {
- item2 = options.reviver.call(null, item1, item2)
- }
-
- if (item2 !== undefined) {
- is_non_empty = true
- Object.defineProperty(result, item1, {
- value: item2,
- enumerable: true,
- configurable: true,
- writable: true,
- })
- }
- }
-
- skipWhiteSpace()
-
- tokenStart()
- var chr = input[position++]
- tokenEnd(undefined, 'separator')
-
- if (chr === ',') {
- continue
-
- } else if (chr === '}') {
- return result
-
- } else {
- fail()
- }
-
- } else {
- position--
- fail()
- }
- }
-
- fail()
- }
-
- function parseArray() {
- var result = []
-
- while (position < length) {
- skipWhiteSpace()
- stack.push(result.length)
- var item = parseGeneric()
- stack.pop()
- skipWhiteSpace()
- tokenStart()
- var chr = input[position++]
- tokenEnd(undefined, 'separator')
-
- if (item !== undefined) {
- if (typeof(options.reviver) === 'function') {
- item = options.reviver.call(null, String(result.length), item)
- }
- if (item === undefined) {
- result.length++
- item = true // hack for check below, not included into result
- } else {
- result.push(item)
- }
- }
-
- if (chr === ',') {
- if (item === undefined) {
- fail('Elisions are not supported')
- }
-
- } else if (chr === ']') {
- if (!json5 && item === undefined && result.length) {
- position--
- fail('Trailing comma in array')
- }
- return result
-
- } else {
- position--
- fail()
- }
- }
- }
-
- function parseNumber() {
- // rewind because we don't know first char
- position--
-
- var start = position
- , chr = input[position++]
- , t
-
- var to_num = function(is_octal) {
- var str = input.substr(start, position - start)
-
- if (is_octal) {
- var result = parseInt(str.replace(/^0o?/, ''), 8)
- } else {
- var result = Number(str)
- }
-
- if (Number.isNaN(result)) {
- position--
- fail('Bad numeric literal - "' + input.substr(start, position - start + 1) + '"')
- } else if (!json5 && !str.match(/^-?(0|[1-9][0-9]*)(\.[0-9]+)?(e[+-]?[0-9]+)?$/i)) {
- // additional restrictions imposed by json
- position--
- fail('Non-json numeric literal - "' + input.substr(start, position - start + 1) + '"')
- } else {
- return result
- }
- }
-
- // ex: -5982475.249875e+29384
- // ^ skipping this
- if (chr === '-' || (chr === '+' && json5)) chr = input[position++]
-
- if (chr === 'N' && json5) {
- parseKeyword('NaN')
- return NaN
- }
-
- if (chr === 'I' && json5) {
- parseKeyword('Infinity')
-
- // returning +inf or -inf
- return to_num()
- }
-
- if (chr >= '1' && chr <= '9') {
- // ex: -5982475.249875e+29384
- // ^^^ skipping these
- while (position < length && isDecDigit(input[position])) position++
- chr = input[position++]
- }
-
- // special case for leading zero: 0.123456
- if (chr === '0') {
- chr = input[position++]
-
- // new syntax, "0o777" old syntax, "0777"
- var is_octal = chr === 'o' || chr === 'O' || isOctDigit(chr)
- var is_hex = chr === 'x' || chr === 'X'
-
- if (json5 && (is_octal || is_hex)) {
- while (position < length
- && (is_hex ? isHexDigit : isOctDigit)( input[position] )
- ) position++
-
- var sign = 1
- if (input[start] === '-') {
- sign = -1
- start++
- } else if (input[start] === '+') {
- start++
- }
-
- return sign * to_num(is_octal)
- }
- }
-
- if (chr === '.') {
- // ex: -5982475.249875e+29384
- // ^^^ skipping these
- while (position < length && isDecDigit(input[position])) position++
- chr = input[position++]
- }
-
- if (chr === 'e' || chr === 'E') {
- chr = input[position++]
- if (chr === '-' || chr === '+') position++
- // ex: -5982475.249875e+29384
- // ^^^ skipping these
- while (position < length && isDecDigit(input[position])) position++
- chr = input[position++]
- }
-
- // we have char in the buffer, so count for it
- position--
- return to_num()
- }
-
- function parseIdentifier() {
- // rewind because we don't know first char
- position--
-
- var result = ''
-
- while (position < length) {
- var chr = input[position++]
-
- if (chr === '\\'
- && input[position] === 'u'
- && isHexDigit(input[position+1])
- && isHexDigit(input[position+2])
- && isHexDigit(input[position+3])
- && isHexDigit(input[position+4])
- ) {
- // UnicodeEscapeSequence
- chr = String.fromCharCode(parseInt(input.substr(position+1, 4), 16))
- position += 5
- }
-
- if (result.length) {
- // identifier started
- if (Uni.isIdentifierPart(chr)) {
- result += chr
- } else {
- position--
- return result
- }
-
- } else {
- if (Uni.isIdentifierStart(chr)) {
- result += chr
- } else {
- return undefined
- }
- }
- }
-
- fail()
- }
-
- function parseString(endChar) {
- // 7.8.4 of ES262 spec
- var result = ''
-
- while (position < length) {
- var chr = input[position++]
-
- if (chr === endChar) {
- return result
-
- } else if (chr === '\\') {
- if (position >= length) fail()
- chr = input[position++]
-
- if (unescapeMap[chr] && (json5 || (chr != 'v' && chr != "'"))) {
- result += unescapeMap[chr]
-
- } else if (json5 && isLineTerminator(chr)) {
- // line continuation
- newline(chr)
-
- } else if (chr === 'u' || (chr === 'x' && json5)) {
- // unicode/character escape sequence
- var off = chr === 'u' ? 4 : 2
-
- // validation for \uXXXX
- for (var i=0; i= length) fail()
- if (!isHexDigit(input[position])) fail('Bad escape sequence')
- position++
- }
-
- result += String.fromCharCode(parseInt(input.substr(position-off, off), 16))
- } else if (json5 && isOctDigit(chr)) {
- if (chr < '4' && isOctDigit(input[position]) && isOctDigit(input[position+1])) {
- // three-digit octal
- var digits = 3
- } else if (isOctDigit(input[position])) {
- // two-digit octal
- var digits = 2
- } else {
- var digits = 1
- }
- position += digits - 1
- result += String.fromCharCode(parseInt(input.substr(position-digits, digits), 8))
- /*if (!isOctDigit(input[position])) {
- // \0 is allowed still
- result += '\0'
- } else {
- fail('Octal literals are not supported')
- }*/
-
- } else if (json5) {
- // \X -> x
- result += chr
-
- } else {
- position--
- fail()
- }
-
- } else if (isLineTerminator(chr)) {
- fail()
-
- } else {
- if (!json5 && chr.charCodeAt(0) < 32) {
- position--
- fail('Unexpected control character')
- }
-
- // SourceCharacter but not one of " or \ or LineTerminator
- result += chr
- }
- }
-
- fail()
- }
-
- skipWhiteSpace()
- var return_value = parseGeneric()
- if (return_value !== undefined || position < length) {
- skipWhiteSpace()
-
- if (position >= length) {
- if (typeof(options.reviver) === 'function') {
- return_value = options.reviver.call(null, '', return_value)
- }
- return return_value
- } else {
- fail()
- }
-
- } else {
- if (position) {
- fail('No data, only a whitespace')
- } else {
- fail('No data, empty input')
- }
- }
-}
-
-/*
- * parse(text, options)
- * or
- * parse(text, reviver)
- *
- * where:
- * text - string
- * options - object
- * reviver - function
- */
-module.exports.parse = function parseJSON(input, options) {
- // support legacy functions
- if (typeof(options) === 'function') {
- options = {
- reviver: options
- }
- }
-
- if (input === undefined) {
- // parse(stringify(x)) should be equal x
- // with JSON functions it is not 'cause of undefined
- // so we're fixing it
- return undefined
- }
-
- // JSON.parse compat
- if (typeof(input) !== 'string') input = String(input)
- if (options == null) options = {}
- if (options.reserved_keys == null) options.reserved_keys = 'ignore'
-
- if (options.reserved_keys === 'throw' || options.reserved_keys === 'ignore') {
- if (options.null_prototype == null) {
- options.null_prototype = true
- }
- }
-
- try {
- return parse(input, options)
- } catch(err) {
- // jju is a recursive parser, so JSON.parse("{{{{{{{") could blow up the stack
- //
- // this catch is used to skip all those internal calls
- if (err instanceof SyntaxError && err.row != null && err.column != null) {
- var old_err = err
- err = SyntaxError(old_err.message)
- err.column = old_err.column
- err.row = old_err.row
- }
- throw err
- }
-}
-
-module.exports.tokenize = function tokenizeJSON(input, options) {
- if (options == null) options = {}
-
- options._tokenize = function(smth) {
- if (options._addstack) smth.stack.unshift.apply(smth.stack, options._addstack)
- tokens.push(smth)
- }
-
- var tokens = []
- tokens.data = module.exports.parse(input, options)
- return tokens
-}
-
diff --git a/node_modules/parse-json/vendor/unicode.js b/node_modules/parse-json/vendor/unicode.js
deleted file mode 100644
index 1a29143..0000000
--- a/node_modules/parse-json/vendor/unicode.js
+++ /dev/null
@@ -1,71 +0,0 @@
-
-// This is autogenerated with esprima tools, see:
-// https://github.com/ariya/esprima/blob/master/esprima.js
-//
-// PS: oh God, I hate Unicode
-
-// ECMAScript 5.1/Unicode v6.3.0 NonAsciiIdentifierStart:
-
-var Uni = module.exports
-
-module.exports.isWhiteSpace = function isWhiteSpace(x) {
- // section 7.2, table 2
- return x === '\u0020'
- || x === '\u00A0'
- || x === '\uFEFF' // <-- this is not a Unicode WS, only a JS one
- || (x >= '\u0009' && x <= '\u000D') // 9 A B C D
-
- // + whitespace characters from unicode, category Zs
- || x === '\u1680'
- || x === '\u180E'
- || (x >= '\u2000' && x <= '\u200A') // 0 1 2 3 4 5 6 7 8 9 A
- || x === '\u2028'
- || x === '\u2029'
- || x === '\u202F'
- || x === '\u205F'
- || x === '\u3000'
-}
-
-module.exports.isWhiteSpaceJSON = function isWhiteSpaceJSON(x) {
- return x === '\u0020'
- || x === '\u0009'
- || x === '\u000A'
- || x === '\u000D'
-}
-
-module.exports.isLineTerminator = function isLineTerminator(x) {
- // ok, here is the part when JSON is wrong
- // section 7.3, table 3
- return x === '\u000A'
- || x === '\u000D'
- || x === '\u2028'
- || x === '\u2029'
-}
-
-module.exports.isLineTerminatorJSON = function isLineTerminatorJSON(x) {
- return x === '\u000A'
- || x === '\u000D'
-}
-
-module.exports.isIdentifierStart = function isIdentifierStart(x) {
- return x === '$'
- || x === '_'
- || (x >= 'A' && x <= 'Z')
- || (x >= 'a' && x <= 'z')
- || (x >= '\u0080' && Uni.NonAsciiIdentifierStart.test(x))
-}
-
-module.exports.isIdentifierPart = function isIdentifierPart(x) {
- return x === '$'
- || x === '_'
- || (x >= 'A' && x <= 'Z')
- || (x >= 'a' && x <= 'z')
- || (x >= '0' && x <= '9') // <-- addition to Start
- || (x >= '\u0080' && Uni.NonAsciiIdentifierPart.test(x))
-}
-
-module.exports.NonAsciiIdentifierStart = /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F0\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/
-
-// ECMAScript 5.1/Unicode v6.3.0 NonAsciiIdentifierPart:
-
-module.exports.NonAsciiIdentifierPart = /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0\u08A2-\u08AC\u08E4-\u08FE\u0900-\u0963\u0966-\u096F\u0971-\u0977\u0979-\u097F\u0981-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C01-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58\u0C59\u0C60-\u0C63\u0C66-\u0C6F\u0C82\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D02\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D60-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F0\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191C\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1D00-\u1DE6\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA697\uA69F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7B\uAA80-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE26\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/
diff --git a/node_modules/parse-node-version/LICENSE b/node_modules/parse-node-version/LICENSE
deleted file mode 100644
index bde9654..0000000
--- a/node_modules/parse-node-version/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2018 Blaine Bublitz and Eric Schoffstall
-
-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/parse-node-version/README.md b/node_modules/parse-node-version/README.md
deleted file mode 100644
index 2bb35bf..0000000
--- a/node_modules/parse-node-version/README.md
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
-
-
-
-
-# parse-node-version
-
-[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Travis Build Status][travis-image]][travis-url] [![AppVeyor Build Status][appveyor-image]][appveyor-url] [![Coveralls Status][coveralls-image]][coveralls-url] [![Gitter chat][gitter-image]][gitter-url]
-
-Turn node's process.version into something useful.
-
-## Usage
-
-```js
-var nodeVersion = require('parse-node-version')(process.version);
-
-console.log(
- nodeVersion.major,
- nodeVersion.minor,
- nodeVersion.patch,
- nodeVersion.pre,
- nodeVersion.build
-);
-```
-
-## API
-
-### parseVersion(nodeVersionString)
-
-Takes a node version string (usually `process.version`) and returns an object with the `major`/`minor`/`patch` (which will all be numbers) and `pre`/`build` keys (which will always be a string). If the version doesn't contain any pre-release or build information, the properties will be returned as empty string.
-
-## License
-
-MIT
-
-[downloads-image]: http://img.shields.io/npm/dm/parse-node-version.svg
-[npm-url]: https://www.npmjs.com/package/parse-node-version
-[npm-image]: http://img.shields.io/npm/v/parse-node-version.svg
-
-[travis-url]: https://travis-ci.org/gulpjs/parse-node-version
-[travis-image]: http://img.shields.io/travis/gulpjs/parse-node-version.svg?label=travis-ci
-
-[appveyor-url]: https://ci.appveyor.com/project/gulpjs/parse-node-version
-[appveyor-image]: https://img.shields.io/appveyor/ci/gulpjs/parse-node-version.svg?label=appveyor
-
-[coveralls-url]: https://coveralls.io/r/gulpjs/parse-node-version
-[coveralls-image]: http://img.shields.io/coveralls/gulpjs/parse-node-version/master.svg
-
-[gitter-url]: https://gitter.im/gulpjs/gulp
-[gitter-image]: https://badges.gitter.im/gulpjs/gulp.svg
diff --git a/node_modules/parse-node-version/index.js b/node_modules/parse-node-version/index.js
deleted file mode 100644
index 87fc764..0000000
--- a/node_modules/parse-node-version/index.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-function parseNodeVersion(version) {
- var match = version.match(/^v(\d{1,2})\.(\d{1,2})\.(\d{1,2})(?:-([0-9A-Za-z-.]+))?(?:\+([0-9A-Za-z-.]+))?$/); // eslint-disable-line max-len
- if (!match) {
- throw new Error('Unable to parse: ' + version);
- }
-
- var res = {
- major: parseInt(match[1], 10),
- minor: parseInt(match[2], 10),
- patch: parseInt(match[3], 10),
- pre: match[4] || '',
- build: match[5] || '',
- };
-
- return res;
-}
-
-module.exports = parseNodeVersion;
diff --git a/node_modules/parse-node-version/package.json b/node_modules/parse-node-version/package.json
deleted file mode 100644
index f4124e2..0000000
--- a/node_modules/parse-node-version/package.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- "name": "parse-node-version",
- "version": "1.0.1",
- "description": "Turn node's process.version into something useful.",
- "author": "Gulp Team (http://gulpjs.com/)",
- "contributors": [
- "Blaine Bublitz "
- ],
- "repository": "gulpjs/parse-node-version",
- "license": "MIT",
- "engines": {
- "node": ">= 0.10"
- },
- "main": "index.js",
- "files": [
- "LICENSE",
- "index.js"
- ],
- "scripts": {
- "lint": "eslint .",
- "pretest": "npm run lint",
- "test": "mocha --async-only",
- "cover": "istanbul cover _mocha --report lcovonly",
- "coveralls": "npm run cover && istanbul-coveralls"
- },
- "dependencies": {},
- "devDependencies": {
- "eslint": "^2.13.0",
- "eslint-config-gulp": "^3.0.1",
- "expect": "^1.20.2",
- "istanbul": "^0.4.3",
- "istanbul-coveralls": "^1.0.3",
- "mocha": "^3.5.3"
- },
- "keywords": [
- "process.version",
- "node version",
- "version parse"
- ]
-}
diff --git a/node_modules/parse-passwd/LICENSE b/node_modules/parse-passwd/LICENSE
deleted file mode 100644
index f92fdcf..0000000
--- a/node_modules/parse-passwd/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2016 Brian Woodward
-
-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/parse-passwd/README.md b/node_modules/parse-passwd/README.md
deleted file mode 100644
index 31b1e79..0000000
--- a/node_modules/parse-passwd/README.md
+++ /dev/null
@@ -1,86 +0,0 @@
-# parse-passwd [![NPM version](https://img.shields.io/npm/v/parse-passwd.svg?style=flat)](https://www.npmjs.com/package/parse-passwd) [![NPM downloads](https://img.shields.io/npm/dm/parse-passwd.svg?style=flat)](https://npmjs.org/package/parse-passwd) [![Linux Build Status](https://img.shields.io/travis/doowb/parse-passwd.svg?style=flat&label=Travis)](https://travis-ci.org/doowb/parse-passwd) [![Windows Build Status](https://img.shields.io/appveyor/ci/doowb/parse-passwd.svg?style=flat&label=AppVeyor)](https://ci.appveyor.com/project/doowb/parse-passwd)
-
-> Parse a passwd file into a list of users.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save parse-passwd
-```
-
-## Usage
-
-```js
-var parse = require('parse-passwd');
-```
-
-## API
-
-**Example**
-
-```js
-// assuming '/etc/passwd' contains:
-// doowb:*:123:123:Brian Woodward:/Users/doowb:/bin/bash
-console.log(parse(fs.readFileSync('/etc/passwd', 'utf8')));
-
-//=> [
-//=> {
-//=> username: 'doowb',
-//=> password: '*',
-//=> uid: '123',
-//=> gid: '123',
-//=> gecos: 'Brian Woodward',
-//=> homedir: '/Users/doowb',
-//=> shell: '/bin/bash'
-//=> }
-//=> ]
-```
-
-**Params**
-
-* `content` **{String}**: Content of a passwd file to parse.
-* `returns` **{Array}**: Array of user objects parsed from the content.
-
-## About
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-Please read the [contributing guide](contributing.md) for avice on opening issues, pull requests, and coding standards.
-
-### Building docs
-
-_(This document was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme) (a [verb](https://github.com/verbose/verb) generator), please don't edit the readme directly. Any changes to the readme must be made in [.verb.md](.verb.md).)_
-
-To generate the readme and API documentation with [verb](https://github.com/verbose/verb):
-
-```sh
-$ npm install -g verb verb-generate-readme && verb
-```
-
-### Running tests
-
-Install dev dependencies:
-
-```sh
-$ npm install -d && npm test
-```
-
-### Author
-
-**Brian Woodward**
-
-* [github/doowb](https://github.com/doowb)
-* [twitter/doowb](http://twitter.com/doowb)
-
-### License
-
-Copyright © 2016, [Brian Woodward](https://github.com/doowb).
-Released under the [MIT license](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.2.0, on October 19, 2016._
\ No newline at end of file
diff --git a/node_modules/parse-passwd/index.js b/node_modules/parse-passwd/index.js
deleted file mode 100644
index 7524520..0000000
--- a/node_modules/parse-passwd/index.js
+++ /dev/null
@@ -1,56 +0,0 @@
-'use strict';
-
-/**
- * Parse the content of a passwd file into a list of user objects.
- * This function ignores blank lines and comments.
- *
- * ```js
- * // assuming '/etc/passwd' contains:
- * // doowb:*:123:123:Brian Woodward:/Users/doowb:/bin/bash
- * console.log(parse(fs.readFileSync('/etc/passwd', 'utf8')));
- *
- * //=> [
- * //=> {
- * //=> username: 'doowb',
- * //=> password: '*',
- * //=> uid: '123',
- * //=> gid: '123',
- * //=> gecos: 'Brian Woodward',
- * //=> homedir: '/Users/doowb',
- * //=> shell: '/bin/bash'
- * //=> }
- * //=> ]
- * ```
- * @param {String} `content` Content of a passwd file to parse.
- * @return {Array} Array of user objects parsed from the content.
- * @api public
- */
-
-module.exports = function(content) {
- if (typeof content !== 'string') {
- throw new Error('expected a string');
- }
- return content
- .split('\n')
- .map(user)
- .filter(Boolean);
-};
-
-function user(line, i) {
- if (!line || !line.length || line.charAt(0) === '#') {
- return null;
- }
-
- // see https://en.wikipedia.org/wiki/Passwd for field descriptions
- var fields = line.split(':');
- return {
- username: fields[0],
- password: fields[1],
- uid: fields[2],
- gid: fields[3],
- // see https://en.wikipedia.org/wiki/Gecos_field for GECOS field descriptions
- gecos: fields[4],
- homedir: fields[5],
- shell: fields[6]
- };
-}
diff --git a/node_modules/parse-passwd/package.json b/node_modules/parse-passwd/package.json
deleted file mode 100644
index b09fb0f..0000000
--- a/node_modules/parse-passwd/package.json
+++ /dev/null
@@ -1,55 +0,0 @@
-{
- "name": "parse-passwd",
- "description": "Parse a passwd file into a list of users.",
- "version": "1.0.0",
- "homepage": "https://github.com/doowb/parse-passwd",
- "author": "Brian Woodward (https://github.com/doowb)",
- "repository": "doowb/parse-passwd",
- "bugs": {
- "url": "https://github.com/doowb/parse-passwd/issues"
- },
- "license": "MIT",
- "files": [
- "index.js",
- "LICENSE"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "devDependencies": {
- "gulp-format-md": "^0.1.11",
- "mocha": "^3.1.2"
- },
- "keywords": [
- "etc",
- "etc-passwd",
- "etc/passwd",
- "parse",
- "parse-passwd",
- "passwd"
- ],
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- },
- "related": {
- "list": []
- },
- "reflinks": [
- "verb",
- "verb-generate-readme"
- ]
- }
-}
diff --git a/node_modules/pascalcase/LICENSE b/node_modules/pascalcase/LICENSE
deleted file mode 100644
index 65f90ac..0000000
--- a/node_modules/pascalcase/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015, 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/pascalcase/README.md b/node_modules/pascalcase/README.md
deleted file mode 100644
index fa3fd00..0000000
--- a/node_modules/pascalcase/README.md
+++ /dev/null
@@ -1,80 +0,0 @@
-# pascalcase [![NPM version](https://badge.fury.io/js/pascalcase.svg)](http://badge.fury.io/js/pascalcase)
-
-> Convert a string to pascal-case.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/)
-
-```sh
-$ npm i pascalcase --save
-```
-
-## Usage
-
-```js
-var pascalcase = require('pascalcase');
-
-pascalcase('a');
-//=> 'A'
-
-pascalcase('foo bar baz');
-//=> 'FooBarBaz'
-
-pascalcase('foo_bar-baz');
-//=> 'FooBarBaz'
-
-pascalcase('foo.bar.baz');
-//=> 'FooBarBaz'
-
-pascalcase('foo/bar/baz');
-//=> 'FooBarBaz'
-
-pascalcase('foo[bar)baz');
-//=> 'FooBarBaz'
-
-pascalcase('#foo+bar*baz');
-//=> 'FooBarBaz'
-
-pascalcase('$foo~bar`baz');
-//=> 'FooBarBaz'
-
-pascalcase('_foo_bar-baz-');
-//=> 'FooBarBaz'
-```
-
-## Related projects
-
-* [justified](https://github.com/jonschlinkert/justified): Wrap words to a specified length and justified the text.
-* [pad-left](https://github.com/jonschlinkert/pad-left): Left pad a string with zeros or a specified string. Fastest implementation.
-* [pad-right](https://github.com/jonschlinkert/pad-right): Right pad a string with zeros or a specified string. Fastest implementation.
-* [repeat-string](https://github.com/jonschlinkert/repeat-string): Repeat the given string n times. Fastest implementation for repeating a string.
-* [word-wrap](https://github.com/jonschlinkert/word-wrap): Wrap words to a specified length.
-
-## Running tests
-
-Install dev dependencies:
-
-```sh
-$ npm i -d && npm test
-```
-
-## Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/pascalcase/issues/new)
-
-## 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 August 19, 2015._
\ No newline at end of file
diff --git a/node_modules/pascalcase/index.js b/node_modules/pascalcase/index.js
deleted file mode 100644
index 7e8159c..0000000
--- a/node_modules/pascalcase/index.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/*!
- * pascalcase
- *
- * Copyright (c) 2015, Jon Schlinkert.
- * Licensed under the MIT License.
- */
-
-function pascalcase(str) {
- if (typeof str !== 'string') {
- throw new TypeError('expected a string.');
- }
- str = str.replace(/([A-Z])/g, ' $1');
- if (str.length === 1) { return str.toUpperCase(); }
- str = str.replace(/^[\W_]+|[\W_]+$/g, '').toLowerCase();
- str = str.charAt(0).toUpperCase() + str.slice(1);
- return str.replace(/[\W_]+(\w|$)/g, function (_, ch) {
- return ch.toUpperCase();
- });
-}
-
-module.exports = pascalcase;
diff --git a/node_modules/pascalcase/package.json b/node_modules/pascalcase/package.json
deleted file mode 100644
index 0576d13..0000000
--- a/node_modules/pascalcase/package.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
- "name": "pascalcase",
- "description": "Convert a string to pascal-case.",
- "version": "0.1.1",
- "homepage": "https://github.com/jonschlinkert/pascalcase",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/pascalcase",
- "bugs": {
- "url": "https://github.com/jonschlinkert/pascalcase/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "devDependencies": {
- "mocha": "*",
- "should": "*"
- },
- "keywords": [
- "camelcase",
- "case",
- "casing",
- "pascal",
- "pascal-case",
- "pascalcase",
- "string"
- ],
- "verb": {
- "related": {
- "list": [
- "pad-left",
- "pad-right",
- "word-wrap",
- "repeat-string",
- "justified"
- ]
- }
- }
-}
\ No newline at end of file
diff --git a/node_modules/path-dirname/index.js b/node_modules/path-dirname/index.js
deleted file mode 100644
index ed67817..0000000
--- a/node_modules/path-dirname/index.js
+++ /dev/null
@@ -1,143 +0,0 @@
-'use strict';
-
-var path = require('path');
-var inspect = require('util').inspect;
-
-function assertPath(path) {
- if (typeof path !== 'string') {
- throw new TypeError('Path must be a string. Received ' + inspect(path));
- }
-}
-
-function posix(path) {
- assertPath(path);
- if (path.length === 0)
- return '.';
- var code = path.charCodeAt(0);
- var hasRoot = (code === 47/*/*/);
- var end = -1;
- var matchedSlash = true;
- for (var i = path.length - 1; i >= 1; --i) {
- code = path.charCodeAt(i);
- if (code === 47/*/*/) {
- if (!matchedSlash) {
- end = i;
- break;
- }
- } else {
- // We saw the first non-path separator
- matchedSlash = false;
- }
- }
-
- if (end === -1)
- return hasRoot ? '/' : '.';
- if (hasRoot && end === 1)
- return '//';
- return path.slice(0, end);
-}
-
-function win32(path) {
- assertPath(path);
- var len = path.length;
- if (len === 0)
- return '.';
- var rootEnd = -1;
- var end = -1;
- var matchedSlash = true;
- var offset = 0;
- var code = path.charCodeAt(0);
-
- // Try to match a root
- if (len > 1) {
- if (code === 47/*/*/ || code === 92/*\*/) {
- // Possible UNC root
-
- rootEnd = offset = 1;
-
- code = path.charCodeAt(1);
- if (code === 47/*/*/ || code === 92/*\*/) {
- // Matched double path separator at beginning
- var j = 2;
- var last = j;
- // Match 1 or more non-path separators
- for (; j < len; ++j) {
- code = path.charCodeAt(j);
- if (code === 47/*/*/ || code === 92/*\*/)
- break;
- }
- if (j < len && j !== last) {
- // Matched!
- last = j;
- // Match 1 or more path separators
- for (; j < len; ++j) {
- code = path.charCodeAt(j);
- if (code !== 47/*/*/ && code !== 92/*\*/)
- break;
- }
- if (j < len && j !== last) {
- // Matched!
- last = j;
- // Match 1 or more non-path separators
- for (; j < len; ++j) {
- code = path.charCodeAt(j);
- if (code === 47/*/*/ || code === 92/*\*/)
- break;
- }
- if (j === len) {
- // We matched a UNC root only
- return path;
- }
- if (j !== last) {
- // We matched a UNC root with leftovers
-
- // Offset by 1 to include the separator after the UNC root to
- // treat it as a "normal root" on top of a (UNC) root
- rootEnd = offset = j + 1;
- }
- }
- }
- }
- } else if ((code >= 65/*A*/ && code <= 90/*Z*/) ||
- (code >= 97/*a*/ && code <= 122/*z*/)) {
- // Possible device root
-
- code = path.charCodeAt(1);
- if (path.charCodeAt(1) === 58/*:*/) {
- rootEnd = offset = 2;
- if (len > 2) {
- code = path.charCodeAt(2);
- if (code === 47/*/*/ || code === 92/*\*/)
- rootEnd = offset = 3;
- }
- }
- }
- } else if (code === 47/*/*/ || code === 92/*\*/) {
- return path[0];
- }
-
- for (var i = len - 1; i >= offset; --i) {
- code = path.charCodeAt(i);
- if (code === 47/*/*/ || code === 92/*\*/) {
- if (!matchedSlash) {
- end = i;
- break;
- }
- } else {
- // We saw the first non-path separator
- matchedSlash = false;
- }
- }
-
- if (end === -1) {
- if (rootEnd === -1)
- return '.';
- else
- end = rootEnd;
- }
- return path.slice(0, end);
-}
-
-module.exports = process.platform === 'win32' ? win32 : posix;
-module.exports.posix = posix;
-module.exports.win32 = win32;
diff --git a/node_modules/path-dirname/license b/node_modules/path-dirname/license
deleted file mode 100644
index 1981663..0000000
--- a/node_modules/path-dirname/license
+++ /dev/null
@@ -1,22 +0,0 @@
-
-The MIT License (MIT)
-
-Copyright (c) Elan Shanker and Node.js contributors. All rights reserved.
-
-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/path-dirname/package.json b/node_modules/path-dirname/package.json
deleted file mode 100644
index eb78533..0000000
--- a/node_modules/path-dirname/package.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "name": "path-dirname",
- "version": "1.0.2",
- "description": "Node.js path.dirname() ponyfill",
- "license": "MIT",
- "repository": "es128/path-dirname",
- "author": "Elan Shanker",
- "scripts": {
- "test": "node test.js"
- },
- "files": [
- "index.js"
- ],
- "keywords": [
- "dirname",
- "dir",
- "path",
- "paths",
- "file",
- "built-in",
- "util",
- "utils",
- "core",
- "stdlib",
- "ponyfill",
- "polyfill",
- "shim"
- ]
-}
diff --git a/node_modules/path-dirname/readme.md b/node_modules/path-dirname/readme.md
deleted file mode 100644
index 652a562..0000000
--- a/node_modules/path-dirname/readme.md
+++ /dev/null
@@ -1,53 +0,0 @@
-# path-dirname [![Build Status](https://travis-ci.org/es128/path-dirname.svg?branch=master)](https://travis-ci.org/es128/path-dirname)
-
-> Node.js [`path.dirname()`](https://nodejs.org/api/path.html#path_path_dirname_path) [ponyfill](https://ponyfill.com)
-
-This was needed in order to expose `path.posix.dirname()` on Node.js v0.10
-
-## Install
-
-```
-$ npm install --save path-dirname
-```
-
-
-## Usage
-
-```js
-const pathDirname = require('path-dirname');
-
-pathDirname('/home/foo');
-//=> '/home'
-pathDirname('C:\\Users\\foo');
-//=> 'C:\\Users'
-pathDirname('foo');
-//=> '.'
-pathDirname('foo/bar');
-//=> 'foo'
-
-//Using posix version for consistent output when dealing with glob escape chars
-pathDirname.win32('C:\\Users\\foo/\\*bar');
-//=> 'C:\\Users\\foo/'
-pathDirname.posix('C:\\Users\\foo/\\*bar');
-//=> 'C:\\Users\\foo'
-```
-
-
-## API
-
-See the [`path.dirname()` docs](https://nodejs.org/api/path.html#path_path_dirname_path).
-
-### pathDirname(path)
-
-### pathDirname.posix(path)
-
-POSIX specific version.
-
-### pathDirname.win32(path)
-
-Windows specific version.
-
-
-## License
-
-MIT
diff --git a/node_modules/path-exists/index.js b/node_modules/path-exists/index.js
deleted file mode 100644
index a7e680a..0000000
--- a/node_modules/path-exists/index.js
+++ /dev/null
@@ -1,24 +0,0 @@
-'use strict';
-var fs = require('fs');
-var Promise = require('pinkie-promise');
-
-module.exports = function (fp) {
- var fn = typeof fs.access === 'function' ? fs.access : fs.stat;
-
- return new Promise(function (resolve) {
- fn(fp, function (err) {
- resolve(!err);
- });
- });
-};
-
-module.exports.sync = function (fp) {
- var fn = typeof fs.accessSync === 'function' ? fs.accessSync : fs.statSync;
-
- try {
- fn(fp);
- return true;
- } catch (err) {
- return false;
- }
-};
diff --git a/node_modules/path-exists/license b/node_modules/path-exists/license
deleted file mode 100644
index 654d0bf..0000000
--- a/node_modules/path-exists/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus (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/path-exists/package.json b/node_modules/path-exists/package.json
deleted file mode 100644
index 5477ee8..0000000
--- a/node_modules/path-exists/package.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- "name": "path-exists",
- "version": "2.1.0",
- "description": "Check if a path exists",
- "license": "MIT",
- "repository": "sindresorhus/path-exists",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "files": [
- "index.js"
- ],
- "keywords": [
- "path",
- "exists",
- "exist",
- "file",
- "filepath",
- "fs",
- "filesystem",
- "file-system",
- "access",
- "stat"
- ],
- "dependencies": {
- "pinkie-promise": "^2.0.0"
- },
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- }
-}
diff --git a/node_modules/path-exists/readme.md b/node_modules/path-exists/readme.md
deleted file mode 100644
index 8fbcd68..0000000
--- a/node_modules/path-exists/readme.md
+++ /dev/null
@@ -1,45 +0,0 @@
-# path-exists [![Build Status](https://travis-ci.org/sindresorhus/path-exists.svg?branch=master)](https://travis-ci.org/sindresorhus/path-exists)
-
-> Check if a path exists
-
-Because [`fs.exists()`](https://nodejs.org/api/fs.html#fs_fs_exists_path_callback) is being [deprecated](https://github.com/iojs/io.js/issues/103), but there's still a genuine use-case of being able to check if a path exists for other purposes than doing IO with it.
-
-Never use this before handling a file though:
-
-> In particular, checking if a file exists before opening it is an anti-pattern that leaves you vulnerable to race conditions: another process may remove the file between the calls to `fs.exists()` and `fs.open()`. Just open the file and handle the error when it's not there.
-
-
-## Install
-
-```
-$ npm install --save path-exists
-```
-
-
-## Usage
-
-```js
-// foo.js
-var pathExists = require('path-exists');
-
-pathExists('foo.js').then(function (exists) {
- console.log(exists);
- //=> true
-});
-```
-
-
-## API
-
-### pathExists(path)
-
-Returns a promise that resolves to a boolean of whether the path exists.
-
-### pathExists.sync(path)
-
-Returns a boolean of whether the path exists.
-
-
-## License
-
-MIT © [Sindre Sorhus](http://sindresorhus.com)
diff --git a/node_modules/path-is-absolute/index.js b/node_modules/path-is-absolute/index.js
deleted file mode 100644
index 22aa6c3..0000000
--- a/node_modules/path-is-absolute/index.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-function posix(path) {
- return path.charAt(0) === '/';
-}
-
-function win32(path) {
- // https://github.com/nodejs/node/blob/b3fcc245fb25539909ef1d5eaa01dbf92e168633/lib/path.js#L56
- var splitDeviceRe = /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/;
- var result = splitDeviceRe.exec(path);
- var device = result[1] || '';
- var isUnc = Boolean(device && device.charAt(1) !== ':');
-
- // UNC paths are always absolute
- return Boolean(result[2] || isUnc);
-}
-
-module.exports = process.platform === 'win32' ? win32 : posix;
-module.exports.posix = posix;
-module.exports.win32 = win32;
diff --git a/node_modules/path-is-absolute/license b/node_modules/path-is-absolute/license
deleted file mode 100644
index 654d0bf..0000000
--- a/node_modules/path-is-absolute/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus (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/path-is-absolute/package.json b/node_modules/path-is-absolute/package.json
deleted file mode 100644
index 91196d5..0000000
--- a/node_modules/path-is-absolute/package.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "name": "path-is-absolute",
- "version": "1.0.1",
- "description": "Node.js 0.12 path.isAbsolute() ponyfill",
- "license": "MIT",
- "repository": "sindresorhus/path-is-absolute",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "xo && node test.js"
- },
- "files": [
- "index.js"
- ],
- "keywords": [
- "path",
- "paths",
- "file",
- "dir",
- "absolute",
- "isabsolute",
- "is-absolute",
- "built-in",
- "util",
- "utils",
- "core",
- "ponyfill",
- "polyfill",
- "shim",
- "is",
- "detect",
- "check"
- ],
- "devDependencies": {
- "xo": "^0.16.0"
- }
-}
diff --git a/node_modules/path-is-absolute/readme.md b/node_modules/path-is-absolute/readme.md
deleted file mode 100644
index 8dbdf5f..0000000
--- a/node_modules/path-is-absolute/readme.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# path-is-absolute [![Build Status](https://travis-ci.org/sindresorhus/path-is-absolute.svg?branch=master)](https://travis-ci.org/sindresorhus/path-is-absolute)
-
-> Node.js 0.12 [`path.isAbsolute()`](http://nodejs.org/api/path.html#path_path_isabsolute_path) [ponyfill](https://ponyfill.com)
-
-
-## Install
-
-```
-$ npm install --save path-is-absolute
-```
-
-
-## Usage
-
-```js
-const pathIsAbsolute = require('path-is-absolute');
-
-// Running on Linux
-pathIsAbsolute('/home/foo');
-//=> true
-pathIsAbsolute('C:/Users/foo');
-//=> false
-
-// Running on Windows
-pathIsAbsolute('C:/Users/foo');
-//=> true
-pathIsAbsolute('/home/foo');
-//=> false
-
-// Running on any OS
-pathIsAbsolute.posix('/home/foo');
-//=> true
-pathIsAbsolute.posix('C:/Users/foo');
-//=> false
-pathIsAbsolute.win32('C:/Users/foo');
-//=> true
-pathIsAbsolute.win32('/home/foo');
-//=> false
-```
-
-
-## API
-
-See the [`path.isAbsolute()` docs](http://nodejs.org/api/path.html#path_path_isabsolute_path).
-
-### pathIsAbsolute(path)
-
-### pathIsAbsolute.posix(path)
-
-POSIX specific version.
-
-### pathIsAbsolute.win32(path)
-
-Windows specific version.
-
-
-## License
-
-MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/node_modules/path-parse/LICENSE b/node_modules/path-parse/LICENSE
deleted file mode 100644
index 810f3db..0000000
--- a/node_modules/path-parse/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015 Javier Blanco
-
-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/path-parse/README.md b/node_modules/path-parse/README.md
deleted file mode 100644
index 05097f8..0000000
--- a/node_modules/path-parse/README.md
+++ /dev/null
@@ -1,42 +0,0 @@
-# path-parse [![Build Status](https://travis-ci.org/jbgutierrez/path-parse.svg?branch=master)](https://travis-ci.org/jbgutierrez/path-parse)
-
-> Node.js [`path.parse(pathString)`](https://nodejs.org/api/path.html#path_path_parse_pathstring) [ponyfill](https://ponyfill.com).
-
-## Install
-
-```
-$ npm install --save path-parse
-```
-
-## Usage
-
-```js
-var pathParse = require('path-parse');
-
-pathParse('/home/user/dir/file.txt');
-//=> {
-// root : "/",
-// dir : "/home/user/dir",
-// base : "file.txt",
-// ext : ".txt",
-// name : "file"
-// }
-```
-
-## API
-
-See [`path.parse(pathString)`](https://nodejs.org/api/path.html#path_path_parse_pathstring) docs.
-
-### pathParse(path)
-
-### pathParse.posix(path)
-
-The Posix specific version.
-
-### pathParse.win32(path)
-
-The Windows specific version.
-
-## License
-
-MIT © [Javier Blanco](http://jbgutierrez.info)
diff --git a/node_modules/path-parse/index.js b/node_modules/path-parse/index.js
deleted file mode 100644
index f062d0a..0000000
--- a/node_modules/path-parse/index.js
+++ /dev/null
@@ -1,75 +0,0 @@
-'use strict';
-
-var isWindows = process.platform === 'win32';
-
-// Regex to split a windows path into into [dir, root, basename, name, ext]
-var splitWindowsRe =
- /^(((?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?[\\\/]?)(?:[^\\\/]*[\\\/])*)((\.{1,2}|[^\\\/]+?|)(\.[^.\/\\]*|))[\\\/]*$/;
-
-var win32 = {};
-
-function win32SplitPath(filename) {
- return splitWindowsRe.exec(filename).slice(1);
-}
-
-win32.parse = function(pathString) {
- if (typeof pathString !== 'string') {
- throw new TypeError(
- "Parameter 'pathString' must be a string, not " + typeof pathString
- );
- }
- var allParts = win32SplitPath(pathString);
- if (!allParts || allParts.length !== 5) {
- throw new TypeError("Invalid path '" + pathString + "'");
- }
- return {
- root: allParts[1],
- dir: allParts[0] === allParts[1] ? allParts[0] : allParts[0].slice(0, -1),
- base: allParts[2],
- ext: allParts[4],
- name: allParts[3]
- };
-};
-
-
-
-// Split a filename into [dir, root, basename, name, ext], unix version
-// 'root' is just a slash, or nothing.
-var splitPathRe =
- /^((\/?)(?:[^\/]*\/)*)((\.{1,2}|[^\/]+?|)(\.[^.\/]*|))[\/]*$/;
-var posix = {};
-
-
-function posixSplitPath(filename) {
- return splitPathRe.exec(filename).slice(1);
-}
-
-
-posix.parse = function(pathString) {
- if (typeof pathString !== 'string') {
- throw new TypeError(
- "Parameter 'pathString' must be a string, not " + typeof pathString
- );
- }
- var allParts = posixSplitPath(pathString);
- if (!allParts || allParts.length !== 5) {
- throw new TypeError("Invalid path '" + pathString + "'");
- }
-
- return {
- root: allParts[1],
- dir: allParts[0].slice(0, -1),
- base: allParts[2],
- ext: allParts[4],
- name: allParts[3],
- };
-};
-
-
-if (isWindows)
- module.exports = win32.parse;
-else /* posix */
- module.exports = posix.parse;
-
-module.exports.posix = posix.parse;
-module.exports.win32 = win32.parse;
diff --git a/node_modules/path-parse/package.json b/node_modules/path-parse/package.json
deleted file mode 100644
index 36c23f8..0000000
--- a/node_modules/path-parse/package.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- "name": "path-parse",
- "version": "1.0.7",
- "description": "Node.js path.parse() ponyfill",
- "main": "index.js",
- "scripts": {
- "test": "node test.js"
- },
- "repository": {
- "type": "git",
- "url": "https://github.com/jbgutierrez/path-parse.git"
- },
- "keywords": [
- "path",
- "paths",
- "file",
- "dir",
- "parse",
- "built-in",
- "util",
- "utils",
- "core",
- "ponyfill",
- "polyfill",
- "shim"
- ],
- "author": "Javier Blanco ",
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/jbgutierrez/path-parse/issues"
- },
- "homepage": "https://github.com/jbgutierrez/path-parse#readme"
-}
diff --git a/node_modules/path-root-regex/LICENSE b/node_modules/path-root-regex/LICENSE
deleted file mode 100644
index e28e603..0000000
--- a/node_modules/path-root-regex/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2016, 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/path-root-regex/README.md b/node_modules/path-root-regex/README.md
deleted file mode 100644
index 9cc61ec..0000000
--- a/node_modules/path-root-regex/README.md
+++ /dev/null
@@ -1,53 +0,0 @@
-# path-root-regex [![NPM version](https://img.shields.io/npm/v/path-root-regex.svg?style=flat)](https://www.npmjs.com/package/path-root-regex) [![NPM downloads](https://img.shields.io/npm/dm/path-root-regex.svg?style=flat)](https://npmjs.org/package/path-root-regex) [![Build Status](https://img.shields.io/travis/regexhq/path-root-regex.svg?style=flat)](https://travis-ci.org/regexhq/path-root-regex)
-
-> Regular expression for getting the root of a posix or windows filepath.
-
-You might also be interested in [path-root](https://github.com/jonschlinkert/path-root).
-
-## Usage
-
-The module exposes a function that must be called to get the regex (modified from the split device regex in the node.js path module);
-
-```js
-var pathRootRegex = require('path-root-regex');
-
-console.log(pathRootRegex() instanceof RegExp);
-//=> true
-```
-
-See the [path-root](https://github.com/jonschlinkert/path-root) module for examples.
-
-## Related projects
-
-You might also be interested in these projects:
-
-* [is-absolute](https://www.npmjs.com/package/is-absolute): Polyfill for node.js `path.isAbolute`. Returns true if a file path is absolute. | [homepage](https://github.com/jonschlinkert/is-absolute)
-* [parse-filepath](https://www.npmjs.com/package/parse-filepath): Parse a filepath into an object. Falls back on the native node.js `path.parse` method if… [more](https://www.npmjs.com/package/parse-filepath) | [homepage](https://github.com/jonschlinkert/parse-filepath)
-
-## Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/path-root-regex/issues/new).
-
-## Running tests
-
-Install dev dependencies:
-
-```sh
-$ npm install -d && npm test
-```
-
-## Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
-
-## License
-
-Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT license](https://github.com/regexhq/path-root-regex/blob/master/LICENSE).
-
-***
-
-_This file was generated by [verb](https://github.com/verbose/verb), v, on March 29, 2016._
\ No newline at end of file
diff --git a/node_modules/path-root-regex/index.js b/node_modules/path-root-regex/index.js
deleted file mode 100644
index b6eeea4..0000000
--- a/node_modules/path-root-regex/index.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*!
- * path-root-regex
- *
- * Copyright (c) 2016, Jon Schlinkert.
- * Licensed under the MIT License.
- */
-
-'use strict';
-
-module.exports = function() {
- // Regex is modified from the split device regex in the node.js path module.
- return /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?/;
-};
diff --git a/node_modules/path-root-regex/package.json b/node_modules/path-root-regex/package.json
deleted file mode 100644
index 0596371..0000000
--- a/node_modules/path-root-regex/package.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "name": "path-root-regex",
- "description": "Regular expression for getting the root of a posix or windows filepath.",
- "version": "0.1.2",
- "homepage": "https://github.com/regexhq/path-root-regex",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "regexhq/path-root-regex",
- "bugs": {
- "url": "https://github.com/regexhq/path-root-regex/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "devDependencies": {
- "gulp-format-md": "^0.1.7",
- "mocha": "^2.4.5"
- },
- "keywords": [
- "detect",
- "expression",
- "file",
- "filepath",
- "match",
- "parse",
- "path",
- "regex",
- "regexp",
- "regular",
- "root",
- "test"
- ],
- "verb": {
- "run": true,
- "toc": false,
- "layout": false,
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "highlight": "path-root",
- "list": [
- "parse-filepath",
- "is-absolute"
- ]
- },
- "reflinks": [
- "verb",
- "path-root"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/path-root/LICENSE b/node_modules/path-root/LICENSE
deleted file mode 100644
index e28e603..0000000
--- a/node_modules/path-root/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2016, 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/path-root/README.md b/node_modules/path-root/README.md
deleted file mode 100644
index aa3c861..0000000
--- a/node_modules/path-root/README.md
+++ /dev/null
@@ -1,94 +0,0 @@
-# path-root [![NPM version](https://img.shields.io/npm/v/path-root.svg?style=flat)](https://www.npmjs.com/package/path-root) [![NPM downloads](https://img.shields.io/npm/dm/path-root.svg?style=flat)](https://npmjs.org/package/path-root) [![Build Status](https://img.shields.io/travis/jonschlinkert/path-root.svg?style=flat)](https://travis-ci.org/jonschlinkert/path-root)
-
-> Get the root of a posix or windows filepath.
-
-You might also be interested in [parse-filepath](https://github.com/jonschlinkert/parse-filepath).
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install path-root --save
-```
-
-## Usage
-
-```js
-var pathRoot = require('path-root');
-```
-
-**Examples**
-
-```js
-pathRoot('\\\\server\\share\\abc');
-//=> '\\\\server\\share\\'
-
-pathRoot('\\\\server foo\\some folder\\base-file.js');
-//=> '\\\\server foo\\some folder\\'
-
-pathRoot('\\\\?\\UNC\\server\\share');
-//=> '\\\\?\\UNC\\'
-
-pathRoot('foo/bar/baz.js');
-//=> ''
-
-pathRoot('c:\\foo\\bar\\baz.js');
-//=> 'c:\\'
-
-pathRoot('\\\\slslslsl\\admin$\\system32');
-//=> '\\\\slslslsl\\admin$\\'
-
-pathRoot('/foo/bar/baz.js');
-//=> '/'
-```
-
-## Related projects
-
-You might also be interested in these projects:
-
-* [is-absolute](https://www.npmjs.com/package/is-absolute): Polyfill for node.js `path.isAbolute`. Returns true if a file path is absolute. | [homepage](https://github.com/jonschlinkert/is-absolute)
-* [parse-filepath](https://www.npmjs.com/package/parse-filepath): Parse a filepath into an object. Falls back on the native node.js `path.parse` method if… [more](https://www.npmjs.com/package/parse-filepath) | [homepage](https://github.com/jonschlinkert/parse-filepath)
-* [path-root-regex](https://www.npmjs.com/package/path-root-regex): Regular expression for getting the root of a posix or windows filepath. | [homepage](https://github.com/regexhq/path-root-regex)
-
-## Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/path-root/issues/new).
-
-## Building docs
-
-Generate readme and API documentation with [verb](https://github.com/verbose/verb):
-
-```sh
-$ npm install verb && npm run docs
-```
-
-Or, if [verb](https://github.com/verbose/verb) is installed globally:
-
-```sh
-$ verb
-```
-
-## Running tests
-
-Install dev dependencies:
-
-```sh
-$ npm install -d && npm test
-```
-
-## Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
-
-## License
-
-Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT license](https://github.com/jonschlinkert/path-root/blob/master/LICENSE).
-
-***
-
-_This file was generated by [verb](https://github.com/verbose/verb), v, on March 29, 2016._
\ No newline at end of file
diff --git a/node_modules/path-root/index.js b/node_modules/path-root/index.js
deleted file mode 100644
index 8e141ba..0000000
--- a/node_modules/path-root/index.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/*!
- * path-root
- *
- * Copyright (c) 2016, Jon Schlinkert.
- * Licensed under the MIT License.
- */
-
-'use strict';
-
-var pathRootRegex = require('path-root-regex');
-
-module.exports = function(filepath) {
- if (typeof filepath !== 'string') {
- throw new TypeError('expected a string');
- }
-
- var match = pathRootRegex().exec(filepath);
- if (match) {
- return match[0];
- }
-};
diff --git a/node_modules/path-root/package.json b/node_modules/path-root/package.json
deleted file mode 100644
index 35cf577..0000000
--- a/node_modules/path-root/package.json
+++ /dev/null
@@ -1,58 +0,0 @@
-{
- "name": "path-root",
- "description": "Get the root of a posix or windows filepath.",
- "version": "0.1.1",
- "homepage": "https://github.com/jonschlinkert/path-root",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/path-root",
- "bugs": {
- "url": "https://github.com/jonschlinkert/path-root/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "path-root-regex": "^0.1.0"
- },
- "devDependencies": {
- "gulp-format-md": "^0.1.7",
- "mocha": "^2.4.5"
- },
- "keywords": [
- "path",
- "root"
- ],
- "verb": {
- "run": true,
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "highlight": "parse-filepath",
- "list": [
- "path-root-regex",
- "parse-filepath",
- "is-absolute"
- ]
- },
- "reflinks": [
- "verb"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/path-type/index.js b/node_modules/path-type/index.js
deleted file mode 100644
index 207a1d1..0000000
--- a/node_modules/path-type/index.js
+++ /dev/null
@@ -1,29 +0,0 @@
-'use strict';
-var fs = require('graceful-fs');
-var Promise = require('pinkie-promise');
-var pify = require('pify');
-
-function type(fn, fn2, fp) {
- if (typeof fp !== 'string') {
- return Promise.reject(new TypeError('Expected a string'));
- }
-
- return pify(fs[fn], Promise)(fp).then(function (stats) {
- return stats[fn2]();
- });
-}
-
-function typeSync(fn, fn2, fp) {
- if (typeof fp !== 'string') {
- throw new TypeError('Expected a string');
- }
-
- return fs[fn](fp)[fn2]();
-}
-
-exports.file = type.bind(null, 'stat', 'isFile');
-exports.dir = type.bind(null, 'stat', 'isDirectory');
-exports.symlink = type.bind(null, 'lstat', 'isSymbolicLink');
-exports.fileSync = typeSync.bind(null, 'statSync', 'isFile');
-exports.dirSync = typeSync.bind(null, 'statSync', 'isDirectory');
-exports.symlinkSync = typeSync.bind(null, 'lstatSync', 'isSymbolicLink');
diff --git a/node_modules/path-type/license b/node_modules/path-type/license
deleted file mode 100644
index 654d0bf..0000000
--- a/node_modules/path-type/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus (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/path-type/package.json b/node_modules/path-type/package.json
deleted file mode 100644
index 6e54f69..0000000
--- a/node_modules/path-type/package.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
- "name": "path-type",
- "version": "1.1.0",
- "description": "Check if a path is a file, directory, or symlink",
- "license": "MIT",
- "repository": "sindresorhus/path-type",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "files": [
- "index.js"
- ],
- "keywords": [
- "path",
- "fs",
- "type",
- "is",
- "check",
- "directory",
- "dir",
- "file",
- "filepath",
- "symlink",
- "symbolic",
- "link",
- "stat",
- "stats",
- "filesystem"
- ],
- "dependencies": {
- "graceful-fs": "^4.1.2",
- "pify": "^2.0.0",
- "pinkie-promise": "^2.0.0"
- },
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "xo": {
- "ignores": [
- "test.js"
- ]
- }
-}
diff --git a/node_modules/path-type/readme.md b/node_modules/path-type/readme.md
deleted file mode 100644
index eac12d6..0000000
--- a/node_modules/path-type/readme.md
+++ /dev/null
@@ -1,42 +0,0 @@
-# path-type [![Build Status](https://travis-ci.org/sindresorhus/path-type.svg?branch=master)](https://travis-ci.org/sindresorhus/path-type)
-
-> Check if a path is a file, directory, or symlink
-
-
-## Install
-
-```
-$ npm install --save path-type
-```
-
-
-## Usage
-
-```js
-var pathType = require('path-type');
-
-pathType.file('package.json').then(function (isFile) {
- console.log(isFile);
- //=> true
-})
-```
-
-
-## API
-
-### .file(path)
-### .dir(path)
-### .symlink(path)
-
-Returns a promise that resolves to a boolean of whether the path is the checked type.
-
-### .fileSync(path)
-### .dirSync(path)
-### .symlinkSync(path)
-
-Returns a boolean of whether the path is the checked type.
-
-
-## License
-
-MIT © [Sindre Sorhus](http://sindresorhus.com)
diff --git a/node_modules/pify/index.js b/node_modules/pify/index.js
deleted file mode 100644
index 7c720eb..0000000
--- a/node_modules/pify/index.js
+++ /dev/null
@@ -1,68 +0,0 @@
-'use strict';
-
-var processFn = function (fn, P, opts) {
- return function () {
- var that = this;
- var args = new Array(arguments.length);
-
- for (var i = 0; i < arguments.length; i++) {
- args[i] = arguments[i];
- }
-
- return new P(function (resolve, reject) {
- args.push(function (err, result) {
- if (err) {
- reject(err);
- } else if (opts.multiArgs) {
- var results = new Array(arguments.length - 1);
-
- for (var i = 1; i < arguments.length; i++) {
- results[i - 1] = arguments[i];
- }
-
- resolve(results);
- } else {
- resolve(result);
- }
- });
-
- fn.apply(that, args);
- });
- };
-};
-
-var pify = module.exports = function (obj, P, opts) {
- if (typeof P !== 'function') {
- opts = P;
- P = Promise;
- }
-
- opts = opts || {};
- opts.exclude = opts.exclude || [/.+Sync$/];
-
- var filter = function (key) {
- var match = function (pattern) {
- return typeof pattern === 'string' ? key === pattern : pattern.test(key);
- };
-
- return opts.include ? opts.include.some(match) : !opts.exclude.some(match);
- };
-
- var ret = typeof obj === 'function' ? function () {
- if (opts.excludeMain) {
- return obj.apply(this, arguments);
- }
-
- return processFn(obj, P, opts).apply(this, arguments);
- } : {};
-
- return Object.keys(obj).reduce(function (ret, key) {
- var x = obj[key];
-
- ret[key] = typeof x === 'function' && filter(key) ? processFn(x, P, opts) : x;
-
- return ret;
- }, ret);
-};
-
-pify.all = pify;
diff --git a/node_modules/pify/license b/node_modules/pify/license
deleted file mode 100644
index 654d0bf..0000000
--- a/node_modules/pify/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus (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/pify/package.json b/node_modules/pify/package.json
deleted file mode 100644
index 311d198..0000000
--- a/node_modules/pify/package.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
- "name": "pify",
- "version": "2.3.0",
- "description": "Promisify a callback-style function",
- "license": "MIT",
- "repository": "sindresorhus/pify",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "xo && ava && npm run optimization-test",
- "optimization-test": "node --allow-natives-syntax optimization-test.js"
- },
- "files": [
- "index.js"
- ],
- "keywords": [
- "promise",
- "promises",
- "promisify",
- "denodify",
- "denodeify",
- "callback",
- "cb",
- "node",
- "then",
- "thenify",
- "convert",
- "transform",
- "wrap",
- "wrapper",
- "bind",
- "to",
- "async",
- "es2015"
- ],
- "devDependencies": {
- "ava": "*",
- "pinkie-promise": "^1.0.0",
- "v8-natives": "0.0.2",
- "xo": "*"
- }
-}
diff --git a/node_modules/pify/readme.md b/node_modules/pify/readme.md
deleted file mode 100644
index c79ca8b..0000000
--- a/node_modules/pify/readme.md
+++ /dev/null
@@ -1,119 +0,0 @@
-# pify [![Build Status](https://travis-ci.org/sindresorhus/pify.svg?branch=master)](https://travis-ci.org/sindresorhus/pify)
-
-> Promisify a callback-style function
-
-
-## Install
-
-```
-$ npm install --save pify
-```
-
-
-## Usage
-
-```js
-const fs = require('fs');
-const pify = require('pify');
-
-// promisify a single function
-
-pify(fs.readFile)('package.json', 'utf8').then(data => {
- console.log(JSON.parse(data).name);
- //=> 'pify'
-});
-
-// or promisify all methods in a module
-
-pify(fs).readFile('package.json', 'utf8').then(data => {
- console.log(JSON.parse(data).name);
- //=> 'pify'
-});
-```
-
-
-## API
-
-### pify(input, [promiseModule], [options])
-
-Returns a promise wrapped version of the supplied function or module.
-
-#### input
-
-Type: `function`, `object`
-
-Callback-style function or module whose methods you want to promisify.
-
-#### promiseModule
-
-Type: `function`
-
-Custom promise module to use instead of the native one.
-
-Check out [`pinkie-promise`](https://github.com/floatdrop/pinkie-promise) if you need a tiny promise polyfill.
-
-#### options
-
-##### multiArgs
-
-Type: `boolean`
-Default: `false`
-
-By default, the promisified function will only return the second argument from the callback, which works fine for most APIs. This option can be useful for modules like `request` that return multiple arguments. Turning this on will make it return an array of all arguments from the callback, excluding the error argument, instead of just the second argument.
-
-```js
-const request = require('request');
-const pify = require('pify');
-
-pify(request, {multiArgs: true})('https://sindresorhus.com').then(result => {
- const [httpResponse, body] = result;
-});
-```
-
-##### include
-
-Type: `array` of (`string`|`regex`)
-
-Methods in a module to promisify. Remaining methods will be left untouched.
-
-##### exclude
-
-Type: `array` of (`string`|`regex`)
-Default: `[/.+Sync$/]`
-
-Methods in a module **not** to promisify. Methods with names ending with `'Sync'` are excluded by default.
-
-##### excludeMain
-
-Type: `boolean`
-Default: `false`
-
-By default, if given module is a function itself, this function will be promisified. Turn this option on if you want to promisify only methods of the module.
-
-```js
-const pify = require('pify');
-
-function fn() {
- return true;
-}
-
-fn.method = (data, callback) => {
- setImmediate(() => {
- callback(data, null);
- });
-};
-
-// promisify methods but not fn()
-const promiseFn = pify(fn, {excludeMain: true});
-
-if (promiseFn()) {
- promiseFn.method('hi').then(data => {
- console.log(data);
- });
-}
-```
-
-
-## License
-
-MIT © [Sindre Sorhus](http://sindresorhus.com)
diff --git a/node_modules/pinkie-promise/index.js b/node_modules/pinkie-promise/index.js
deleted file mode 100644
index 777377a..0000000
--- a/node_modules/pinkie-promise/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-'use strict';
-
-module.exports = typeof Promise === 'function' ? Promise : require('pinkie');
diff --git a/node_modules/pinkie-promise/license b/node_modules/pinkie-promise/license
deleted file mode 100644
index 1aeb74f..0000000
--- a/node_modules/pinkie-promise/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Vsevolod Strukchinsky (github.com/floatdrop)
-
-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/pinkie-promise/package.json b/node_modules/pinkie-promise/package.json
deleted file mode 100644
index 3515f8f..0000000
--- a/node_modules/pinkie-promise/package.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "name": "pinkie-promise",
- "version": "2.0.1",
- "description": "ES2015 Promise ponyfill",
- "license": "MIT",
- "repository": "floatdrop/pinkie-promise",
- "author": {
- "name": "Vsevolod Strukchinsky",
- "email": "floatdrop@gmail.com",
- "url": "github.com/floatdrop"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "files": [
- "index.js"
- ],
- "keywords": [
- "promise",
- "promises",
- "es2015",
- "es6",
- "polyfill",
- "ponyfill"
- ],
- "dependencies": {
- "pinkie": "^2.0.0"
- },
- "devDependencies": {
- "mocha": "*"
- }
-}
diff --git a/node_modules/pinkie-promise/readme.md b/node_modules/pinkie-promise/readme.md
deleted file mode 100644
index 78477f4..0000000
--- a/node_modules/pinkie-promise/readme.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# pinkie-promise [![Build Status](https://travis-ci.org/floatdrop/pinkie-promise.svg?branch=master)](https://travis-ci.org/floatdrop/pinkie-promise)
-
-> [ES2015 Promise](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-promise-objects) ponyfill
-
-Module exports global Promise object (if available) or [`pinkie`](http://github.com/floatdrop/pinkie) Promise polyfill.
-
-## Install
-
-```
-$ npm install --save pinkie-promise
-```
-
-## Usage
-
-```js
-var Promise = require('pinkie-promise');
-
-new Promise(function (resolve) { resolve('unicorns'); });
-//=> Promise { 'unicorns' }
-```
-
-## Related
-
-- [pify](https://github.com/sindresorhus/pify) - Promisify a callback-style function
-
-## License
-
-MIT © [Vsevolod Strukchinsky](http://github.com/floatdrop)
diff --git a/node_modules/pinkie/index.js b/node_modules/pinkie/index.js
deleted file mode 100644
index 14ce1bf..0000000
--- a/node_modules/pinkie/index.js
+++ /dev/null
@@ -1,292 +0,0 @@
-'use strict';
-
-var PENDING = 'pending';
-var SETTLED = 'settled';
-var FULFILLED = 'fulfilled';
-var REJECTED = 'rejected';
-var NOOP = function () {};
-var isNode = typeof global !== 'undefined' && typeof global.process !== 'undefined' && typeof global.process.emit === 'function';
-
-var asyncSetTimer = typeof setImmediate === 'undefined' ? setTimeout : setImmediate;
-var asyncQueue = [];
-var asyncTimer;
-
-function asyncFlush() {
- // run promise callbacks
- for (var i = 0; i < asyncQueue.length; i++) {
- asyncQueue[i][0](asyncQueue[i][1]);
- }
-
- // reset async asyncQueue
- asyncQueue = [];
- asyncTimer = false;
-}
-
-function asyncCall(callback, arg) {
- asyncQueue.push([callback, arg]);
-
- if (!asyncTimer) {
- asyncTimer = true;
- asyncSetTimer(asyncFlush, 0);
- }
-}
-
-function invokeResolver(resolver, promise) {
- function resolvePromise(value) {
- resolve(promise, value);
- }
-
- function rejectPromise(reason) {
- reject(promise, reason);
- }
-
- try {
- resolver(resolvePromise, rejectPromise);
- } catch (e) {
- rejectPromise(e);
- }
-}
-
-function invokeCallback(subscriber) {
- var owner = subscriber.owner;
- var settled = owner._state;
- var value = owner._data;
- var callback = subscriber[settled];
- var promise = subscriber.then;
-
- if (typeof callback === 'function') {
- settled = FULFILLED;
- try {
- value = callback(value);
- } catch (e) {
- reject(promise, e);
- }
- }
-
- if (!handleThenable(promise, value)) {
- if (settled === FULFILLED) {
- resolve(promise, value);
- }
-
- if (settled === REJECTED) {
- reject(promise, value);
- }
- }
-}
-
-function handleThenable(promise, value) {
- var resolved;
-
- try {
- if (promise === value) {
- throw new TypeError('A promises callback cannot return that same promise.');
- }
-
- if (value && (typeof value === 'function' || typeof value === 'object')) {
- // then should be retrieved only once
- var then = value.then;
-
- if (typeof then === 'function') {
- then.call(value, function (val) {
- if (!resolved) {
- resolved = true;
-
- if (value === val) {
- fulfill(promise, val);
- } else {
- resolve(promise, val);
- }
- }
- }, function (reason) {
- if (!resolved) {
- resolved = true;
-
- reject(promise, reason);
- }
- });
-
- return true;
- }
- }
- } catch (e) {
- if (!resolved) {
- reject(promise, e);
- }
-
- return true;
- }
-
- return false;
-}
-
-function resolve(promise, value) {
- if (promise === value || !handleThenable(promise, value)) {
- fulfill(promise, value);
- }
-}
-
-function fulfill(promise, value) {
- if (promise._state === PENDING) {
- promise._state = SETTLED;
- promise._data = value;
-
- asyncCall(publishFulfillment, promise);
- }
-}
-
-function reject(promise, reason) {
- if (promise._state === PENDING) {
- promise._state = SETTLED;
- promise._data = reason;
-
- asyncCall(publishRejection, promise);
- }
-}
-
-function publish(promise) {
- promise._then = promise._then.forEach(invokeCallback);
-}
-
-function publishFulfillment(promise) {
- promise._state = FULFILLED;
- publish(promise);
-}
-
-function publishRejection(promise) {
- promise._state = REJECTED;
- publish(promise);
- if (!promise._handled && isNode) {
- global.process.emit('unhandledRejection', promise._data, promise);
- }
-}
-
-function notifyRejectionHandled(promise) {
- global.process.emit('rejectionHandled', promise);
-}
-
-/**
- * @class
- */
-function Promise(resolver) {
- if (typeof resolver !== 'function') {
- throw new TypeError('Promise resolver ' + resolver + ' is not a function');
- }
-
- if (this instanceof Promise === false) {
- throw new TypeError('Failed to construct \'Promise\': Please use the \'new\' operator, this object constructor cannot be called as a function.');
- }
-
- this._then = [];
-
- invokeResolver(resolver, this);
-}
-
-Promise.prototype = {
- constructor: Promise,
-
- _state: PENDING,
- _then: null,
- _data: undefined,
- _handled: false,
-
- then: function (onFulfillment, onRejection) {
- var subscriber = {
- owner: this,
- then: new this.constructor(NOOP),
- fulfilled: onFulfillment,
- rejected: onRejection
- };
-
- if ((onRejection || onFulfillment) && !this._handled) {
- this._handled = true;
- if (this._state === REJECTED && isNode) {
- asyncCall(notifyRejectionHandled, this);
- }
- }
-
- if (this._state === FULFILLED || this._state === REJECTED) {
- // already resolved, call callback async
- asyncCall(invokeCallback, subscriber);
- } else {
- // subscribe
- this._then.push(subscriber);
- }
-
- return subscriber.then;
- },
-
- catch: function (onRejection) {
- return this.then(null, onRejection);
- }
-};
-
-Promise.all = function (promises) {
- if (!Array.isArray(promises)) {
- throw new TypeError('You must pass an array to Promise.all().');
- }
-
- return new Promise(function (resolve, reject) {
- var results = [];
- var remaining = 0;
-
- function resolver(index) {
- remaining++;
- return function (value) {
- results[index] = value;
- if (!--remaining) {
- resolve(results);
- }
- };
- }
-
- for (var i = 0, promise; i < promises.length; i++) {
- promise = promises[i];
-
- if (promise && typeof promise.then === 'function') {
- promise.then(resolver(i), reject);
- } else {
- results[i] = promise;
- }
- }
-
- if (!remaining) {
- resolve(results);
- }
- });
-};
-
-Promise.race = function (promises) {
- if (!Array.isArray(promises)) {
- throw new TypeError('You must pass an array to Promise.race().');
- }
-
- return new Promise(function (resolve, reject) {
- for (var i = 0, promise; i < promises.length; i++) {
- promise = promises[i];
-
- if (promise && typeof promise.then === 'function') {
- promise.then(resolve, reject);
- } else {
- resolve(promise);
- }
- }
- });
-};
-
-Promise.resolve = function (value) {
- if (value && typeof value === 'object' && value.constructor === Promise) {
- return value;
- }
-
- return new Promise(function (resolve) {
- resolve(value);
- });
-};
-
-Promise.reject = function (reason) {
- return new Promise(function (resolve, reject) {
- reject(reason);
- });
-};
-
-module.exports = Promise;
diff --git a/node_modules/pinkie/license b/node_modules/pinkie/license
deleted file mode 100644
index 1aeb74f..0000000
--- a/node_modules/pinkie/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Vsevolod Strukchinsky (github.com/floatdrop)
-
-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/pinkie/package.json b/node_modules/pinkie/package.json
deleted file mode 100644
index cb9057b..0000000
--- a/node_modules/pinkie/package.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "name": "pinkie",
- "version": "2.0.4",
- "description": "Itty bitty little widdle twinkie pinkie ES2015 Promise implementation",
- "license": "MIT",
- "repository": "floatdrop/pinkie",
- "author": {
- "name": "Vsevolod Strukchinsky",
- "email": "floatdrop@gmail.com",
- "url": "github.com/floatdrop"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "xo && nyc mocha",
- "coverage": "nyc report --reporter=text-lcov | coveralls"
- },
- "files": [
- "index.js"
- ],
- "keywords": [
- "promise",
- "promises",
- "es2015",
- "es6"
- ],
- "devDependencies": {
- "core-assert": "^0.1.1",
- "coveralls": "^2.11.4",
- "mocha": "*",
- "nyc": "^3.2.2",
- "promises-aplus-tests": "*",
- "xo": "^0.10.1"
- }
-}
diff --git a/node_modules/pinkie/readme.md b/node_modules/pinkie/readme.md
deleted file mode 100644
index 1565f95..0000000
--- a/node_modules/pinkie/readme.md
+++ /dev/null
@@ -1,83 +0,0 @@
-
-
-
-
-
-
-
-> Itty bitty little widdle twinkie pinkie [ES2015 Promise](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-promise-objects) implementation
-
-[![Build Status](https://travis-ci.org/floatdrop/pinkie.svg?branch=master)](https://travis-ci.org/floatdrop/pinkie) [![Coverage Status](https://coveralls.io/repos/floatdrop/pinkie/badge.svg?branch=master&service=github)](https://coveralls.io/github/floatdrop/pinkie?branch=master)
-
-There are [tons of Promise implementations](https://github.com/promises-aplus/promises-spec/blob/master/implementations.md#standalone) out there, but all of them focus on browser compatibility and are often bloated with functionality.
-
-This module is an exact Promise specification polyfill (like [native-promise-only](https://github.com/getify/native-promise-only)), but in Node.js land (it should be browserify-able though).
-
-
-## Install
-
-```
-$ npm install --save pinkie
-```
-
-
-## Usage
-
-```js
-var fs = require('fs');
-var Promise = require('pinkie');
-
-new Promise(function (resolve, reject) {
- fs.readFile('foo.json', 'utf8', function (err, data) {
- if (err) {
- reject(err);
- return;
- }
-
- resolve(data);
- });
-});
-//=> Promise
-```
-
-
-### API
-
-`pinkie` exports bare [ES2015 Promise](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-promise-objects) implementation and polyfills [Node.js rejection events](https://nodejs.org/api/process.html#process_event_unhandledrejection). In case you forgot:
-
-#### new Promise(executor)
-
-Returns new instance of `Promise`.
-
-##### executor
-
-*Required*
-Type: `function`
-
-Function with two arguments `resolve` and `reject`. The first argument fulfills the promise, the second argument rejects it.
-
-#### pinkie.all(promises)
-
-Returns a promise that resolves when all of the promises in the `promises` Array argument have resolved.
-
-#### pinkie.race(promises)
-
-Returns a promise that resolves or rejects as soon as one of the promises in the `promises` Array resolves or rejects, with the value or reason from that promise.
-
-#### pinkie.reject(reason)
-
-Returns a Promise object that is rejected with the given `reason`.
-
-#### pinkie.resolve(value)
-
-Returns a Promise object that is resolved with the given `value`. If the `value` is a thenable (i.e. has a then method), the returned promise will "follow" that thenable, adopting its eventual state; otherwise the returned promise will be fulfilled with the `value`.
-
-
-## Related
-
-- [pinkie-promise](https://github.com/floatdrop/pinkie-promise) - Returns the native Promise or this module
-
-
-## License
-
-MIT © [Vsevolod Strukchinsky](http://github.com/floatdrop)
diff --git a/node_modules/posix-character-classes/LICENSE b/node_modules/posix-character-classes/LICENSE
deleted file mode 100644
index b11cb79..0000000
--- a/node_modules/posix-character-classes/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2016-2017, 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/posix-character-classes/README.md b/node_modules/posix-character-classes/README.md
deleted file mode 100644
index 894ae23..0000000
--- a/node_modules/posix-character-classes/README.md
+++ /dev/null
@@ -1,103 +0,0 @@
-# posix-character-classes [![NPM version](https://img.shields.io/npm/v/posix-character-classes.svg?style=flat)](https://www.npmjs.com/package/posix-character-classes) [![NPM monthly downloads](https://img.shields.io/npm/dm/posix-character-classes.svg?style=flat)](https://npmjs.org/package/posix-character-classes) [![NPM total downloads](https://img.shields.io/npm/dt/posix-character-classes.svg?style=flat)](https://npmjs.org/package/posix-character-classes) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/posix-character-classes.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/posix-character-classes)
-
-> POSIX character classes for creating regular expressions.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save posix-character-classes
-```
-
-Install with [yarn](https://yarnpkg.com):
-
-```sh
-$ yarn add posix-character-classes
-```
-
-## Usage
-
-```js
-var posix = require('posix-character-classes');
-console.log(posix.alpha);
-//=> 'A-Za-z'
-```
-
-## POSIX Character classes
-
-The POSIX standard supports the following classes or categories of charactersh (note that classes must be defined within brackets):
-
-| **POSIX class** | **Equivalent to** | **Matches** |
-| --- | --- | --- |
-| `[:alnum:]` | `[A-Za-z0-9]` | digits, uppercase and lowercase letters |
-| `[:alpha:]` | `[A-Za-z]` | upper- and lowercase letters |
-| `[:ascii:]` | `[\x00-\x7F]` | ASCII characters |
-| `[:blank:]` | `[ \t]` | space and TAB characters only |
-| `[:cntrl:]` | `[\x00-\x1F\x7F]` | Control characters |
-| `[:digit:]` | `[0-9]` | digits |
-| `[:graph:]` | `[^[:cntrl:]]` | graphic characters (all characters which have graphic representation) |
-| `[:lower:]` | `[a-z]` | lowercase letters |
-| `[:print:]` | `[[:graph] ]` | graphic characters and space |
-| `[:punct:]` | ``[-!"#$%&'()*+,./:;<=>?@[]^_`{ | }~]`` | all punctuation characters (all graphic characters except letters and digits) |
-| `[:space:]` | `[ \t\n\r\f\v]` | all blank (whitespace) characters, including spaces, tabs, new lines, carriage returns, form feeds, and vertical tabs |
-| `[:upper:]` | `[A-Z]` | uppercase letters |
-| `[:word:]` | `[A-Za-z0-9_]` | word characters |
-| `[:xdigit:]` | `[0-9A-Fa-f]` | hexadecimal digits |
-
-## Examples
-
-* `a[[:digit:]]b` matches `a0b`, `a1b`, ..., `a9b`.
-* `a[:digit:]b` is invalid, character classes must be enclosed in brackets
-* `[[:digit:]abc]` matches any digit, as well as `a`, `b`, and `c`.
-* `[abc[:digit:]]` is the same as the previous, matching any digit, as well as `a`, `b`, and `c`
-* `[^ABZ[:lower:]]` matches any character except lowercase letters, `A`, `B`, and `Z`.
-
-## About
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.5.0, on April 20, 2017._
-
-
-
\ No newline at end of file
diff --git a/node_modules/posix-character-classes/index.js b/node_modules/posix-character-classes/index.js
deleted file mode 100644
index 19f1c98..0000000
--- a/node_modules/posix-character-classes/index.js
+++ /dev/null
@@ -1,22 +0,0 @@
-'use strict';
-
-/**
- * POSIX character classes
- */
-
-module.exports = {
- alnum: 'a-zA-Z0-9',
- alpha: 'a-zA-Z',
- ascii: '\\x00-\\x7F',
- blank: ' \\t',
- cntrl: '\\x00-\\x1F\\x7F',
- digit: '0-9',
- graph: '\\x21-\\x7E',
- lower: 'a-z',
- print: '\\x20-\\x7E ',
- punct: '\\-!"#$%&\'()\\*+,./:;<=>?@[\\]^_`{|}~',
- space: ' \\t\\r\\n\\v\\f',
- upper: 'A-Z',
- word: 'A-Za-z0-9_',
- xdigit: 'A-Fa-f0-9'
-};
diff --git a/node_modules/posix-character-classes/package.json b/node_modules/posix-character-classes/package.json
deleted file mode 100644
index acce4ba..0000000
--- a/node_modules/posix-character-classes/package.json
+++ /dev/null
@@ -1,54 +0,0 @@
-{
- "name": "posix-character-classes",
- "description": "POSIX character classes for creating regular expressions.",
- "version": "0.1.1",
- "homepage": "https://github.com/jonschlinkert/posix-character-classes",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/posix-character-classes",
- "bugs": {
- "url": "https://github.com/jonschlinkert/posix-character-classes/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "devDependencies": {
- "gulp-format-md": "^0.1.12",
- "mocha": "^3.2.0"
- },
- "keywords": [
- "character",
- "classes",
- "posix"
- ],
- "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"
- ]
- }
-}
diff --git a/node_modules/pretty-hrtime/.jshintignore b/node_modules/pretty-hrtime/.jshintignore
deleted file mode 100644
index cb28eb3..0000000
--- a/node_modules/pretty-hrtime/.jshintignore
+++ /dev/null
@@ -1 +0,0 @@
-node_modules/**
diff --git a/node_modules/pretty-hrtime/.npmignore b/node_modules/pretty-hrtime/.npmignore
deleted file mode 100644
index 094a5f3..0000000
--- a/node_modules/pretty-hrtime/.npmignore
+++ /dev/null
@@ -1,10 +0,0 @@
-.DS_Store
-*.log
-node_modules
-build
-*.node
-components
-*.orig
-.idea
-test
-.travis.yml
diff --git a/node_modules/pretty-hrtime/LICENSE b/node_modules/pretty-hrtime/LICENSE
deleted file mode 100644
index b7346ab..0000000
--- a/node_modules/pretty-hrtime/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-Copyright (c) 2013 [Richardson & Sons, LLC](http://richardsonandsons.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/pretty-hrtime/README.md b/node_modules/pretty-hrtime/README.md
deleted file mode 100644
index f4be28d..0000000
--- a/node_modules/pretty-hrtime/README.md
+++ /dev/null
@@ -1,57 +0,0 @@
-[![Build Status](https://secure.travis-ci.org/robrich/pretty-hrtime.png?branch=master)](https://travis-ci.org/robrich/pretty-hrtime)
-[![Dependency Status](https://david-dm.org/robrich/pretty-hrtime.png)](https://david-dm.org/robrich/pretty-hrtime)
-
-pretty-hrtime
-============
-
-[process.hrtime()](http://nodejs.org/api/process.html#process_process_hrtime) to words
-
-Usage
------
-
-```javascript
-var prettyHrtime = require('pretty-hrtime');
-
-var start = process.hrtime();
-// do stuff
-var end = process.hrtime(start);
-
-var words = prettyHrtime(end);
-console.log(words); // '1.2 ms'
-
-words = prettyHrtime(end, {verbose:true});
-console.log(words); // '1 millisecond 209 microseconds'
-
-words = prettyHrtime(end, {precise:true});
-console.log(words); // '1.20958 ms'
-```
-
-Note: process.hrtime() has been available since 0.7.6.
-See [http://nodejs.org/changelog.html](http://nodejs.org/changelog.html)
-and [https://github.com/joyent/node/commit/f06abd](https://github.com/joyent/node/commit/f06abd).
-
-LICENSE
--------
-
-(MIT License)
-
-Copyright (c) 2013 [Richardson & Sons, LLC](http://richardsonandsons.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/pretty-hrtime/index.js b/node_modules/pretty-hrtime/index.js
deleted file mode 100644
index bed3f89..0000000
--- a/node_modules/pretty-hrtime/index.js
+++ /dev/null
@@ -1,80 +0,0 @@
-/*jshint node:true */
-
-"use strict";
-
-var minimalDesc = ['h', 'min', 's', 'ms', 'μs', 'ns'];
-var verboseDesc = ['hour', 'minute', 'second', 'millisecond', 'microsecond', 'nanosecond'];
-var convert = [60*60, 60, 1, 1e6, 1e3, 1];
-
-module.exports = function (source, opts) {
- var verbose, precise, i, spot, sourceAtStep, valAtStep, decimals, strAtStep, results, totalSeconds;
-
- verbose = false;
- precise = false;
- if (opts) {
- verbose = opts.verbose || false;
- precise = opts.precise || false;
- }
-
- if (!Array.isArray(source) || source.length !== 2) {
- return '';
- }
- if (typeof source[0] !== 'number' || typeof source[1] !== 'number') {
- return '';
- }
-
- // normalize source array due to changes in node v5.4+
- if (source[1] < 0) {
- totalSeconds = source[0] + source[1] / 1e9;
- source[0] = parseInt(totalSeconds);
- source[1] = parseFloat((totalSeconds % 1).toPrecision(9)) * 1e9;
- }
-
- results = '';
-
- // foreach unit
- for (i = 0; i < 6; i++) {
- spot = i < 3 ? 0 : 1; // grabbing first or second spot in source array
- sourceAtStep = source[spot];
- if (i !== 3 && i !== 0) {
- sourceAtStep = sourceAtStep % convert[i-1]; // trim off previous portions
- }
- if (i === 2) {
- sourceAtStep += source[1]/1e9; // get partial seconds from other portion of the array
- }
- valAtStep = sourceAtStep / convert[i]; // val at this unit
- if (valAtStep >= 1) {
- if (verbose) {
- valAtStep = Math.floor(valAtStep); // deal in whole units, subsequent laps will get the decimal portion
- }
- if (!precise) {
- // don't fling too many decimals
- decimals = valAtStep >= 10 ? 0 : 2;
- strAtStep = valAtStep.toFixed(decimals);
- } else {
- strAtStep = valAtStep.toString();
- }
- if (strAtStep.indexOf('.') > -1 && strAtStep[strAtStep.length-1] === '0') {
- strAtStep = strAtStep.replace(/\.?0+$/,''); // remove trailing zeros
- }
- if (results) {
- results += ' '; // append space if we have a previous value
- }
- results += strAtStep; // append the value
- // append units
- if (verbose) {
- results += ' '+verboseDesc[i];
- if (strAtStep !== '1') {
- results += 's';
- }
- } else {
- results += ' '+minimalDesc[i];
- }
- if (!verbose) {
- break; // verbose gets as many groups as necessary, the rest get only one
- }
- }
- }
-
- return results;
-};
diff --git a/node_modules/pretty-hrtime/package.json b/node_modules/pretty-hrtime/package.json
deleted file mode 100644
index e4a7985..0000000
--- a/node_modules/pretty-hrtime/package.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
- "name": "pretty-hrtime",
- "description": "process.hrtime() to words",
- "version": "1.0.3",
- "homepage": "https://github.com/robrich/pretty-hrtime",
- "repository": "git://github.com/robrich/pretty-hrtime.git",
- "author": "Rob Richardson (http://robrich.org/)",
- "main": "./index.js",
- "keywords": [
- "hrtime",
- "benchmark"
- ],
- "devDependencies": {
- "jshint": "^2.9.4",
- "mocha": "^3.1.2",
- "should": "^11.1.1"
- },
- "scripts": {
- "test": "mocha && jshint ."
- },
- "engines": {
- "node": ">= 0.8"
- },
- "license": "MIT"
-}
diff --git a/node_modules/process-nextick-args/index.js b/node_modules/process-nextick-args/index.js
deleted file mode 100644
index 3eecf11..0000000
--- a/node_modules/process-nextick-args/index.js
+++ /dev/null
@@ -1,45 +0,0 @@
-'use strict';
-
-if (typeof process === 'undefined' ||
- !process.version ||
- process.version.indexOf('v0.') === 0 ||
- process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {
- module.exports = { nextTick: nextTick };
-} else {
- module.exports = process
-}
-
-function nextTick(fn, arg1, arg2, arg3) {
- if (typeof fn !== 'function') {
- throw new TypeError('"callback" argument must be a function');
- }
- var len = arguments.length;
- var args, i;
- switch (len) {
- case 0:
- case 1:
- return process.nextTick(fn);
- case 2:
- return process.nextTick(function afterTickOne() {
- fn.call(null, arg1);
- });
- case 3:
- return process.nextTick(function afterTickTwo() {
- fn.call(null, arg1, arg2);
- });
- case 4:
- return process.nextTick(function afterTickThree() {
- fn.call(null, arg1, arg2, arg3);
- });
- default:
- args = new Array(len - 1);
- i = 0;
- while (i < args.length) {
- args[i++] = arguments[i];
- }
- return process.nextTick(function afterTick() {
- fn.apply(null, args);
- });
- }
-}
-
diff --git a/node_modules/process-nextick-args/license.md b/node_modules/process-nextick-args/license.md
deleted file mode 100644
index c67e353..0000000
--- a/node_modules/process-nextick-args/license.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright (c) 2015 Calvin Metcalf
-
-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/process-nextick-args/package.json b/node_modules/process-nextick-args/package.json
deleted file mode 100644
index 6070b72..0000000
--- a/node_modules/process-nextick-args/package.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
- "name": "process-nextick-args",
- "version": "2.0.1",
- "description": "process.nextTick but always with args",
- "main": "index.js",
- "files": [
- "index.js"
- ],
- "scripts": {
- "test": "node test.js"
- },
- "repository": {
- "type": "git",
- "url": "https://github.com/calvinmetcalf/process-nextick-args.git"
- },
- "author": "",
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/calvinmetcalf/process-nextick-args/issues"
- },
- "homepage": "https://github.com/calvinmetcalf/process-nextick-args",
- "devDependencies": {
- "tap": "~0.2.6"
- }
-}
diff --git a/node_modules/process-nextick-args/readme.md b/node_modules/process-nextick-args/readme.md
deleted file mode 100644
index ecb432c..0000000
--- a/node_modules/process-nextick-args/readme.md
+++ /dev/null
@@ -1,18 +0,0 @@
-process-nextick-args
-=====
-
-[![Build Status](https://travis-ci.org/calvinmetcalf/process-nextick-args.svg?branch=master)](https://travis-ci.org/calvinmetcalf/process-nextick-args)
-
-```bash
-npm install --save process-nextick-args
-```
-
-Always be able to pass arguments to process.nextTick, no matter the platform
-
-```js
-var pna = require('process-nextick-args');
-
-pna.nextTick(function (a, b, c) {
- console.log(a, b, c);
-}, 'step', 3, 'profit');
-```
diff --git a/node_modules/pump/.travis.yml b/node_modules/pump/.travis.yml
deleted file mode 100644
index 17f9433..0000000
--- a/node_modules/pump/.travis.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-language: node_js
-node_js:
- - "0.10"
-
-script: "npm test"
diff --git a/node_modules/pump/LICENSE b/node_modules/pump/LICENSE
deleted file mode 100644
index 757562e..0000000
--- a/node_modules/pump/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014 Mathias Buus
-
-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.
\ No newline at end of file
diff --git a/node_modules/pump/README.md b/node_modules/pump/README.md
deleted file mode 100644
index 5029b27..0000000
--- a/node_modules/pump/README.md
+++ /dev/null
@@ -1,56 +0,0 @@
-# pump
-
-pump is a small node module that pipes streams together and destroys all of them if one of them closes.
-
-```
-npm install pump
-```
-
-[![build status](http://img.shields.io/travis/mafintosh/pump.svg?style=flat)](http://travis-ci.org/mafintosh/pump)
-
-## What problem does it solve?
-
-When using standard `source.pipe(dest)` source will _not_ be destroyed if dest emits close or an error.
-You are also not able to provide a callback to tell when then pipe has finished.
-
-pump does these two things for you
-
-## Usage
-
-Simply pass the streams you want to pipe together to pump and add an optional callback
-
-``` js
-var pump = require('pump')
-var fs = require('fs')
-
-var source = fs.createReadStream('/dev/random')
-var dest = fs.createWriteStream('/dev/null')
-
-pump(source, dest, function(err) {
- console.log('pipe finished', err)
-})
-
-setTimeout(function() {
- dest.destroy() // when dest is closed pump will destroy source
-}, 1000)
-```
-
-You can use pump to pipe more than two streams together as well
-
-``` js
-var transform = someTransformStream()
-
-pump(source, transform, anotherTransform, dest, function(err) {
- console.log('pipe finished', err)
-})
-```
-
-If `source`, `transform`, `anotherTransform` or `dest` closes all of them will be destroyed.
-
-## License
-
-MIT
-
-## Related
-
-`pump` is part of the [mississippi stream utility collection](https://github.com/maxogden/mississippi) which includes more useful stream modules similar to this one.
diff --git a/node_modules/pump/index.js b/node_modules/pump/index.js
deleted file mode 100644
index d9ca033..0000000
--- a/node_modules/pump/index.js
+++ /dev/null
@@ -1,82 +0,0 @@
-var once = require('once')
-var eos = require('end-of-stream')
-var fs = require('fs') // we only need fs to get the ReadStream and WriteStream prototypes
-
-var noop = function () {}
-var ancient = /^v?\.0/.test(process.version)
-
-var isFn = function (fn) {
- return typeof fn === 'function'
-}
-
-var isFS = function (stream) {
- if (!ancient) return false // newer node version do not need to care about fs is a special way
- if (!fs) return false // browser
- return (stream instanceof (fs.ReadStream || noop) || stream instanceof (fs.WriteStream || noop)) && isFn(stream.close)
-}
-
-var isRequest = function (stream) {
- return stream.setHeader && isFn(stream.abort)
-}
-
-var destroyer = function (stream, reading, writing, callback) {
- callback = once(callback)
-
- var closed = false
- stream.on('close', function () {
- closed = true
- })
-
- eos(stream, {readable: reading, writable: writing}, function (err) {
- if (err) return callback(err)
- closed = true
- callback()
- })
-
- var destroyed = false
- return function (err) {
- if (closed) return
- if (destroyed) return
- destroyed = true
-
- if (isFS(stream)) return stream.close(noop) // use close for fs streams to avoid fd leaks
- if (isRequest(stream)) return stream.abort() // request.destroy just do .end - .abort is what we want
-
- if (isFn(stream.destroy)) return stream.destroy()
-
- callback(err || new Error('stream was destroyed'))
- }
-}
-
-var call = function (fn) {
- fn()
-}
-
-var pipe = function (from, to) {
- return from.pipe(to)
-}
-
-var pump = function () {
- var streams = Array.prototype.slice.call(arguments)
- var callback = isFn(streams[streams.length - 1] || noop) && streams.pop() || noop
-
- if (Array.isArray(streams[0])) streams = streams[0]
- if (streams.length < 2) throw new Error('pump requires two streams per minimum')
-
- var error
- var destroys = streams.map(function (stream, i) {
- var reading = i < streams.length - 1
- var writing = i > 0
- return destroyer(stream, reading, writing, function (err) {
- if (!error) error = err
- if (err) destroys.forEach(call)
- if (reading) return
- destroys.forEach(call)
- callback(error)
- })
- })
-
- streams.reduce(pipe)
-}
-
-module.exports = pump
diff --git a/node_modules/pump/package.json b/node_modules/pump/package.json
deleted file mode 100644
index 0f921f6..0000000
--- a/node_modules/pump/package.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "name": "pump",
- "version": "2.0.1",
- "repository": "git://github.com/mafintosh/pump.git",
- "license": "MIT",
- "description": "pipe streams together and close all of them if one of them closes",
- "browser": {
- "fs": false
- },
- "keywords": [
- "streams",
- "pipe",
- "destroy",
- "callback"
- ],
- "author": "Mathias Buus Madsen ",
- "dependencies": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.1"
- },
- "scripts": {
- "test": "node test-browser.js && node test-node.js"
- }
-}
diff --git a/node_modules/pump/test-browser.js b/node_modules/pump/test-browser.js
deleted file mode 100644
index 75ea4a2..0000000
--- a/node_modules/pump/test-browser.js
+++ /dev/null
@@ -1,62 +0,0 @@
-var stream = require('stream')
-var pump = require('./index')
-
-var rs = new stream.Readable()
-var ws = new stream.Writable()
-
-rs._read = function (size) {
- this.push(Buffer(size).fill('abc'))
-}
-
-ws._write = function (chunk, encoding, cb) {
- setTimeout(function () {
- cb()
- }, 100)
-}
-
-var toHex = function () {
- var reverse = new (require('stream').Transform)()
-
- reverse._transform = function (chunk, enc, callback) {
- reverse.push(chunk.toString('hex'))
- callback()
- }
-
- return reverse
-}
-
-var wsClosed = false
-var rsClosed = false
-var callbackCalled = false
-
-var check = function () {
- if (wsClosed && rsClosed && callbackCalled) {
- console.log('test-browser.js passes')
- clearTimeout(timeout)
- }
-}
-
-ws.on('finish', function () {
- wsClosed = true
- check()
-})
-
-rs.on('end', function () {
- rsClosed = true
- check()
-})
-
-pump(rs, toHex(), toHex(), toHex(), ws, function () {
- callbackCalled = true
- check()
-})
-
-setTimeout(function () {
- rs.push(null)
- rs.emit('close')
-}, 1000)
-
-var timeout = setTimeout(function () {
- check()
- throw new Error('timeout')
-}, 5000)
diff --git a/node_modules/pump/test-node.js b/node_modules/pump/test-node.js
deleted file mode 100644
index 034a654..0000000
--- a/node_modules/pump/test-node.js
+++ /dev/null
@@ -1,53 +0,0 @@
-var pump = require('./index')
-
-var rs = require('fs').createReadStream('/dev/random')
-var ws = require('fs').createWriteStream('/dev/null')
-
-var toHex = function () {
- var reverse = new (require('stream').Transform)()
-
- reverse._transform = function (chunk, enc, callback) {
- reverse.push(chunk.toString('hex'))
- callback()
- }
-
- return reverse
-}
-
-var wsClosed = false
-var rsClosed = false
-var callbackCalled = false
-
-var check = function () {
- if (wsClosed && rsClosed && callbackCalled) {
- console.log('test-node.js passes')
- clearTimeout(timeout)
- }
-}
-
-ws.on('close', function () {
- wsClosed = true
- check()
-})
-
-rs.on('close', function () {
- rsClosed = true
- check()
-})
-
-var res = pump(rs, toHex(), toHex(), toHex(), ws, function () {
- callbackCalled = true
- check()
-})
-
-if (res) {
- process.exit(1)
-}
-
-setTimeout(function () {
- rs.destroy()
-}, 1000)
-
-var timeout = setTimeout(function () {
- throw new Error('timeout')
-}, 5000)
diff --git a/node_modules/pumpify/.travis.yml b/node_modules/pumpify/.travis.yml
deleted file mode 100644
index 32e71a6..0000000
--- a/node_modules/pumpify/.travis.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-language: node_js
-
-node_js:
- - "0.10"
- - "4"
- - "5"
-
-sudo: false
diff --git a/node_modules/pumpify/LICENSE b/node_modules/pumpify/LICENSE
deleted file mode 100644
index 757562e..0000000
--- a/node_modules/pumpify/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014 Mathias Buus
-
-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.
\ No newline at end of file
diff --git a/node_modules/pumpify/README.md b/node_modules/pumpify/README.md
deleted file mode 100644
index 4988f7b..0000000
--- a/node_modules/pumpify/README.md
+++ /dev/null
@@ -1,56 +0,0 @@
-# pumpify
-
-Combine an array of streams into a single duplex stream using [pump](https://github.com/mafintosh/pump) and [duplexify](https://github.com/mafintosh/duplexify).
-If one of the streams closes/errors all streams in the pipeline will be destroyed.
-
-```
-npm install pumpify
-```
-
-[![build status](http://img.shields.io/travis/mafintosh/pumpify.svg?style=flat)](http://travis-ci.org/mafintosh/pumpify)
-
-## Usage
-
-Pass the streams you want to pipe together to pumpify `pipeline = pumpify(s1, s2, s3, ...)`.
-`pipeline` is a duplex stream that writes to the first streams and reads from the last one.
-Streams are piped together using [pump](https://github.com/mafintosh/pump) so if one of them closes
-all streams will be destroyed.
-
-``` js
-var pumpify = require('pumpify')
-var tar = require('tar-fs')
-var zlib = require('zlib')
-var fs = require('fs')
-
-var untar = pumpify(zlib.createGunzip(), tar.extract('output-folder'))
-// you can also pass an array instead
-// var untar = pumpify([zlib.createGunzip(), tar.extract('output-folder')])
-
-fs.createReadStream('some-gzipped-tarball.tgz').pipe(untar)
-```
-
-If you are pumping object streams together use `pipeline = pumpify.obj(s1, s2, ...)`.
-Call `pipeline.destroy()` to destroy the pipeline (including the streams passed to pumpify).
-
-### Using `setPipeline(s1, s2, ...)`
-
-Similar to [duplexify](https://github.com/mafintosh/duplexify) you can also define the pipeline asynchronously using `setPipeline(s1, s2, ...)`
-
-``` js
-var untar = pumpify()
-
-setTimeout(function() {
- // will start draining the input now
- untar.setPipeline(zlib.createGunzip(), tar.extract('output-folder'))
-}, 1000)
-
-fs.createReadStream('some-gzipped-tarball.tgz').pipe(untar)
-```
-
-## License
-
-MIT
-
-## Related
-
-`pumpify` is part of the [mississippi stream utility collection](https://github.com/maxogden/mississippi) which includes more useful stream modules similar to this one.
diff --git a/node_modules/pumpify/index.js b/node_modules/pumpify/index.js
deleted file mode 100644
index 473e256..0000000
--- a/node_modules/pumpify/index.js
+++ /dev/null
@@ -1,60 +0,0 @@
-var pump = require('pump')
-var inherits = require('inherits')
-var Duplexify = require('duplexify')
-
-var toArray = function(args) {
- if (!args.length) return []
- return Array.isArray(args[0]) ? args[0] : Array.prototype.slice.call(args)
-}
-
-var define = function(opts) {
- var Pumpify = function() {
- var streams = toArray(arguments)
- if (!(this instanceof Pumpify)) return new Pumpify(streams)
- Duplexify.call(this, null, null, opts)
- if (streams.length) this.setPipeline(streams)
- }
-
- inherits(Pumpify, Duplexify)
-
- Pumpify.prototype.setPipeline = function() {
- var streams = toArray(arguments)
- var self = this
- var ended = false
- var w = streams[0]
- var r = streams[streams.length-1]
-
- r = r.readable ? r : null
- w = w.writable ? w : null
-
- var onclose = function() {
- streams[0].emit('error', new Error('stream was destroyed'))
- }
-
- this.on('close', onclose)
- this.on('prefinish', function() {
- if (!ended) self.cork()
- })
-
- pump(streams, function(err) {
- self.removeListener('close', onclose)
- if (err) return self.destroy(err.message === 'premature close' ? null : err)
- ended = true
- // pump ends after the last stream is not writable *but*
- // pumpify still forwards the readable part so we need to catch errors
- // still, so reenable autoDestroy in this case
- if (self._autoDestroy === false) self._autoDestroy = true
- self.uncork()
- })
-
- if (this.destroyed) return onclose()
- this.setWritable(w)
- this.setReadable(r)
- }
-
- return Pumpify
-}
-
-module.exports = define({autoDestroy:false, destroy:false})
-module.exports.obj = define({autoDestroy: false, destroy:false, objectMode:true, highWaterMark:16})
-module.exports.ctor = define
diff --git a/node_modules/pumpify/package.json b/node_modules/pumpify/package.json
deleted file mode 100644
index 616e3c3..0000000
--- a/node_modules/pumpify/package.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "name": "pumpify",
- "version": "1.5.1",
- "description": "Combine an array of streams into a single duplex stream using pump and duplexify",
- "main": "index.js",
- "dependencies": {
- "duplexify": "^3.6.0",
- "inherits": "^2.0.3",
- "pump": "^2.0.0"
- },
- "devDependencies": {
- "tape": "^4.8.0",
- "through2": "^2.0.3"
- },
- "scripts": {
- "test": "tape test.js"
- },
- "repository": {
- "type": "git",
- "url": "git://github.com/mafintosh/pumpify"
- },
- "keywords": [
- "pump",
- "duplexify",
- "duplex",
- "streams",
- "stream",
- "pipeline",
- "combine"
- ],
- "author": "Mathias Buus",
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/mafintosh/pumpify/issues"
- },
- "homepage": "https://github.com/mafintosh/pumpify"
-}
diff --git a/node_modules/pumpify/test.js b/node_modules/pumpify/test.js
deleted file mode 100644
index b603c4d..0000000
--- a/node_modules/pumpify/test.js
+++ /dev/null
@@ -1,235 +0,0 @@
-var tape = require('tape')
-var through = require('through2')
-var pumpify = require('./')
-var stream = require('stream')
-var duplexify = require('duplexify')
-
-tape('basic', function(t) {
- t.plan(3)
-
- var pipeline = pumpify(
- through(function(data, enc, cb) {
- t.same(data.toString(), 'hello')
- cb(null, data.toString().toUpperCase())
- }),
- through(function(data, enc, cb) {
- t.same(data.toString(), 'HELLO')
- cb(null, data.toString().toLowerCase())
- })
- )
-
- pipeline.write('hello')
- pipeline.on('data', function(data) {
- t.same(data.toString(), 'hello')
- t.end()
- })
-})
-
-tape('3 times', function(t) {
- t.plan(4)
-
- var pipeline = pumpify(
- through(function(data, enc, cb) {
- t.same(data.toString(), 'hello')
- cb(null, data.toString().toUpperCase())
- }),
- through(function(data, enc, cb) {
- t.same(data.toString(), 'HELLO')
- cb(null, data.toString().toLowerCase())
- }),
- through(function(data, enc, cb) {
- t.same(data.toString(), 'hello')
- cb(null, data.toString().toUpperCase())
- })
- )
-
- pipeline.write('hello')
- pipeline.on('data', function(data) {
- t.same(data.toString(), 'HELLO')
- t.end()
- })
-})
-
-tape('destroy', function(t) {
- var test = through()
- test.destroy = function() {
- t.ok(true)
- t.end()
- }
-
- var pipeline = pumpify(through(), test)
-
- pipeline.destroy()
-})
-
-tape('close', function(t) {
- var test = through()
- var pipeline = pumpify(through(), test)
-
- pipeline.on('error', function(err) {
- t.same(err.message, 'lol')
- t.end()
- })
-
- test.emit('error', new Error('lol'))
-})
-
-tape('end waits for last one', function(t) {
- var ran = false
-
- var a = through()
- var b = through()
- var c = through(function(data, enc, cb) {
- setTimeout(function() {
- ran = true
- cb()
- }, 100)
- })
-
- var pipeline = pumpify(a, b, c)
-
- pipeline.write('foo')
- pipeline.end(function() {
- t.ok(ran)
- t.end()
- })
-
- t.ok(!ran)
-})
-
-tape('always wait for finish', function(t) {
- var a = new stream.Readable()
- a._read = function() {}
- a.push('hello')
-
- var pipeline = pumpify(a, through(), through())
- var ran = false
-
- pipeline.on('finish', function() {
- t.ok(ran)
- t.end()
- })
-
- setTimeout(function() {
- ran = true
- a.push(null)
- }, 100)
-})
-
-tape('async', function(t) {
- var pipeline = pumpify()
-
- t.plan(4)
-
- pipeline.write('hello')
- pipeline.on('data', function(data) {
- t.same(data.toString(), 'HELLO')
- t.end()
- })
-
- setTimeout(function() {
- pipeline.setPipeline(
- through(function(data, enc, cb) {
- t.same(data.toString(), 'hello')
- cb(null, data.toString().toUpperCase())
- }),
- through(function(data, enc, cb) {
- t.same(data.toString(), 'HELLO')
- cb(null, data.toString().toLowerCase())
- }),
- through(function(data, enc, cb) {
- t.same(data.toString(), 'hello')
- cb(null, data.toString().toUpperCase())
- })
- )
- }, 100)
-})
-
-tape('early destroy', function(t) {
- var a = through()
- var b = through()
- var c = through()
-
- b.destroy = function() {
- t.ok(true)
- t.end()
- }
-
- var pipeline = pumpify()
-
- pipeline.destroy()
- setTimeout(function() {
- pipeline.setPipeline(a, b, c)
- }, 100)
-})
-
-tape('preserves error', function (t) {
- var a = through()
- var b = through(function (data, enc, cb) {
- cb(new Error('stop'))
- })
- var c = through()
- var s = pumpify()
-
- s.on('error', function (err) {
- t.same(err.message, 'stop')
- t.end()
- })
-
- s.setPipeline(a, b, c)
- s.resume()
- s.write('hi')
-})
-
-tape('preserves error again', function (t) {
- var ws = new stream.Writable()
- var rs = new stream.Readable({highWaterMark: 16})
-
- ws._write = function (data, enc, cb) {
- cb(null)
- }
-
- rs._read = function () {
- process.nextTick(function () {
- rs.push('hello world')
- })
- }
-
- var pumpifyErr = pumpify(
- through(),
- through(function(chunk, _, cb) {
- cb(new Error('test'))
- }),
- ws
- )
-
- rs.pipe(pumpifyErr)
- .on('error', function (err) {
- t.ok(err)
- t.ok(err.message !== 'premature close', 'does not close with premature close')
- t.end()
- })
-})
-
-tape('returns error from duplexify', function (t) {
- var a = through()
- var b = duplexify()
- var s = pumpify()
-
- s.setPipeline(a, b)
-
- s.on('error', function (err) {
- t.same(err.message, 'stop')
- t.end()
- })
-
- s.write('data')
- // Test passes if `.end()` is not called
- s.end()
-
- b.setWritable(through())
-
- setImmediate(function () {
- b.destroy(new Error('stop'))
- })
-})
diff --git a/node_modules/read-pkg-up/index.js b/node_modules/read-pkg-up/index.js
deleted file mode 100644
index beb3d48..0000000
--- a/node_modules/read-pkg-up/index.js
+++ /dev/null
@@ -1,31 +0,0 @@
-'use strict';
-var findUp = require('find-up');
-var readPkg = require('read-pkg');
-
-module.exports = function (opts) {
- return findUp('package.json', opts).then(function (fp) {
- if (!fp) {
- return {};
- }
-
- return readPkg(fp, opts).then(function (pkg) {
- return {
- pkg: pkg,
- path: fp
- };
- });
- });
-};
-
-module.exports.sync = function (opts) {
- var fp = findUp.sync('package.json', opts);
-
- if (!fp) {
- return {};
- }
-
- return {
- pkg: readPkg.sync(fp, opts),
- path: fp
- };
-};
diff --git a/node_modules/read-pkg-up/license b/node_modules/read-pkg-up/license
deleted file mode 100644
index 654d0bf..0000000
--- a/node_modules/read-pkg-up/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus (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/read-pkg-up/package.json b/node_modules/read-pkg-up/package.json
deleted file mode 100644
index 0f7ff70..0000000
--- a/node_modules/read-pkg-up/package.json
+++ /dev/null
@@ -1,59 +0,0 @@
-{
- "name": "read-pkg-up",
- "version": "1.0.1",
- "description": "Read the closest package.json file",
- "license": "MIT",
- "repository": "sindresorhus/read-pkg-up",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "files": [
- "index.js"
- ],
- "keywords": [
- "json",
- "read",
- "parse",
- "file",
- "fs",
- "graceful",
- "load",
- "pkg",
- "package",
- "find",
- "up",
- "find-up",
- "findup",
- "look-up",
- "look",
- "file",
- "search",
- "match",
- "package",
- "resolve",
- "parent",
- "parents",
- "folder",
- "directory",
- "dir",
- "walk",
- "walking",
- "path"
- ],
- "dependencies": {
- "find-up": "^1.0.0",
- "read-pkg": "^1.0.0"
- },
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- }
-}
diff --git a/node_modules/read-pkg-up/readme.md b/node_modules/read-pkg-up/readme.md
deleted file mode 100644
index dbd88f3..0000000
--- a/node_modules/read-pkg-up/readme.md
+++ /dev/null
@@ -1,79 +0,0 @@
-# read-pkg-up [![Build Status](https://travis-ci.org/sindresorhus/read-pkg-up.svg?branch=master)](https://travis-ci.org/sindresorhus/read-pkg-up)
-
-> Read the closest package.json file
-
-
-## Why
-
-- [Finds the closest package.json](https://github.com/sindresorhus/find-up)
-- [Gracefully handles filesystem issues](https://github.com/isaacs/node-graceful-fs)
-- [Strips UTF-8 BOM](https://github.com/sindresorhus/strip-bom)
-- [Throws more helpful JSON errors](https://github.com/sindresorhus/parse-json)
-- [Normalizes the data](https://github.com/npm/normalize-package-data#what-normalization-currently-entails)
-
-
-## Install
-
-```
-$ npm install --save read-pkg-up
-```
-
-
-## Usage
-
-```js
-var readPkgUp = require('read-pkg-up');
-
-readPkgUp().then(function (result) {
- console.log(result);
- /*
- {
- pkg: {
- name: 'awesome-package',
- version: '1.0.0',
- ...
- },
- path: '/Users/sindresorhus/dev/awesome-package'
- }
- */
-});
-```
-
-
-## API
-
-### readPkgUp([options])
-
-Returns a promise that resolves to a result object.
-
-### readPkgUp.sync([options])
-
-Returns a result object.
-
-#### options
-
-##### cwd
-
-Type: `string`
-Default: `.`
-
-Directory to start looking for a package.json file.
-
-##### normalize
-
-Type: `boolean`
-Default: `true`
-
-[Normalize](https://github.com/npm/normalize-package-data#what-normalization-currently-entails) the package data.
-
-
-## Related
-
-- [read-pkg](https://github.com/sindresorhus/read-pkg) - Read a package.json file
-- [find-up](https://github.com/sindresorhus/find-up) - Find a file by walking up parent directories
-- [pkg-conf](https://github.com/sindresorhus/pkg-conf) - Get namespaced config from the closest package.json
-
-
-## License
-
-MIT © [Sindre Sorhus](http://sindresorhus.com)
diff --git a/node_modules/read-pkg/index.js b/node_modules/read-pkg/index.js
deleted file mode 100644
index c5c3afa..0000000
--- a/node_modules/read-pkg/index.js
+++ /dev/null
@@ -1,48 +0,0 @@
-'use strict';
-var path = require('path');
-var loadJsonFile = require('load-json-file');
-var normalizePackageData = require('normalize-package-data');
-var pathType = require('path-type');
-
-module.exports = function (fp, opts) {
- if (typeof fp !== 'string') {
- opts = fp;
- fp = '.';
- }
-
- opts = opts || {};
-
- return pathType.dir(fp)
- .then(function (isDir) {
- if (isDir) {
- fp = path.join(fp, 'package.json');
- }
-
- return loadJsonFile(fp);
- })
- .then(function (x) {
- if (opts.normalize !== false) {
- normalizePackageData(x);
- }
-
- return x;
- });
-};
-
-module.exports.sync = function (fp, opts) {
- if (typeof fp !== 'string') {
- opts = fp;
- fp = '.';
- }
-
- opts = opts || {};
- fp = pathType.dirSync(fp) ? path.join(fp, 'package.json') : fp;
-
- var x = loadJsonFile.sync(fp);
-
- if (opts.normalize !== false) {
- normalizePackageData(x);
- }
-
- return x;
-};
diff --git a/node_modules/read-pkg/license b/node_modules/read-pkg/license
deleted file mode 100644
index 654d0bf..0000000
--- a/node_modules/read-pkg/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus (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/read-pkg/package.json b/node_modules/read-pkg/package.json
deleted file mode 100644
index 594b0c2..0000000
--- a/node_modules/read-pkg/package.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "name": "read-pkg",
- "version": "1.1.0",
- "description": "Read a package.json file",
- "license": "MIT",
- "repository": "sindresorhus/read-pkg",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "files": [
- "index.js"
- ],
- "keywords": [
- "json",
- "read",
- "parse",
- "file",
- "fs",
- "graceful",
- "load",
- "pkg",
- "package",
- "normalize"
- ],
- "dependencies": {
- "load-json-file": "^1.0.0",
- "normalize-package-data": "^2.3.2",
- "path-type": "^1.0.0"
- },
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- }
-}
diff --git a/node_modules/read-pkg/readme.md b/node_modules/read-pkg/readme.md
deleted file mode 100644
index 9a0d4cc..0000000
--- a/node_modules/read-pkg/readme.md
+++ /dev/null
@@ -1,79 +0,0 @@
-# read-pkg [![Build Status](https://travis-ci.org/sindresorhus/read-pkg.svg?branch=master)](https://travis-ci.org/sindresorhus/read-pkg)
-
-> Read a package.json file
-
-
-## Why
-
-- [Gracefully handles filesystem issues](https://github.com/isaacs/node-graceful-fs)
-- [Strips UTF-8 BOM](https://github.com/sindresorhus/strip-bom)
-- [Throws more helpful JSON errors](https://github.com/sindresorhus/parse-json)
-- [Normalizes the data](https://github.com/npm/normalize-package-data#what-normalization-currently-entails)
-
-
-## Install
-
-```
-$ npm install --save read-pkg
-```
-
-
-## Usage
-
-```js
-var readPkg = require('read-pkg');
-
-readPkg().then(function (pkg) {
- console.log(pkg);
- //=> {name: 'read-pkg', ...}
-});
-
-readPkg(__dirname).then(function (pkg) {
- console.log(pkg);
- //=> {name: 'read-pkg', ...}
-});
-
-readPkg(path.join('unicorn', 'package.json')).then(function (pkg) {
- console.log(pkg);
- //=> {name: 'read-pkg', ...}
-});
-```
-
-
-## API
-
-### readPkg([path], [options])
-
-Returns a promise that resolves to the parsed JSON.
-
-### readPkg.sync([path], [options])
-
-Returns the parsed JSON.
-
-#### path
-
-Type: `string`
-Default: `.`
-
-Path to a `package.json` file or its directory.
-
-#### options
-
-##### normalize
-
-Type: `boolean`
-Default: `true`
-
-[Normalize](https://github.com/npm/normalize-package-data#what-normalization-currently-entails) the package data.
-
-
-## Related
-
-- [read-pkg-up](https://github.com/sindresorhus/read-pkg-up) - Read the closest package.json file
-- [write-pkg](https://github.com/sindresorhus/write-pkg) - Write a `package.json` file
-- [load-json-file](https://github.com/sindresorhus/load-json-file) - Read and parse a JSON file
-
-
-## License
-
-MIT © [Sindre Sorhus](http://sindresorhus.com)
diff --git a/node_modules/readable-stream/.travis.yml b/node_modules/readable-stream/.travis.yml
deleted file mode 100644
index f62cdac..0000000
--- a/node_modules/readable-stream/.travis.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-sudo: false
-language: node_js
-before_install:
- - (test $NPM_LEGACY && npm install -g npm@2 && npm install -g npm@3) || true
-notifications:
- email: false
-matrix:
- fast_finish: true
- include:
- - node_js: '0.8'
- env: NPM_LEGACY=true
- - node_js: '0.10'
- env: NPM_LEGACY=true
- - node_js: '0.11'
- env: NPM_LEGACY=true
- - node_js: '0.12'
- env: NPM_LEGACY=true
- - node_js: 1
- env: NPM_LEGACY=true
- - node_js: 2
- env: NPM_LEGACY=true
- - node_js: 3
- env: NPM_LEGACY=true
- - node_js: 4
- - node_js: 5
- - node_js: 6
- - node_js: 7
- - node_js: 8
- - node_js: 9
-script: "npm run test"
-env:
- global:
- - secure: rE2Vvo7vnjabYNULNyLFxOyt98BoJexDqsiOnfiD6kLYYsiQGfr/sbZkPMOFm9qfQG7pjqx+zZWZjGSswhTt+626C0t/njXqug7Yps4c3dFblzGfreQHp7wNX5TFsvrxd6dAowVasMp61sJcRnB2w8cUzoe3RAYUDHyiHktwqMc=
- - secure: g9YINaKAdMatsJ28G9jCGbSaguXCyxSTy+pBO6Ch0Cf57ZLOTka3HqDj8p3nV28LUIHZ3ut5WO43CeYKwt4AUtLpBS3a0dndHdY6D83uY6b2qh5hXlrcbeQTq2cvw2y95F7hm4D1kwrgZ7ViqaKggRcEupAL69YbJnxeUDKWEdI=
diff --git a/node_modules/readable-stream/CONTRIBUTING.md b/node_modules/readable-stream/CONTRIBUTING.md
deleted file mode 100644
index f478d58..0000000
--- a/node_modules/readable-stream/CONTRIBUTING.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# Developer's Certificate of Origin 1.1
-
-By making a contribution to this project, I certify that:
-
-* (a) The contribution was created in whole or in part by me and I
- have the right to submit it under the open source license
- indicated in the file; or
-
-* (b) The contribution is based upon previous work that, to the best
- of my knowledge, is covered under an appropriate open source
- license and I have the right under that license to submit that
- work with modifications, whether created in whole or in part
- by me, under the same open source license (unless I am
- permitted to submit under a different license), as indicated
- in the file; or
-
-* (c) The contribution was provided directly to me by some other
- person who certified (a), (b) or (c) and I have not modified
- it.
-
-* (d) I understand and agree that this project and the contribution
- are public and that a record of the contribution (including all
- personal information I submit with it, including my sign-off) is
- maintained indefinitely and may be redistributed consistent with
- this project or the open source license(s) involved.
-
-## Moderation Policy
-
-The [Node.js Moderation Policy] applies to this WG.
-
-## Code of Conduct
-
-The [Node.js Code of Conduct][] applies to this WG.
-
-[Node.js Code of Conduct]:
-https://github.com/nodejs/node/blob/master/CODE_OF_CONDUCT.md
-[Node.js Moderation Policy]:
-https://github.com/nodejs/TSC/blob/master/Moderation-Policy.md
diff --git a/node_modules/readable-stream/GOVERNANCE.md b/node_modules/readable-stream/GOVERNANCE.md
deleted file mode 100644
index 16ffb93..0000000
--- a/node_modules/readable-stream/GOVERNANCE.md
+++ /dev/null
@@ -1,136 +0,0 @@
-### Streams Working Group
-
-The Node.js Streams is jointly governed by a Working Group
-(WG)
-that is responsible for high-level guidance of the project.
-
-The WG has final authority over this project including:
-
-* Technical direction
-* Project governance and process (including this policy)
-* Contribution policy
-* GitHub repository hosting
-* Conduct guidelines
-* Maintaining the list of additional Collaborators
-
-For the current list of WG members, see the project
-[README.md](./README.md#current-project-team-members).
-
-### Collaborators
-
-The readable-stream GitHub repository is
-maintained by the WG and additional Collaborators who are added by the
-WG on an ongoing basis.
-
-Individuals making significant and valuable contributions are made
-Collaborators and given commit-access to the project. These
-individuals are identified by the WG and their addition as
-Collaborators is discussed during the WG meeting.
-
-_Note:_ If you make a significant contribution and are not considered
-for commit-access log an issue or contact a WG member directly and it
-will be brought up in the next WG meeting.
-
-Modifications of the contents of the readable-stream repository are
-made on
-a collaborative basis. Anybody with a GitHub account may propose a
-modification via pull request and it will be considered by the project
-Collaborators. All pull requests must be reviewed and accepted by a
-Collaborator with sufficient expertise who is able to take full
-responsibility for the change. In the case of pull requests proposed
-by an existing Collaborator, an additional Collaborator is required
-for sign-off. Consensus should be sought if additional Collaborators
-participate and there is disagreement around a particular
-modification. See _Consensus Seeking Process_ below for further detail
-on the consensus model used for governance.
-
-Collaborators may opt to elevate significant or controversial
-modifications, or modifications that have not found consensus to the
-WG for discussion by assigning the ***WG-agenda*** tag to a pull
-request or issue. The WG should serve as the final arbiter where
-required.
-
-For the current list of Collaborators, see the project
-[README.md](./README.md#members).
-
-### WG Membership
-
-WG seats are not time-limited. There is no fixed size of the WG.
-However, the expected target is between 6 and 12, to ensure adequate
-coverage of important areas of expertise, balanced with the ability to
-make decisions efficiently.
-
-There is no specific set of requirements or qualifications for WG
-membership beyond these rules.
-
-The WG may add additional members to the WG by unanimous consensus.
-
-A WG member may be removed from the WG by voluntary resignation, or by
-unanimous consensus of all other WG members.
-
-Changes to WG membership should be posted in the agenda, and may be
-suggested as any other agenda item (see "WG Meetings" below).
-
-If an addition or removal is proposed during a meeting, and the full
-WG is not in attendance to participate, then the addition or removal
-is added to the agenda for the subsequent meeting. This is to ensure
-that all members are given the opportunity to participate in all
-membership decisions. If a WG member is unable to attend a meeting
-where a planned membership decision is being made, then their consent
-is assumed.
-
-No more than 1/3 of the WG members may be affiliated with the same
-employer. If removal or resignation of a WG member, or a change of
-employment by a WG member, creates a situation where more than 1/3 of
-the WG membership shares an employer, then the situation must be
-immediately remedied by the resignation or removal of one or more WG
-members affiliated with the over-represented employer(s).
-
-### WG Meetings
-
-The WG meets occasionally on a Google Hangout On Air. A designated moderator
-approved by the WG runs the meeting. Each meeting should be
-published to YouTube.
-
-Items are added to the WG agenda that are considered contentious or
-are modifications of governance, contribution policy, WG membership,
-or release process.
-
-The intention of the agenda is not to approve or review all patches;
-that should happen continuously on GitHub and be handled by the larger
-group of Collaborators.
-
-Any community member or contributor can ask that something be added to
-the next meeting's agenda by logging a GitHub Issue. Any Collaborator,
-WG member or the moderator can add the item to the agenda by adding
-the ***WG-agenda*** tag to the issue.
-
-Prior to each WG meeting the moderator will share the Agenda with
-members of the WG. WG members can add any items they like to the
-agenda at the beginning of each meeting. The moderator and the WG
-cannot veto or remove items.
-
-The WG may invite persons or representatives from certain projects to
-participate in a non-voting capacity.
-
-The moderator is responsible for summarizing the discussion of each
-agenda item and sends it as a pull request after the meeting.
-
-### Consensus Seeking Process
-
-The WG follows a
-[Consensus
-Seeking](http://en.wikipedia.org/wiki/Consensus-seeking_decision-making)
-decision-making model.
-
-When an agenda item has appeared to reach a consensus the moderator
-will ask "Does anyone object?" as a final call for dissent from the
-consensus.
-
-If an agenda item cannot reach a consensus a WG member can call for
-either a closing vote or a vote to table the issue to the next
-meeting. The call for a vote must be seconded by a majority of the WG
-or else the discussion will continue. Simple majority wins.
-
-Note that changes to WG membership require a majority consensus. See
-"WG Membership" above.
diff --git a/node_modules/readable-stream/LICENSE b/node_modules/readable-stream/LICENSE
deleted file mode 100644
index 2873b3b..0000000
--- a/node_modules/readable-stream/LICENSE
+++ /dev/null
@@ -1,47 +0,0 @@
-Node.js is licensed for use as follows:
-
-"""
-Copyright Node.js contributors. All rights reserved.
-
-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.
-"""
-
-This license applies to parts of Node.js originating from the
-https://github.com/joyent/node repository:
-
-"""
-Copyright Joyent, Inc. and other Node contributors. All rights reserved.
-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/readable-stream/README.md b/node_modules/readable-stream/README.md
deleted file mode 100644
index 23fe3f3..0000000
--- a/node_modules/readable-stream/README.md
+++ /dev/null
@@ -1,58 +0,0 @@
-# readable-stream
-
-***Node-core v8.11.1 streams for userland*** [![Build Status](https://travis-ci.org/nodejs/readable-stream.svg?branch=master)](https://travis-ci.org/nodejs/readable-stream)
-
-
-[![NPM](https://nodei.co/npm/readable-stream.png?downloads=true&downloadRank=true)](https://nodei.co/npm/readable-stream/)
-[![NPM](https://nodei.co/npm-dl/readable-stream.png?&months=6&height=3)](https://nodei.co/npm/readable-stream/)
-
-
-[![Sauce Test Status](https://saucelabs.com/browser-matrix/readable-stream.svg)](https://saucelabs.com/u/readable-stream)
-
-```bash
-npm install --save readable-stream
-```
-
-***Node-core streams for userland***
-
-This package is a mirror of the Streams2 and Streams3 implementations in
-Node-core.
-
-Full documentation may be found on the [Node.js website](https://nodejs.org/dist/v8.11.1/docs/api/stream.html).
-
-If you want to guarantee a stable streams base, regardless of what version of
-Node you, or the users of your libraries are using, use **readable-stream** *only* and avoid the *"stream"* module in Node-core, for background see [this blogpost](http://r.va.gg/2014/06/why-i-dont-use-nodes-core-stream-module.html).
-
-As of version 2.0.0 **readable-stream** uses semantic versioning.
-
-# Streams Working Group
-
-`readable-stream` is maintained by the Streams Working Group, which
-oversees the development and maintenance of the Streams API within
-Node.js. The responsibilities of the Streams Working Group include:
-
-* Addressing stream issues on the Node.js issue tracker.
-* Authoring and editing stream documentation within the Node.js project.
-* Reviewing changes to stream subclasses within the Node.js project.
-* Redirecting changes to streams from the Node.js project to this
- project.
-* Assisting in the implementation of stream providers within Node.js.
-* Recommending versions of `readable-stream` to be included in Node.js.
-* Messaging about the future of streams to give the community advance
- notice of changes.
-
-
-## Team Members
-
-* **Chris Dickinson** ([@chrisdickinson](https://github.com/chrisdickinson)) <christopher.s.dickinson@gmail.com>
- - Release GPG key: 9554F04D7259F04124DE6B476D5A82AC7E37093B
-* **Calvin Metcalf** ([@calvinmetcalf](https://github.com/calvinmetcalf)) <calvin.metcalf@gmail.com>
- - Release GPG key: F3EF5F62A87FC27A22E643F714CE4FF5015AA242
-* **Rod Vagg** ([@rvagg](https://github.com/rvagg)) <rod@vagg.org>
- - Release GPG key: DD8F2338BAE7501E3DD5AC78C273792F7D83545D
-* **Sam Newman** ([@sonewman](https://github.com/sonewman)) <newmansam@outlook.com>
-* **Mathias Buus** ([@mafintosh](https://github.com/mafintosh)) <mathiasbuus@gmail.com>
-* **Domenic Denicola** ([@domenic](https://github.com/domenic)) <d@domenic.me>
-* **Matteo Collina** ([@mcollina](https://github.com/mcollina)) <matteo.collina@gmail.com>
- - Release GPG key: 3ABC01543F22DD2239285CDD818674489FBC127E
-* **Irina Shestak** ([@lrlna](https://github.com/lrlna)) <shestak.irina@gmail.com>
diff --git a/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md b/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md
deleted file mode 100644
index 83275f1..0000000
--- a/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md
+++ /dev/null
@@ -1,60 +0,0 @@
-# streams WG Meeting 2015-01-30
-
-## Links
-
-* **Google Hangouts Video**: http://www.youtube.com/watch?v=I9nDOSGfwZg
-* **GitHub Issue**: https://github.com/iojs/readable-stream/issues/106
-* **Original Minutes Google Doc**: https://docs.google.com/document/d/17aTgLnjMXIrfjgNaTUnHQO7m3xgzHR2VXBTmi03Qii4/
-
-## Agenda
-
-Extracted from https://github.com/iojs/readable-stream/labels/wg-agenda prior to meeting.
-
-* adopt a charter [#105](https://github.com/iojs/readable-stream/issues/105)
-* release and versioning strategy [#101](https://github.com/iojs/readable-stream/issues/101)
-* simpler stream creation [#102](https://github.com/iojs/readable-stream/issues/102)
-* proposal: deprecate implicit flowing of streams [#99](https://github.com/iojs/readable-stream/issues/99)
-
-## Minutes
-
-### adopt a charter
-
-* group: +1's all around
-
-### What versioning scheme should be adopted?
-* group: +1’s 3.0.0
-* domenic+group: pulling in patches from other sources where appropriate
-* mikeal: version independently, suggesting versions for io.js
-* mikeal+domenic: work with TC to notify in advance of changes
-simpler stream creation
-
-### streamline creation of streams
-* sam: streamline creation of streams
-* domenic: nice simple solution posted
- but, we lose the opportunity to change the model
- may not be backwards incompatible (double check keys)
-
- **action item:** domenic will check
-
-### remove implicit flowing of streams on(‘data’)
-* add isFlowing / isPaused
-* mikeal: worrying that we’re documenting polyfill methods – confuses users
-* domenic: more reflective API is probably good, with warning labels for users
-* new section for mad scientists (reflective stream access)
-* calvin: name the “third state”
-* mikeal: maybe borrow the name from whatwg?
-* domenic: we’re missing the “third state”
-* consensus: kind of difficult to name the third state
-* mikeal: figure out differences in states / compat
-* mathias: always flow on data – eliminates third state
- * explore what it breaks
-
-**action items:**
-* ask isaac for ability to list packages by what public io.js APIs they use (esp. Stream)
-* ask rod/build for infrastructure
-* **chris**: explore the “flow on data” approach
-* add isPaused/isFlowing
-* add new docs section
-* move isPaused to that section
-
-
diff --git a/node_modules/readable-stream/duplex-browser.js b/node_modules/readable-stream/duplex-browser.js
deleted file mode 100644
index f8b2db8..0000000
--- a/node_modules/readable-stream/duplex-browser.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./lib/_stream_duplex.js');
diff --git a/node_modules/readable-stream/duplex.js b/node_modules/readable-stream/duplex.js
deleted file mode 100644
index 46924cb..0000000
--- a/node_modules/readable-stream/duplex.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./readable').Duplex
diff --git a/node_modules/readable-stream/lib/_stream_duplex.js b/node_modules/readable-stream/lib/_stream_duplex.js
deleted file mode 100644
index 57003c3..0000000
--- a/node_modules/readable-stream/lib/_stream_duplex.js
+++ /dev/null
@@ -1,131 +0,0 @@
-// Copyright Joyent, Inc. and other Node contributors.
-//
-// 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.
-
-// a duplex stream is just a stream that is both readable and writable.
-// Since JS doesn't have multiple prototypal inheritance, this class
-// prototypally inherits from Readable, and then parasitically from
-// Writable.
-
-'use strict';
-
-/**/
-
-var pna = require('process-nextick-args');
-/* */
-
-/**/
-var objectKeys = Object.keys || function (obj) {
- var keys = [];
- for (var key in obj) {
- keys.push(key);
- }return keys;
-};
-/* */
-
-module.exports = Duplex;
-
-/**/
-var util = Object.create(require('core-util-is'));
-util.inherits = require('inherits');
-/* */
-
-var Readable = require('./_stream_readable');
-var Writable = require('./_stream_writable');
-
-util.inherits(Duplex, Readable);
-
-{
- // avoid scope creep, the keys array can then be collected
- var keys = objectKeys(Writable.prototype);
- for (var v = 0; v < keys.length; v++) {
- var method = keys[v];
- if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
- }
-}
-
-function Duplex(options) {
- if (!(this instanceof Duplex)) return new Duplex(options);
-
- Readable.call(this, options);
- Writable.call(this, options);
-
- if (options && options.readable === false) this.readable = false;
-
- if (options && options.writable === false) this.writable = false;
-
- this.allowHalfOpen = true;
- if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
-
- this.once('end', onend);
-}
-
-Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: false,
- get: function () {
- return this._writableState.highWaterMark;
- }
-});
-
-// the no-half-open enforcer
-function onend() {
- // if we allow half-open state, or if the writable side ended,
- // then we're ok.
- if (this.allowHalfOpen || this._writableState.ended) return;
-
- // no more data can be written.
- // But allow more writes to happen in this tick.
- pna.nextTick(onEndNT, this);
-}
-
-function onEndNT(self) {
- self.end();
-}
-
-Object.defineProperty(Duplex.prototype, 'destroyed', {
- get: function () {
- if (this._readableState === undefined || this._writableState === undefined) {
- return false;
- }
- return this._readableState.destroyed && this._writableState.destroyed;
- },
- set: function (value) {
- // we ignore the value if the stream
- // has not been initialized yet
- if (this._readableState === undefined || this._writableState === undefined) {
- return;
- }
-
- // backward compatibility, the user is explicitly
- // managing destroyed
- this._readableState.destroyed = value;
- this._writableState.destroyed = value;
- }
-});
-
-Duplex.prototype._destroy = function (err, cb) {
- this.push(null);
- this.end();
-
- pna.nextTick(cb, err);
-};
\ No newline at end of file
diff --git a/node_modules/readable-stream/lib/_stream_passthrough.js b/node_modules/readable-stream/lib/_stream_passthrough.js
deleted file mode 100644
index 612edb4..0000000
--- a/node_modules/readable-stream/lib/_stream_passthrough.js
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright Joyent, Inc. and other Node contributors.
-//
-// 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.
-
-// a passthrough stream.
-// basically just the most minimal sort of Transform stream.
-// Every written chunk gets output as-is.
-
-'use strict';
-
-module.exports = PassThrough;
-
-var Transform = require('./_stream_transform');
-
-/**/
-var util = Object.create(require('core-util-is'));
-util.inherits = require('inherits');
-/* */
-
-util.inherits(PassThrough, Transform);
-
-function PassThrough(options) {
- if (!(this instanceof PassThrough)) return new PassThrough(options);
-
- Transform.call(this, options);
-}
-
-PassThrough.prototype._transform = function (chunk, encoding, cb) {
- cb(null, chunk);
-};
\ No newline at end of file
diff --git a/node_modules/readable-stream/lib/_stream_readable.js b/node_modules/readable-stream/lib/_stream_readable.js
deleted file mode 100644
index 0f80764..0000000
--- a/node_modules/readable-stream/lib/_stream_readable.js
+++ /dev/null
@@ -1,1019 +0,0 @@
-// Copyright Joyent, Inc. and other Node contributors.
-//
-// 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.
-
-'use strict';
-
-/**/
-
-var pna = require('process-nextick-args');
-/* */
-
-module.exports = Readable;
-
-/**/
-var isArray = require('isarray');
-/* */
-
-/**/
-var Duplex;
-/* */
-
-Readable.ReadableState = ReadableState;
-
-/**/
-var EE = require('events').EventEmitter;
-
-var EElistenerCount = function (emitter, type) {
- return emitter.listeners(type).length;
-};
-/* */
-
-/**/
-var Stream = require('./internal/streams/stream');
-/* */
-
-/**/
-
-var Buffer = require('safe-buffer').Buffer;
-var OurUint8Array = global.Uint8Array || function () {};
-function _uint8ArrayToBuffer(chunk) {
- return Buffer.from(chunk);
-}
-function _isUint8Array(obj) {
- return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
-}
-
-/* */
-
-/**/
-var util = Object.create(require('core-util-is'));
-util.inherits = require('inherits');
-/* */
-
-/**/
-var debugUtil = require('util');
-var debug = void 0;
-if (debugUtil && debugUtil.debuglog) {
- debug = debugUtil.debuglog('stream');
-} else {
- debug = function () {};
-}
-/* */
-
-var BufferList = require('./internal/streams/BufferList');
-var destroyImpl = require('./internal/streams/destroy');
-var StringDecoder;
-
-util.inherits(Readable, Stream);
-
-var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];
-
-function prependListener(emitter, event, fn) {
- // Sadly this is not cacheable as some libraries bundle their own
- // event emitter implementation with them.
- if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);
-
- // This is a hack to make sure that our error handler is attached before any
- // userland ones. NEVER DO THIS. This is here only because this code needs
- // to continue to work with older versions of Node.js that do not include
- // the prependListener() method. The goal is to eventually remove this hack.
- if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];
-}
-
-function ReadableState(options, stream) {
- Duplex = Duplex || require('./_stream_duplex');
-
- options = options || {};
-
- // Duplex streams are both readable and writable, but share
- // the same options object.
- // However, some cases require setting options to different
- // values for the readable and the writable sides of the duplex stream.
- // These options can be provided separately as readableXXX and writableXXX.
- var isDuplex = stream instanceof Duplex;
-
- // object stream flag. Used to make read(n) ignore n and to
- // make all the buffer merging and length checks go away
- this.objectMode = !!options.objectMode;
-
- if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
-
- // the point at which it stops calling _read() to fill the buffer
- // Note: 0 is a valid value, means "don't call _read preemptively ever"
- var hwm = options.highWaterMark;
- var readableHwm = options.readableHighWaterMark;
- var defaultHwm = this.objectMode ? 16 : 16 * 1024;
-
- if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;
-
- // cast to ints.
- this.highWaterMark = Math.floor(this.highWaterMark);
-
- // A linked list is used to store data chunks instead of an array because the
- // linked list can remove elements from the beginning faster than
- // array.shift()
- this.buffer = new BufferList();
- this.length = 0;
- this.pipes = null;
- this.pipesCount = 0;
- this.flowing = null;
- this.ended = false;
- this.endEmitted = false;
- this.reading = false;
-
- // a flag to be able to tell if the event 'readable'/'data' is emitted
- // immediately, or on a later tick. We set this to true at first, because
- // any actions that shouldn't happen until "later" should generally also
- // not happen before the first read call.
- this.sync = true;
-
- // whenever we return null, then we set a flag to say
- // that we're awaiting a 'readable' event emission.
- this.needReadable = false;
- this.emittedReadable = false;
- this.readableListening = false;
- this.resumeScheduled = false;
-
- // has it been destroyed
- this.destroyed = false;
-
- // Crypto is kind of old and crusty. Historically, its default string
- // encoding is 'binary' so we have to make this configurable.
- // Everything else in the universe uses 'utf8', though.
- this.defaultEncoding = options.defaultEncoding || 'utf8';
-
- // the number of writers that are awaiting a drain event in .pipe()s
- this.awaitDrain = 0;
-
- // if true, a maybeReadMore has been scheduled
- this.readingMore = false;
-
- this.decoder = null;
- this.encoding = null;
- if (options.encoding) {
- if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
- this.decoder = new StringDecoder(options.encoding);
- this.encoding = options.encoding;
- }
-}
-
-function Readable(options) {
- Duplex = Duplex || require('./_stream_duplex');
-
- if (!(this instanceof Readable)) return new Readable(options);
-
- this._readableState = new ReadableState(options, this);
-
- // legacy
- this.readable = true;
-
- if (options) {
- if (typeof options.read === 'function') this._read = options.read;
-
- if (typeof options.destroy === 'function') this._destroy = options.destroy;
- }
-
- Stream.call(this);
-}
-
-Object.defineProperty(Readable.prototype, 'destroyed', {
- get: function () {
- if (this._readableState === undefined) {
- return false;
- }
- return this._readableState.destroyed;
- },
- set: function (value) {
- // we ignore the value if the stream
- // has not been initialized yet
- if (!this._readableState) {
- return;
- }
-
- // backward compatibility, the user is explicitly
- // managing destroyed
- this._readableState.destroyed = value;
- }
-});
-
-Readable.prototype.destroy = destroyImpl.destroy;
-Readable.prototype._undestroy = destroyImpl.undestroy;
-Readable.prototype._destroy = function (err, cb) {
- this.push(null);
- cb(err);
-};
-
-// Manually shove something into the read() buffer.
-// This returns true if the highWaterMark has not been hit yet,
-// similar to how Writable.write() returns true if you should
-// write() some more.
-Readable.prototype.push = function (chunk, encoding) {
- var state = this._readableState;
- var skipChunkCheck;
-
- if (!state.objectMode) {
- if (typeof chunk === 'string') {
- encoding = encoding || state.defaultEncoding;
- if (encoding !== state.encoding) {
- chunk = Buffer.from(chunk, encoding);
- encoding = '';
- }
- skipChunkCheck = true;
- }
- } else {
- skipChunkCheck = true;
- }
-
- return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);
-};
-
-// Unshift should *always* be something directly out of read()
-Readable.prototype.unshift = function (chunk) {
- return readableAddChunk(this, chunk, null, true, false);
-};
-
-function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {
- var state = stream._readableState;
- if (chunk === null) {
- state.reading = false;
- onEofChunk(stream, state);
- } else {
- var er;
- if (!skipChunkCheck) er = chunkInvalid(state, chunk);
- if (er) {
- stream.emit('error', er);
- } else if (state.objectMode || chunk && chunk.length > 0) {
- if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {
- chunk = _uint8ArrayToBuffer(chunk);
- }
-
- if (addToFront) {
- if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);
- } else if (state.ended) {
- stream.emit('error', new Error('stream.push() after EOF'));
- } else {
- state.reading = false;
- if (state.decoder && !encoding) {
- chunk = state.decoder.write(chunk);
- if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);
- } else {
- addChunk(stream, state, chunk, false);
- }
- }
- } else if (!addToFront) {
- state.reading = false;
- }
- }
-
- return needMoreData(state);
-}
-
-function addChunk(stream, state, chunk, addToFront) {
- if (state.flowing && state.length === 0 && !state.sync) {
- stream.emit('data', chunk);
- stream.read(0);
- } else {
- // update the buffer info.
- state.length += state.objectMode ? 1 : chunk.length;
- if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
-
- if (state.needReadable) emitReadable(stream);
- }
- maybeReadMore(stream, state);
-}
-
-function chunkInvalid(state, chunk) {
- var er;
- if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
- er = new TypeError('Invalid non-string/buffer chunk');
- }
- return er;
-}
-
-// if it's past the high water mark, we can push in some more.
-// Also, if we have no data yet, we can stand some
-// more bytes. This is to work around cases where hwm=0,
-// such as the repl. Also, if the push() triggered a
-// readable event, and the user called read(largeNumber) such that
-// needReadable was set, then we ought to push more, so that another
-// 'readable' event will be triggered.
-function needMoreData(state) {
- return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);
-}
-
-Readable.prototype.isPaused = function () {
- return this._readableState.flowing === false;
-};
-
-// backwards compatibility.
-Readable.prototype.setEncoding = function (enc) {
- if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
- this._readableState.decoder = new StringDecoder(enc);
- this._readableState.encoding = enc;
- return this;
-};
-
-// Don't raise the hwm > 8MB
-var MAX_HWM = 0x800000;
-function computeNewHighWaterMark(n) {
- if (n >= MAX_HWM) {
- n = MAX_HWM;
- } else {
- // Get the next highest power of 2 to prevent increasing hwm excessively in
- // tiny amounts
- n--;
- n |= n >>> 1;
- n |= n >>> 2;
- n |= n >>> 4;
- n |= n >>> 8;
- n |= n >>> 16;
- n++;
- }
- return n;
-}
-
-// This function is designed to be inlinable, so please take care when making
-// changes to the function body.
-function howMuchToRead(n, state) {
- if (n <= 0 || state.length === 0 && state.ended) return 0;
- if (state.objectMode) return 1;
- if (n !== n) {
- // Only flow one buffer at a time
- if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
- }
- // If we're asking for more than the current hwm, then raise the hwm.
- if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
- if (n <= state.length) return n;
- // Don't have enough
- if (!state.ended) {
- state.needReadable = true;
- return 0;
- }
- return state.length;
-}
-
-// you can override either this method, or the async _read(n) below.
-Readable.prototype.read = function (n) {
- debug('read', n);
- n = parseInt(n, 10);
- var state = this._readableState;
- var nOrig = n;
-
- if (n !== 0) state.emittedReadable = false;
-
- // if we're doing read(0) to trigger a readable event, but we
- // already have a bunch of data in the buffer, then just trigger
- // the 'readable' event and move on.
- if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {
- debug('read: emitReadable', state.length, state.ended);
- if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);
- return null;
- }
-
- n = howMuchToRead(n, state);
-
- // if we've ended, and we're now clear, then finish it up.
- if (n === 0 && state.ended) {
- if (state.length === 0) endReadable(this);
- return null;
- }
-
- // All the actual chunk generation logic needs to be
- // *below* the call to _read. The reason is that in certain
- // synthetic stream cases, such as passthrough streams, _read
- // may be a completely synchronous operation which may change
- // the state of the read buffer, providing enough data when
- // before there was *not* enough.
- //
- // So, the steps are:
- // 1. Figure out what the state of things will be after we do
- // a read from the buffer.
- //
- // 2. If that resulting state will trigger a _read, then call _read.
- // Note that this may be asynchronous, or synchronous. Yes, it is
- // deeply ugly to write APIs this way, but that still doesn't mean
- // that the Readable class should behave improperly, as streams are
- // designed to be sync/async agnostic.
- // Take note if the _read call is sync or async (ie, if the read call
- // has returned yet), so that we know whether or not it's safe to emit
- // 'readable' etc.
- //
- // 3. Actually pull the requested chunks out of the buffer and return.
-
- // if we need a readable event, then we need to do some reading.
- var doRead = state.needReadable;
- debug('need readable', doRead);
-
- // if we currently have less than the highWaterMark, then also read some
- if (state.length === 0 || state.length - n < state.highWaterMark) {
- doRead = true;
- debug('length less than watermark', doRead);
- }
-
- // however, if we've ended, then there's no point, and if we're already
- // reading, then it's unnecessary.
- if (state.ended || state.reading) {
- doRead = false;
- debug('reading or ended', doRead);
- } else if (doRead) {
- debug('do read');
- state.reading = true;
- state.sync = true;
- // if the length is currently zero, then we *need* a readable event.
- if (state.length === 0) state.needReadable = true;
- // call internal read method
- this._read(state.highWaterMark);
- state.sync = false;
- // If _read pushed data synchronously, then `reading` will be false,
- // and we need to re-evaluate how much data we can return to the user.
- if (!state.reading) n = howMuchToRead(nOrig, state);
- }
-
- var ret;
- if (n > 0) ret = fromList(n, state);else ret = null;
-
- if (ret === null) {
- state.needReadable = true;
- n = 0;
- } else {
- state.length -= n;
- }
-
- if (state.length === 0) {
- // If we have nothing in the buffer, then we want to know
- // as soon as we *do* get something into the buffer.
- if (!state.ended) state.needReadable = true;
-
- // If we tried to read() past the EOF, then emit end on the next tick.
- if (nOrig !== n && state.ended) endReadable(this);
- }
-
- if (ret !== null) this.emit('data', ret);
-
- return ret;
-};
-
-function onEofChunk(stream, state) {
- if (state.ended) return;
- if (state.decoder) {
- var chunk = state.decoder.end();
- if (chunk && chunk.length) {
- state.buffer.push(chunk);
- state.length += state.objectMode ? 1 : chunk.length;
- }
- }
- state.ended = true;
-
- // emit 'readable' now to make sure it gets picked up.
- emitReadable(stream);
-}
-
-// Don't emit readable right away in sync mode, because this can trigger
-// another read() call => stack overflow. This way, it might trigger
-// a nextTick recursion warning, but that's not so bad.
-function emitReadable(stream) {
- var state = stream._readableState;
- state.needReadable = false;
- if (!state.emittedReadable) {
- debug('emitReadable', state.flowing);
- state.emittedReadable = true;
- if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);
- }
-}
-
-function emitReadable_(stream) {
- debug('emit readable');
- stream.emit('readable');
- flow(stream);
-}
-
-// at this point, the user has presumably seen the 'readable' event,
-// and called read() to consume some data. that may have triggered
-// in turn another _read(n) call, in which case reading = true if
-// it's in progress.
-// However, if we're not ended, or reading, and the length < hwm,
-// then go ahead and try to read some more preemptively.
-function maybeReadMore(stream, state) {
- if (!state.readingMore) {
- state.readingMore = true;
- pna.nextTick(maybeReadMore_, stream, state);
- }
-}
-
-function maybeReadMore_(stream, state) {
- var len = state.length;
- while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
- debug('maybeReadMore read 0');
- stream.read(0);
- if (len === state.length)
- // didn't get any data, stop spinning.
- break;else len = state.length;
- }
- state.readingMore = false;
-}
-
-// abstract method. to be overridden in specific implementation classes.
-// call cb(er, data) where data is <= n in length.
-// for virtual (non-string, non-buffer) streams, "length" is somewhat
-// arbitrary, and perhaps not very meaningful.
-Readable.prototype._read = function (n) {
- this.emit('error', new Error('_read() is not implemented'));
-};
-
-Readable.prototype.pipe = function (dest, pipeOpts) {
- var src = this;
- var state = this._readableState;
-
- switch (state.pipesCount) {
- case 0:
- state.pipes = dest;
- break;
- case 1:
- state.pipes = [state.pipes, dest];
- break;
- default:
- state.pipes.push(dest);
- break;
- }
- state.pipesCount += 1;
- debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
-
- var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
-
- var endFn = doEnd ? onend : unpipe;
- if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);
-
- dest.on('unpipe', onunpipe);
- function onunpipe(readable, unpipeInfo) {
- debug('onunpipe');
- if (readable === src) {
- if (unpipeInfo && unpipeInfo.hasUnpiped === false) {
- unpipeInfo.hasUnpiped = true;
- cleanup();
- }
- }
- }
-
- function onend() {
- debug('onend');
- dest.end();
- }
-
- // when the dest drains, it reduces the awaitDrain counter
- // on the source. This would be more elegant with a .once()
- // handler in flow(), but adding and removing repeatedly is
- // too slow.
- var ondrain = pipeOnDrain(src);
- dest.on('drain', ondrain);
-
- var cleanedUp = false;
- function cleanup() {
- debug('cleanup');
- // cleanup event handlers once the pipe is broken
- dest.removeListener('close', onclose);
- dest.removeListener('finish', onfinish);
- dest.removeListener('drain', ondrain);
- dest.removeListener('error', onerror);
- dest.removeListener('unpipe', onunpipe);
- src.removeListener('end', onend);
- src.removeListener('end', unpipe);
- src.removeListener('data', ondata);
-
- cleanedUp = true;
-
- // if the reader is waiting for a drain event from this
- // specific writer, then it would cause it to never start
- // flowing again.
- // So, if this is awaiting a drain, then we just call it now.
- // If we don't know, then assume that we are waiting for one.
- if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
- }
-
- // If the user pushes more data while we're writing to dest then we'll end up
- // in ondata again. However, we only want to increase awaitDrain once because
- // dest will only emit one 'drain' event for the multiple writes.
- // => Introduce a guard on increasing awaitDrain.
- var increasedAwaitDrain = false;
- src.on('data', ondata);
- function ondata(chunk) {
- debug('ondata');
- increasedAwaitDrain = false;
- var ret = dest.write(chunk);
- if (false === ret && !increasedAwaitDrain) {
- // If the user unpiped during `dest.write()`, it is possible
- // to get stuck in a permanently paused state if that write
- // also returned false.
- // => Check whether `dest` is still a piping destination.
- if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {
- debug('false write response, pause', src._readableState.awaitDrain);
- src._readableState.awaitDrain++;
- increasedAwaitDrain = true;
- }
- src.pause();
- }
- }
-
- // if the dest has an error, then stop piping into it.
- // however, don't suppress the throwing behavior for this.
- function onerror(er) {
- debug('onerror', er);
- unpipe();
- dest.removeListener('error', onerror);
- if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);
- }
-
- // Make sure our error handler is attached before userland ones.
- prependListener(dest, 'error', onerror);
-
- // Both close and finish should trigger unpipe, but only once.
- function onclose() {
- dest.removeListener('finish', onfinish);
- unpipe();
- }
- dest.once('close', onclose);
- function onfinish() {
- debug('onfinish');
- dest.removeListener('close', onclose);
- unpipe();
- }
- dest.once('finish', onfinish);
-
- function unpipe() {
- debug('unpipe');
- src.unpipe(dest);
- }
-
- // tell the dest that it's being piped to
- dest.emit('pipe', src);
-
- // start the flow if it hasn't been started already.
- if (!state.flowing) {
- debug('pipe resume');
- src.resume();
- }
-
- return dest;
-};
-
-function pipeOnDrain(src) {
- return function () {
- var state = src._readableState;
- debug('pipeOnDrain', state.awaitDrain);
- if (state.awaitDrain) state.awaitDrain--;
- if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {
- state.flowing = true;
- flow(src);
- }
- };
-}
-
-Readable.prototype.unpipe = function (dest) {
- var state = this._readableState;
- var unpipeInfo = { hasUnpiped: false };
-
- // if we're not piping anywhere, then do nothing.
- if (state.pipesCount === 0) return this;
-
- // just one destination. most common case.
- if (state.pipesCount === 1) {
- // passed in one, but it's not the right one.
- if (dest && dest !== state.pipes) return this;
-
- if (!dest) dest = state.pipes;
-
- // got a match.
- state.pipes = null;
- state.pipesCount = 0;
- state.flowing = false;
- if (dest) dest.emit('unpipe', this, unpipeInfo);
- return this;
- }
-
- // slow case. multiple pipe destinations.
-
- if (!dest) {
- // remove all.
- var dests = state.pipes;
- var len = state.pipesCount;
- state.pipes = null;
- state.pipesCount = 0;
- state.flowing = false;
-
- for (var i = 0; i < len; i++) {
- dests[i].emit('unpipe', this, unpipeInfo);
- }return this;
- }
-
- // try to find the right one.
- var index = indexOf(state.pipes, dest);
- if (index === -1) return this;
-
- state.pipes.splice(index, 1);
- state.pipesCount -= 1;
- if (state.pipesCount === 1) state.pipes = state.pipes[0];
-
- dest.emit('unpipe', this, unpipeInfo);
-
- return this;
-};
-
-// set up data events if they are asked for
-// Ensure readable listeners eventually get something
-Readable.prototype.on = function (ev, fn) {
- var res = Stream.prototype.on.call(this, ev, fn);
-
- if (ev === 'data') {
- // Start flowing on next tick if stream isn't explicitly paused
- if (this._readableState.flowing !== false) this.resume();
- } else if (ev === 'readable') {
- var state = this._readableState;
- if (!state.endEmitted && !state.readableListening) {
- state.readableListening = state.needReadable = true;
- state.emittedReadable = false;
- if (!state.reading) {
- pna.nextTick(nReadingNextTick, this);
- } else if (state.length) {
- emitReadable(this);
- }
- }
- }
-
- return res;
-};
-Readable.prototype.addListener = Readable.prototype.on;
-
-function nReadingNextTick(self) {
- debug('readable nexttick read 0');
- self.read(0);
-}
-
-// pause() and resume() are remnants of the legacy readable stream API
-// If the user uses them, then switch into old mode.
-Readable.prototype.resume = function () {
- var state = this._readableState;
- if (!state.flowing) {
- debug('resume');
- state.flowing = true;
- resume(this, state);
- }
- return this;
-};
-
-function resume(stream, state) {
- if (!state.resumeScheduled) {
- state.resumeScheduled = true;
- pna.nextTick(resume_, stream, state);
- }
-}
-
-function resume_(stream, state) {
- if (!state.reading) {
- debug('resume read 0');
- stream.read(0);
- }
-
- state.resumeScheduled = false;
- state.awaitDrain = 0;
- stream.emit('resume');
- flow(stream);
- if (state.flowing && !state.reading) stream.read(0);
-}
-
-Readable.prototype.pause = function () {
- debug('call pause flowing=%j', this._readableState.flowing);
- if (false !== this._readableState.flowing) {
- debug('pause');
- this._readableState.flowing = false;
- this.emit('pause');
- }
- return this;
-};
-
-function flow(stream) {
- var state = stream._readableState;
- debug('flow', state.flowing);
- while (state.flowing && stream.read() !== null) {}
-}
-
-// wrap an old-style stream as the async data source.
-// This is *not* part of the readable stream interface.
-// It is an ugly unfortunate mess of history.
-Readable.prototype.wrap = function (stream) {
- var _this = this;
-
- var state = this._readableState;
- var paused = false;
-
- stream.on('end', function () {
- debug('wrapped end');
- if (state.decoder && !state.ended) {
- var chunk = state.decoder.end();
- if (chunk && chunk.length) _this.push(chunk);
- }
-
- _this.push(null);
- });
-
- stream.on('data', function (chunk) {
- debug('wrapped data');
- if (state.decoder) chunk = state.decoder.write(chunk);
-
- // don't skip over falsy values in objectMode
- if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
-
- var ret = _this.push(chunk);
- if (!ret) {
- paused = true;
- stream.pause();
- }
- });
-
- // proxy all the other methods.
- // important when wrapping filters and duplexes.
- for (var i in stream) {
- if (this[i] === undefined && typeof stream[i] === 'function') {
- this[i] = function (method) {
- return function () {
- return stream[method].apply(stream, arguments);
- };
- }(i);
- }
- }
-
- // proxy certain important events.
- for (var n = 0; n < kProxyEvents.length; n++) {
- stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));
- }
-
- // when we try to consume some more bytes, simply unpause the
- // underlying stream.
- this._read = function (n) {
- debug('wrapped _read', n);
- if (paused) {
- paused = false;
- stream.resume();
- }
- };
-
- return this;
-};
-
-Object.defineProperty(Readable.prototype, 'readableHighWaterMark', {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: false,
- get: function () {
- return this._readableState.highWaterMark;
- }
-});
-
-// exposed for testing purposes only.
-Readable._fromList = fromList;
-
-// Pluck off n bytes from an array of buffers.
-// Length is the combined lengths of all the buffers in the list.
-// This function is designed to be inlinable, so please take care when making
-// changes to the function body.
-function fromList(n, state) {
- // nothing buffered
- if (state.length === 0) return null;
-
- var ret;
- if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {
- // read it all, truncate the list
- if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);
- state.buffer.clear();
- } else {
- // read part of list
- ret = fromListPartial(n, state.buffer, state.decoder);
- }
-
- return ret;
-}
-
-// Extracts only enough buffered data to satisfy the amount requested.
-// This function is designed to be inlinable, so please take care when making
-// changes to the function body.
-function fromListPartial(n, list, hasStrings) {
- var ret;
- if (n < list.head.data.length) {
- // slice is the same for buffers and strings
- ret = list.head.data.slice(0, n);
- list.head.data = list.head.data.slice(n);
- } else if (n === list.head.data.length) {
- // first chunk is a perfect match
- ret = list.shift();
- } else {
- // result spans more than one buffer
- ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
- }
- return ret;
-}
-
-// Copies a specified amount of characters from the list of buffered data
-// chunks.
-// This function is designed to be inlinable, so please take care when making
-// changes to the function body.
-function copyFromBufferString(n, list) {
- var p = list.head;
- var c = 1;
- var ret = p.data;
- n -= ret.length;
- while (p = p.next) {
- var str = p.data;
- var nb = n > str.length ? str.length : n;
- if (nb === str.length) ret += str;else ret += str.slice(0, n);
- n -= nb;
- if (n === 0) {
- if (nb === str.length) {
- ++c;
- if (p.next) list.head = p.next;else list.head = list.tail = null;
- } else {
- list.head = p;
- p.data = str.slice(nb);
- }
- break;
- }
- ++c;
- }
- list.length -= c;
- return ret;
-}
-
-// Copies a specified amount of bytes from the list of buffered data chunks.
-// This function is designed to be inlinable, so please take care when making
-// changes to the function body.
-function copyFromBuffer(n, list) {
- var ret = Buffer.allocUnsafe(n);
- var p = list.head;
- var c = 1;
- p.data.copy(ret);
- n -= p.data.length;
- while (p = p.next) {
- var buf = p.data;
- var nb = n > buf.length ? buf.length : n;
- buf.copy(ret, ret.length - n, 0, nb);
- n -= nb;
- if (n === 0) {
- if (nb === buf.length) {
- ++c;
- if (p.next) list.head = p.next;else list.head = list.tail = null;
- } else {
- list.head = p;
- p.data = buf.slice(nb);
- }
- break;
- }
- ++c;
- }
- list.length -= c;
- return ret;
-}
-
-function endReadable(stream) {
- var state = stream._readableState;
-
- // If we get here before consuming all the bytes, then that is a
- // bug in node. Should never happen.
- if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream');
-
- if (!state.endEmitted) {
- state.ended = true;
- pna.nextTick(endReadableNT, state, stream);
- }
-}
-
-function endReadableNT(state, stream) {
- // Check that we didn't get one last unshift.
- if (!state.endEmitted && state.length === 0) {
- state.endEmitted = true;
- stream.readable = false;
- stream.emit('end');
- }
-}
-
-function indexOf(xs, x) {
- for (var i = 0, l = xs.length; i < l; i++) {
- if (xs[i] === x) return i;
- }
- return -1;
-}
\ No newline at end of file
diff --git a/node_modules/readable-stream/lib/_stream_transform.js b/node_modules/readable-stream/lib/_stream_transform.js
deleted file mode 100644
index fcfc105..0000000
--- a/node_modules/readable-stream/lib/_stream_transform.js
+++ /dev/null
@@ -1,214 +0,0 @@
-// Copyright Joyent, Inc. and other Node contributors.
-//
-// 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.
-
-// a transform stream is a readable/writable stream where you do
-// something with the data. Sometimes it's called a "filter",
-// but that's not a great name for it, since that implies a thing where
-// some bits pass through, and others are simply ignored. (That would
-// be a valid example of a transform, of course.)
-//
-// While the output is causally related to the input, it's not a
-// necessarily symmetric or synchronous transformation. For example,
-// a zlib stream might take multiple plain-text writes(), and then
-// emit a single compressed chunk some time in the future.
-//
-// Here's how this works:
-//
-// The Transform stream has all the aspects of the readable and writable
-// stream classes. When you write(chunk), that calls _write(chunk,cb)
-// internally, and returns false if there's a lot of pending writes
-// buffered up. When you call read(), that calls _read(n) until
-// there's enough pending readable data buffered up.
-//
-// In a transform stream, the written data is placed in a buffer. When
-// _read(n) is called, it transforms the queued up data, calling the
-// buffered _write cb's as it consumes chunks. If consuming a single
-// written chunk would result in multiple output chunks, then the first
-// outputted bit calls the readcb, and subsequent chunks just go into
-// the read buffer, and will cause it to emit 'readable' if necessary.
-//
-// This way, back-pressure is actually determined by the reading side,
-// since _read has to be called to start processing a new chunk. However,
-// a pathological inflate type of transform can cause excessive buffering
-// here. For example, imagine a stream where every byte of input is
-// interpreted as an integer from 0-255, and then results in that many
-// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in
-// 1kb of data being output. In this case, you could write a very small
-// amount of input, and end up with a very large amount of output. In
-// such a pathological inflating mechanism, there'd be no way to tell
-// the system to stop doing the transform. A single 4MB write could
-// cause the system to run out of memory.
-//
-// However, even in such a pathological case, only a single written chunk
-// would be consumed, and then the rest would wait (un-transformed) until
-// the results of the previous transformed chunk were consumed.
-
-'use strict';
-
-module.exports = Transform;
-
-var Duplex = require('./_stream_duplex');
-
-/**/
-var util = Object.create(require('core-util-is'));
-util.inherits = require('inherits');
-/* */
-
-util.inherits(Transform, Duplex);
-
-function afterTransform(er, data) {
- var ts = this._transformState;
- ts.transforming = false;
-
- var cb = ts.writecb;
-
- if (!cb) {
- return this.emit('error', new Error('write callback called multiple times'));
- }
-
- ts.writechunk = null;
- ts.writecb = null;
-
- if (data != null) // single equals check for both `null` and `undefined`
- this.push(data);
-
- cb(er);
-
- var rs = this._readableState;
- rs.reading = false;
- if (rs.needReadable || rs.length < rs.highWaterMark) {
- this._read(rs.highWaterMark);
- }
-}
-
-function Transform(options) {
- if (!(this instanceof Transform)) return new Transform(options);
-
- Duplex.call(this, options);
-
- this._transformState = {
- afterTransform: afterTransform.bind(this),
- needTransform: false,
- transforming: false,
- writecb: null,
- writechunk: null,
- writeencoding: null
- };
-
- // start out asking for a readable event once data is transformed.
- this._readableState.needReadable = true;
-
- // we have implemented the _read method, and done the other things
- // that Readable wants before the first _read call, so unset the
- // sync guard flag.
- this._readableState.sync = false;
-
- if (options) {
- if (typeof options.transform === 'function') this._transform = options.transform;
-
- if (typeof options.flush === 'function') this._flush = options.flush;
- }
-
- // When the writable side finishes, then flush out anything remaining.
- this.on('prefinish', prefinish);
-}
-
-function prefinish() {
- var _this = this;
-
- if (typeof this._flush === 'function') {
- this._flush(function (er, data) {
- done(_this, er, data);
- });
- } else {
- done(this, null, null);
- }
-}
-
-Transform.prototype.push = function (chunk, encoding) {
- this._transformState.needTransform = false;
- return Duplex.prototype.push.call(this, chunk, encoding);
-};
-
-// This is the part where you do stuff!
-// override this function in implementation classes.
-// 'chunk' is an input chunk.
-//
-// Call `push(newChunk)` to pass along transformed output
-// to the readable side. You may call 'push' zero or more times.
-//
-// Call `cb(err)` when you are done with this chunk. If you pass
-// an error, then that'll put the hurt on the whole operation. If you
-// never call cb(), then you'll never get another chunk.
-Transform.prototype._transform = function (chunk, encoding, cb) {
- throw new Error('_transform() is not implemented');
-};
-
-Transform.prototype._write = function (chunk, encoding, cb) {
- var ts = this._transformState;
- ts.writecb = cb;
- ts.writechunk = chunk;
- ts.writeencoding = encoding;
- if (!ts.transforming) {
- var rs = this._readableState;
- if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
- }
-};
-
-// Doesn't matter what the args are here.
-// _transform does all the work.
-// That we got here means that the readable side wants more data.
-Transform.prototype._read = function (n) {
- var ts = this._transformState;
-
- if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
- ts.transforming = true;
- this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
- } else {
- // mark that we need a transform, so that any data that comes in
- // will get processed, now that we've asked for it.
- ts.needTransform = true;
- }
-};
-
-Transform.prototype._destroy = function (err, cb) {
- var _this2 = this;
-
- Duplex.prototype._destroy.call(this, err, function (err2) {
- cb(err2);
- _this2.emit('close');
- });
-};
-
-function done(stream, er, data) {
- if (er) return stream.emit('error', er);
-
- if (data != null) // single equals check for both `null` and `undefined`
- stream.push(data);
-
- // if there's nothing in the write buffer, then that means
- // that nothing more will ever be provided
- if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');
-
- if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');
-
- return stream.push(null);
-}
\ No newline at end of file
diff --git a/node_modules/readable-stream/lib/_stream_writable.js b/node_modules/readable-stream/lib/_stream_writable.js
deleted file mode 100644
index b0b0220..0000000
--- a/node_modules/readable-stream/lib/_stream_writable.js
+++ /dev/null
@@ -1,687 +0,0 @@
-// Copyright Joyent, Inc. and other Node contributors.
-//
-// 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.
-
-// A bit simpler than readable streams.
-// Implement an async ._write(chunk, encoding, cb), and it'll handle all
-// the drain event emission and buffering.
-
-'use strict';
-
-/**/
-
-var pna = require('process-nextick-args');
-/* */
-
-module.exports = Writable;
-
-/* */
-function WriteReq(chunk, encoding, cb) {
- this.chunk = chunk;
- this.encoding = encoding;
- this.callback = cb;
- this.next = null;
-}
-
-// It seems a linked list but it is not
-// there will be only 2 of these for each stream
-function CorkedRequest(state) {
- var _this = this;
-
- this.next = null;
- this.entry = null;
- this.finish = function () {
- onCorkedFinish(_this, state);
- };
-}
-/* */
-
-/**/
-var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;
-/* */
-
-/**/
-var Duplex;
-/* */
-
-Writable.WritableState = WritableState;
-
-/**/
-var util = Object.create(require('core-util-is'));
-util.inherits = require('inherits');
-/* */
-
-/**/
-var internalUtil = {
- deprecate: require('util-deprecate')
-};
-/* */
-
-/**/
-var Stream = require('./internal/streams/stream');
-/* */
-
-/**/
-
-var Buffer = require('safe-buffer').Buffer;
-var OurUint8Array = global.Uint8Array || function () {};
-function _uint8ArrayToBuffer(chunk) {
- return Buffer.from(chunk);
-}
-function _isUint8Array(obj) {
- return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
-}
-
-/* */
-
-var destroyImpl = require('./internal/streams/destroy');
-
-util.inherits(Writable, Stream);
-
-function nop() {}
-
-function WritableState(options, stream) {
- Duplex = Duplex || require('./_stream_duplex');
-
- options = options || {};
-
- // Duplex streams are both readable and writable, but share
- // the same options object.
- // However, some cases require setting options to different
- // values for the readable and the writable sides of the duplex stream.
- // These options can be provided separately as readableXXX and writableXXX.
- var isDuplex = stream instanceof Duplex;
-
- // object stream flag to indicate whether or not this stream
- // contains buffers or objects.
- this.objectMode = !!options.objectMode;
-
- if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
-
- // the point at which write() starts returning false
- // Note: 0 is a valid value, means that we always return false if
- // the entire buffer is not flushed immediately on write()
- var hwm = options.highWaterMark;
- var writableHwm = options.writableHighWaterMark;
- var defaultHwm = this.objectMode ? 16 : 16 * 1024;
-
- if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;
-
- // cast to ints.
- this.highWaterMark = Math.floor(this.highWaterMark);
-
- // if _final has been called
- this.finalCalled = false;
-
- // drain event flag.
- this.needDrain = false;
- // at the start of calling end()
- this.ending = false;
- // when end() has been called, and returned
- this.ended = false;
- // when 'finish' is emitted
- this.finished = false;
-
- // has it been destroyed
- this.destroyed = false;
-
- // should we decode strings into buffers before passing to _write?
- // this is here so that some node-core streams can optimize string
- // handling at a lower level.
- var noDecode = options.decodeStrings === false;
- this.decodeStrings = !noDecode;
-
- // Crypto is kind of old and crusty. Historically, its default string
- // encoding is 'binary' so we have to make this configurable.
- // Everything else in the universe uses 'utf8', though.
- this.defaultEncoding = options.defaultEncoding || 'utf8';
-
- // not an actual buffer we keep track of, but a measurement
- // of how much we're waiting to get pushed to some underlying
- // socket or file.
- this.length = 0;
-
- // a flag to see when we're in the middle of a write.
- this.writing = false;
-
- // when true all writes will be buffered until .uncork() call
- this.corked = 0;
-
- // a flag to be able to tell if the onwrite cb is called immediately,
- // or on a later tick. We set this to true at first, because any
- // actions that shouldn't happen until "later" should generally also
- // not happen before the first write call.
- this.sync = true;
-
- // a flag to know if we're processing previously buffered items, which
- // may call the _write() callback in the same tick, so that we don't
- // end up in an overlapped onwrite situation.
- this.bufferProcessing = false;
-
- // the callback that's passed to _write(chunk,cb)
- this.onwrite = function (er) {
- onwrite(stream, er);
- };
-
- // the callback that the user supplies to write(chunk,encoding,cb)
- this.writecb = null;
-
- // the amount that is being written when _write is called.
- this.writelen = 0;
-
- this.bufferedRequest = null;
- this.lastBufferedRequest = null;
-
- // number of pending user-supplied write callbacks
- // this must be 0 before 'finish' can be emitted
- this.pendingcb = 0;
-
- // emit prefinish if the only thing we're waiting for is _write cbs
- // This is relevant for synchronous Transform streams
- this.prefinished = false;
-
- // True if the error was already emitted and should not be thrown again
- this.errorEmitted = false;
-
- // count buffered requests
- this.bufferedRequestCount = 0;
-
- // allocate the first CorkedRequest, there is always
- // one allocated and free to use, and we maintain at most two
- this.corkedRequestsFree = new CorkedRequest(this);
-}
-
-WritableState.prototype.getBuffer = function getBuffer() {
- var current = this.bufferedRequest;
- var out = [];
- while (current) {
- out.push(current);
- current = current.next;
- }
- return out;
-};
-
-(function () {
- try {
- Object.defineProperty(WritableState.prototype, 'buffer', {
- get: internalUtil.deprecate(function () {
- return this.getBuffer();
- }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')
- });
- } catch (_) {}
-})();
-
-// Test _writableState for inheritance to account for Duplex streams,
-// whose prototype chain only points to Readable.
-var realHasInstance;
-if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {
- realHasInstance = Function.prototype[Symbol.hasInstance];
- Object.defineProperty(Writable, Symbol.hasInstance, {
- value: function (object) {
- if (realHasInstance.call(this, object)) return true;
- if (this !== Writable) return false;
-
- return object && object._writableState instanceof WritableState;
- }
- });
-} else {
- realHasInstance = function (object) {
- return object instanceof this;
- };
-}
-
-function Writable(options) {
- Duplex = Duplex || require('./_stream_duplex');
-
- // Writable ctor is applied to Duplexes, too.
- // `realHasInstance` is necessary because using plain `instanceof`
- // would return false, as no `_writableState` property is attached.
-
- // Trying to use the custom `instanceof` for Writable here will also break the
- // Node.js LazyTransform implementation, which has a non-trivial getter for
- // `_writableState` that would lead to infinite recursion.
- if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {
- return new Writable(options);
- }
-
- this._writableState = new WritableState(options, this);
-
- // legacy.
- this.writable = true;
-
- if (options) {
- if (typeof options.write === 'function') this._write = options.write;
-
- if (typeof options.writev === 'function') this._writev = options.writev;
-
- if (typeof options.destroy === 'function') this._destroy = options.destroy;
-
- if (typeof options.final === 'function') this._final = options.final;
- }
-
- Stream.call(this);
-}
-
-// Otherwise people can pipe Writable streams, which is just wrong.
-Writable.prototype.pipe = function () {
- this.emit('error', new Error('Cannot pipe, not readable'));
-};
-
-function writeAfterEnd(stream, cb) {
- var er = new Error('write after end');
- // TODO: defer error events consistently everywhere, not just the cb
- stream.emit('error', er);
- pna.nextTick(cb, er);
-}
-
-// Checks that a user-supplied chunk is valid, especially for the particular
-// mode the stream is in. Currently this means that `null` is never accepted
-// and undefined/non-string values are only allowed in object mode.
-function validChunk(stream, state, chunk, cb) {
- var valid = true;
- var er = false;
-
- if (chunk === null) {
- er = new TypeError('May not write null values to stream');
- } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
- er = new TypeError('Invalid non-string/buffer chunk');
- }
- if (er) {
- stream.emit('error', er);
- pna.nextTick(cb, er);
- valid = false;
- }
- return valid;
-}
-
-Writable.prototype.write = function (chunk, encoding, cb) {
- var state = this._writableState;
- var ret = false;
- var isBuf = !state.objectMode && _isUint8Array(chunk);
-
- if (isBuf && !Buffer.isBuffer(chunk)) {
- chunk = _uint8ArrayToBuffer(chunk);
- }
-
- if (typeof encoding === 'function') {
- cb = encoding;
- encoding = null;
- }
-
- if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
-
- if (typeof cb !== 'function') cb = nop;
-
- if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {
- state.pendingcb++;
- ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);
- }
-
- return ret;
-};
-
-Writable.prototype.cork = function () {
- var state = this._writableState;
-
- state.corked++;
-};
-
-Writable.prototype.uncork = function () {
- var state = this._writableState;
-
- if (state.corked) {
- state.corked--;
-
- if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
- }
-};
-
-Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
- // node::ParseEncoding() requires lower case.
- if (typeof encoding === 'string') encoding = encoding.toLowerCase();
- if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);
- this._writableState.defaultEncoding = encoding;
- return this;
-};
-
-function decodeChunk(state, chunk, encoding) {
- if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
- chunk = Buffer.from(chunk, encoding);
- }
- return chunk;
-}
-
-Object.defineProperty(Writable.prototype, 'writableHighWaterMark', {
- // making it explicit this property is not enumerable
- // because otherwise some prototype manipulation in
- // userland will fail
- enumerable: false,
- get: function () {
- return this._writableState.highWaterMark;
- }
-});
-
-// if we're already writing something, then just put this
-// in the queue, and wait our turn. Otherwise, call _write
-// If we return false, then we need a drain event, so set that flag.
-function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {
- if (!isBuf) {
- var newChunk = decodeChunk(state, chunk, encoding);
- if (chunk !== newChunk) {
- isBuf = true;
- encoding = 'buffer';
- chunk = newChunk;
- }
- }
- var len = state.objectMode ? 1 : chunk.length;
-
- state.length += len;
-
- var ret = state.length < state.highWaterMark;
- // we must ensure that previous needDrain will not be reset to false.
- if (!ret) state.needDrain = true;
-
- if (state.writing || state.corked) {
- var last = state.lastBufferedRequest;
- state.lastBufferedRequest = {
- chunk: chunk,
- encoding: encoding,
- isBuf: isBuf,
- callback: cb,
- next: null
- };
- if (last) {
- last.next = state.lastBufferedRequest;
- } else {
- state.bufferedRequest = state.lastBufferedRequest;
- }
- state.bufferedRequestCount += 1;
- } else {
- doWrite(stream, state, false, len, chunk, encoding, cb);
- }
-
- return ret;
-}
-
-function doWrite(stream, state, writev, len, chunk, encoding, cb) {
- state.writelen = len;
- state.writecb = cb;
- state.writing = true;
- state.sync = true;
- if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
- state.sync = false;
-}
-
-function onwriteError(stream, state, sync, er, cb) {
- --state.pendingcb;
-
- if (sync) {
- // defer the callback if we are being called synchronously
- // to avoid piling up things on the stack
- pna.nextTick(cb, er);
- // this can emit finish, and it will always happen
- // after error
- pna.nextTick(finishMaybe, stream, state);
- stream._writableState.errorEmitted = true;
- stream.emit('error', er);
- } else {
- // the caller expect this to happen before if
- // it is async
- cb(er);
- stream._writableState.errorEmitted = true;
- stream.emit('error', er);
- // this can emit finish, but finish must
- // always follow error
- finishMaybe(stream, state);
- }
-}
-
-function onwriteStateUpdate(state) {
- state.writing = false;
- state.writecb = null;
- state.length -= state.writelen;
- state.writelen = 0;
-}
-
-function onwrite(stream, er) {
- var state = stream._writableState;
- var sync = state.sync;
- var cb = state.writecb;
-
- onwriteStateUpdate(state);
-
- if (er) onwriteError(stream, state, sync, er, cb);else {
- // Check if we're actually ready to finish, but don't emit yet
- var finished = needFinish(state);
-
- if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
- clearBuffer(stream, state);
- }
-
- if (sync) {
- /**/
- asyncWrite(afterWrite, stream, state, finished, cb);
- /* */
- } else {
- afterWrite(stream, state, finished, cb);
- }
- }
-}
-
-function afterWrite(stream, state, finished, cb) {
- if (!finished) onwriteDrain(stream, state);
- state.pendingcb--;
- cb();
- finishMaybe(stream, state);
-}
-
-// Must force callback to be called on nextTick, so that we don't
-// emit 'drain' before the write() consumer gets the 'false' return
-// value, and has a chance to attach a 'drain' listener.
-function onwriteDrain(stream, state) {
- if (state.length === 0 && state.needDrain) {
- state.needDrain = false;
- stream.emit('drain');
- }
-}
-
-// if there's something in the buffer waiting, then process it
-function clearBuffer(stream, state) {
- state.bufferProcessing = true;
- var entry = state.bufferedRequest;
-
- if (stream._writev && entry && entry.next) {
- // Fast case, write everything using _writev()
- var l = state.bufferedRequestCount;
- var buffer = new Array(l);
- var holder = state.corkedRequestsFree;
- holder.entry = entry;
-
- var count = 0;
- var allBuffers = true;
- while (entry) {
- buffer[count] = entry;
- if (!entry.isBuf) allBuffers = false;
- entry = entry.next;
- count += 1;
- }
- buffer.allBuffers = allBuffers;
-
- doWrite(stream, state, true, state.length, buffer, '', holder.finish);
-
- // doWrite is almost always async, defer these to save a bit of time
- // as the hot path ends with doWrite
- state.pendingcb++;
- state.lastBufferedRequest = null;
- if (holder.next) {
- state.corkedRequestsFree = holder.next;
- holder.next = null;
- } else {
- state.corkedRequestsFree = new CorkedRequest(state);
- }
- state.bufferedRequestCount = 0;
- } else {
- // Slow case, write chunks one-by-one
- while (entry) {
- var chunk = entry.chunk;
- var encoding = entry.encoding;
- var cb = entry.callback;
- var len = state.objectMode ? 1 : chunk.length;
-
- doWrite(stream, state, false, len, chunk, encoding, cb);
- entry = entry.next;
- state.bufferedRequestCount--;
- // if we didn't call the onwrite immediately, then
- // it means that we need to wait until it does.
- // also, that means that the chunk and cb are currently
- // being processed, so move the buffer counter past them.
- if (state.writing) {
- break;
- }
- }
-
- if (entry === null) state.lastBufferedRequest = null;
- }
-
- state.bufferedRequest = entry;
- state.bufferProcessing = false;
-}
-
-Writable.prototype._write = function (chunk, encoding, cb) {
- cb(new Error('_write() is not implemented'));
-};
-
-Writable.prototype._writev = null;
-
-Writable.prototype.end = function (chunk, encoding, cb) {
- var state = this._writableState;
-
- if (typeof chunk === 'function') {
- cb = chunk;
- chunk = null;
- encoding = null;
- } else if (typeof encoding === 'function') {
- cb = encoding;
- encoding = null;
- }
-
- if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
-
- // .end() fully uncorks
- if (state.corked) {
- state.corked = 1;
- this.uncork();
- }
-
- // ignore unnecessary end() calls.
- if (!state.ending && !state.finished) endWritable(this, state, cb);
-};
-
-function needFinish(state) {
- return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;
-}
-function callFinal(stream, state) {
- stream._final(function (err) {
- state.pendingcb--;
- if (err) {
- stream.emit('error', err);
- }
- state.prefinished = true;
- stream.emit('prefinish');
- finishMaybe(stream, state);
- });
-}
-function prefinish(stream, state) {
- if (!state.prefinished && !state.finalCalled) {
- if (typeof stream._final === 'function') {
- state.pendingcb++;
- state.finalCalled = true;
- pna.nextTick(callFinal, stream, state);
- } else {
- state.prefinished = true;
- stream.emit('prefinish');
- }
- }
-}
-
-function finishMaybe(stream, state) {
- var need = needFinish(state);
- if (need) {
- prefinish(stream, state);
- if (state.pendingcb === 0) {
- state.finished = true;
- stream.emit('finish');
- }
- }
- return need;
-}
-
-function endWritable(stream, state, cb) {
- state.ending = true;
- finishMaybe(stream, state);
- if (cb) {
- if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);
- }
- state.ended = true;
- stream.writable = false;
-}
-
-function onCorkedFinish(corkReq, state, err) {
- var entry = corkReq.entry;
- corkReq.entry = null;
- while (entry) {
- var cb = entry.callback;
- state.pendingcb--;
- cb(err);
- entry = entry.next;
- }
- if (state.corkedRequestsFree) {
- state.corkedRequestsFree.next = corkReq;
- } else {
- state.corkedRequestsFree = corkReq;
- }
-}
-
-Object.defineProperty(Writable.prototype, 'destroyed', {
- get: function () {
- if (this._writableState === undefined) {
- return false;
- }
- return this._writableState.destroyed;
- },
- set: function (value) {
- // we ignore the value if the stream
- // has not been initialized yet
- if (!this._writableState) {
- return;
- }
-
- // backward compatibility, the user is explicitly
- // managing destroyed
- this._writableState.destroyed = value;
- }
-});
-
-Writable.prototype.destroy = destroyImpl.destroy;
-Writable.prototype._undestroy = destroyImpl.undestroy;
-Writable.prototype._destroy = function (err, cb) {
- this.end();
- cb(err);
-};
\ No newline at end of file
diff --git a/node_modules/readable-stream/lib/internal/streams/BufferList.js b/node_modules/readable-stream/lib/internal/streams/BufferList.js
deleted file mode 100644
index aefc68b..0000000
--- a/node_modules/readable-stream/lib/internal/streams/BufferList.js
+++ /dev/null
@@ -1,79 +0,0 @@
-'use strict';
-
-function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
-
-var Buffer = require('safe-buffer').Buffer;
-var util = require('util');
-
-function copyBuffer(src, target, offset) {
- src.copy(target, offset);
-}
-
-module.exports = function () {
- function BufferList() {
- _classCallCheck(this, BufferList);
-
- this.head = null;
- this.tail = null;
- this.length = 0;
- }
-
- BufferList.prototype.push = function push(v) {
- var entry = { data: v, next: null };
- if (this.length > 0) this.tail.next = entry;else this.head = entry;
- this.tail = entry;
- ++this.length;
- };
-
- BufferList.prototype.unshift = function unshift(v) {
- var entry = { data: v, next: this.head };
- if (this.length === 0) this.tail = entry;
- this.head = entry;
- ++this.length;
- };
-
- BufferList.prototype.shift = function shift() {
- if (this.length === 0) return;
- var ret = this.head.data;
- if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;
- --this.length;
- return ret;
- };
-
- BufferList.prototype.clear = function clear() {
- this.head = this.tail = null;
- this.length = 0;
- };
-
- BufferList.prototype.join = function join(s) {
- if (this.length === 0) return '';
- var p = this.head;
- var ret = '' + p.data;
- while (p = p.next) {
- ret += s + p.data;
- }return ret;
- };
-
- BufferList.prototype.concat = function concat(n) {
- if (this.length === 0) return Buffer.alloc(0);
- if (this.length === 1) return this.head.data;
- var ret = Buffer.allocUnsafe(n >>> 0);
- var p = this.head;
- var i = 0;
- while (p) {
- copyBuffer(p.data, ret, i);
- i += p.data.length;
- p = p.next;
- }
- return ret;
- };
-
- return BufferList;
-}();
-
-if (util && util.inspect && util.inspect.custom) {
- module.exports.prototype[util.inspect.custom] = function () {
- var obj = util.inspect({ length: this.length });
- return this.constructor.name + ' ' + obj;
- };
-}
\ No newline at end of file
diff --git a/node_modules/readable-stream/lib/internal/streams/destroy.js b/node_modules/readable-stream/lib/internal/streams/destroy.js
deleted file mode 100644
index 5a0a0d8..0000000
--- a/node_modules/readable-stream/lib/internal/streams/destroy.js
+++ /dev/null
@@ -1,74 +0,0 @@
-'use strict';
-
-/**/
-
-var pna = require('process-nextick-args');
-/* */
-
-// undocumented cb() API, needed for core, not for public API
-function destroy(err, cb) {
- var _this = this;
-
- var readableDestroyed = this._readableState && this._readableState.destroyed;
- var writableDestroyed = this._writableState && this._writableState.destroyed;
-
- if (readableDestroyed || writableDestroyed) {
- if (cb) {
- cb(err);
- } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {
- pna.nextTick(emitErrorNT, this, err);
- }
- return this;
- }
-
- // we set destroyed to true before firing error callbacks in order
- // to make it re-entrance safe in case destroy() is called within callbacks
-
- if (this._readableState) {
- this._readableState.destroyed = true;
- }
-
- // if this is a duplex stream mark the writable part as destroyed as well
- if (this._writableState) {
- this._writableState.destroyed = true;
- }
-
- this._destroy(err || null, function (err) {
- if (!cb && err) {
- pna.nextTick(emitErrorNT, _this, err);
- if (_this._writableState) {
- _this._writableState.errorEmitted = true;
- }
- } else if (cb) {
- cb(err);
- }
- });
-
- return this;
-}
-
-function undestroy() {
- if (this._readableState) {
- this._readableState.destroyed = false;
- this._readableState.reading = false;
- this._readableState.ended = false;
- this._readableState.endEmitted = false;
- }
-
- if (this._writableState) {
- this._writableState.destroyed = false;
- this._writableState.ended = false;
- this._writableState.ending = false;
- this._writableState.finished = false;
- this._writableState.errorEmitted = false;
- }
-}
-
-function emitErrorNT(self, err) {
- self.emit('error', err);
-}
-
-module.exports = {
- destroy: destroy,
- undestroy: undestroy
-};
\ No newline at end of file
diff --git a/node_modules/readable-stream/lib/internal/streams/stream-browser.js b/node_modules/readable-stream/lib/internal/streams/stream-browser.js
deleted file mode 100644
index 9332a3f..0000000
--- a/node_modules/readable-stream/lib/internal/streams/stream-browser.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('events').EventEmitter;
diff --git a/node_modules/readable-stream/lib/internal/streams/stream.js b/node_modules/readable-stream/lib/internal/streams/stream.js
deleted file mode 100644
index ce2ad5b..0000000
--- a/node_modules/readable-stream/lib/internal/streams/stream.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('stream');
diff --git a/node_modules/readable-stream/package.json b/node_modules/readable-stream/package.json
deleted file mode 100644
index 2afa6fb..0000000
--- a/node_modules/readable-stream/package.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
- "name": "readable-stream",
- "version": "2.3.7",
- "description": "Streams3, a user-land copy of the stream library from Node.js",
- "main": "readable.js",
- "dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- },
- "devDependencies": {
- "assert": "^1.4.0",
- "babel-polyfill": "^6.9.1",
- "buffer": "^4.9.0",
- "lolex": "^2.3.2",
- "nyc": "^6.4.0",
- "tap": "^0.7.0",
- "tape": "^4.8.0"
- },
- "scripts": {
- "test": "tap test/parallel/*.js test/ours/*.js && node test/verify-dependencies.js",
- "ci": "tap test/parallel/*.js test/ours/*.js --tap | tee test.tap && node test/verify-dependencies.js",
- "cover": "nyc npm test",
- "report": "nyc report --reporter=lcov"
- },
- "repository": {
- "type": "git",
- "url": "git://github.com/nodejs/readable-stream"
- },
- "keywords": [
- "readable",
- "stream",
- "pipe"
- ],
- "browser": {
- "util": false,
- "./readable.js": "./readable-browser.js",
- "./writable.js": "./writable-browser.js",
- "./duplex.js": "./duplex-browser.js",
- "./lib/internal/streams/stream.js": "./lib/internal/streams/stream-browser.js"
- },
- "nyc": {
- "include": [
- "lib/**.js"
- ]
- },
- "license": "MIT"
-}
diff --git a/node_modules/readable-stream/passthrough.js b/node_modules/readable-stream/passthrough.js
deleted file mode 100644
index ffd791d..0000000
--- a/node_modules/readable-stream/passthrough.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./readable').PassThrough
diff --git a/node_modules/readable-stream/readable-browser.js b/node_modules/readable-stream/readable-browser.js
deleted file mode 100644
index e503725..0000000
--- a/node_modules/readable-stream/readable-browser.js
+++ /dev/null
@@ -1,7 +0,0 @@
-exports = module.exports = require('./lib/_stream_readable.js');
-exports.Stream = exports;
-exports.Readable = exports;
-exports.Writable = require('./lib/_stream_writable.js');
-exports.Duplex = require('./lib/_stream_duplex.js');
-exports.Transform = require('./lib/_stream_transform.js');
-exports.PassThrough = require('./lib/_stream_passthrough.js');
diff --git a/node_modules/readable-stream/readable.js b/node_modules/readable-stream/readable.js
deleted file mode 100644
index ec89ec5..0000000
--- a/node_modules/readable-stream/readable.js
+++ /dev/null
@@ -1,19 +0,0 @@
-var Stream = require('stream');
-if (process.env.READABLE_STREAM === 'disable' && Stream) {
- module.exports = Stream;
- exports = module.exports = Stream.Readable;
- exports.Readable = Stream.Readable;
- exports.Writable = Stream.Writable;
- exports.Duplex = Stream.Duplex;
- exports.Transform = Stream.Transform;
- exports.PassThrough = Stream.PassThrough;
- exports.Stream = Stream;
-} else {
- exports = module.exports = require('./lib/_stream_readable.js');
- exports.Stream = Stream || exports;
- exports.Readable = exports;
- exports.Writable = require('./lib/_stream_writable.js');
- exports.Duplex = require('./lib/_stream_duplex.js');
- exports.Transform = require('./lib/_stream_transform.js');
- exports.PassThrough = require('./lib/_stream_passthrough.js');
-}
diff --git a/node_modules/readable-stream/transform.js b/node_modules/readable-stream/transform.js
deleted file mode 100644
index b1baba2..0000000
--- a/node_modules/readable-stream/transform.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./readable').Transform
diff --git a/node_modules/readable-stream/writable-browser.js b/node_modules/readable-stream/writable-browser.js
deleted file mode 100644
index ebdde6a..0000000
--- a/node_modules/readable-stream/writable-browser.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./lib/_stream_writable.js');
diff --git a/node_modules/readable-stream/writable.js b/node_modules/readable-stream/writable.js
deleted file mode 100644
index 3211a6f..0000000
--- a/node_modules/readable-stream/writable.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var Stream = require("stream")
-var Writable = require("./lib/_stream_writable.js")
-
-if (process.env.READABLE_STREAM === 'disable') {
- module.exports = Stream && Stream.Writable || Writable
-} else {
- module.exports = Writable
-}
diff --git a/node_modules/readdirp/LICENSE b/node_modules/readdirp/LICENSE
deleted file mode 100644
index 8a63b80..0000000
--- a/node_modules/readdirp/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-This software is released under the MIT license:
-
-Copyright (c) 2012-2015 Thorsten Lorenz
-
-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/readdirp/README.md b/node_modules/readdirp/README.md
deleted file mode 100644
index 431f402..0000000
--- a/node_modules/readdirp/README.md
+++ /dev/null
@@ -1,204 +0,0 @@
-# readdirp [![Build Status](https://secure.travis-ci.org/thlorenz/readdirp.svg)](http://travis-ci.org/thlorenz/readdirp)
-
-[![NPM](https://nodei.co/npm/readdirp.png?downloads=true&stars=true)](https://nodei.co/npm/readdirp/)
-
-Recursive version of [fs.readdir](http://nodejs.org/docs/latest/api/fs.html#fs_fs_readdir_path_callback). Exposes a **stream api**.
-
-```javascript
-var readdirp = require('readdirp')
- , path = require('path')
- , es = require('event-stream');
-
-// print out all JavaScript files along with their size
-
-var stream = readdirp({ root: path.join(__dirname), fileFilter: '*.js' });
-stream
- .on('warn', function (err) {
- console.error('non-fatal error', err);
- // optionally call stream.destroy() here in order to abort and cause 'close' to be emitted
- })
- .on('error', function (err) { console.error('fatal error', err); })
- .pipe(es.mapSync(function (entry) {
- return { path: entry.path, size: entry.stat.size };
- }))
- .pipe(es.stringify())
- .pipe(process.stdout);
-```
-
-Meant to be one of the recursive versions of [fs](http://nodejs.org/docs/latest/api/fs.html) functions, e.g., like [mkdirp](https://github.com/substack/node-mkdirp).
-
-**Table of Contents** *generated with [DocToc](http://doctoc.herokuapp.com/)*
-
-- [Installation](#installation)
-- [API](#api)
- - [entry stream](#entry-stream)
- - [options](#options)
- - [entry info](#entry-info)
- - [Filters](#filters)
- - [Callback API](#callback-api)
- - [allProcessed ](#allprocessed)
- - [fileProcessed](#fileprocessed)
-- [More Examples](#more-examples)
- - [stream api](#stream-api)
- - [stream api pipe](#stream-api-pipe)
- - [grep](#grep)
- - [using callback api](#using-callback-api)
- - [tests](#tests)
-
-
-# Installation
-
- npm install readdirp
-
-# API
-
-***var entryStream = readdirp (options)***
-
-Reads given root recursively and returns a `stream` of [entry info](#entry-info)s.
-
-## entry stream
-
-Behaves as follows:
-
-- `emit('data')` passes an [entry info](#entry-info) whenever one is found
-- `emit('warn')` passes a non-fatal `Error` that prevents a file/directory from being processed (i.e., if it is
- inaccessible to the user)
-- `emit('error')` passes a fatal `Error` which also ends the stream (i.e., when illegal options where passed)
-- `emit('end')` called when all entries were found and no more will be emitted (i.e., we are done)
-- `emit('close')` called when the stream is destroyed via `stream.destroy()` (which could be useful if you want to
- manually abort even on a non fatal error) - at that point the stream is no longer `readable` and no more entries,
- warning or errors are emitted
-- to learn more about streams, consult the very detailed
- [nodejs streams documentation](http://nodejs.org/api/stream.html) or the
- [stream-handbook](https://github.com/substack/stream-handbook)
-
-
-## options
-
-- **root**: path in which to start reading and recursing into subdirectories
-
-- **fileFilter**: filter to include/exclude files found (see [Filters](#filters) for more)
-
-- **directoryFilter**: filter to include/exclude directories found and to recurse into (see [Filters](#filters) for more)
-
-- **depth**: depth at which to stop recursing even if more subdirectories are found
-
-- **entryType**: determines if data events on the stream should be emitted for `'files'`, `'directories'`, `'both'`, or `'all'`. Setting to `'all'` will also include entries for other types of file descriptors like character devices, unix sockets and named pipes. Defaults to `'files'`.
-
-- **lstat**: if `true`, readdirp uses `fs.lstat` instead of `fs.stat` in order to stat files and includes symlink entries in the stream along with files.
-
-## entry info
-
-Has the following properties:
-
-- **parentDir** : directory in which entry was found (relative to given root)
-- **fullParentDir** : full path to parent directory
-- **name** : name of the file/directory
-- **path** : path to the file/directory (relative to given root)
-- **fullPath** : full path to the file/directory found
-- **stat** : built in [stat object](http://nodejs.org/docs/v0.4.9/api/fs.html#fs.Stats)
-- **Example**: (assuming root was `/User/dev/readdirp`)
-
- parentDir : 'test/bed/root_dir1',
- fullParentDir : '/User/dev/readdirp/test/bed/root_dir1',
- name : 'root_dir1_subdir1',
- path : 'test/bed/root_dir1/root_dir1_subdir1',
- fullPath : '/User/dev/readdirp/test/bed/root_dir1/root_dir1_subdir1',
- stat : [ ... ]
-
-## Filters
-
-There are three different ways to specify filters for files and directories respectively.
-
-- **function**: a function that takes an entry info as a parameter and returns true to include or false to exclude the entry
-
-- **glob string**: a string (e.g., `*.js`) which is matched using [minimatch](https://github.com/isaacs/minimatch), so go there for more
- information.
-
- Globstars (`**`) are not supported since specifying a recursive pattern for an already recursive function doesn't make sense.
-
- Negated globs (as explained in the minimatch documentation) are allowed, e.g., `!*.txt` matches everything but text files.
-
-- **array of glob strings**: either need to be all inclusive or all exclusive (negated) patterns otherwise an error is thrown.
-
- `[ '*.json', '*.js' ]` includes all JavaScript and Json files.
-
-
- `[ '!.git', '!node_modules' ]` includes all directories except the '.git' and 'node_modules'.
-
-Directories that do not pass a filter will not be recursed into.
-
-## Callback API
-
-Although the stream api is recommended, readdirp also exposes a callback based api.
-
-***readdirp (options, callback1 [, callback2])***
-
-If callback2 is given, callback1 functions as the **fileProcessed** callback, and callback2 as the **allProcessed** callback.
-
-If only callback1 is given, it functions as the **allProcessed** callback.
-
-### allProcessed
-
-- function with err and res parameters, e.g., `function (err, res) { ... }`
-- **err**: array of errors that occurred during the operation, **res may still be present, even if errors occurred**
-- **res**: collection of file/directory [entry infos](#entry-info)
-
-### fileProcessed
-
-- function with [entry info](#entry-info) parameter e.g., `function (entryInfo) { ... }`
-
-
-# More Examples
-
-`on('error', ..)`, `on('warn', ..)` and `on('end', ..)` handling omitted for brevity
-
-```javascript
-var readdirp = require('readdirp');
-
-// Glob file filter
-readdirp({ root: './test/bed', fileFilter: '*.js' })
- .on('data', function (entry) {
- // do something with each JavaScript file entry
- });
-
-// Combined glob file filters
-readdirp({ root: './test/bed', fileFilter: [ '*.js', '*.json' ] })
- .on('data', function (entry) {
- // do something with each JavaScript and Json file entry
- });
-
-// Combined negated directory filters
-readdirp({ root: './test/bed', directoryFilter: [ '!.git', '!*modules' ] })
- .on('data', function (entry) {
- // do something with each file entry found outside '.git' or any modules directory
- });
-
-// Function directory filter
-readdirp({ root: './test/bed', directoryFilter: function (di) { return di.name.length === 9; } })
- .on('data', function (entry) {
- // do something with each file entry found inside directories whose name has length 9
- });
-
-// Limiting depth
-readdirp({ root: './test/bed', depth: 1 })
- .on('data', function (entry) {
- // do something with each file entry found up to 1 subdirectory deep
- });
-
-// callback api
-readdirp({ root: '.' }, function(fileInfo) {
- // do something with file entry here
- }, function (err, res) {
- // all done, move on or do final step for all file entries here
-});
-```
-
-Try more examples by following [instructions](https://github.com/paulmillr/readdirp/blob/master/examples/Readme.md)
-on how to get going.
-
-## tests
-
-The [readdirp tests](https://github.com/paulmillr/readdirp/blob/master/test/readdirp.js) also will give you a good idea on
-how things work.
-
diff --git a/node_modules/readdirp/package.json b/node_modules/readdirp/package.json
deleted file mode 100644
index 39314a2..0000000
--- a/node_modules/readdirp/package.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{
- "author": "Thorsten Lorenz (thlorenz.com)",
- "name": "readdirp",
- "description": "Recursive version of fs.readdir with streaming api.",
- "version": "2.2.1",
- "homepage": "https://github.com/paulmillr/readdirp",
- "repository": {
- "type": "git",
- "url": "git://github.com/paulmillr/readdirp.git"
- },
- "engines": {
- "node": ">=0.10"
- },
- "files": [
- "readdirp.js",
- "stream-api.js"
- ],
- "keywords": [
- "recursive",
- "fs",
- "stream",
- "streams",
- "readdir",
- "filesystem",
- "find",
- "filter"
- ],
- "main": "readdirp.js",
- "scripts": {
- "test-main": "(cd test && set -e; for t in ./*.js; do node $t; done)",
- "test-0.10": "nave use 0.10 npm run test-main",
- "test-0.12": "nave use 0.12 npm run test-main",
- "test-4": "nave use 4.4 npm run test-main",
- "test-6": "nave use 6.2 npm run test-main",
- "test-all": "npm run test-main && npm run test-0.10 && npm run test-0.12 && npm run test-4 && npm run test-6",
- "test": "npm run test-main"
- },
- "dependencies": {
- "graceful-fs": "^4.1.11",
- "micromatch": "^3.1.10",
- "readable-stream": "^2.0.2"
- },
- "devDependencies": {
- "nave": "^0.5.1",
- "proxyquire": "^1.7.9",
- "tap": "1.3.2",
- "through2": "^2.0.0"
- },
- "license": "MIT"
-}
diff --git a/node_modules/readdirp/readdirp.js b/node_modules/readdirp/readdirp.js
deleted file mode 100644
index 863bd17..0000000
--- a/node_modules/readdirp/readdirp.js
+++ /dev/null
@@ -1,294 +0,0 @@
-'use strict';
-
-var fs = require('graceful-fs')
- , path = require('path')
- , micromatch = require('micromatch').isMatch
- , toString = Object.prototype.toString
- ;
-
-
-// Standard helpers
-function isFunction (obj) {
- return toString.call(obj) === '[object Function]';
-}
-
-function isString (obj) {
- return toString.call(obj) === '[object String]';
-}
-
-function isUndefined (obj) {
- return obj === void 0;
-}
-
-/**
- * Main function which ends up calling readdirRec and reads all files and directories in given root recursively.
- * @param { Object } opts Options to specify root (start directory), filters and recursion depth
- * @param { function } callback1 When callback2 is given calls back for each processed file - function (fileInfo) { ... },
- * when callback2 is not given, it behaves like explained in callback2
- * @param { function } callback2 Calls back once all files have been processed with an array of errors and file infos
- * function (err, fileInfos) { ... }
- */
-function readdir(opts, callback1, callback2) {
- var stream
- , handleError
- , handleFatalError
- , errors = []
- , readdirResult = {
- directories: []
- , files: []
- }
- , fileProcessed
- , allProcessed
- , realRoot
- , aborted = false
- , paused = false
- ;
-
- // If no callbacks were given we will use a streaming interface
- if (isUndefined(callback1)) {
- var api = require('./stream-api')();
- stream = api.stream;
- callback1 = api.processEntry;
- callback2 = api.done;
- handleError = api.handleError;
- handleFatalError = api.handleFatalError;
-
- stream.on('close', function () { aborted = true; });
- stream.on('pause', function () { paused = true; });
- stream.on('resume', function () { paused = false; });
- } else {
- handleError = function (err) { errors.push(err); };
- handleFatalError = function (err) {
- handleError(err);
- allProcessed(errors, null);
- };
- }
-
- if (isUndefined(opts)){
- handleFatalError(new Error (
- 'Need to pass at least one argument: opts! \n' +
- 'https://github.com/paulmillr/readdirp#options'
- )
- );
- return stream;
- }
-
- opts.root = opts.root || '.';
- opts.fileFilter = opts.fileFilter || function() { return true; };
- opts.directoryFilter = opts.directoryFilter || function() { return true; };
- opts.depth = typeof opts.depth === 'undefined' ? 999999999 : opts.depth;
- opts.entryType = opts.entryType || 'files';
-
- var statfn = opts.lstat === true ? fs.lstat.bind(fs) : fs.stat.bind(fs);
-
- if (isUndefined(callback2)) {
- fileProcessed = function() { };
- allProcessed = callback1;
- } else {
- fileProcessed = callback1;
- allProcessed = callback2;
- }
-
- function normalizeFilter (filter) {
-
- if (isUndefined(filter)) return undefined;
-
- function isNegated (filters) {
-
- function negated(f) {
- return f.indexOf('!') === 0;
- }
-
- var some = filters.some(negated);
- if (!some) {
- return false;
- } else {
- if (filters.every(negated)) {
- return true;
- } else {
- // if we detect illegal filters, bail out immediately
- throw new Error(
- 'Cannot mix negated with non negated glob filters: ' + filters + '\n' +
- 'https://github.com/paulmillr/readdirp#filters'
- );
- }
- }
- }
-
- // Turn all filters into a function
- if (isFunction(filter)) {
-
- return filter;
-
- } else if (isString(filter)) {
-
- return function (entryInfo) {
- return micromatch(entryInfo.name, filter.trim());
- };
-
- } else if (filter && Array.isArray(filter)) {
-
- if (filter) filter = filter.map(function (f) {
- return f.trim();
- });
-
- return isNegated(filter) ?
- // use AND to concat multiple negated filters
- function (entryInfo) {
- return filter.every(function (f) {
- return micromatch(entryInfo.name, f);
- });
- }
- :
- // use OR to concat multiple inclusive filters
- function (entryInfo) {
- return filter.some(function (f) {
- return micromatch(entryInfo.name, f);
- });
- };
- }
- }
-
- function processDir(currentDir, entries, callProcessed) {
- if (aborted) return;
- var total = entries.length
- , processed = 0
- , entryInfos = []
- ;
-
- fs.realpath(currentDir, function(err, realCurrentDir) {
- if (aborted) return;
- if (err) {
- handleError(err);
- callProcessed(entryInfos);
- return;
- }
-
- var relDir = path.relative(realRoot, realCurrentDir);
-
- if (entries.length === 0) {
- callProcessed([]);
- } else {
- entries.forEach(function (entry) {
-
- var fullPath = path.join(realCurrentDir, entry)
- , relPath = path.join(relDir, entry);
-
- statfn(fullPath, function (err, stat) {
- if (err) {
- handleError(err);
- } else {
- entryInfos.push({
- name : entry
- , path : relPath // relative to root
- , fullPath : fullPath
-
- , parentDir : relDir // relative to root
- , fullParentDir : realCurrentDir
-
- , stat : stat
- });
- }
- processed++;
- if (processed === total) callProcessed(entryInfos);
- });
- });
- }
- });
- }
-
- function readdirRec(currentDir, depth, callCurrentDirProcessed) {
- var args = arguments;
- if (aborted) return;
- if (paused) {
- setImmediate(function () {
- readdirRec.apply(null, args);
- })
- return;
- }
-
- fs.readdir(currentDir, function (err, entries) {
- if (err) {
- handleError(err);
- callCurrentDirProcessed();
- return;
- }
-
- processDir(currentDir, entries, function(entryInfos) {
-
- var subdirs = entryInfos
- .filter(function (ei) { return ei.stat.isDirectory() && opts.directoryFilter(ei); });
-
- subdirs.forEach(function (di) {
- if(opts.entryType === 'directories' || opts.entryType === 'both' || opts.entryType === 'all') {
- fileProcessed(di);
- }
- readdirResult.directories.push(di);
- });
-
- entryInfos
- .filter(function(ei) {
- var isCorrectType = opts.entryType === 'all' ?
- !ei.stat.isDirectory() : ei.stat.isFile() || ei.stat.isSymbolicLink();
- return isCorrectType && opts.fileFilter(ei);
- })
- .forEach(function (fi) {
- if(opts.entryType === 'files' || opts.entryType === 'both' || opts.entryType === 'all') {
- fileProcessed(fi);
- }
- readdirResult.files.push(fi);
- });
-
- var pendingSubdirs = subdirs.length;
-
- // Be done if no more subfolders exist or we reached the maximum desired depth
- if(pendingSubdirs === 0 || depth === opts.depth) {
- callCurrentDirProcessed();
- } else {
- // recurse into subdirs, keeping track of which ones are done
- // and call back once all are processed
- subdirs.forEach(function (subdir) {
- readdirRec(subdir.fullPath, depth + 1, function () {
- pendingSubdirs = pendingSubdirs - 1;
- if(pendingSubdirs === 0) {
- callCurrentDirProcessed();
- }
- });
- });
- }
- });
- });
- }
-
- // Validate and normalize filters
- try {
- opts.fileFilter = normalizeFilter(opts.fileFilter);
- opts.directoryFilter = normalizeFilter(opts.directoryFilter);
- } catch (err) {
- // if we detect illegal filters, bail out immediately
- handleFatalError(err);
- return stream;
- }
-
- // If filters were valid get on with the show
- fs.realpath(opts.root, function(err, res) {
- if (err) {
- handleFatalError(err);
- return stream;
- }
-
- realRoot = res;
- readdirRec(opts.root, 0, function () {
- // All errors are collected into the errors array
- if (errors.length > 0) {
- allProcessed(errors, readdirResult);
- } else {
- allProcessed(null, readdirResult);
- }
- });
- });
-
- return stream;
-}
-
-module.exports = readdir;
diff --git a/node_modules/readdirp/stream-api.js b/node_modules/readdirp/stream-api.js
deleted file mode 100644
index bffd1a9..0000000
--- a/node_modules/readdirp/stream-api.js
+++ /dev/null
@@ -1,98 +0,0 @@
-'use strict';
-
-var stream = require('readable-stream');
-var util = require('util');
-
-var Readable = stream.Readable;
-
-module.exports = ReaddirpReadable;
-
-util.inherits(ReaddirpReadable, Readable);
-
-function ReaddirpReadable (opts) {
- if (!(this instanceof ReaddirpReadable)) return new ReaddirpReadable(opts);
-
- opts = opts || {};
-
- opts.objectMode = true;
- Readable.call(this, opts);
-
- // backpressure not implemented at this point
- this.highWaterMark = Infinity;
-
- this._destroyed = false;
- this._paused = false;
- this._warnings = [];
- this._errors = [];
-
- this._pauseResumeErrors();
-}
-
-var proto = ReaddirpReadable.prototype;
-
-proto._pauseResumeErrors = function () {
- var self = this;
- self.on('pause', function () { self._paused = true });
- self.on('resume', function () {
- if (self._destroyed) return;
- self._paused = false;
-
- self._warnings.forEach(function (err) { self.emit('warn', err) });
- self._warnings.length = 0;
-
- self._errors.forEach(function (err) { self.emit('error', err) });
- self._errors.length = 0;
- })
-}
-
-// called for each entry
-proto._processEntry = function (entry) {
- if (this._destroyed) return;
- this.push(entry);
-}
-
-proto._read = function () { }
-
-proto.destroy = function () {
- // when stream is destroyed it will emit nothing further, not even errors or warnings
- this.push(null);
- this.readable = false;
- this._destroyed = true;
- this.emit('close');
-}
-
-proto._done = function () {
- this.push(null);
-}
-
-// we emit errors and warnings async since we may handle errors like invalid args
-// within the initial event loop before any event listeners subscribed
-proto._handleError = function (err) {
- var self = this;
- setImmediate(function () {
- if (self._paused) return self._warnings.push(err);
- if (!self._destroyed) self.emit('warn', err);
- });
-}
-
-proto._handleFatalError = function (err) {
- var self = this;
- setImmediate(function () {
- if (self._paused) return self._errors.push(err);
- if (!self._destroyed) self.emit('error', err);
- });
-}
-
-function createStreamAPI () {
- var stream = new ReaddirpReadable();
-
- return {
- stream : stream
- , processEntry : stream._processEntry.bind(stream)
- , done : stream._done.bind(stream)
- , handleError : stream._handleError.bind(stream)
- , handleFatalError : stream._handleFatalError.bind(stream)
- };
-}
-
-module.exports = createStreamAPI;
diff --git a/node_modules/rechoir/.npmignore b/node_modules/rechoir/.npmignore
deleted file mode 100644
index 9daeafb..0000000
--- a/node_modules/rechoir/.npmignore
+++ /dev/null
@@ -1 +0,0 @@
-test
diff --git a/node_modules/rechoir/.travis.yml b/node_modules/rechoir/.travis.yml
deleted file mode 100644
index 57e9fda..0000000
--- a/node_modules/rechoir/.travis.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-sudo: false
-language: node_js
-node_js:
- - "0.10"
- - "0.12"
-env:
- global:
- - REMOVE_DEPS=""
- matrix:
- - "CUSTOM_DEPS=coffee-script@~1.3"
- - "CUSTOM_DEPS=coffee-script@~1.5"
- - "CUSTOM_DEPS=coffee-script@~1.7"
- - "CUSTOM_DEPS=coffee-script@latest"
- - "CUSTOM_DEPS=iced-coffee-script@1.6.3-j"
- - "CUSTOM_DEPS=iced-coffee-script@latest"
- - "CUSTOM_DEPS=LiveScript@1.3.1 REMOVE_DEPS=livescript"
- - "CUSTOM_DEPS=typescript-require REMOVE_DEPS=typescript-register"
-matrix:
- fast_finish: true
-before_install:
- - "npm install -g npm" # needs the newest version of npm
-before_script:
- - "[ \"${REMOVE_DEPS}\" == \"\" ] || npm rm $REMOVE_DEPS"
- - "npm install $CUSTOM_DEPS" # install a specific version of dependencies
diff --git a/node_modules/rechoir/CHANGELOG b/node_modules/rechoir/CHANGELOG
deleted file mode 100644
index e10327b..0000000
--- a/node_modules/rechoir/CHANGELOG
+++ /dev/null
@@ -1,38 +0,0 @@
-v0.6.2:
- date: 2015-07-22
- changes:
- - Return `undefined` when an unknown extension is provided to prepare and
- the `nothrow` option is specified.
-v0.6.1:
- date: 2015-05-22
- changes:
- - Add option for not throwing.
-v0.6.0:
- date: 2015-05-20
- changes:
- - Include module name when prepare is successful.
-v0.5.0:
- date: 2015-05-20
- changes:
- - Overhaul to support interpret 0.6.0.
-v0.3.0:
- date: 2015-01-10
- changes:
- - Breaking: `load` method removed.
- - Improved extension recognition.
- - No longer fails upon dots in filenames.
- - Support confuration objects.
- - Support and test ES6.
- - Support legacy module loading.
-v0.2.2:
- date: 2014-12-17
- changes:
- - Expose interpret.
-v0.2.0:
- date: 2014-04-20
- changes:
- - Simplify loading of coffee-script and iced-coffee-script.
-v0.1.0:
- date: 2014-04-20
- changes:
- - Initial public release.
diff --git a/node_modules/rechoir/LICENSE b/node_modules/rechoir/LICENSE
deleted file mode 100644
index f467993..0000000
--- a/node_modules/rechoir/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2015 Tyler Kellen
-
-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/rechoir/README.md b/node_modules/rechoir/README.md
deleted file mode 100644
index 32280c0..0000000
--- a/node_modules/rechoir/README.md
+++ /dev/null
@@ -1,42 +0,0 @@
-# rechoir [![Build Status](https://secure.travis-ci.org/tkellen/js-rechoir.png)](http://travis-ci.org/tkellen/js-rechoir)
-> Require any supported file as a node module.
-
-[![NPM](https://nodei.co/npm/rechoir.png)](https://nodei.co/npm/rechoir/)
-
-## What is it?
-This module, in conjunction with [interpret]-like objects can register any file type the npm ecosystem has a module loader for. This library is a dependency of [Liftoff].
-
-## API
-
-### prepare(config, filepath, requireFrom)
-Look for a module loader associated with the provided file and attempt require it. If necessary, run any setup required to inject it into [require.extensions](http://nodejs.org/api/globals.html#globals_require_extensions).
-
-`config` An [interpret]-like configuration object.
-
-`filepath` A file whose type you'd like to register a module loader for.
-
-`requireFrom` An optional path to start searching for the module required to load the requested file. Defaults to the directory of `filepath`.
-
-If calling this method is successful (aka: it doesn't throw), you can now require files of the type you requested natively.
-
-An error with a `failures` property will be thrown if the module loader(s) configured for a given extension cannot be registered.
-
-If a loader is already registered, this will simply return `true`.
-
-**Note:** While rechoir will automatically load and register transpilers like `coffee-script`, you must provide a local installation. The transpilers are **not** bundled with this module.
-
-#### Usage
-```js
-const config = require('interpret').extensions;
-const rechoir = require('rechoir');
-rechoir.prepare(config, './test/fixtures/test.coffee');
-rechoir.prepare(config, './test/fixtures/test.csv');
-rechoir.prepare(config, './test/fixtures/test.toml');
-
-console.log(require('./test/fixtures/test.coffee'));
-console.log(require('./test/fixtures/test.csv'));
-console.log(require('./test/fixtures/test.toml'));
-```
-
-[interpret]: http://github.com/tkellen/js-interpret
-[Liftoff]: http://github.com/tkellen/js-liftoff
diff --git a/node_modules/rechoir/index.js b/node_modules/rechoir/index.js
deleted file mode 100644
index 0c36d05..0000000
--- a/node_modules/rechoir/index.js
+++ /dev/null
@@ -1,59 +0,0 @@
-const path = require('path');
-
-const extension = require('./lib/extension');
-const normalize = require('./lib/normalize');
-const register = require('./lib/register');
-
-exports.prepare = function (extensions, filepath, cwd, nothrow) {
- var option, attempt;
- var attempts = [];
- var err;
- var onlyErrors = false;
- var ext = extension(filepath);
- if (Object.keys(require.extensions).indexOf(ext) !== -1) {
- return true;
- }
- var config = normalize(extensions[ext]);
- if (!config) {
- if (nothrow) {
- return;
- } else {
- throw new Error('No module loader found for "'+ext+'".');
- }
- }
- if (!cwd) {
- cwd = path.dirname(path.resolve(filepath));
- }
- if (!Array.isArray(config)) {
- config = [config];
- }
- for (var i in config) {
- option = config[i];
- attempt = register(cwd, option.module, option.register);
- error = (attempt instanceof Error) ? attempt : null;
- if (error) {
- attempt = null;
- }
- attempts.push({
- moduleName: option.module,
- module: attempt,
- error: error
- });
- if (!error) {
- onlyErrors = false;
- break;
- } else {
- onlyErrors = true;
- }
- }
- if (onlyErrors) {
- err = new Error('Unable to use specified module loaders for "'+ext+'".');
- err.failures = attempts;
- if (nothrow) {
- return err;
- } else {
- throw err;
- }
- }
- return attempts;
-};
diff --git a/node_modules/rechoir/lib/extension.js b/node_modules/rechoir/lib/extension.js
deleted file mode 100644
index 60f19da..0000000
--- a/node_modules/rechoir/lib/extension.js
+++ /dev/null
@@ -1,11 +0,0 @@
-const path = require('path');
-
-const EXTRE = /^[.]?[^.]+([.].*)$/;
-
-module.exports = function (input) {
- var extension = EXTRE.exec(path.basename(input));
- if (!extension) {
- return;
- }
- return extension[1];
-};
diff --git a/node_modules/rechoir/lib/normalize.js b/node_modules/rechoir/lib/normalize.js
deleted file mode 100644
index 0da5e58..0000000
--- a/node_modules/rechoir/lib/normalize.js
+++ /dev/null
@@ -1,15 +0,0 @@
-function normalizer (config) {
- if (typeof config === 'string') {
- return {
- module: config
- }
- }
- return config;
-};
-
-module.exports = function (config) {
- if (Array.isArray(config)) {
- return config.map(normalizer);
- }
- return normalizer(config);
-};
diff --git a/node_modules/rechoir/lib/register.js b/node_modules/rechoir/lib/register.js
deleted file mode 100644
index 20e8ca7..0000000
--- a/node_modules/rechoir/lib/register.js
+++ /dev/null
@@ -1,15 +0,0 @@
-const path = require('path');
-const resolve = require('resolve');
-
-module.exports = function (cwd, moduleName, register) {
- try {
- var modulePath = resolve.sync(moduleName, {basedir: cwd});
- var result = require(modulePath);
- if (typeof register === 'function') {
- register(result);
- }
- } catch (e) {
- result = e;
- }
- return result;
-};
diff --git a/node_modules/rechoir/package.json b/node_modules/rechoir/package.json
deleted file mode 100644
index 5629390..0000000
--- a/node_modules/rechoir/package.json
+++ /dev/null
@@ -1,88 +0,0 @@
-{
- "name": "rechoir",
- "description": "Require any supported file as a node module.",
- "version": "0.6.2",
- "homepage": "https://github.com/tkellen/node-rechoir",
- "author": {
- "name": "Tyler Kellen",
- "url": "http://goingslowly.com/"
- },
- "repository": {
- "type": "git",
- "url": "git://github.com/tkellen/node-rechoir.git"
- },
- "bugs": {
- "url": "https://github.com/tkellen/node-rechoir/issues"
- },
- "licenses": [
- {
- "type": "MIT",
- "url": "https://github.com/tkellen/node-rechoir/blob/master/LICENSE"
- }
- ],
- "main": "index.js",
- "engines": {
- "node": ">= 0.10"
- },
- "scripts": {
- "test": "mocha -R spec test/index.js"
- },
- "dependencies": {
- "resolve": "^1.1.6"
- },
- "devDependencies": {
- "babel": "^5.4.3",
- "chai": "^2.3.0",
- "coco": "^0.9.1",
- "coffee-script": "^1.9.2",
- "earlgrey": "0.0.9",
- "iced-coffee-script": "^1.8.0-d",
- "interpret": "^0.6.1",
- "json5": "^0.4.0",
- "livescript": "^1.4.0",
- "mocha": "^2.2.5",
- "node-jsx": "^0.13.3",
- "require-csv": "0.0.1",
- "require-ini": "0.0.1",
- "require-uncached": "^1.0.2",
- "require-xml": "0.0.1",
- "require-yaml": "0.0.1",
- "rimraf": "^2.3.4",
- "semver": "^4.3.4",
- "sinon": "^1.14.1",
- "toml-require": "^1.0.1",
- "typescript-register": "^1.1.0"
- },
- "keywords": [
- "require",
- "cjsx",
- "co",
- "coco",
- "coffee-script",
- "coffee",
- "coffee.md",
- "csv",
- "earlgrey",
- "es",
- "es6",
- "iced",
- "iced.md",
- "iced-coffee-script",
- "ini",
- "js",
- "json",
- "json5",
- "jsx",
- "react",
- "litcoffee",
- "liticed",
- "ls",
- "livescript",
- "toml",
- "ts",
- "typescript",
- "xml",
- "yaml",
- "yml"
- ]
-}
diff --git a/node_modules/regex-not/LICENSE b/node_modules/regex-not/LICENSE
deleted file mode 100644
index 8ee09d9..0000000
--- a/node_modules/regex-not/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/regex-not/README.md b/node_modules/regex-not/README.md
deleted file mode 100644
index 24d00e7..0000000
--- a/node_modules/regex-not/README.md
+++ /dev/null
@@ -1,133 +0,0 @@
-# regex-not [![NPM version](https://img.shields.io/npm/v/regex-not.svg?style=flat)](https://www.npmjs.com/package/regex-not) [![NPM monthly downloads](https://img.shields.io/npm/dm/regex-not.svg?style=flat)](https://npmjs.org/package/regex-not) [![NPM total downloads](https://img.shields.io/npm/dt/regex-not.svg?style=flat)](https://npmjs.org/package/regex-not) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/regex-not.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/regex-not)
-
-> Create a javascript regular expression for matching everything except for the given string.
-
-Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save regex-not
-```
-
-## Usage
-
-```js
-var not = require('regex-not');
-```
-
-The main export is a function that takes a string an options object.
-
-```js
-not(string[, options]);
-```
-
-**Example**
-
-```js
-var not = require('regex-not');
-console.log(not('foo'));
-//=> /^(?:(?!^(?:foo)$).)+$/
-```
-
-**Strict matching**
-
-By default, the returned regex is for strictly (not) matching the exact given pattern (in other words, "match this string if it does NOT _exactly equal_ `foo`"):
-
-```js
-var re = not('foo');
-console.log(re.test('foo')); //=> false
-console.log(re.test('bar')); //=> true
-console.log(re.test('foobar')); //=> true
-console.log(re.test('barfoo')); //=> true
-```
-
-### .create
-
-Returns a string to allow you to create your own regex:
-
-```js
-console.log(not.create('foo'));
-//=> '(?:(?!^(?:foo)$).)+'
-```
-
-### Options
-
-**options.contains**
-
-You can relax strict matching by setting `options.contains` to true (in other words, "match this string if it does NOT _contain_ `foo`"):
-
-```js
-var re = not('foo');
-console.log(re.test('foo', {contains: true})); //=> false
-console.log(re.test('bar', {contains: true})); //=> true
-console.log(re.test('foobar', {contains: true})); //=> false
-console.log(re.test('barfoo', {contains: true})); //=> false
-```
-
-## About
-
-
-Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-
-
-
-Running Tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-
-
-
-Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-
-
-### Related projects
-
-You might also be interested in these projects:
-
-* [regex-cache](https://www.npmjs.com/package/regex-cache): Memoize the results of a call to the RegExp constructor, avoiding repetitious runtime compilation of… [more](https://github.com/jonschlinkert/regex-cache) | [homepage](https://github.com/jonschlinkert/regex-cache "Memoize the results of a call to the RegExp constructor, avoiding repetitious runtime compilation of the same string and options, resulting in surprising performance improvements.")
-* [to-regex](https://www.npmjs.com/package/to-regex): Generate a regex from a string or array of strings. | [homepage](https://github.com/jonschlinkert/to-regex "Generate a regex from a string or array of strings.")
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 9 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 1 | [doowb](https://github.com/doowb) |
-| 1 | [EdwardBetts](https://github.com/EdwardBetts) |
-
-### Author
-
-**Jon Schlinkert**
-
-* [linkedin/in/jonschlinkert](https://linkedin.com/in/jonschlinkert)
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2018, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on February 19, 2018._
\ No newline at end of file
diff --git a/node_modules/regex-not/index.js b/node_modules/regex-not/index.js
deleted file mode 100644
index 02bfed4..0000000
--- a/node_modules/regex-not/index.js
+++ /dev/null
@@ -1,72 +0,0 @@
-'use strict';
-
-var extend = require('extend-shallow');
-var safe = require('safe-regex');
-
-/**
- * The main export is a function that takes a `pattern` string and an `options` object.
- *
- * ```js
- & var not = require('regex-not');
- & console.log(not('foo'));
- & //=> /^(?:(?!^(?:foo)$).)*$/
- * ```
- *
- * @param {String} `pattern`
- * @param {Object} `options`
- * @return {RegExp} Converts the given `pattern` to a regex using the specified `options`.
- * @api public
- */
-
-function toRegex(pattern, options) {
- return new RegExp(toRegex.create(pattern, options));
-}
-
-/**
- * Create a regex-compatible string from the given `pattern` and `options`.
- *
- * ```js
- & var not = require('regex-not');
- & console.log(not.create('foo'));
- & //=> '^(?:(?!^(?:foo)$).)*$'
- * ```
- * @param {String} `pattern`
- * @param {Object} `options`
- * @return {String}
- * @api public
- */
-
-toRegex.create = function(pattern, options) {
- if (typeof pattern !== 'string') {
- throw new TypeError('expected a string');
- }
-
- var opts = extend({}, options);
- if (opts.contains === true) {
- opts.strictNegate = false;
- }
-
- var open = opts.strictOpen !== false ? '^' : '';
- var close = opts.strictClose !== false ? '$' : '';
- var endChar = opts.endChar ? opts.endChar : '+';
- var str = pattern;
-
- if (opts.strictNegate === false) {
- str = '(?:(?!(?:' + pattern + ')).)' + endChar;
- } else {
- str = '(?:(?!^(?:' + pattern + ')$).)' + endChar;
- }
-
- var res = open + str + close;
- if (opts.safe === true && safe(res) === false) {
- throw new Error('potentially unsafe regular expression: ' + res);
- }
-
- return res;
-};
-
-/**
- * Expose `toRegex`
- */
-
-module.exports = toRegex;
diff --git a/node_modules/regex-not/node_modules/extend-shallow/LICENSE b/node_modules/regex-not/node_modules/extend-shallow/LICENSE
deleted file mode 100644
index 99c9369..0000000
--- a/node_modules/regex-not/node_modules/extend-shallow/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2015, 2017, 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/regex-not/node_modules/extend-shallow/README.md b/node_modules/regex-not/node_modules/extend-shallow/README.md
deleted file mode 100644
index dee226f..0000000
--- a/node_modules/regex-not/node_modules/extend-shallow/README.md
+++ /dev/null
@@ -1,97 +0,0 @@
-# extend-shallow [![NPM version](https://img.shields.io/npm/v/extend-shallow.svg?style=flat)](https://www.npmjs.com/package/extend-shallow) [![NPM monthly downloads](https://img.shields.io/npm/dm/extend-shallow.svg?style=flat)](https://npmjs.org/package/extend-shallow) [![NPM total downloads](https://img.shields.io/npm/dt/extend-shallow.svg?style=flat)](https://npmjs.org/package/extend-shallow) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/extend-shallow.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/extend-shallow)
-
-> Extend an object with the properties of additional objects. node.js/javascript util.
-
-Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save extend-shallow
-```
-
-## 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'}
-```
-
-## About
-
-
-Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-
-
-
-Running Tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-
-
-
-Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-
-
-### Related projects
-
-You might also be interested in these projects:
-
-* [extend-shallow](https://www.npmjs.com/package/extend-shallow): Extend an object with the properties of additional objects. node.js/javascript util. | [homepage](https://github.com/jonschlinkert/extend-shallow "Extend an object with the properties of additional objects. node.js/javascript util.")
-* [for-in](https://www.npmjs.com/package/for-in): Iterate over the own and inherited enumerable properties of an object, and return an object… [more](https://github.com/jonschlinkert/for-in) | [homepage](https://github.com/jonschlinkert/for-in "Iterate over the own and inherited enumerable properties of an object, and return an object with properties that evaluate to true from the callback. Exit early by returning `false`. JavaScript/Node.js")
-* [for-own](https://www.npmjs.com/package/for-own): Iterate over the own enumerable properties of an object, and return an object with properties… [more](https://github.com/jonschlinkert/for-own) | [homepage](https://github.com/jonschlinkert/for-own "Iterate over the own enumerable properties of an object, and return an object with properties that evaluate to true from the callback. Exit early by returning `false`. JavaScript/Node.js.")
-* [is-plain-object](https://www.npmjs.com/package/is-plain-object): Returns true if an object was created by the `Object` constructor. | [homepage](https://github.com/jonschlinkert/is-plain-object "Returns true if an object was created by the `Object` constructor.")
-* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.")
-* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.")
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 33 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 1 | [pdehaan](https://github.com/pdehaan) |
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on November 19, 2017._
\ No newline at end of file
diff --git a/node_modules/regex-not/node_modules/extend-shallow/index.js b/node_modules/regex-not/node_modules/extend-shallow/index.js
deleted file mode 100644
index c9582f8..0000000
--- a/node_modules/regex-not/node_modules/extend-shallow/index.js
+++ /dev/null
@@ -1,60 +0,0 @@
-'use strict';
-
-var isExtendable = require('is-extendable');
-var assignSymbols = require('assign-symbols');
-
-module.exports = Object.assign || function(obj/*, objects*/) {
- if (obj === null || typeof obj === 'undefined') {
- throw new TypeError('Cannot convert undefined or null to object');
- }
- if (!isObject(obj)) {
- obj = {};
- }
- for (var i = 1; i < arguments.length; i++) {
- var val = arguments[i];
- if (isString(val)) {
- val = toObject(val);
- }
- if (isObject(val)) {
- assign(obj, val);
- assignSymbols(obj, val);
- }
- }
- return obj;
-};
-
-function assign(a, b) {
- for (var key in b) {
- if (hasOwn(b, key)) {
- a[key] = b[key];
- }
- }
-}
-
-function isString(val) {
- return (val && typeof val === 'string');
-}
-
-function toObject(str) {
- var obj = {};
- for (var i in str) {
- obj[i] = str[i];
- }
- return obj;
-}
-
-function isObject(val) {
- return (val && typeof val === 'object') || isExtendable(val);
-}
-
-/**
- * Returns true if the given `key` is an own property of `obj`.
- */
-
-function hasOwn(obj, key) {
- return Object.prototype.hasOwnProperty.call(obj, key);
-}
-
-function isEnum(obj, key) {
- return Object.prototype.propertyIsEnumerable.call(obj, key);
-}
diff --git a/node_modules/regex-not/node_modules/extend-shallow/package.json b/node_modules/regex-not/node_modules/extend-shallow/package.json
deleted file mode 100644
index e5e9105..0000000
--- a/node_modules/regex-not/node_modules/extend-shallow/package.json
+++ /dev/null
@@ -1,83 +0,0 @@
-{
- "name": "extend-shallow",
- "description": "Extend an object with the properties of additional objects. node.js/javascript util.",
- "version": "3.0.2",
- "homepage": "https://github.com/jonschlinkert/extend-shallow",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Peter deHaan (http://about.me/peterdehaan)"
- ],
- "repository": "jonschlinkert/extend-shallow",
- "bugs": {
- "url": "https://github.com/jonschlinkert/extend-shallow/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- },
- "devDependencies": {
- "array-slice": "^1.0.0",
- "benchmarked": "^2.0.0",
- "for-own": "^1.0.0",
- "gulp-format-md": "^1.0.0",
- "is-plain-object": "^2.0.4",
- "kind-of": "^6.0.1",
- "minimist": "^1.2.0",
- "mocha": "^3.5.3",
- "object-assign": "^4.1.1"
- },
- "keywords": [
- "assign",
- "clone",
- "extend",
- "merge",
- "obj",
- "object",
- "object-assign",
- "object.assign",
- "prop",
- "properties",
- "property",
- "props",
- "shallow",
- "util",
- "utility",
- "utils",
- "value"
- ],
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "related": {
- "list": [
- "extend-shallow",
- "for-in",
- "for-own",
- "is-plain-object",
- "isobject",
- "kind-of"
- ]
- },
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/regex-not/node_modules/is-extendable/LICENSE b/node_modules/regex-not/node_modules/is-extendable/LICENSE
deleted file mode 100644
index c0d7f13..0000000
--- a/node_modules/regex-not/node_modules/is-extendable/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015-2017, 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.
\ No newline at end of file
diff --git a/node_modules/regex-not/node_modules/is-extendable/README.md b/node_modules/regex-not/node_modules/is-extendable/README.md
deleted file mode 100644
index 875b56a..0000000
--- a/node_modules/regex-not/node_modules/is-extendable/README.md
+++ /dev/null
@@ -1,88 +0,0 @@
-# is-extendable [![NPM version](https://img.shields.io/npm/v/is-extendable.svg?style=flat)](https://www.npmjs.com/package/is-extendable) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-extendable.svg?style=flat)](https://npmjs.org/package/is-extendable) [![NPM total downloads](https://img.shields.io/npm/dt/is-extendable.svg?style=flat)](https://npmjs.org/package/is-extendable) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-extendable.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-extendable)
-
-> Returns true if a value is a plain object, array or function.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save is-extendable
-```
-
-## Usage
-
-```js
-var isExtendable = require('is-extendable');
-```
-
-Returns true if the value is any of the following:
-
-* array
-* plain object
-* function
-
-## Notes
-
-All objects in JavaScript can have keys, but it's a pain to check for this, since we ether need to verify that the value is not `null` or `undefined` and:
-
-* the value is not a primitive, or
-* that the object is a plain object, function or array
-
-Also note that an `extendable` object is not the same as an [extensible object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isExtensible), which is one that (in es6) is not sealed, frozen, or marked as non-extensible using `preventExtensions`.
-
-## Release history
-
-### v1.0.0 - 2017/07/20
-
-**Breaking changes**
-
-* No longer considers date, regex or error objects to be extendable
-
-## About
-
-### Related projects
-
-* [assign-deep](https://www.npmjs.com/package/assign-deep): Deeply assign the enumerable properties and/or es6 Symbol properies of source objects to the target… [more](https://github.com/jonschlinkert/assign-deep) | [homepage](https://github.com/jonschlinkert/assign-deep "Deeply assign the enumerable properties and/or es6 Symbol properies of source objects to the target (first) object.")
-* [is-equal-shallow](https://www.npmjs.com/package/is-equal-shallow): Does a shallow comparison of two objects, returning false if the keys or values differ. | [homepage](https://github.com/jonschlinkert/is-equal-shallow "Does a shallow comparison of two objects, returning false if the keys or values differ.")
-* [is-plain-object](https://www.npmjs.com/package/is-plain-object): Returns true if an object was created by the `Object` constructor. | [homepage](https://github.com/jonschlinkert/is-plain-object "Returns true if an object was created by the `Object` constructor.")
-* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.")
-* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on July 20, 2017._
\ No newline at end of file
diff --git a/node_modules/regex-not/node_modules/is-extendable/index.d.ts b/node_modules/regex-not/node_modules/is-extendable/index.d.ts
deleted file mode 100644
index b96d507..0000000
--- a/node_modules/regex-not/node_modules/is-extendable/index.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export = isExtendable;
-
-declare function isExtendable(val: any): boolean;
-
-declare namespace isExtendable {}
diff --git a/node_modules/regex-not/node_modules/is-extendable/index.js b/node_modules/regex-not/node_modules/is-extendable/index.js
deleted file mode 100644
index a8b26ad..0000000
--- a/node_modules/regex-not/node_modules/is-extendable/index.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/*!
- * is-extendable
- *
- * Copyright (c) 2015-2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-var isPlainObject = require('is-plain-object');
-
-module.exports = function isExtendable(val) {
- return isPlainObject(val) || typeof val === 'function' || Array.isArray(val);
-};
diff --git a/node_modules/regex-not/node_modules/is-extendable/package.json b/node_modules/regex-not/node_modules/is-extendable/package.json
deleted file mode 100644
index 2aaab65..0000000
--- a/node_modules/regex-not/node_modules/is-extendable/package.json
+++ /dev/null
@@ -1,67 +0,0 @@
-{
- "name": "is-extendable",
- "description": "Returns true if a value is a plain object, array or function.",
- "version": "1.0.1",
- "homepage": "https://github.com/jonschlinkert/is-extendable",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/is-extendable",
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-extendable/issues"
- },
- "license": "MIT",
- "files": [
- "index.js",
- "index.d.ts"
- ],
- "main": "index.js",
- "types": "index.d.ts",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "is-plain-object": "^2.0.4"
- },
- "devDependencies": {
- "gulp-format-md": "^1.0.0",
- "mocha": "^3.4.2"
- },
- "keywords": [
- "array",
- "assign",
- "check",
- "date",
- "extend",
- "extendable",
- "extensible",
- "function",
- "is",
- "object",
- "regex",
- "test"
- ],
- "verb": {
- "related": {
- "list": [
- "assign-deep",
- "is-equal-shallow",
- "is-plain-object",
- "isobject",
- "kind-of"
- ]
- },
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/regex-not/node_modules/is-plain-object/LICENSE b/node_modules/regex-not/node_modules/is-plain-object/LICENSE
deleted file mode 100644
index 3f2eca1..0000000
--- a/node_modules/regex-not/node_modules/is-plain-object/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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/regex-not/node_modules/is-plain-object/README.md b/node_modules/regex-not/node_modules/is-plain-object/README.md
deleted file mode 100644
index 1f9d0c8..0000000
--- a/node_modules/regex-not/node_modules/is-plain-object/README.md
+++ /dev/null
@@ -1,104 +0,0 @@
-# is-plain-object [![NPM version](https://img.shields.io/npm/v/is-plain-object.svg?style=flat)](https://www.npmjs.com/package/is-plain-object) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-plain-object.svg?style=flat)](https://npmjs.org/package/is-plain-object) [![NPM total downloads](https://img.shields.io/npm/dt/is-plain-object.svg?style=flat)](https://npmjs.org/package/is-plain-object) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-plain-object.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-plain-object)
-
-> Returns true if an object was created by the `Object` constructor.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save is-plain-object
-```
-
-Use [isobject](https://github.com/jonschlinkert/isobject) if you only want to check if the value is an object and not an array or null.
-
-## Usage
-
-```js
-var isPlainObject = require('is-plain-object');
-```
-
-**true** when created by the `Object` constructor.
-
-```js
-isPlainObject(Object.create({}));
-//=> true
-isPlainObject(Object.create(Object.prototype));
-//=> true
-isPlainObject({foo: 'bar'});
-//=> true
-isPlainObject({});
-//=> true
-```
-
-**false** when not created by the `Object` constructor.
-
-```js
-isPlainObject(1);
-//=> false
-isPlainObject(['foo', 'bar']);
-//=> false
-isPlainObject([]);
-//=> false
-isPlainObject(new Foo);
-//=> false
-isPlainObject(null);
-//=> false
-isPlainObject(Object.create(null));
-//=> false
-```
-
-## About
-
-### Related projects
-
-* [is-number](https://www.npmjs.com/package/is-number): Returns true if the value is a number. comprehensive tests. | [homepage](https://github.com/jonschlinkert/is-number "Returns true if the value is a number. comprehensive tests.")
-* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.")
-* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 17 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 6 | [stevenvachon](https://github.com/stevenvachon) |
-| 3 | [onokumus](https://github.com/onokumus) |
-| 1 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) |
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on July 11, 2017._
\ No newline at end of file
diff --git a/node_modules/regex-not/node_modules/is-plain-object/index.d.ts b/node_modules/regex-not/node_modules/is-plain-object/index.d.ts
deleted file mode 100644
index 74a44e9..0000000
--- a/node_modules/regex-not/node_modules/is-plain-object/index.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export = isPlainObject;
-
-declare function isPlainObject(o: any): boolean;
-
-declare namespace isPlainObject {}
diff --git a/node_modules/regex-not/node_modules/is-plain-object/index.js b/node_modules/regex-not/node_modules/is-plain-object/index.js
deleted file mode 100644
index c328484..0000000
--- a/node_modules/regex-not/node_modules/is-plain-object/index.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/*!
- * is-plain-object
- *
- * Copyright (c) 2014-2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-var isObject = require('isobject');
-
-function isObjectObject(o) {
- return isObject(o) === true
- && Object.prototype.toString.call(o) === '[object Object]';
-}
-
-module.exports = function isPlainObject(o) {
- var ctor,prot;
-
- if (isObjectObject(o) === false) return false;
-
- // If has modified constructor
- ctor = o.constructor;
- if (typeof ctor !== 'function') return false;
-
- // If has modified prototype
- prot = ctor.prototype;
- if (isObjectObject(prot) === false) return false;
-
- // If constructor does not have an Object-specific method
- if (prot.hasOwnProperty('isPrototypeOf') === false) {
- return false;
- }
-
- // Most likely a plain Object
- return true;
-};
diff --git a/node_modules/regex-not/node_modules/is-plain-object/package.json b/node_modules/regex-not/node_modules/is-plain-object/package.json
deleted file mode 100644
index dd60498..0000000
--- a/node_modules/regex-not/node_modules/is-plain-object/package.json
+++ /dev/null
@@ -1,79 +0,0 @@
-{
- "name": "is-plain-object",
- "description": "Returns true if an object was created by the `Object` constructor.",
- "version": "2.0.4",
- "homepage": "https://github.com/jonschlinkert/is-plain-object",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Osman Nuri Okumuş (http://onokumus.com)",
- "Steven Vachon (https://svachon.com)",
- "(https://github.com/wtgtybhertgeghgtwtg)"
- ],
- "repository": "jonschlinkert/is-plain-object",
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-plain-object/issues"
- },
- "license": "MIT",
- "files": [
- "index.d.ts",
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "browserify": "browserify index.js --standalone isPlainObject | uglifyjs --compress --mangle -o browser/is-plain-object.js",
- "test_browser": "mocha-phantomjs test/browser.html",
- "test_node": "mocha",
- "test": "npm run test_node && npm run browserify && npm run test_browser"
- },
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "devDependencies": {
- "browserify": "^14.4.0",
- "chai": "^4.0.2",
- "gulp-format-md": "^1.0.0",
- "mocha": "^3.4.2",
- "mocha-phantomjs": "^4.1.0",
- "phantomjs": "^2.1.7",
- "uglify-js": "^3.0.24"
- },
- "keywords": [
- "check",
- "is",
- "is-object",
- "isobject",
- "javascript",
- "kind",
- "kind-of",
- "object",
- "plain",
- "type",
- "typeof",
- "value"
- ],
- "types": "index.d.ts",
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "is-number",
- "isobject",
- "kind-of"
- ]
- },
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/regex-not/package.json b/node_modules/regex-not/package.json
deleted file mode 100644
index 0320d53..0000000
--- a/node_modules/regex-not/package.json
+++ /dev/null
@@ -1,63 +0,0 @@
-{
- "name": "regex-not",
- "description": "Create a javascript regular expression for matching everything except for the given string.",
- "version": "1.0.2",
- "homepage": "https://github.com/jonschlinkert/regex-not",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/regex-not",
- "bugs": {
- "url": "https://github.com/jonschlinkert/regex-not/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "extend-shallow": "^3.0.2",
- "safe-regex": "^1.1.0"
- },
- "devDependencies": {
- "gulp-format-md": "^1.0.0",
- "mocha": "^3.5.3"
- },
- "keywords": [
- "exec",
- "match",
- "negate",
- "negation",
- "not",
- "regex",
- "regular expression",
- "test"
- ],
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "regex-cache",
- "to-regex"
- ]
- },
- "reflinks": [
- "verb",
- "verb-generate-readme"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/remove-bom-buffer/LICENSE b/node_modules/remove-bom-buffer/LICENSE
deleted file mode 100644
index c0d7f13..0000000
--- a/node_modules/remove-bom-buffer/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015-2017, 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.
\ No newline at end of file
diff --git a/node_modules/remove-bom-buffer/README.md b/node_modules/remove-bom-buffer/README.md
deleted file mode 100644
index 8ed18a4..0000000
--- a/node_modules/remove-bom-buffer/README.md
+++ /dev/null
@@ -1,65 +0,0 @@
-# remove-bom-buffer [![NPM version](https://img.shields.io/npm/v/remove-bom-buffer.svg?style=flat)](https://www.npmjs.com/package/remove-bom-buffer) [![NPM monthly downloads](https://img.shields.io/npm/dm/remove-bom-buffer.svg?style=flat)](https://npmjs.org/package/remove-bom-buffer) [![NPM total downloads](https://img.shields.io/npm/dt/remove-bom-buffer.svg?style=flat)](https://npmjs.org/package/remove-bom-buffer) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/remove-bom-buffer.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/remove-bom-buffer)
-
-> Remove a byte order mark (BOM) from a buffer.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save remove-bom-buffer
-```
-
-## Usage
-
-```js
-var remove = require('remove-bom-buffer');
-remove(new Buffer('\ufefffoo'));
-```
-
-## About
-
-### Related projects
-
-* [cr](https://www.npmjs.com/package/cr): Strip windows carriage returns, or convert carriage returns to newlines. | [homepage](https://github.com/jonschlinkert/cr "Strip windows carriage returns, or convert carriage returns to newlines.")
-* [has-bom](https://www.npmjs.com/package/has-bom): Returns true if a buffer or string has a byte order mark (BOM) | [homepage](https://github.com/jonschlinkert/has-bom "Returns true if a buffer or string has a byte order mark (BOM)")
-* [read-file](https://www.npmjs.com/package/read-file): Thin wrapper around fs.readFile and fs.readFileSync that also strips byte order marks when `utf8` encoding… [more](https://github.com/jonschlinkert/read-file) | [homepage](https://github.com/jonschlinkert/read-file "Thin wrapper around fs.readFile and fs.readFileSync that also strips byte order marks when `utf8` encoding is chosen. Also optionally replaces windows newlines with unix newlines.")
-* [strip-bom-string](https://www.npmjs.com/package/strip-bom-string): Strip a byte order mark (BOM) from a string. | [homepage](https://github.com/jonschlinkert/strip-bom-string "Strip a byte order mark (BOM) from a string.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on June 16, 2017._
\ No newline at end of file
diff --git a/node_modules/remove-bom-buffer/index.js b/node_modules/remove-bom-buffer/index.js
deleted file mode 100644
index 7a299ca..0000000
--- a/node_modules/remove-bom-buffer/index.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/*!
- * remove-bom-buffer
- *
- * Copyright (c) 2015-2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-var isUTF8 = require('is-utf8');
-var isBuffer = require('is-buffer');
-
-function matchBOM(buf) {
- return buf[0] === 0xEF && buf[1] === 0xBB && buf[2] === 0xBF;
-}
-
-function maybeUTF8(buf) {
- // Only "maybe" because we aren't sniffing the whole buffer
- return isUTF8(buf.slice(3, 7));
-}
-
-module.exports = function(buf) {
- if (isBuffer(buf) && matchBOM(buf) && maybeUTF8(buf)) {
- return buf.slice(3);
- }
- return buf;
-};
diff --git a/node_modules/remove-bom-buffer/package.json b/node_modules/remove-bom-buffer/package.json
deleted file mode 100644
index 546b010..0000000
--- a/node_modules/remove-bom-buffer/package.json
+++ /dev/null
@@ -1,67 +0,0 @@
-{
- "name": "remove-bom-buffer",
- "description": "Remove a byte order mark (BOM) from a buffer.",
- "version": "3.0.0",
- "homepage": "https://github.com/jonschlinkert/remove-bom-buffer",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Blaine Bublitz (https://twitter.com/BlaineBublitz)",
- "Erik Kemperman (https://github.com/erikkemperman)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)"
- ],
- "repository": "jonschlinkert/remove-bom-buffer",
- "bugs": {
- "url": "https://github.com/jonschlinkert/remove-bom-buffer/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "is-buffer": "^1.1.5",
- "is-utf8": "^0.2.1"
- },
- "devDependencies": {
- "gulp-format-md": "^0.1.11",
- "mocha": "^3.2.0"
- },
- "keywords": [
- "bom",
- "buffer",
- "byte-order-mark",
- "normalize",
- "remove",
- "strip",
- "strip-bom",
- "strip-bom-buffer",
- "strip-bom-string"
- ],
- "verb": {
- "related": {
- "list": [
- "cr",
- "has-bom",
- "read-file",
- "strip-bom-string"
- ]
- },
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/remove-bom-stream/LICENSE b/node_modules/remove-bom-stream/LICENSE
deleted file mode 100644
index b8fc743..0000000
--- a/node_modules/remove-bom-stream/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2017 Blaine Bublitz , Eric Schoffstall and other contributors
-
-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/remove-bom-stream/README.md b/node_modules/remove-bom-stream/README.md
deleted file mode 100644
index c4a0589..0000000
--- a/node_modules/remove-bom-stream/README.md
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
-
-
-
-
-# remove-bom-stream
-
-[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Build Status][travis-image]][travis-url] [![AppVeyor Build Status][appveyor-image]][appveyor-url] [![Coveralls Status][coveralls-image]][coveralls-url] [![Gitter chat][gitter-image]][gitter-url]
-
-Remove a UTF8 BOM at the start of the stream.
-
-## Usage
-
-```js
-var fs = require('fs');
-var concat = require('concat-stream');
-var removeBOM = require('remove-bom-stream');
-
-fs.createReadStream('utf8-file-with-bom.txt')
- .pipe(removeBOM())
- .pipe(concat(function(result) {
- // result won't have a BOM
- }));
-```
-
-## API
-
-### `removeBOM()`
-
-Returns a `through2` stream that will remove a BOM, given the data is a UTF8 Buffer with a BOM at the beginning. If the data is not UTF8 or does not have a BOM, the data is not changed and this becomes a normal passthrough stream.
-
-## License
-
-MIT
-
-[downloads-image]: http://img.shields.io/npm/dm/remove-bom-stream.svg
-[npm-url]: https://npmjs.com/package/remove-bom-stream
-[npm-image]: http://img.shields.io/npm/v/remove-bom-stream.svg
-
-[travis-url]: https://travis-ci.org/gulpjs/remove-bom-stream
-[travis-image]: http://img.shields.io/travis/gulpjs/remove-bom-stream.svg?label=travis-ci
-
-[appveyor-url]: https://ci.appveyor.com/project/gulpjs/remove-bom-stream
-[appveyor-image]: https://img.shields.io/appveyor/ci/gulpjs/remove-bom-stream.svg?label=appveyor
-
-[coveralls-url]: https://coveralls.io/r/gulpjs/remove-bom-stream
-[coveralls-image]: http://img.shields.io/coveralls/gulpjs/remove-bom-stream/master.svg
-
-[gitter-url]: https://gitter.im/gulpjs/gulp
-[gitter-image]: https://badges.gitter.im/gulpjs/gulp.png
diff --git a/node_modules/remove-bom-stream/index.js b/node_modules/remove-bom-stream/index.js
deleted file mode 100644
index 93501f1..0000000
--- a/node_modules/remove-bom-stream/index.js
+++ /dev/null
@@ -1,51 +0,0 @@
-'use strict';
-
-var through = require('through2');
-var removeBom = require('remove-bom-buffer');
-var SafeBuffer = require('safe-buffer').Buffer;
-
-function removeBomStream() {
- var completed = false;
- var buffer = SafeBuffer.alloc(0);
-
- return through(onChunk, onFlush);
-
- function removeAndCleanup(data) {
- completed = true;
-
- buffer = null;
-
- return removeBom(data);
- }
-
- function onChunk(data, enc, cb) {
- if (completed) {
- return cb(null, data);
- }
-
- if (data.length >= 7) {
- return cb(null, removeAndCleanup(data));
- }
-
- var bufferLength = buffer.length;
- var chunkLength = data.length;
- var totalLength = bufferLength + chunkLength;
-
- buffer = SafeBuffer.concat([buffer, data], totalLength);
-
- if (totalLength >= 7) {
- return cb(null, removeAndCleanup(buffer));
- }
- cb();
- }
-
- function onFlush(cb) {
- if (completed || !buffer) {
- return cb();
- }
-
- cb(null, removeAndCleanup(buffer));
- }
-}
-
-module.exports = removeBomStream;
diff --git a/node_modules/remove-bom-stream/package.json b/node_modules/remove-bom-stream/package.json
deleted file mode 100644
index b548829..0000000
--- a/node_modules/remove-bom-stream/package.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
- "name": "remove-bom-stream",
- "version": "1.2.0",
- "description": "Remove a UTF8 BOM at the start of the stream.",
- "author": "Gulp Team (http://gulpjs.com/)",
- "contributors": [
- "Blaine Bublitz "
- ],
- "repository": "gulpjs/remove-bom-stream",
- "license": "MIT",
- "engines": {
- "node": ">= 0.10"
- },
- "main": "index.js",
- "files": [
- "LICENSE",
- "index.js"
- ],
- "scripts": {
- "lint": "eslint index.js test/ && jscs index.js test/",
- "pretest": "npm run lint",
- "test": "mocha --async-only",
- "cover": "istanbul cover _mocha",
- "coveralls": "npm run cover && istanbul-coveralls"
- },
- "dependencies": {
- "safe-buffer": "^5.1.0",
- "remove-bom-buffer": "^3.0.0",
- "through2": "^2.0.3"
- },
- "devDependencies": {
- "buffer-equal": "^1.0.0",
- "eslint": "^1.10.3",
- "eslint-config-gulp": "^2.0.0",
- "expect": "^1.20.2",
- "istanbul": "^0.4.3",
- "istanbul-coveralls": "^1.0.3",
- "jscs": "^2.4.0",
- "jscs-preset-gulp": "^1.0.0",
- "mississippi": "^1.3.0",
- "mocha": "^3.2.0",
- "stream-chunker": "^1.2.8"
- },
- "keywords": [
- "bom",
- "remove",
- "utf8",
- "streaming",
- "stream"
- ]
-}
diff --git a/node_modules/remove-trailing-separator/history.md b/node_modules/remove-trailing-separator/history.md
deleted file mode 100644
index e15e8a4..0000000
--- a/node_modules/remove-trailing-separator/history.md
+++ /dev/null
@@ -1,17 +0,0 @@
-## History
-
-### 1.1.0 - 16th Aug 2017
-
-- [f4576e3](https://github.com/darsain/remove-trailing-separator/commit/f4576e3638c39b794998b533fffb27854dcbee01) Implement faster slash slicing
-
-### 1.0.2 - 07th Jun 2017
-
-- [8e13ecb](https://github.com/darsain/remove-trailing-separator/commit/8e13ecbfd7b9f5fdf97c5d5ff923e4718b874e31) ES5 compatibility
-
-### 1.0.1 - 25th Sep 2016
-
-- [b78606d](https://github.com/darsain/remove-trailing-separator/commit/af90b4e153a4527894741af6c7005acaeb78606d) Remove backslash only on win32 systems
-
-### 1.0.0 - 24th Sep 2016
-
-Initial release.
diff --git a/node_modules/remove-trailing-separator/index.js b/node_modules/remove-trailing-separator/index.js
deleted file mode 100644
index 512306b..0000000
--- a/node_modules/remove-trailing-separator/index.js
+++ /dev/null
@@ -1,17 +0,0 @@
-var isWin = process.platform === 'win32';
-
-module.exports = function (str) {
- var i = str.length - 1;
- if (i < 2) {
- return str;
- }
- while (isSeparator(str, i)) {
- i--;
- }
- return str.substr(0, i + 1);
-};
-
-function isSeparator(str, i) {
- var char = str[i];
- return i > 0 && (char === '/' || (isWin && char === '\\'));
-}
diff --git a/node_modules/remove-trailing-separator/license b/node_modules/remove-trailing-separator/license
deleted file mode 100644
index a169aff..0000000
--- a/node_modules/remove-trailing-separator/license
+++ /dev/null
@@ -1,3 +0,0 @@
-Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
\ No newline at end of file
diff --git a/node_modules/remove-trailing-separator/package.json b/node_modules/remove-trailing-separator/package.json
deleted file mode 100644
index 47ef27a..0000000
--- a/node_modules/remove-trailing-separator/package.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "name": "remove-trailing-separator",
- "version": "1.1.0",
- "description": "Removes separators from the end of the string.",
- "main": "index.js",
- "files": [
- "index.js"
- ],
- "scripts": {
- "lint": "xo",
- "pretest": "npm run lint",
- "test": "nyc ava",
- "report": "nyc report --reporter=html"
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/darsain/remove-trailing-separator.git"
- },
- "keywords": [
- "remove",
- "strip",
- "trailing",
- "separator"
- ],
- "author": "darsain",
- "license": "ISC",
- "bugs": {
- "url": "https://github.com/darsain/remove-trailing-separator/issues"
- },
- "homepage": "https://github.com/darsain/remove-trailing-separator#readme",
- "devDependencies": {
- "ava": "^0.16.0",
- "coveralls": "^2.11.14",
- "nyc": "^8.3.0",
- "xo": "^0.16.0"
- }
-}
diff --git a/node_modules/remove-trailing-separator/readme.md b/node_modules/remove-trailing-separator/readme.md
deleted file mode 100644
index 747086a..0000000
--- a/node_modules/remove-trailing-separator/readme.md
+++ /dev/null
@@ -1,51 +0,0 @@
-# remove-trailing-separator
-
-[![NPM version][npm-img]][npm-url] [![Build Status: Linux][travis-img]][travis-url] [![Build Status: Windows][appveyor-img]][appveyor-url] [![Coverage Status][coveralls-img]][coveralls-url]
-
-Removes all separators from the end of a string.
-
-## Install
-
-```
-npm install remove-trailing-separator
-```
-
-## Examples
-
-```js
-const removeTrailingSeparator = require('remove-trailing-separator');
-
-removeTrailingSeparator('/foo/bar/') // '/foo/bar'
-removeTrailingSeparator('/foo/bar///') // '/foo/bar'
-
-// leaves only/last separator
-removeTrailingSeparator('/') // '/'
-removeTrailingSeparator('///') // '/'
-
-// returns empty string
-removeTrailingSeparator('') // ''
-```
-
-## Notable backslash, or win32 separator behavior
-
-`\` is considered a separator only on WIN32 systems. All POSIX compliant systems
-see backslash as a valid file name character, so it would break POSIX compliance
-to remove it there.
-
-In practice, this means that this code will return different things depending on
-what system it runs on:
-
-```js
-removeTrailingSeparator('\\foo\\')
-// UNIX => '\\foo\\'
-// WIN32 => '\\foo'
-```
-
-[npm-url]: https://npmjs.org/package/remove-trailing-separator
-[npm-img]: https://badge.fury.io/js/remove-trailing-separator.svg
-[travis-url]: https://travis-ci.org/darsain/remove-trailing-separator
-[travis-img]: https://travis-ci.org/darsain/remove-trailing-separator.svg?branch=master
-[appveyor-url]: https://ci.appveyor.com/project/darsain/remove-trailing-separator/branch/master
-[appveyor-img]: https://ci.appveyor.com/api/projects/status/wvg9a93rrq95n2xl/branch/master?svg=true
-[coveralls-url]: https://coveralls.io/github/darsain/remove-trailing-separator?branch=master
-[coveralls-img]: https://coveralls.io/repos/github/darsain/remove-trailing-separator/badge.svg?branch=master
diff --git a/node_modules/repeat-element/LICENSE b/node_modules/repeat-element/LICENSE
deleted file mode 100644
index 7cccaf9..0000000
--- a/node_modules/repeat-element/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015-present, 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/repeat-element/README.md b/node_modules/repeat-element/README.md
deleted file mode 100644
index 6006418..0000000
--- a/node_modules/repeat-element/README.md
+++ /dev/null
@@ -1,99 +0,0 @@
-# repeat-element [![NPM version](https://img.shields.io/npm/v/repeat-element.svg?style=flat)](https://www.npmjs.com/package/repeat-element) [![NPM monthly downloads](https://img.shields.io/npm/dm/repeat-element.svg?style=flat)](https://npmjs.org/package/repeat-element) [![NPM total downloads](https://img.shields.io/npm/dt/repeat-element.svg?style=flat)](https://npmjs.org/package/repeat-element) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/repeat-element.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/repeat-element)
-
-> Create an array by repeating the given value n times.
-
-Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save repeat-element
-```
-
-## Usage
-
-```js
-const repeat = require('repeat-element');
-
-repeat('a', 5);
-//=> ['a', 'a', 'a', 'a', 'a']
-
-repeat('a', 1);
-//=> ['a']
-
-repeat('a', 0);
-//=> []
-
-repeat(null, 5)
-//» [ null, null, null, null, null ]
-
-repeat({some: 'object'}, 5)
-//» [ { some: 'object' },
-// { some: 'object' },
-// { some: 'object' },
-// { some: 'object' },
-// { some: 'object' } ]
-
-repeat(5, 5)
-//» [ 5, 5, 5, 5, 5 ]
-```
-
-## About
-
-
-Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-
-
-
-Running Tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-
-
-
-Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 17 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 3 | [LinusU](https://github.com/LinusU) |
-| 1 | [architectcodes](https://github.com/architectcodes) |
-
-### Author
-
-**Jon Schlinkert**
-
-* [GitHub Profile](https://github.com/jonschlinkert)
-* [Twitter Profile](https://twitter.com/jonschlinkert)
-* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert)
-
-### License
-
-Copyright © 2018, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on August 19, 2018._
\ No newline at end of file
diff --git a/node_modules/repeat-element/index.js b/node_modules/repeat-element/index.js
deleted file mode 100644
index dde8a27..0000000
--- a/node_modules/repeat-element/index.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/*!
- * repeat-element
- *
- * Copyright (c) 2015-present, Jon Schlinkert.
- * Licensed under the MIT license.
- */
-
-'use strict';
-
-module.exports = function repeat(ele, num) {
- if (Array.prototype.fill) {
- return new Array(num).fill(ele);
- }
-
- var arr = new Array(num);
-
- for (var i = 0; i < num; i++) {
- arr[i] = ele;
- }
-
- return arr;
-};
diff --git a/node_modules/repeat-element/package.json b/node_modules/repeat-element/package.json
deleted file mode 100644
index 537055f..0000000
--- a/node_modules/repeat-element/package.json
+++ /dev/null
@@ -1,49 +0,0 @@
-{
- "name": "repeat-element",
- "description": "Create an array by repeating the given value n times.",
- "version": "1.1.4",
- "homepage": "https://github.com/jonschlinkert/repeat-element",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/repeat-element",
- "bugs": {
- "url": "https://github.com/jonschlinkert/repeat-element/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "devDependencies": {
- "benchmarked": "^2.0.0",
- "chalk": "^2.4.1",
- "glob": "^7.1.2",
- "gulp-format-md": "^1.0.0",
- "minimist": "^1.2.0",
- "mocha": "^3.5.3"
- },
- "keywords": [
- "array",
- "element",
- "repeat",
- "string"
- ],
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/repeat-string/LICENSE b/node_modules/repeat-string/LICENSE
deleted file mode 100644
index 39245ac..0000000
--- a/node_modules/repeat-string/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2016, 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/repeat-string/README.md b/node_modules/repeat-string/README.md
deleted file mode 100644
index aaa5e91..0000000
--- a/node_modules/repeat-string/README.md
+++ /dev/null
@@ -1,136 +0,0 @@
-# repeat-string [![NPM version](https://img.shields.io/npm/v/repeat-string.svg?style=flat)](https://www.npmjs.com/package/repeat-string) [![NPM monthly downloads](https://img.shields.io/npm/dm/repeat-string.svg?style=flat)](https://npmjs.org/package/repeat-string) [![NPM total downloads](https://img.shields.io/npm/dt/repeat-string.svg?style=flat)](https://npmjs.org/package/repeat-string) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/repeat-string.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/repeat-string)
-
-> Repeat the given string n times. Fastest implementation for repeating a string.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save repeat-string
-```
-
-## Usage
-
-### [repeat](index.js#L41)
-
-Repeat the given `string` the specified `number` of times.
-
-**Example:**
-
-**Example**
-
-```js
-var repeat = require('repeat-string');
-repeat('A', 5);
-//=> AAAAA
-```
-
-**Params**
-
-* `string` **{String}**: The string to repeat
-* `number` **{Number}**: The number of times to repeat the string
-* `returns` **{String}**: Repeated string
-
-## Benchmarks
-
-Repeat string is significantly faster than the native method (which is itself faster than [repeating](https://github.com/sindresorhus/repeating)):
-
-```sh
-# 2x
-repeat-string █████████████████████████ (26,953,977 ops/sec)
-repeating █████████ (9,855,695 ops/sec)
-native ██████████████████ (19,453,895 ops/sec)
-
-# 3x
-repeat-string █████████████████████████ (19,445,252 ops/sec)
-repeating ███████████ (8,661,565 ops/sec)
-native ████████████████████ (16,020,598 ops/sec)
-
-# 10x
-repeat-string █████████████████████████ (23,792,521 ops/sec)
-repeating █████████ (8,571,332 ops/sec)
-native ███████████████ (14,582,955 ops/sec)
-
-# 50x
-repeat-string █████████████████████████ (23,640,179 ops/sec)
-repeating █████ (5,505,509 ops/sec)
-native ██████████ (10,085,557 ops/sec)
-
-# 250x
-repeat-string █████████████████████████ (23,489,618 ops/sec)
-repeating ████ (3,962,937 ops/sec)
-native ████████ (7,724,892 ops/sec)
-
-# 2000x
-repeat-string █████████████████████████ (20,315,172 ops/sec)
-repeating ████ (3,297,079 ops/sec)
-native ███████ (6,203,331 ops/sec)
-
-# 20000x
-repeat-string █████████████████████████ (23,382,915 ops/sec)
-repeating ███ (2,980,058 ops/sec)
-native █████ (5,578,808 ops/sec)
-```
-
-**Run the benchmarks**
-
-Install dev dependencies:
-
-```sh
-npm i -d && node benchmark
-```
-
-## About
-
-### Related projects
-
-[repeat-element](https://www.npmjs.com/package/repeat-element): Create an array by repeating the given value n times. | [homepage](https://github.com/jonschlinkert/repeat-element "Create an array by repeating the given value n times.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 51 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 2 | [LinusU](https://github.com/LinusU) |
-| 2 | [tbusser](https://github.com/tbusser) |
-| 1 | [doowb](https://github.com/doowb) |
-| 1 | [wooorm](https://github.com/wooorm) |
-
-### Building docs
-
-_(This document was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme) (a [verb](https://github.com/verbose/verb) generator), please don't edit the readme directly. Any changes to the readme must be made in [.verb.md](.verb.md).)_
-
-To generate the readme and API documentation with [verb](https://github.com/verbose/verb):
-
-```sh
-$ npm install -g verb verb-generate-readme && verb
-```
-
-### Running tests
-
-Install dev dependencies:
-
-```sh
-$ npm install -d && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2016, [Jon Schlinkert](http://github.com/jonschlinkert).
-Released under the [MIT license](https://github.com/jonschlinkert/repeat-string/blob/master/LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.2.0, on October 23, 2016._
\ No newline at end of file
diff --git a/node_modules/repeat-string/index.js b/node_modules/repeat-string/index.js
deleted file mode 100644
index 4459afd..0000000
--- a/node_modules/repeat-string/index.js
+++ /dev/null
@@ -1,70 +0,0 @@
-/*!
- * repeat-string
- *
- * Copyright (c) 2014-2015, Jon Schlinkert.
- * Licensed under the MIT License.
- */
-
-'use strict';
-
-/**
- * Results cache
- */
-
-var res = '';
-var cache;
-
-/**
- * Expose `repeat`
- */
-
-module.exports = repeat;
-
-/**
- * Repeat the given `string` the specified `number`
- * of times.
- *
- * **Example:**
- *
- * ```js
- * var repeat = require('repeat-string');
- * repeat('A', 5);
- * //=> AAAAA
- * ```
- *
- * @param {String} `string` The string to repeat
- * @param {Number} `number` The number of times to repeat the string
- * @return {String} Repeated string
- * @api public
- */
-
-function repeat(str, num) {
- if (typeof str !== 'string') {
- throw new TypeError('expected a string');
- }
-
- // cover common, quick use cases
- if (num === 1) return str;
- if (num === 2) return str + str;
-
- var max = str.length * num;
- if (cache !== str || typeof cache === 'undefined') {
- cache = str;
- res = '';
- } else if (res.length >= max) {
- return res.substr(0, max);
- }
-
- while (max > res.length && num > 1) {
- if (num & 1) {
- res += str;
- }
-
- num >>= 1;
- str += str;
- }
-
- res += str;
- res = res.substr(0, max);
- return res;
-}
diff --git a/node_modules/repeat-string/package.json b/node_modules/repeat-string/package.json
deleted file mode 100644
index 09f8892..0000000
--- a/node_modules/repeat-string/package.json
+++ /dev/null
@@ -1,77 +0,0 @@
-{
- "name": "repeat-string",
- "description": "Repeat the given string n times. Fastest implementation for repeating a string.",
- "version": "1.6.1",
- "homepage": "https://github.com/jonschlinkert/repeat-string",
- "author": "Jon Schlinkert (http://github.com/jonschlinkert)",
- "contributors": [
- "Brian Woodward (https://github.com/doowb)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Linus Unnebäck (http://linus.unnebäck.se)",
- "Thijs Busser (http://tbusser.net)",
- "Titus (wooorm.com)"
- ],
- "repository": "jonschlinkert/repeat-string",
- "bugs": {
- "url": "https://github.com/jonschlinkert/repeat-string/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10"
- },
- "scripts": {
- "test": "mocha"
- },
- "devDependencies": {
- "ansi-cyan": "^0.1.1",
- "benchmarked": "^0.2.5",
- "gulp-format-md": "^0.1.11",
- "isobject": "^2.1.0",
- "mocha": "^3.1.2",
- "repeating": "^3.0.0",
- "text-table": "^0.2.0",
- "yargs-parser": "^4.0.2"
- },
- "keywords": [
- "fast",
- "fastest",
- "fill",
- "left",
- "left-pad",
- "multiple",
- "pad",
- "padding",
- "repeat",
- "repeating",
- "repetition",
- "right",
- "right-pad",
- "string",
- "times"
- ],
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "repeat-element"
- ]
- },
- "helpers": [
- "./benchmark/helper.js"
- ],
- "reflinks": [
- "verb"
- ]
- }
-}
diff --git a/node_modules/replace-ext/LICENSE b/node_modules/replace-ext/LICENSE
deleted file mode 100644
index fd38d69..0000000
--- a/node_modules/replace-ext/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014 Blaine Bublitz , Eric Schoffstall and other contributors
-
-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/replace-ext/README.md b/node_modules/replace-ext/README.md
deleted file mode 100644
index acfcfd0..0000000
--- a/node_modules/replace-ext/README.md
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
-
-
-# replace-ext
-
-[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Azure Pipelines Build Status][azure-pipelines-image]][azure-pipelines-url] [![Travis Build Status][travis-image]][travis-url] [![AppVeyor Build Status][appveyor-image]][appveyor-url] [![Coveralls Status][coveralls-image]][coveralls-url] [![Gitter chat][gitter-image]][gitter-url]
-
-Replaces a file extension with another one.
-
-## Usage
-
-```js
-var replaceExt = require('replace-ext');
-
-var path = '/some/dir/file.js';
-var newPath = replaceExt(path, '.coffee');
-
-console.log(newPath); // /some/dir/file.coffee
-```
-
-## API
-
-### `replaceExt(path, extension)`
-
-Replaces the extension from `path` with `extension` and returns the updated path string.
-
-Does not replace the extension if `path` is not a string or is empty.
-
-
-## replace-ext for enterprise
-
-Available as part of the Tidelift Subscription
-
-The maintainers of replace-ext and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-replace-ext?utm_source=npm-replace-ext&utm_medium=referral&utm_campaign=enterprise&utm_term=repo)
-
-
-## License
-
-MIT
-
-[downloads-image]: http://img.shields.io/npm/dm/replace-ext.svg
-[npm-url]: https://www.npmjs.com/package/replace-ext
-[npm-image]: http://img.shields.io/npm/v/replace-ext.svg
-
-[azure-pipelines-url]: https://dev.azure.com/gulpjs/replace-ext/_build/latest?branchName=master
-[azure-pipelines-image]: https://dev.azure.com/gulpjs/replace-ext/_apis/build/status/replace-ext?branchName=master
-
-[travis-url]: https://travis-ci.org/gulpjs/replace-ext
-[travis-image]: http://img.shields.io/travis/gulpjs/replace-ext.svg?label=travis-ci
-
-[appveyor-url]: https://ci.appveyor.com/project/gulpjs/replace-ext
-[appveyor-image]: https://img.shields.io/appveyor/ci/gulpjs/replace-ext.svg?label=appveyor
-
-[coveralls-url]: https://coveralls.io/r/gulpjs/replace-ext
-[coveralls-image]: http://img.shields.io/coveralls/gulpjs/replace-ext/master.svg
-
-[gitter-url]: https://gitter.im/gulpjs/gulp
-[gitter-image]: https://badges.gitter.im/gulpjs/gulp.svg
-
diff --git a/node_modules/replace-ext/index.js b/node_modules/replace-ext/index.js
deleted file mode 100644
index 7a78278..0000000
--- a/node_modules/replace-ext/index.js
+++ /dev/null
@@ -1,33 +0,0 @@
-'use strict';
-
-var path = require('path');
-
-function replaceExt(npath, ext) {
- if (typeof npath !== 'string') {
- return npath;
- }
-
- if (npath.length === 0) {
- return npath;
- }
-
- var nFileName = path.basename(npath, path.extname(npath)) + ext;
- var nFilepath = path.join(path.dirname(npath), nFileName);
-
- // Because `path.join` removes the head './' from the given path.
- // This removal can cause a problem when passing the result to `require` or
- // `import`.
- if (startsWithSingleDot(npath)) {
- return '.' + path.sep + nFilepath;
- }
-
- return nFilepath;
-}
-
-function startsWithSingleDot(fpath) {
- var first2chars = fpath.slice(0, 2);
- return (first2chars === '.' + path.sep) ||
- (first2chars === './');
-}
-
-module.exports = replaceExt;
diff --git a/node_modules/replace-ext/package.json b/node_modules/replace-ext/package.json
deleted file mode 100644
index 29aaef5..0000000
--- a/node_modules/replace-ext/package.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "name": "replace-ext",
- "version": "1.0.1",
- "description": "Replaces a file extension with another one",
- "author": "Gulp Team (http://gulpjs.com/)",
- "contributors": [
- "Eric Schoffstall ",
- "Blaine Bublitz "
- ],
- "repository": "gulpjs/replace-ext",
- "license": "MIT",
- "engines": {
- "node": ">= 0.10"
- },
- "main": "index.js",
- "files": [
- "LICENSE",
- "index.js"
- ],
- "scripts": {
- "lint": "eslint .",
- "pretest": "npm run lint",
- "test": "nyc mocha --async-only",
- "cover": "nyc --reporter=lcov --reporter=text-summary npm test",
- "azure-pipelines": "nyc mocha --async-only --reporter xunit -O output=test.xunit",
- "coveralls": "nyc report --reporter=text-lcov | coveralls"
- },
- "dependencies": {},
- "devDependencies": {
- "coveralls": "github:phated/node-coveralls#2.x",
- "eslint": "^2.13.1",
- "eslint-config-gulp": "^3.0.1",
- "expect": "^1.20.2",
- "mocha": "^3.0.0",
- "nyc": "^10.3.2"
- },
- "keywords": [
- "gulp",
- "extensions",
- "filepath",
- "basename"
- ]
-}
diff --git a/node_modules/replace-homedir/LICENSE b/node_modules/replace-homedir/LICENSE
deleted file mode 100644
index b8fc743..0000000
--- a/node_modules/replace-homedir/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2017 Blaine Bublitz , Eric Schoffstall and other contributors
-
-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/replace-homedir/README.md b/node_modules/replace-homedir/README.md
deleted file mode 100644
index 70ba6bf..0000000
--- a/node_modules/replace-homedir/README.md
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
-
-
-
-
-# replace-homedir
-
-[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Build Status][travis-image]][travis-url] [![AppVeyor Build Status][appveyor-image]][appveyor-url] [![Coveralls Status][coveralls-image]][coveralls-url] [![Gitter chat][gitter-image]][gitter-url]
-
-Replace user home in a string with another string. Useful for tildifying a path.
-
-## Usage
-
-```js
-var replaceHomedir = require('replace-homedir');
-
-var shortPath = replaceHomedir('/Users/phated/myProject', '~');
-// shortPath === '~/myProject'
-```
-
-## API
-
-### `replaceHomedir(path, replacement)`
-
-Takes a string `path` as the first argument and a string or function `replacement` as the second argument. If the `path` is absolute and begins with the User's homedir, the homedir portion of the path is replaced with `replacement` using String#replace.
-
-If `path` is not a string, the function will throw.
-
-## License
-
-MIT
-
-[downloads-image]: http://img.shields.io/npm/dm/replace-homedir.svg
-[npm-url]: https://www.npmjs.com/package/replace-homedir
-[npm-image]: http://img.shields.io/npm/v/replace-homedir.svg
-
-[travis-url]: https://travis-ci.org/gulpjs/replace-homedir
-[travis-image]: http://img.shields.io/travis/gulpjs/replace-homedir.svg?label=travis-ci
-
-[appveyor-url]: https://ci.appveyor.com/project/gulpjs/replace-homedir
-[appveyor-image]: https://img.shields.io/appveyor/ci/gulpjs/replace-homedir.svg?label=appveyor
-
-[coveralls-url]: https://coveralls.io/r/gulpjs/replace-homedir
-[coveralls-image]: http://img.shields.io/coveralls/gulpjs/replace-homedir/master.svg
-
-[gitter-url]: https://gitter.im/gulpjs/gulp
-[gitter-image]: https://badges.gitter.im/gulpjs/gulp.svg
diff --git a/node_modules/replace-homedir/index.js b/node_modules/replace-homedir/index.js
deleted file mode 100644
index 5ca7bee..0000000
--- a/node_modules/replace-homedir/index.js
+++ /dev/null
@@ -1,29 +0,0 @@
-'use strict';
-
-var path = require('path');
-
-var homedir = require('homedir-polyfill');
-var isAbsolute = require('is-absolute');
-var removeTrailingSep = require('remove-trailing-separator');
-
-function replaceHomedir(filepath, replacement) {
- if (typeof filepath !== 'string') {
- throw new Error('Path for replace-homedir must be a string.');
- }
-
- if (!isAbsolute(filepath)) {
- return filepath;
- }
-
- var home = removeTrailingSep(homedir());
- var lookupHome = home + path.sep;
- var lookupPath = removeTrailingSep(filepath) + path.sep;
-
- if (lookupPath.indexOf(lookupHome) !== 0) {
- return filepath;
- }
-
- return filepath.replace(home, replacement);
-}
-
-module.exports = replaceHomedir;
diff --git a/node_modules/replace-homedir/package.json b/node_modules/replace-homedir/package.json
deleted file mode 100644
index c0fd800..0000000
--- a/node_modules/replace-homedir/package.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{
- "name": "replace-homedir",
- "version": "1.0.0",
- "description": "Replace user home in a string with another string. Useful for tildifying a path.",
- "author": "Gulp Team (http://gulpjs.com/)",
- "contributors": [
- "Blaine Bublitz "
- ],
- "repository": "gulpjs/replace-homedir",
- "license": "MIT",
- "engines": {
- "node": ">= 0.10"
- },
- "main": "index.js",
- "files": [
- "LICENSE",
- "index.js"
- ],
- "scripts": {
- "lint": "eslint . && jscs index.js test/",
- "pretest": "npm run lint",
- "test": "mocha --async-only",
- "cover": "istanbul cover _mocha --report lcovonly",
- "coveralls": "npm run cover && istanbul-coveralls"
- },
- "dependencies": {
- "homedir-polyfill": "^1.0.1",
- "is-absolute": "^1.0.0",
- "remove-trailing-separator": "^1.1.0"
- },
- "devDependencies": {
- "eslint": "^1.7.3",
- "eslint-config-gulp": "^2.0.0",
- "expect": "^1.20.2",
- "istanbul": "^0.4.3",
- "istanbul-coveralls": "^1.0.3",
- "jscs": "^2.3.5",
- "jscs-preset-gulp": "^1.0.0",
- "mocha": "^2.4.5"
- },
- "keywords": [
- "path",
- "homedir",
- "tilde",
- "replace",
- "subsitute",
- "user home",
- "tilde"
- ]
-}
diff --git a/node_modules/require-directory/.jshintrc b/node_modules/require-directory/.jshintrc
deleted file mode 100644
index e14e4dc..0000000
--- a/node_modules/require-directory/.jshintrc
+++ /dev/null
@@ -1,67 +0,0 @@
-{
- "maxerr" : 50,
- "bitwise" : true,
- "camelcase" : true,
- "curly" : true,
- "eqeqeq" : true,
- "forin" : true,
- "immed" : true,
- "indent" : 2,
- "latedef" : true,
- "newcap" : true,
- "noarg" : true,
- "noempty" : true,
- "nonew" : true,
- "plusplus" : true,
- "quotmark" : true,
- "undef" : true,
- "unused" : true,
- "strict" : true,
- "trailing" : true,
- "maxparams" : false,
- "maxdepth" : false,
- "maxstatements" : false,
- "maxcomplexity" : false,
- "maxlen" : false,
- "asi" : false,
- "boss" : false,
- "debug" : false,
- "eqnull" : true,
- "es5" : false,
- "esnext" : false,
- "moz" : false,
- "evil" : false,
- "expr" : true,
- "funcscope" : true,
- "globalstrict" : true,
- "iterator" : true,
- "lastsemic" : false,
- "laxbreak" : false,
- "laxcomma" : false,
- "loopfunc" : false,
- "multistr" : false,
- "proto" : false,
- "scripturl" : false,
- "smarttabs" : false,
- "shadow" : false,
- "sub" : false,
- "supernew" : false,
- "validthis" : false,
- "browser" : true,
- "couch" : false,
- "devel" : true,
- "dojo" : false,
- "jquery" : false,
- "mootools" : false,
- "node" : true,
- "nonstandard" : false,
- "prototypejs" : false,
- "rhino" : false,
- "worker" : false,
- "wsh" : false,
- "yui" : false,
- "nomen" : true,
- "onevar" : true,
- "passfail" : false,
- "white" : true
-}
diff --git a/node_modules/require-directory/.npmignore b/node_modules/require-directory/.npmignore
deleted file mode 100644
index 47cf365..0000000
--- a/node_modules/require-directory/.npmignore
+++ /dev/null
@@ -1 +0,0 @@
-test/**
diff --git a/node_modules/require-directory/.travis.yml b/node_modules/require-directory/.travis.yml
deleted file mode 100644
index 20fd86b..0000000
--- a/node_modules/require-directory/.travis.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-language: node_js
-node_js:
- - 0.10
diff --git a/node_modules/require-directory/LICENSE b/node_modules/require-directory/LICENSE
deleted file mode 100644
index a70f253..0000000
--- a/node_modules/require-directory/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2011 Troy Goode
-
-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/require-directory/README.markdown b/node_modules/require-directory/README.markdown
deleted file mode 100644
index 926a063..0000000
--- a/node_modules/require-directory/README.markdown
+++ /dev/null
@@ -1,184 +0,0 @@
-# require-directory
-
-Recursively iterates over specified directory, `require()`'ing each file, and returning a nested hash structure containing those modules.
-
-**[Follow me (@troygoode) on Twitter!](https://twitter.com/intent/user?screen_name=troygoode)**
-
-[![NPM](https://nodei.co/npm/require-directory.png?downloads=true&stars=true)](https://nodei.co/npm/require-directory/)
-
-[![build status](https://secure.travis-ci.org/troygoode/node-require-directory.png)](http://travis-ci.org/troygoode/node-require-directory)
-
-## How To Use
-
-### Installation (via [npm](https://npmjs.org/package/require-directory))
-
-```bash
-$ npm install require-directory
-```
-
-### Usage
-
-A common pattern in node.js is to include an index file which creates a hash of the files in its current directory. Given a directory structure like so:
-
-* app.js
-* routes/
- * index.js
- * home.js
- * auth/
- * login.js
- * logout.js
- * register.js
-
-`routes/index.js` uses `require-directory` to build the hash (rather than doing so manually) like so:
-
-```javascript
-var requireDirectory = require('require-directory');
-module.exports = requireDirectory(module);
-```
-
-`app.js` references `routes/index.js` like any other module, but it now has a hash/tree of the exports from the `./routes/` directory:
-
-```javascript
-var routes = require('./routes');
-
-// snip
-
-app.get('/', routes.home);
-app.get('/register', routes.auth.register);
-app.get('/login', routes.auth.login);
-app.get('/logout', routes.auth.logout);
-```
-
-The `routes` variable above is the equivalent of this:
-
-```javascript
-var routes = {
- home: require('routes/home.js'),
- auth: {
- login: require('routes/auth/login.js'),
- logout: require('routes/auth/logout.js'),
- register: require('routes/auth/register.js')
- }
-};
-```
-
-*Note that `routes.index` will be `undefined` as you would hope.*
-
-### Specifying Another Directory
-
-You can specify which directory you want to build a tree of (if it isn't the current directory for whatever reason) by passing it as the second parameter. Not specifying the path (`requireDirectory(module)`) is the equivelant of `requireDirectory(module, __dirname)`:
-
-```javascript
-var requireDirectory = require('require-directory');
-module.exports = requireDirectory(module, './some/subdirectory');
-```
-
-For example, in the [example in the Usage section](#usage) we could have avoided creating `routes/index.js` and instead changed the first lines of `app.js` to:
-
-```javascript
-var requireDirectory = require('require-directory');
-var routes = requireDirectory(module, './routes');
-```
-
-## Options
-
-You can pass an options hash to `require-directory` as the 2nd parameter (or 3rd if you're passing the path to another directory as the 2nd parameter already). Here are the available options:
-
-### Whitelisting
-
-Whitelisting (either via RegExp or function) allows you to specify that only certain files be loaded.
-
-```javascript
-var requireDirectory = require('require-directory'),
- whitelist = /onlyinclude.js$/,
- hash = requireDirectory(module, {include: whitelist});
-```
-
-```javascript
-var requireDirectory = require('require-directory'),
- check = function(path){
- if(/onlyinclude.js$/.test(path)){
- return true; // don't include
- }else{
- return false; // go ahead and include
- }
- },
- hash = requireDirectory(module, {include: check});
-```
-
-### Blacklisting
-
-Blacklisting (either via RegExp or function) allows you to specify that all but certain files should be loaded.
-
-```javascript
-var requireDirectory = require('require-directory'),
- blacklist = /dontinclude\.js$/,
- hash = requireDirectory(module, {exclude: blacklist});
-```
-
-```javascript
-var requireDirectory = require('require-directory'),
- check = function(path){
- if(/dontinclude\.js$/.test(path)){
- return false; // don't include
- }else{
- return true; // go ahead and include
- }
- },
- hash = requireDirectory(module, {exclude: check});
-```
-
-### Visiting Objects As They're Loaded
-
-`require-directory` takes a function as the `visit` option that will be called for each module that is added to module.exports.
-
-```javascript
-var requireDirectory = require('require-directory'),
- visitor = function(obj) {
- console.log(obj); // will be called for every module that is loaded
- },
- hash = requireDirectory(module, {visit: visitor});
-```
-
-The visitor can also transform the objects by returning a value:
-
-```javascript
-var requireDirectory = require('require-directory'),
- visitor = function(obj) {
- return obj(new Date());
- },
- hash = requireDirectory(module, {visit: visitor});
-```
-
-### Renaming Keys
-
-```javascript
-var requireDirectory = require('require-directory'),
- renamer = function(name) {
- return name.toUpperCase();
- },
- hash = requireDirectory(module, {rename: renamer});
-```
-
-### No Recursion
-
-```javascript
-var requireDirectory = require('require-directory'),
- hash = requireDirectory(module, {recurse: false});
-```
-
-## Run Unit Tests
-
-```bash
-$ npm run lint
-$ npm test
-```
-
-## License
-
-[MIT License](http://www.opensource.org/licenses/mit-license.php)
-
-## Author
-
-[Troy Goode](https://github.com/TroyGoode) ([troygoode@gmail.com](mailto:troygoode@gmail.com))
-
diff --git a/node_modules/require-directory/index.js b/node_modules/require-directory/index.js
deleted file mode 100644
index cd37da7..0000000
--- a/node_modules/require-directory/index.js
+++ /dev/null
@@ -1,86 +0,0 @@
-'use strict';
-
-var fs = require('fs'),
- join = require('path').join,
- resolve = require('path').resolve,
- dirname = require('path').dirname,
- defaultOptions = {
- extensions: ['js', 'json', 'coffee'],
- recurse: true,
- rename: function (name) {
- return name;
- },
- visit: function (obj) {
- return obj;
- }
- };
-
-function checkFileInclusion(path, filename, options) {
- return (
- // verify file has valid extension
- (new RegExp('\\.(' + options.extensions.join('|') + ')$', 'i').test(filename)) &&
-
- // if options.include is a RegExp, evaluate it and make sure the path passes
- !(options.include && options.include instanceof RegExp && !options.include.test(path)) &&
-
- // if options.include is a function, evaluate it and make sure the path passes
- !(options.include && typeof options.include === 'function' && !options.include(path, filename)) &&
-
- // if options.exclude is a RegExp, evaluate it and make sure the path doesn't pass
- !(options.exclude && options.exclude instanceof RegExp && options.exclude.test(path)) &&
-
- // if options.exclude is a function, evaluate it and make sure the path doesn't pass
- !(options.exclude && typeof options.exclude === 'function' && options.exclude(path, filename))
- );
-}
-
-function requireDirectory(m, path, options) {
- var retval = {};
-
- // path is optional
- if (path && !options && typeof path !== 'string') {
- options = path;
- path = null;
- }
-
- // default options
- options = options || {};
- for (var prop in defaultOptions) {
- if (typeof options[prop] === 'undefined') {
- options[prop] = defaultOptions[prop];
- }
- }
-
- // if no path was passed in, assume the equivelant of __dirname from caller
- // otherwise, resolve path relative to the equivalent of __dirname
- path = !path ? dirname(m.filename) : resolve(dirname(m.filename), path);
-
- // get the path of each file in specified directory, append to current tree node, recurse
- fs.readdirSync(path).forEach(function (filename) {
- var joined = join(path, filename),
- files,
- key,
- obj;
-
- if (fs.statSync(joined).isDirectory() && options.recurse) {
- // this node is a directory; recurse
- files = requireDirectory(m, joined, options);
- // exclude empty directories
- if (Object.keys(files).length) {
- retval[options.rename(filename, joined, filename)] = files;
- }
- } else {
- if (joined !== m.filename && checkFileInclusion(joined, filename, options)) {
- // hash node key shouldn't include file extension
- key = filename.substring(0, filename.lastIndexOf('.'));
- obj = m.require(joined);
- retval[options.rename(key, joined, filename)] = options.visit(obj, joined, filename) || obj;
- }
- }
- });
-
- return retval;
-}
-
-module.exports = requireDirectory;
-module.exports.defaults = defaultOptions;
diff --git a/node_modules/require-directory/package.json b/node_modules/require-directory/package.json
deleted file mode 100644
index 25ece4b..0000000
--- a/node_modules/require-directory/package.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- "author": "Troy Goode (http://github.com/troygoode/)",
- "name": "require-directory",
- "version": "2.1.1",
- "description": "Recursively iterates over specified directory, require()'ing each file, and returning a nested hash structure containing those modules.",
- "keywords": [
- "require",
- "directory",
- "library",
- "recursive"
- ],
- "homepage": "https://github.com/troygoode/node-require-directory/",
- "main": "index.js",
- "repository": {
- "type": "git",
- "url": "git://github.com/troygoode/node-require-directory.git"
- },
- "contributors": [
- {
- "name": "Troy Goode",
- "email": "troygoode@gmail.com",
- "web": "http://github.com/troygoode/"
- }
- ],
- "license": "MIT",
- "bugs": {
- "url": "http://github.com/troygoode/node-require-directory/issues/"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "devDependencies": {
- "jshint": "^2.6.0",
- "mocha": "^2.1.0"
- },
- "scripts": {
- "test": "mocha",
- "lint": "jshint index.js test/test.js"
- }
-}
diff --git a/node_modules/require-main-filename/.npmignore b/node_modules/require-main-filename/.npmignore
deleted file mode 100644
index 6f9fe6b..0000000
--- a/node_modules/require-main-filename/.npmignore
+++ /dev/null
@@ -1,3 +0,0 @@
-node_modules
-.DS_Store
-.nyc_output
diff --git a/node_modules/require-main-filename/.travis.yml b/node_modules/require-main-filename/.travis.yml
deleted file mode 100644
index ab61ce7..0000000
--- a/node_modules/require-main-filename/.travis.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-language: node_js
-os:
- - linux
-node_js:
- - "0.10"
- - "0.12"
- - "4.1"
- - "node"
diff --git a/node_modules/require-main-filename/LICENSE.txt b/node_modules/require-main-filename/LICENSE.txt
deleted file mode 100644
index 836440b..0000000
--- a/node_modules/require-main-filename/LICENSE.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-Copyright (c) 2016, Contributors
-
-Permission to use, copy, modify, and/or distribute this software
-for any purpose with or without fee is hereby granted, provided
-that the above copyright notice and this permission notice
-appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE
-LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
-OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/node_modules/require-main-filename/README.md b/node_modules/require-main-filename/README.md
deleted file mode 100644
index 820d9f5..0000000
--- a/node_modules/require-main-filename/README.md
+++ /dev/null
@@ -1,26 +0,0 @@
-# require-main-filename
-
-[![Build Status](https://travis-ci.org/yargs/require-main-filename.png)](https://travis-ci.org/yargs/require-main-filename)
-[![Coverage Status](https://coveralls.io/repos/yargs/require-main-filename/badge.svg?branch=master)](https://coveralls.io/r/yargs/require-main-filename?branch=master)
-[![NPM version](https://img.shields.io/npm/v/require-main-filename.svg)](https://www.npmjs.com/package/require-main-filename)
-
-`require.main.filename` is great for figuring out the entry
-point for the current application. This can be combined with a module like
-[pkg-conf](https://www.npmjs.com/package/pkg-conf) to, _as if by magic_, load
-top-level configuration.
-
-Unfortunately, `require.main.filename` sometimes fails when an application is
-executed with an alternative process manager, e.g., [iisnode](https://github.com/tjanczuk/iisnode).
-
-`require-main-filename` is a shim that addresses this problem.
-
-## Usage
-
-```js
-var main = require('require-main-filename')()
-// use main as an alternative to require.main.filename.
-```
-
-## License
-
-ISC
diff --git a/node_modules/require-main-filename/index.js b/node_modules/require-main-filename/index.js
deleted file mode 100644
index dca7f0c..0000000
--- a/node_modules/require-main-filename/index.js
+++ /dev/null
@@ -1,18 +0,0 @@
-module.exports = function (_require) {
- _require = _require || require
- var main = _require.main
- if (main && isIISNode(main)) return handleIISNode(main)
- else return main ? main.filename : process.cwd()
-}
-
-function isIISNode (main) {
- return /\\iisnode\\/.test(main.filename)
-}
-
-function handleIISNode (main) {
- if (!main.children.length) {
- return main.filename
- } else {
- return main.children[0].filename
- }
-}
diff --git a/node_modules/require-main-filename/package.json b/node_modules/require-main-filename/package.json
deleted file mode 100644
index 558db27..0000000
--- a/node_modules/require-main-filename/package.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "name": "require-main-filename",
- "version": "1.0.1",
- "description": "shim for require.main.filename() that works in as many environments as possible",
- "main": "index.js",
- "scripts": {
- "pretest": "standard",
- "test": "tap --coverage test.js"
- },
- "repository": {
- "type": "git",
- "url": "git+ssh://git@github.com/yargs/require-main-filename.git"
- },
- "keywords": [
- "require",
- "shim",
- "iisnode"
- ],
- "author": "Ben Coe ",
- "license": "ISC",
- "bugs": {
- "url": "https://github.com/yargs/require-main-filename/issues"
- },
- "homepage": "https://github.com/yargs/require-main-filename#readme",
- "devDependencies": {
- "chai": "^3.5.0",
- "standard": "^6.0.5",
- "tap": "^5.2.0"
- }
-}
diff --git a/node_modules/require-main-filename/test.js b/node_modules/require-main-filename/test.js
deleted file mode 100644
index d89e7dc..0000000
--- a/node_modules/require-main-filename/test.js
+++ /dev/null
@@ -1,36 +0,0 @@
-/* global describe, it */
-
-var requireMainFilename = require('./')
-
-require('tap').mochaGlobals()
-require('chai').should()
-
-describe('require-main-filename', function () {
- it('returns require.main.filename in normal circumstances', function () {
- requireMainFilename().should.match(/test\.js/)
- })
-
- it('should use children[0].filename when running on iisnode', function () {
- var main = {
- filename: 'D:\\Program Files (x86)\\iisnode\\interceptor.js',
- children: [ {filename: 'D:\\home\\site\\wwwroot\\server.js'} ]
- }
- requireMainFilename({
- main: main
- }).should.match(/server\.js/)
- })
-
- it('should not use children[0] if no children exist', function () {
- var main = {
- filename: 'D:\\Program Files (x86)\\iisnode\\interceptor.js',
- children: []
- }
- requireMainFilename({
- main: main
- }).should.match(/interceptor\.js/)
- })
-
- it('should default to process.cwd() if require.main is undefined', function () {
- requireMainFilename({}).should.match(/require-main-filename/)
- })
-})
diff --git a/node_modules/resolve-dir/LICENSE b/node_modules/resolve-dir/LICENSE
deleted file mode 100644
index 6525171..0000000
--- a/node_modules/resolve-dir/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015-2016, 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/resolve-dir/README.md b/node_modules/resolve-dir/README.md
deleted file mode 100644
index 3660757..0000000
--- a/node_modules/resolve-dir/README.md
+++ /dev/null
@@ -1,88 +0,0 @@
-# resolve-dir [![NPM version](https://img.shields.io/npm/v/resolve-dir.svg?style=flat)](https://www.npmjs.com/package/resolve-dir) [![NPM downloads](https://img.shields.io/npm/dm/resolve-dir.svg?style=flat)](https://npmjs.org/package/resolve-dir) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/resolve-dir.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/resolve-dir)
-
-> Resolve a directory that is either local, global or in the user's home directory.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save resolve-dir
-```
-
-## Usage
-
-```js
-var resolve = require('resolve-dir');
-```
-
-Returns a local directory path unchanged
-
-```js
-resolve('a')
-//=> 'a'
-```
-
-Resolves the path to user home
-
-```js
-resolve('~')
-//=> '/Users/jonschlinkert'
-resolve('~/foo')
-//=> '/Users/jonschlinkert/foo'
-```
-
-Resolves the path to global npm modules
-
-```js
-resolve('@')
-//=> '/usr/local/lib/node_modules'
-resolve('@/foo')
-//=> '/usr/local/lib/node_modules/foo'
-```
-
-## About
-
-### Related projects
-
-* [expand-tilde](https://www.npmjs.com/package/expand-tilde): Bash-like tilde expansion for node.js. Expands a leading tilde in a file path to the… [more](https://github.com/jonschlinkert/expand-tilde) | [homepage](https://github.com/jonschlinkert/expand-tilde "Bash-like tilde expansion for node.js. Expands a leading tilde in a file path to the user home directory, or `~+` to the cwd.")
-* [findup-sync](https://www.npmjs.com/package/findup-sync): Find the first file matching a given pattern in the current directory or the nearest… [more](https://github.com/cowboy/node-findup-sync) | [homepage](https://github.com/cowboy/node-findup-sync "Find the first file matching a given pattern in the current directory or the nearest ancestor directory.")
-* [resolve-modules](https://www.npmjs.com/package/resolve-modules): Resolves local and global npm modules that match specified patterns, and returns a configuration object… [more](https://github.com/jonschlinkert/resolve-modules) | [homepage](https://github.com/jonschlinkert/resolve-modules "Resolves local and global npm modules that match specified patterns, and returns a configuration object for each resolved module.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Building docs
-
-_(This document was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme) (a [verb](https://github.com/verbose/verb) generator), please don't edit the readme directly. Any changes to the readme must be made in [.verb.md](.verb.md).)_
-
-To generate the readme and API documentation with [verb](https://github.com/verbose/verb):
-
-```sh
-$ npm install -g verb verb-generate-readme && verb
-```
-
-### Running tests
-
-Install dev dependencies:
-
-```sh
-$ npm install -d && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT license](https://github.com/jonschlinkert/resolve-dir/blob/master/LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.2.0, on October 18, 2016._
\ No newline at end of file
diff --git a/node_modules/resolve-dir/index.js b/node_modules/resolve-dir/index.js
deleted file mode 100644
index 3fe5366..0000000
--- a/node_modules/resolve-dir/index.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/*!
- * resolve-dir
- *
- * Copyright (c) 2015, Jon Schlinkert.
- * Licensed under the MIT License.
- */
-
-'use strict';
-
-var path = require('path');
-var expand = require('expand-tilde');
-var gm = require('global-modules');
-
-module.exports = function resolveDir(dir) {
- if (dir.charAt(0) === '~') {
- dir = expand(dir);
- }
- if (dir.charAt(0) === '@') {
- dir = path.join(gm, dir.slice(1));
- }
- return dir;
-};
diff --git a/node_modules/resolve-dir/package.json b/node_modules/resolve-dir/package.json
deleted file mode 100644
index 1899e6e..0000000
--- a/node_modules/resolve-dir/package.json
+++ /dev/null
@@ -1,73 +0,0 @@
-{
- "name": "resolve-dir",
- "description": "Resolve a directory that is either local, global or in the user's home directory.",
- "version": "1.0.1",
- "homepage": "https://github.com/jonschlinkert/resolve-dir",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/resolve-dir",
- "bugs": {
- "url": "https://github.com/jonschlinkert/resolve-dir/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "expand-tilde": "^2.0.0",
- "global-modules": "^1.0.0"
- },
- "devDependencies": {
- "gulp-format-md": "^1.0.0",
- "homedir-polyfill": "^1.0.1",
- "mocha": "^3.5.0"
- },
- "keywords": [
- "dir",
- "directory",
- "expansion",
- "file",
- "filepath",
- "fp",
- "global",
- "home",
- "modules",
- "npm",
- "path",
- "resolve",
- "tilde",
- "user",
- "user-home",
- "userhome"
- ],
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "expand-tilde",
- "findup-sync",
- "resolve-modules"
- ]
- },
- "reflinks": [
- "verb",
- "verb-generate-readme"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/resolve-options/LICENSE b/node_modules/resolve-options/LICENSE
deleted file mode 100644
index b8fc743..0000000
--- a/node_modules/resolve-options/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2017 Blaine Bublitz , Eric Schoffstall and other contributors
-
-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/resolve-options/README.md b/node_modules/resolve-options/README.md
deleted file mode 100644
index 60efcb3..0000000
--- a/node_modules/resolve-options/README.md
+++ /dev/null
@@ -1,104 +0,0 @@
-
-
-
-
-
-
-# resolve-options
-
-[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Build Status][travis-image]][travis-url] [![AppVeyor Build Status][appveyor-image]][appveyor-url] [![Coveralls Status][coveralls-image]][coveralls-url] [![Gitter chat][gitter-image]][gitter-url]
-
-Resolve an options object based on configuration.
-
-## Usage
-
-```js
-// This example assumes a Vinyl file
-
-var createResolver = require('resolve-options');
-
-var config = {
- cwd: {
- type: 'string',
- default: process.cwd
- },
- sourcemaps: {
- type: 'boolean',
- default: false
- },
- since: {
- type: ['date', 'number']
- },
- read: {
- type: 'boolean'
- }
-};
-
-var options = {
- sourcemaps: true,
- since: Date.now(),
- read: function(file) {
- return (file.extname !== '.mp4');
- }
-};
-
-var resolver = createResolver(config, options);
-
-var cwd = resolver.resolve('cwd', file);
-// cwd === process.cwd()
-
-var sourcemaps = resolver.resolve('sourcemaps', file);
-// sourcemaps === true
-
-var read = resolver.resolve('read', file);
-// Given .mp4, read === false
-// Given .txt, read === true
-```
-
-## API
-
-### `createResolver([config,] [options])`
-
-Takes a `config` object that describes the options to accept/resolve and an `options` object (usually passed by a user) to resolve against the `config`. Returns a `resolver` that contains a `resolve` method for realtime resolution of options.
-
-The `config` object takes the following structure:
-```graphql
-config {
- [optionKey] {
- type // string, array or function
- default // any value or function
- }
-}
-```
-
-Each option is represented by its `optionKey` in the `config` object. It must be an object with a `type` property.
-
-The `type` property must be a string, array or function which will be passed to the [`value-or-function`][value-or-function] module (functions will be bound to the resolver to allow for dependent options).
-
-A `default` property may also be specified as a fallback if the option isn't available or is invalid. The `default` value can be any value or a function (functions will be bound to the resolver to allow for dependent defaults). __Note:__ `default` values are not type-validated by the `value-or-function` module.
-
-### `resolver.resolve(optionKey, [...arguments])`
-
-Takes an `optionKey` string and any number of `arguments` to apply if an option is a function. Returns the resolved value for the `optionKey`.
-
-## License
-
-MIT
-
-[value-or-function]: https://github.com/gulpjs/value-or-function
-
-[downloads-image]: http://img.shields.io/npm/dm/resolve-options.svg
-[npm-url]: https://npmjs.com/package/resolve-options
-[npm-image]: http://img.shields.io/npm/v/resolve-options.svg
-
-[travis-url]: https://travis-ci.org/gulpjs/resolve-options
-[travis-image]: http://img.shields.io/travis/gulpjs/resolve-options.svg?label=travis-ci
-
-[appveyor-url]: https://ci.appveyor.com/project/gulpjs/resolve-options
-[appveyor-image]: https://img.shields.io/appveyor/ci/gulpjs/resolve-options.svg?label=appveyor
-
-[coveralls-url]: https://coveralls.io/r/gulpjs/resolve-options
-[coveralls-image]: http://img.shields.io/coveralls/gulpjs/resolve-options/master.svg
-
-[gitter-url]: https://gitter.im/gulpjs/gulp
-[gitter-image]: https://badges.gitter.im/gulpjs/gulp.png
diff --git a/node_modules/resolve-options/index.js b/node_modules/resolve-options/index.js
deleted file mode 100644
index 21ef429..0000000
--- a/node_modules/resolve-options/index.js
+++ /dev/null
@@ -1,111 +0,0 @@
-'use strict';
-
-var normalize = require('value-or-function');
-
-var slice = Array.prototype.slice;
-
-function createResolver(config, options) {
- // TODO: should the config object be validated?
- config = config || {};
- options = options || {};
-
- var resolver = {
- resolve: resolve,
- };
-
-
- // Keep constants separately
- var constants = {};
-
- function resolveConstant(key) {
- if (constants.hasOwnProperty(key)) {
- return constants[key];
- }
-
- var definition = config[key];
- // Ignore options that are not defined
- if (!definition) {
- return;
- }
-
- var option = options[key];
-
- if (option != null) {
- if (typeof option === 'function') {
- return;
- }
- option = normalize.call(resolver, definition.type, option);
- if (option != null) {
- constants[key] = option;
- return option;
- }
- }
-
- var fallback = definition.default;
- if (option == null && typeof fallback !== 'function') {
- constants[key] = fallback;
- return fallback;
- }
- }
-
-
- // Keep requested keys to detect (and disallow) recursive resolution
- var stack = [];
-
- function resolve(key) {
- var option = resolveConstant(key);
- if (option != null) {
- return option;
- }
-
- var definition = config[key];
- // Ignore options that are not defined
- if (!definition) {
- return;
- }
-
- if (stack.indexOf(key) >= 0) {
- throw new Error('Recursive resolution denied.');
- }
-
- option = options[key];
- var fallback = definition.default;
- var appliedArgs = slice.call(arguments, 1);
- var args = [definition.type, option].concat(appliedArgs);
-
- function toResolve() {
- stack.push(key);
- var option = normalize.apply(resolver, args);
-
- if (option == null) {
- option = fallback;
- if (typeof option === 'function') {
- option = option.apply(resolver, appliedArgs);
- }
- }
-
- return option;
- }
-
- function onResolve() {
- stack.pop();
- }
-
- return tryResolve(toResolve, onResolve);
- }
-
-
- return resolver;
-}
-
-
-function tryResolve(toResolve, onResolve) {
- try {
- return toResolve();
- } finally {
- onResolve();
- }
-}
-
-
-module.exports = createResolver;
diff --git a/node_modules/resolve-options/package.json b/node_modules/resolve-options/package.json
deleted file mode 100644
index b1c89f6..0000000
--- a/node_modules/resolve-options/package.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{
- "name": "resolve-options",
- "version": "1.1.0",
- "description": "Resolve an options object based on configuration.",
- "author": "Gulp Team (http://gulpjs.com/)",
- "contributors": [
- "Blaine Bublitz "
- ],
- "repository": "gulpjs/resolve-options",
- "license": "MIT",
- "engines": {
- "node": ">= 0.10"
- },
- "main": "index.js",
- "files": [
- "LICENSE",
- "index.js"
- ],
- "scripts": {
- "lint": "eslint index.js test/ && jscs index.js test/",
- "pretest": "npm run lint",
- "test": "mocha --async-only",
- "cover": "istanbul cover _mocha --report lcovonly",
- "coveralls": "npm run cover && istanbul-coveralls"
- },
- "dependencies": {
- "value-or-function": "^3.0.0"
- },
- "devDependencies": {
- "eslint": "^1.10.3",
- "eslint-config-gulp": "^2.0.0",
- "expect": "^1.20.2",
- "istanbul": "^0.4.3",
- "istanbul-coveralls": "^1.0.3",
- "jscs": "^2.4.0",
- "jscs-preset-gulp": "^1.0.0",
- "mocha": "^3.2.0"
- },
- "keywords": [
- "options",
- "functions",
- "resolver",
- "type",
- "configuration",
- "config",
- "opts",
- "opt",
- "default"
- ]
-}
diff --git a/node_modules/resolve-url/.jshintrc b/node_modules/resolve-url/.jshintrc
deleted file mode 100644
index aaf3358..0000000
--- a/node_modules/resolve-url/.jshintrc
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "bitwise": true,
- "camelcase": true,
- "curly": false,
- "eqeqeq": true,
- "es3": true,
- "forin": true,
- "immed": false,
- "indent": false,
- "latedef": "nofunc",
- "newcap": false,
- "noarg": true,
- "noempty": true,
- "nonew": false,
- "plusplus": false,
- "quotmark": false,
- "undef": true,
- "unused": "vars",
- "strict": false,
- "trailing": true,
- "maxparams": 5,
- "maxdepth": false,
- "maxstatements": false,
- "maxcomplexity": false,
- "maxlen": 100,
-
- "asi": true,
- "expr": true,
- "globalstrict": true,
- "smarttabs": true,
- "sub": true,
-
- "node": true,
- "browser": true,
- "globals": {
- "describe": false,
- "it": false,
- "before": false,
- "beforeEach": false,
- "after": false,
- "afterEach": false,
- "define": false
- }
-}
diff --git a/node_modules/resolve-url/LICENSE b/node_modules/resolve-url/LICENSE
deleted file mode 100644
index 0595be3..0000000
--- a/node_modules/resolve-url/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2013 Simon Lydell
-
-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/resolve-url/bower.json b/node_modules/resolve-url/bower.json
deleted file mode 100644
index 31aa6f4..0000000
--- a/node_modules/resolve-url/bower.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "name": "resolve-url",
- "version": "0.2.1",
- "description": "Like Node.js’ `path.resolve`/`url.resolve` for the browser.",
- "authors": ["Simon Lydell"],
- "license": "MIT",
- "main": "resolve-url.js",
- "keywords": [
- "resolve",
- "url"
- ],
- "ignore": [
- ".*"
- ]
-}
diff --git a/node_modules/resolve-url/changelog.md b/node_modules/resolve-url/changelog.md
deleted file mode 100644
index 2a4a630..0000000
--- a/node_modules/resolve-url/changelog.md
+++ /dev/null
@@ -1,15 +0,0 @@
-### Version 0.2.1 (2014-02-25) ###
-
-- Fix edge case when (accidentally) supplying only one argument, and that
- argument happens to be a falsy value such as `undefined` or `null`.
-
-
-### Version 0.2.0 (2014-02-24) ###
-
-- Disallow passing 0 arguments. It’s weird and inconsistent between browsers.
- (Backwards incompatible change.)
-
-
-### Version 0.1.0 (2014-02-23) ###
-
-- Initial release.
diff --git a/node_modules/resolve-url/component.json b/node_modules/resolve-url/component.json
deleted file mode 100644
index f37cf00..0000000
--- a/node_modules/resolve-url/component.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "name": "resolve-url",
- "version": "0.2.1",
- "license": "MIT",
- "description": "Like Node.js’ `path.resolve`/`url.resolve` for the browser.",
- "main": "resolve-url.js",
- "repo": "lydell/resolve-url",
- "keywords": [
- "resolve",
- "url"
- ],
- "scripts": [
- "resolve-url.js"
- ]
-}
diff --git a/node_modules/resolve-url/package.json b/node_modules/resolve-url/package.json
deleted file mode 100644
index 9442366..0000000
--- a/node_modules/resolve-url/package.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "name": "resolve-url",
- "version": "0.2.1",
- "description": "Like Node.js’ `path.resolve`/`url.resolve` for the browser.",
- "author": "Simon Lydell",
- "license": "MIT",
- "main": "resolve-url.js",
- "repository": "lydell/resolve-url",
- "keywords": [
- "resolve",
- "url"
- ],
- "scripts": {
- "test": "jshint resolve-url.js test/ && testling -u"
- },
- "devDependencies": {
- "testling": "~1.6.0",
- "jshint": "~2.4.3",
- "tape": "~2.5.0"
- },
- "testling": {
- "files": "test/*.js",
- "browsers": [
- "ie/8..latest",
- "chrome/latest",
- "firefox/latest",
- "opera/12",
- "opera/latest",
- "safari/5",
- "iphone/6",
- "android-browser/4"
- ]
- }
-}
diff --git a/node_modules/resolve-url/readme.md b/node_modules/resolve-url/readme.md
deleted file mode 100644
index edfff73..0000000
--- a/node_modules/resolve-url/readme.md
+++ /dev/null
@@ -1,83 +0,0 @@
-Overview
-========
-
-[![browser support](https://ci.testling.com/lydell/resolve-url.png)](https://ci.testling.com/lydell/resolve-url)
-
-Like Node.js’ [`path.resolve`]/[`url.resolve`] for the browser.
-
-```js
-var resolveUrl = require("resolve-url")
-
-window.location
-// https://example.com/articles/resolving-urls/edit
-
-resolveUrl("remove")
-// https://example.com/articles/resolving-urls/remove
-
-resolveUrl("/static/scripts/app.js")
-// https://example.com/static/scripts/app.js
-
-// Imagine /static/scripts/app.js contains `//# sourceMappingURL=../source-maps/app.js.map`
-resolveUrl("/static/scripts/app.js", "../source-maps/app.js.map")
-// https://example.com/static/source-maps/app.js.map
-
-resolveUrl("/static/scripts/app.js", "../source-maps/app.js.map", "../coffee/app.coffee")
-// https://example.com/static/coffee/app.coffee
-
-resolveUrl("//cdn.example.com/jquery.js")
-// https://cdn.example.com/jquery.js
-
-resolveUrl("http://foo.org/")
-// http://foo.org/
-```
-
-
-Installation
-============
-
-- `npm install resolve-url`
-- `bower install resolve-url`
-- `component install lydell/resolve-url`
-
-Works with CommonJS, AMD and browser globals, through UMD.
-
-
-Usage
-=====
-
-### `resolveUrl(...urls)` ###
-
-Pass one or more urls. Resolves the last one to an absolute url, using the
-previous ones and `window.location`.
-
-It’s like starting out on `window.location`, and then clicking links with the
-urls as `href` attributes in order, from left to right.
-
-Unlike Node.js’ [`path.resolve`], this function always goes through all of the
-arguments, from left to right. `path.resolve` goes from right to left and only
-in the worst case goes through them all. Should that matter.
-
-Actually, the function is _really_ like clicking a lot of links in series: An
-actual `` gets its `href` attribute set for each url! This means that the
-url resolution of the browser is used, which makes this module really
-light-weight.
-
-Also note that this functions deals with urls, not paths, so in that respect it
-has more in common with Node.js’ [`url.resolve`]. But the arguments are more
-like [`path.resolve`].
-
-[`path.resolve`]: http://nodejs.org/api/path.html#path_path_resolve_from_to
-[`url.resolve`]: http://nodejs.org/api/url.html#url_url_resolve_from_to
-
-
-Tests
-=====
-
-Run `npm test`, which lints the code and then gives you a link to open in a
-browser of choice (using `testling`).
-
-
-License
-=======
-
-[The X11 (“MIT”) License](LICENSE).
diff --git a/node_modules/resolve-url/resolve-url.js b/node_modules/resolve-url/resolve-url.js
deleted file mode 100644
index 19e8d04..0000000
--- a/node_modules/resolve-url/resolve-url.js
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2014 Simon Lydell
-// X11 (“MIT”) Licensed. (See LICENSE.)
-
-void (function(root, factory) {
- if (typeof define === "function" && define.amd) {
- define(factory)
- } else if (typeof exports === "object") {
- module.exports = factory()
- } else {
- root.resolveUrl = factory()
- }
-}(this, function() {
-
- function resolveUrl(/* ...urls */) {
- var numUrls = arguments.length
-
- if (numUrls === 0) {
- throw new Error("resolveUrl requires at least one argument; got none.")
- }
-
- var base = document.createElement("base")
- base.href = arguments[0]
-
- if (numUrls === 1) {
- return base.href
- }
-
- var head = document.getElementsByTagName("head")[0]
- head.insertBefore(base, head.firstChild)
-
- var a = document.createElement("a")
- var resolved
-
- for (var index = 1; index < numUrls; index++) {
- a.href = arguments[index]
- resolved = a.href
- base.href = resolved
- }
-
- head.removeChild(base)
-
- return resolved
- }
-
- return resolveUrl
-
-}));
diff --git a/node_modules/resolve-url/test/resolve-url.js b/node_modules/resolve-url/test/resolve-url.js
deleted file mode 100644
index 18532ed..0000000
--- a/node_modules/resolve-url/test/resolve-url.js
+++ /dev/null
@@ -1,70 +0,0 @@
-// Copyright 2014 Simon Lydell
-// X11 (“MIT”) Licensed. (See LICENSE.)
-
-var test = require("tape")
-
-var resolveUrl = require("../")
-
-"use strict"
-
-test("resolveUrl", function(t) {
-
- t.plan(7)
-
- t.equal(typeof resolveUrl, "function", "is a function")
-
- t.equal(
- resolveUrl("https://example.com/"),
- "https://example.com/"
- )
-
- var loc = "https://example.com/articles/resolving-urls/edit"
-
- t.equal(
- resolveUrl(loc, "remove"),
- "https://example.com/articles/resolving-urls/remove"
- )
-
- t.equal(
- resolveUrl(loc, "/static/scripts/app.js"),
- "https://example.com/static/scripts/app.js"
- )
-
- t.equal(
- resolveUrl(loc, "/static/scripts/app.js", "../source-maps/app.js.map"),
- "https://example.com/static/source-maps/app.js.map"
- )
-
- t.equal(
- resolveUrl(loc, "/static/scripts/app.js", "../source-maps/app.js.map", "../coffee/app.coffee"),
- "https://example.com/static/coffee/app.coffee"
- )
-
- t.equal(
- resolveUrl(loc, "//cdn.example.com/jquery.js"),
- "https://cdn.example.com/jquery.js"
- )
-
-})
-
-test("edge cases", function(t) {
-
- t.plan(4)
-
- t["throws"](resolveUrl, /at least one argument/, "throws with no arguments")
-
- var accidentallyUndefined
- var result
- t.doesNotThrow(
- function() { result = resolveUrl(accidentallyUndefined) },
- "undefined is still an argument"
- )
- t.ok(result.match(/\/undefined$/), "undefined is stringified")
-
- t.equal(
- resolveUrl("http://foo.org/test", undefined, {}, ["a/b"], null),
- "http://foo.org/a/null",
- "arguments are stringified"
- )
-
-})
diff --git a/node_modules/resolve/.editorconfig b/node_modules/resolve/.editorconfig
deleted file mode 100644
index d63f0bb..0000000
--- a/node_modules/resolve/.editorconfig
+++ /dev/null
@@ -1,37 +0,0 @@
-root = true
-
-[*]
-indent_style = space
-indent_size = 2
-end_of_line = lf
-charset = utf-8
-trim_trailing_whitespace = true
-insert_final_newline = true
-max_line_length = 200
-
-[*.js]
-block_comment_start = /*
-block_comment = *
-block_comment_end = */
-
-[*.yml]
-indent_size = 1
-
-[package.json]
-indent_style = tab
-
-[lib/core.json]
-indent_style = tab
-
-[CHANGELOG.md]
-indent_style = space
-indent_size = 2
-
-[{*.json,Makefile}]
-max_line_length = off
-
-[test/{dotdot,resolver,module_dir,multirepo,node_path,pathfilter,precedence}/**/*]
-indent_style = off
-indent_size = off
-max_line_length = off
-insert_final_newline = off
diff --git a/node_modules/resolve/.eslintignore b/node_modules/resolve/.eslintignore
deleted file mode 100644
index 3c3629e..0000000
--- a/node_modules/resolve/.eslintignore
+++ /dev/null
@@ -1 +0,0 @@
-node_modules
diff --git a/node_modules/resolve/.eslintrc b/node_modules/resolve/.eslintrc
deleted file mode 100644
index a22863c..0000000
--- a/node_modules/resolve/.eslintrc
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "extends": "@ljharb",
- "root": true,
- "rules": {
- "array-bracket-newline": 0,
- "array-element-newline": 0,
- "indent": [2, 4],
- "strict": 0,
- "complexity": 0,
- "consistent-return": 0,
- "curly": 0,
- "dot-notation": [2, { "allowKeywords": true }],
- "func-name-matching": 0,
- "func-style": 0,
- "global-require": 0,
- "id-length": [2, { "min": 1, "max": 30 }],
- "max-lines-per-function": 0,
- "max-nested-callbacks": 0,
- "max-params": 0,
- "max-statements-per-line": [2, { "max": 2 }],
- "max-statements": 0,
- "no-magic-numbers": 0,
- "no-console": 0,
- "no-shadow": 0,
- "no-unused-vars": [2, { "vars": "all", "args": "none" }],
- "no-use-before-define": 0,
- "object-curly-newline": 0,
- "operator-linebreak": [2, "before"],
- "sort-keys": 0,
- },
- "overrides": [
- {
- "files": "test/resolver/nested_symlinks/mylib/*.js",
- "rules": {
- "no-throw-literal": 0,
- },
- },
- ],
-}
diff --git a/node_modules/resolve/LICENSE b/node_modules/resolve/LICENSE
deleted file mode 100644
index ff4fce2..0000000
--- a/node_modules/resolve/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2012 James Halliday
-
-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/resolve/SECURITY.md b/node_modules/resolve/SECURITY.md
deleted file mode 100644
index 82e4285..0000000
--- a/node_modules/resolve/SECURITY.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Security
-
-Please email [@ljharb](https://github.com/ljharb) or see https://tidelift.com/security if you have a potential security vulnerability to report.
diff --git a/node_modules/resolve/appveyor.yml b/node_modules/resolve/appveyor.yml
deleted file mode 100644
index 747fbdb..0000000
--- a/node_modules/resolve/appveyor.yml
+++ /dev/null
@@ -1,74 +0,0 @@
-version: 1.0.{build}
-skip_branch_with_pr: true
-build: off
-
-environment:
- matrix:
- #- nodejs_version: "15"
- - nodejs_version: "14"
- - nodejs_version: "13"
- - nodejs_version: "12"
- - nodejs_version: "11"
- - nodejs_version: "10"
- - nodejs_version: "9"
- - nodejs_version: "8"
- - nodejs_version: "7"
- - nodejs_version: "6"
- - nodejs_version: "5"
- - nodejs_version: "4"
- - nodejs_version: "3"
- - nodejs_version: "2"
- - nodejs_version: "1"
- - nodejs_version: "0.12"
- - nodejs_version: "0.10"
- - nodejs_version: "0.8"
- - nodejs_version: "0.6"
-matrix:
- # fast_finish: true
- allow_failures:
- - nodejs_version: "5" # due to windows npm bug, registry-side
- - nodejs_version: "0.8"
- # platform: x86 # x64 has started failing on the registry side, around early November 2020
- - nodejs_version: "0.6"
-
-platform:
- - x86
- - x64
-
-# Install scripts. (runs after repo cloning)
-install:
- # Fix symlinks in working copy (see https://github.com/appveyor/ci/issues/650#issuecomment-186592582) / https://github.com/charleskorn/batect/commit/d08986802ec43086902958c4ee7e57ff3e71dbef
- - git config core.symlinks true
- - git reset --hard
- # Get the latest stable version of Node.js or io.js
- - ps: if ($env:nodejs_version -ne '0.6') { Install-Product node $env:nodejs_version $env:platform }
- - ps: Update-NodeJsInstallation (Get-NodeJsLatestBuild $env:nodejs_version) $env:platform
- - IF %nodejs_version% EQU 0.6 npm config set strict-ssl false && npm -g install npm@1.3
- - IF %nodejs_version% EQU 0.8 npm config set strict-ssl false && npm -g install npm@1.4.28 && npm install -g npm@4.5
- - IF %nodejs_version% EQU 1 npm -g install npm@2.9
- - IF %nodejs_version% EQU 2 npm -g install npm@4
- - IF %nodejs_version% EQU 3 npm -g install npm@4
- - IF %nodejs_version% EQU 4 npm -g install npm@5.3
- - IF %nodejs_version% EQU 5 npm -g install npm@5.3
- - IF %nodejs_version% EQU 6 npm -g install npm@6.9
- - IF %nodejs_version% EQU 7 npm -g install npm@6
- - IF %nodejs_version% EQU 8 npm -g install npm@6
- - IF %nodejs_version% EQU 9 npm -g install npm@6.9
- - IF %nodejs_version% EQU 10 npm -g install npm@7
- - IF %nodejs_version% EQU 11 npm -g install npm@7
- - IF %nodejs_version% EQU 12 npm -g install npm@7
- - IF %nodejs_version% EQU 13 npm -g install npm@7
- - IF %nodejs_version% EQU 14 npm -g install npm@7
- - IF %nodejs_version% EQU 15 npm -g install npm@7
- - set PATH=%APPDATA%\npm;%PATH%
- #- IF %nodejs_version% NEQ 0.6 AND %nodejs_version% NEQ 0.8 npm -g install npm
- # install modules
- - npm install
-
-# Post-install test scripts.
-test_script:
- # Output useful info for debugging.
- - node --version
- - npm --version
- # run tests
- - npm run tests-only
diff --git a/node_modules/resolve/example/async.js b/node_modules/resolve/example/async.js
deleted file mode 100644
index 20e65dc..0000000
--- a/node_modules/resolve/example/async.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var resolve = require('../');
-resolve('tap', { basedir: __dirname }, function (err, res) {
- if (err) console.error(err);
- else console.log(res);
-});
diff --git a/node_modules/resolve/example/sync.js b/node_modules/resolve/example/sync.js
deleted file mode 100644
index 54b2cc1..0000000
--- a/node_modules/resolve/example/sync.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var resolve = require('../');
-var res = resolve.sync('tap', { basedir: __dirname });
-console.log(res);
diff --git a/node_modules/resolve/index.js b/node_modules/resolve/index.js
deleted file mode 100644
index 125d814..0000000
--- a/node_modules/resolve/index.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var async = require('./lib/async');
-async.core = require('./lib/core');
-async.isCore = require('./lib/is-core');
-async.sync = require('./lib/sync');
-
-module.exports = async;
diff --git a/node_modules/resolve/lib/async.js b/node_modules/resolve/lib/async.js
deleted file mode 100644
index 02e80ac..0000000
--- a/node_modules/resolve/lib/async.js
+++ /dev/null
@@ -1,320 +0,0 @@
-var fs = require('fs');
-var path = require('path');
-var caller = require('./caller');
-var nodeModulesPaths = require('./node-modules-paths');
-var normalizeOptions = require('./normalize-options');
-var isCore = require('is-core-module');
-
-var realpathFS = fs.realpath && typeof fs.realpath.native === 'function' ? fs.realpath.native : fs.realpath;
-
-var defaultIsFile = function isFile(file, cb) {
- fs.stat(file, function (err, stat) {
- if (!err) {
- return cb(null, stat.isFile() || stat.isFIFO());
- }
- if (err.code === 'ENOENT' || err.code === 'ENOTDIR') return cb(null, false);
- return cb(err);
- });
-};
-
-var defaultIsDir = function isDirectory(dir, cb) {
- fs.stat(dir, function (err, stat) {
- if (!err) {
- return cb(null, stat.isDirectory());
- }
- if (err.code === 'ENOENT' || err.code === 'ENOTDIR') return cb(null, false);
- return cb(err);
- });
-};
-
-var defaultRealpath = function realpath(x, cb) {
- realpathFS(x, function (realpathErr, realPath) {
- if (realpathErr && realpathErr.code !== 'ENOENT') cb(realpathErr);
- else cb(null, realpathErr ? x : realPath);
- });
-};
-
-var maybeRealpath = function maybeRealpath(realpath, x, opts, cb) {
- if (opts && opts.preserveSymlinks === false) {
- realpath(x, cb);
- } else {
- cb(null, x);
- }
-};
-
-var defaultReadPackage = function defaultReadPackage(readFile, pkgfile, cb) {
- readFile(pkgfile, function (readFileErr, body) {
- if (readFileErr) cb(readFileErr);
- else {
- try {
- var pkg = JSON.parse(body);
- cb(null, pkg);
- } catch (jsonErr) {
- cb(null);
- }
- }
- });
-};
-
-var getPackageCandidates = function getPackageCandidates(x, start, opts) {
- var dirs = nodeModulesPaths(start, opts, x);
- for (var i = 0; i < dirs.length; i++) {
- dirs[i] = path.join(dirs[i], x);
- }
- return dirs;
-};
-
-module.exports = function resolve(x, options, callback) {
- var cb = callback;
- var opts = options;
- if (typeof options === 'function') {
- cb = opts;
- opts = {};
- }
- if (typeof x !== 'string') {
- var err = new TypeError('Path must be a string.');
- return process.nextTick(function () {
- cb(err);
- });
- }
-
- opts = normalizeOptions(x, opts);
-
- var isFile = opts.isFile || defaultIsFile;
- var isDirectory = opts.isDirectory || defaultIsDir;
- var readFile = opts.readFile || fs.readFile;
- var realpath = opts.realpath || defaultRealpath;
- var readPackage = opts.readPackage || defaultReadPackage;
- if (opts.readFile && opts.readPackage) {
- var conflictErr = new TypeError('`readFile` and `readPackage` are mutually exclusive.');
- return process.nextTick(function () {
- cb(conflictErr);
- });
- }
- var packageIterator = opts.packageIterator;
-
- var extensions = opts.extensions || ['.js'];
- var includeCoreModules = opts.includeCoreModules !== false;
- var basedir = opts.basedir || path.dirname(caller());
- var parent = opts.filename || basedir;
-
- opts.paths = opts.paths || [];
-
- // ensure that `basedir` is an absolute path at this point, resolving against the process' current working directory
- var absoluteStart = path.resolve(basedir);
-
- maybeRealpath(
- realpath,
- absoluteStart,
- opts,
- function (err, realStart) {
- if (err) cb(err);
- else init(realStart);
- }
- );
-
- var res;
- function init(basedir) {
- if ((/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[/\\])/).test(x)) {
- res = path.resolve(basedir, x);
- if (x === '.' || x === '..' || x.slice(-1) === '/') res += '/';
- if ((/\/$/).test(x) && res === basedir) {
- loadAsDirectory(res, opts.package, onfile);
- } else loadAsFile(res, opts.package, onfile);
- } else if (includeCoreModules && isCore(x)) {
- return cb(null, x);
- } else loadNodeModules(x, basedir, function (err, n, pkg) {
- if (err) cb(err);
- else if (n) {
- return maybeRealpath(realpath, n, opts, function (err, realN) {
- if (err) {
- cb(err);
- } else {
- cb(null, realN, pkg);
- }
- });
- } else {
- var moduleError = new Error("Cannot find module '" + x + "' from '" + parent + "'");
- moduleError.code = 'MODULE_NOT_FOUND';
- cb(moduleError);
- }
- });
- }
-
- function onfile(err, m, pkg) {
- if (err) cb(err);
- else if (m) cb(null, m, pkg);
- else loadAsDirectory(res, function (err, d, pkg) {
- if (err) cb(err);
- else if (d) {
- maybeRealpath(realpath, d, opts, function (err, realD) {
- if (err) {
- cb(err);
- } else {
- cb(null, realD, pkg);
- }
- });
- } else {
- var moduleError = new Error("Cannot find module '" + x + "' from '" + parent + "'");
- moduleError.code = 'MODULE_NOT_FOUND';
- cb(moduleError);
- }
- });
- }
-
- function loadAsFile(x, thePackage, callback) {
- var loadAsFilePackage = thePackage;
- var cb = callback;
- if (typeof loadAsFilePackage === 'function') {
- cb = loadAsFilePackage;
- loadAsFilePackage = undefined;
- }
-
- var exts = [''].concat(extensions);
- load(exts, x, loadAsFilePackage);
-
- function load(exts, x, loadPackage) {
- if (exts.length === 0) return cb(null, undefined, loadPackage);
- var file = x + exts[0];
-
- var pkg = loadPackage;
- if (pkg) onpkg(null, pkg);
- else loadpkg(path.dirname(file), onpkg);
-
- function onpkg(err, pkg_, dir) {
- pkg = pkg_;
- if (err) return cb(err);
- if (dir && pkg && opts.pathFilter) {
- var rfile = path.relative(dir, file);
- var rel = rfile.slice(0, rfile.length - exts[0].length);
- var r = opts.pathFilter(pkg, x, rel);
- if (r) return load(
- [''].concat(extensions.slice()),
- path.resolve(dir, r),
- pkg
- );
- }
- isFile(file, onex);
- }
- function onex(err, ex) {
- if (err) return cb(err);
- if (ex) return cb(null, file, pkg);
- load(exts.slice(1), x, pkg);
- }
- }
- }
-
- function loadpkg(dir, cb) {
- if (dir === '' || dir === '/') return cb(null);
- if (process.platform === 'win32' && (/^\w:[/\\]*$/).test(dir)) {
- return cb(null);
- }
- if ((/[/\\]node_modules[/\\]*$/).test(dir)) return cb(null);
-
- maybeRealpath(realpath, dir, opts, function (unwrapErr, pkgdir) {
- if (unwrapErr) return loadpkg(path.dirname(dir), cb);
- var pkgfile = path.join(pkgdir, 'package.json');
- isFile(pkgfile, function (err, ex) {
- // on err, ex is false
- if (!ex) return loadpkg(path.dirname(dir), cb);
-
- readPackage(readFile, pkgfile, function (err, pkgParam) {
- if (err) cb(err);
-
- var pkg = pkgParam;
-
- if (pkg && opts.packageFilter) {
- pkg = opts.packageFilter(pkg, pkgfile);
- }
- cb(null, pkg, dir);
- });
- });
- });
- }
-
- function loadAsDirectory(x, loadAsDirectoryPackage, callback) {
- var cb = callback;
- var fpkg = loadAsDirectoryPackage;
- if (typeof fpkg === 'function') {
- cb = fpkg;
- fpkg = opts.package;
- }
-
- maybeRealpath(realpath, x, opts, function (unwrapErr, pkgdir) {
- if (unwrapErr) return cb(unwrapErr);
- var pkgfile = path.join(pkgdir, 'package.json');
- isFile(pkgfile, function (err, ex) {
- if (err) return cb(err);
- if (!ex) return loadAsFile(path.join(x, 'index'), fpkg, cb);
-
- readPackage(readFile, pkgfile, function (err, pkgParam) {
- if (err) return cb(err);
-
- var pkg = pkgParam;
-
- if (pkg && opts.packageFilter) {
- pkg = opts.packageFilter(pkg, pkgfile);
- }
-
- if (pkg && pkg.main) {
- if (typeof pkg.main !== 'string') {
- var mainError = new TypeError('package “' + pkg.name + '” `main` must be a string');
- mainError.code = 'INVALID_PACKAGE_MAIN';
- return cb(mainError);
- }
- if (pkg.main === '.' || pkg.main === './') {
- pkg.main = 'index';
- }
- loadAsFile(path.resolve(x, pkg.main), pkg, function (err, m, pkg) {
- if (err) return cb(err);
- if (m) return cb(null, m, pkg);
- if (!pkg) return loadAsFile(path.join(x, 'index'), pkg, cb);
-
- var dir = path.resolve(x, pkg.main);
- loadAsDirectory(dir, pkg, function (err, n, pkg) {
- if (err) return cb(err);
- if (n) return cb(null, n, pkg);
- loadAsFile(path.join(x, 'index'), pkg, cb);
- });
- });
- return;
- }
-
- loadAsFile(path.join(x, '/index'), pkg, cb);
- });
- });
- });
- }
-
- function processDirs(cb, dirs) {
- if (dirs.length === 0) return cb(null, undefined);
- var dir = dirs[0];
-
- isDirectory(path.dirname(dir), isdir);
-
- function isdir(err, isdir) {
- if (err) return cb(err);
- if (!isdir) return processDirs(cb, dirs.slice(1));
- loadAsFile(dir, opts.package, onfile);
- }
-
- function onfile(err, m, pkg) {
- if (err) return cb(err);
- if (m) return cb(null, m, pkg);
- loadAsDirectory(dir, opts.package, ondir);
- }
-
- function ondir(err, n, pkg) {
- if (err) return cb(err);
- if (n) return cb(null, n, pkg);
- processDirs(cb, dirs.slice(1));
- }
- }
- function loadNodeModules(x, start, cb) {
- var thunk = function () { return getPackageCandidates(x, start, opts); };
- processDirs(
- cb,
- packageIterator ? packageIterator(x, start, thunk, opts) : thunk()
- );
- }
-};
diff --git a/node_modules/resolve/lib/caller.js b/node_modules/resolve/lib/caller.js
deleted file mode 100644
index b14a280..0000000
--- a/node_modules/resolve/lib/caller.js
+++ /dev/null
@@ -1,8 +0,0 @@
-module.exports = function () {
- // see https://code.google.com/p/v8/wiki/JavaScriptStackTraceApi
- var origPrepareStackTrace = Error.prepareStackTrace;
- Error.prepareStackTrace = function (_, stack) { return stack; };
- var stack = (new Error()).stack;
- Error.prepareStackTrace = origPrepareStackTrace;
- return stack[2].getFileName();
-};
diff --git a/node_modules/resolve/lib/core.js b/node_modules/resolve/lib/core.js
deleted file mode 100644
index c417d23..0000000
--- a/node_modules/resolve/lib/core.js
+++ /dev/null
@@ -1,53 +0,0 @@
-var current = (process.versions && process.versions.node && process.versions.node.split('.')) || [];
-
-function specifierIncluded(specifier) {
- var parts = specifier.split(' ');
- var op = parts.length > 1 ? parts[0] : '=';
- var versionParts = (parts.length > 1 ? parts[1] : parts[0]).split('.');
-
- for (var i = 0; i < 3; ++i) {
- var cur = parseInt(current[i] || 0, 10);
- var ver = parseInt(versionParts[i] || 0, 10);
- if (cur === ver) {
- continue; // eslint-disable-line no-restricted-syntax, no-continue
- }
- if (op === '<') {
- return cur < ver;
- } else if (op === '>=') {
- return cur >= ver;
- } else {
- return false;
- }
- }
- return op === '>=';
-}
-
-function matchesRange(range) {
- var specifiers = range.split(/ ?&& ?/);
- if (specifiers.length === 0) { return false; }
- for (var i = 0; i < specifiers.length; ++i) {
- if (!specifierIncluded(specifiers[i])) { return false; }
- }
- return true;
-}
-
-function versionIncluded(specifierValue) {
- if (typeof specifierValue === 'boolean') { return specifierValue; }
- if (specifierValue && typeof specifierValue === 'object') {
- for (var i = 0; i < specifierValue.length; ++i) {
- if (matchesRange(specifierValue[i])) { return true; }
- }
- return false;
- }
- return matchesRange(specifierValue);
-}
-
-var data = require('./core.json');
-
-var core = {};
-for (var mod in data) { // eslint-disable-line no-restricted-syntax
- if (Object.prototype.hasOwnProperty.call(data, mod)) {
- core[mod] = versionIncluded(data[mod]);
- }
-}
-module.exports = core;
diff --git a/node_modules/resolve/lib/core.json b/node_modules/resolve/lib/core.json
deleted file mode 100644
index 0238b61..0000000
--- a/node_modules/resolve/lib/core.json
+++ /dev/null
@@ -1,83 +0,0 @@
-{
- "assert": true,
- "assert/strict": ">= 15",
- "async_hooks": ">= 8",
- "buffer_ieee754": "< 0.9.7",
- "buffer": true,
- "child_process": true,
- "cluster": true,
- "console": true,
- "constants": true,
- "crypto": true,
- "_debug_agent": ">= 1 && < 8",
- "_debugger": "< 8",
- "dgram": true,
- "diagnostics_channel": ">= 15.1",
- "dns": true,
- "dns/promises": ">= 15",
- "domain": ">= 0.7.12",
- "events": true,
- "freelist": "< 6",
- "fs": true,
- "fs/promises": [">= 10 && < 10.1", ">= 14"],
- "_http_agent": ">= 0.11.1",
- "_http_client": ">= 0.11.1",
- "_http_common": ">= 0.11.1",
- "_http_incoming": ">= 0.11.1",
- "_http_outgoing": ">= 0.11.1",
- "_http_server": ">= 0.11.1",
- "http": true,
- "http2": ">= 8.8",
- "https": true,
- "inspector": ">= 8.0.0",
- "_linklist": "< 8",
- "module": true,
- "net": true,
- "node-inspect/lib/_inspect": ">= 7.6.0 && < 12",
- "node-inspect/lib/internal/inspect_client": ">= 7.6.0 && < 12",
- "node-inspect/lib/internal/inspect_repl": ">= 7.6.0 && < 12",
- "os": true,
- "path": true,
- "path/posix": ">= 15.3",
- "path/win32": ">= 15.3",
- "perf_hooks": ">= 8.5",
- "process": ">= 1",
- "punycode": true,
- "querystring": true,
- "readline": true,
- "repl": true,
- "smalloc": ">= 0.11.5 && < 3",
- "_stream_duplex": ">= 0.9.4",
- "_stream_transform": ">= 0.9.4",
- "_stream_wrap": ">= 1.4.1",
- "_stream_passthrough": ">= 0.9.4",
- "_stream_readable": ">= 0.9.4",
- "_stream_writable": ">= 0.9.4",
- "stream": true,
- "stream/promises": ">= 15",
- "string_decoder": true,
- "sys": [">= 0.6 && < 0.7", ">= 0.8"],
- "timers": true,
- "timers/promises": ">= 15",
- "_tls_common": ">= 0.11.13",
- "_tls_legacy": ">= 0.11.3 && < 10",
- "_tls_wrap": ">= 0.11.3",
- "tls": true,
- "trace_events": ">= 10",
- "tty": true,
- "url": true,
- "util": true,
- "util/types": ">= 15.3",
- "v8/tools/arguments": ">= 10 && < 12",
- "v8/tools/codemap": [">= 4.4.0 && < 5", ">= 5.2.0 && < 12"],
- "v8/tools/consarray": [">= 4.4.0 && < 5", ">= 5.2.0 && < 12"],
- "v8/tools/csvparser": [">= 4.4.0 && < 5", ">= 5.2.0 && < 12"],
- "v8/tools/logreader": [">= 4.4.0 && < 5", ">= 5.2.0 && < 12"],
- "v8/tools/profile_view": [">= 4.4.0 && < 5", ">= 5.2.0 && < 12"],
- "v8/tools/splaytree": [">= 4.4.0 && < 5", ">= 5.2.0 && < 12"],
- "v8": ">= 1",
- "vm": true,
- "wasi": ">= 13.4 && < 13.5",
- "worker_threads": ">= 11.7",
- "zlib": true
-}
diff --git a/node_modules/resolve/lib/is-core.js b/node_modules/resolve/lib/is-core.js
deleted file mode 100644
index 537f5c7..0000000
--- a/node_modules/resolve/lib/is-core.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var isCoreModule = require('is-core-module');
-
-module.exports = function isCore(x) {
- return isCoreModule(x);
-};
diff --git a/node_modules/resolve/lib/node-modules-paths.js b/node_modules/resolve/lib/node-modules-paths.js
deleted file mode 100644
index 2b43813..0000000
--- a/node_modules/resolve/lib/node-modules-paths.js
+++ /dev/null
@@ -1,42 +0,0 @@
-var path = require('path');
-var parse = path.parse || require('path-parse');
-
-var getNodeModulesDirs = function getNodeModulesDirs(absoluteStart, modules) {
- var prefix = '/';
- if ((/^([A-Za-z]:)/).test(absoluteStart)) {
- prefix = '';
- } else if ((/^\\\\/).test(absoluteStart)) {
- prefix = '\\\\';
- }
-
- var paths = [absoluteStart];
- var parsed = parse(absoluteStart);
- while (parsed.dir !== paths[paths.length - 1]) {
- paths.push(parsed.dir);
- parsed = parse(parsed.dir);
- }
-
- return paths.reduce(function (dirs, aPath) {
- return dirs.concat(modules.map(function (moduleDir) {
- return path.resolve(prefix, aPath, moduleDir);
- }));
- }, []);
-};
-
-module.exports = function nodeModulesPaths(start, opts, request) {
- var modules = opts && opts.moduleDirectory
- ? [].concat(opts.moduleDirectory)
- : ['node_modules'];
-
- if (opts && typeof opts.paths === 'function') {
- return opts.paths(
- request,
- start,
- function () { return getNodeModulesDirs(start, modules); },
- opts
- );
- }
-
- var dirs = getNodeModulesDirs(start, modules);
- return opts && opts.paths ? dirs.concat(opts.paths) : dirs;
-};
diff --git a/node_modules/resolve/lib/normalize-options.js b/node_modules/resolve/lib/normalize-options.js
deleted file mode 100644
index 4b56904..0000000
--- a/node_modules/resolve/lib/normalize-options.js
+++ /dev/null
@@ -1,10 +0,0 @@
-module.exports = function (x, opts) {
- /**
- * This file is purposefully a passthrough. It's expected that third-party
- * environments will override it at runtime in order to inject special logic
- * into `resolve` (by manipulating the options). One such example is the PnP
- * code path in Yarn.
- */
-
- return opts || {};
-};
diff --git a/node_modules/resolve/lib/sync.js b/node_modules/resolve/lib/sync.js
deleted file mode 100644
index ef9bd80..0000000
--- a/node_modules/resolve/lib/sync.js
+++ /dev/null
@@ -1,199 +0,0 @@
-var isCore = require('is-core-module');
-var fs = require('fs');
-var path = require('path');
-var caller = require('./caller');
-var nodeModulesPaths = require('./node-modules-paths');
-var normalizeOptions = require('./normalize-options');
-
-var realpathFS = fs.realpathSync && typeof fs.realpathSync.native === 'function' ? fs.realpathSync.native : fs.realpathSync;
-
-var defaultIsFile = function isFile(file) {
- try {
- var stat = fs.statSync(file);
- } catch (e) {
- if (e && (e.code === 'ENOENT' || e.code === 'ENOTDIR')) return false;
- throw e;
- }
- return stat.isFile() || stat.isFIFO();
-};
-
-var defaultIsDir = function isDirectory(dir) {
- try {
- var stat = fs.statSync(dir);
- } catch (e) {
- if (e && (e.code === 'ENOENT' || e.code === 'ENOTDIR')) return false;
- throw e;
- }
- return stat.isDirectory();
-};
-
-var defaultRealpathSync = function realpathSync(x) {
- try {
- return realpathFS(x);
- } catch (realpathErr) {
- if (realpathErr.code !== 'ENOENT') {
- throw realpathErr;
- }
- }
- return x;
-};
-
-var maybeRealpathSync = function maybeRealpathSync(realpathSync, x, opts) {
- if (opts && opts.preserveSymlinks === false) {
- return realpathSync(x);
- }
- return x;
-};
-
-var defaultReadPackageSync = function defaultReadPackageSync(readFileSync, pkgfile) {
- var body = readFileSync(pkgfile);
- try {
- var pkg = JSON.parse(body);
- return pkg;
- } catch (jsonErr) {}
-};
-
-var getPackageCandidates = function getPackageCandidates(x, start, opts) {
- var dirs = nodeModulesPaths(start, opts, x);
- for (var i = 0; i < dirs.length; i++) {
- dirs[i] = path.join(dirs[i], x);
- }
- return dirs;
-};
-
-module.exports = function resolveSync(x, options) {
- if (typeof x !== 'string') {
- throw new TypeError('Path must be a string.');
- }
- var opts = normalizeOptions(x, options);
-
- var isFile = opts.isFile || defaultIsFile;
- var readFileSync = opts.readFileSync || fs.readFileSync;
- var isDirectory = opts.isDirectory || defaultIsDir;
- var realpathSync = opts.realpathSync || defaultRealpathSync;
- var readPackageSync = opts.readPackageSync || defaultReadPackageSync;
- if (opts.readFileSync && opts.readPackageSync) {
- throw new TypeError('`readFileSync` and `readPackageSync` are mutually exclusive.');
- }
- var packageIterator = opts.packageIterator;
-
- var extensions = opts.extensions || ['.js'];
- var includeCoreModules = opts.includeCoreModules !== false;
- var basedir = opts.basedir || path.dirname(caller());
- var parent = opts.filename || basedir;
-
- opts.paths = opts.paths || [];
-
- // ensure that `basedir` is an absolute path at this point, resolving against the process' current working directory
- var absoluteStart = maybeRealpathSync(realpathSync, path.resolve(basedir), opts);
-
- if ((/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[/\\])/).test(x)) {
- var res = path.resolve(absoluteStart, x);
- if (x === '.' || x === '..' || x.slice(-1) === '/') res += '/';
- var m = loadAsFileSync(res) || loadAsDirectorySync(res);
- if (m) return maybeRealpathSync(realpathSync, m, opts);
- } else if (includeCoreModules && isCore(x)) {
- return x;
- } else {
- var n = loadNodeModulesSync(x, absoluteStart);
- if (n) return maybeRealpathSync(realpathSync, n, opts);
- }
-
- var err = new Error("Cannot find module '" + x + "' from '" + parent + "'");
- err.code = 'MODULE_NOT_FOUND';
- throw err;
-
- function loadAsFileSync(x) {
- var pkg = loadpkg(path.dirname(x));
-
- if (pkg && pkg.dir && pkg.pkg && opts.pathFilter) {
- var rfile = path.relative(pkg.dir, x);
- var r = opts.pathFilter(pkg.pkg, x, rfile);
- if (r) {
- x = path.resolve(pkg.dir, r); // eslint-disable-line no-param-reassign
- }
- }
-
- if (isFile(x)) {
- return x;
- }
-
- for (var i = 0; i < extensions.length; i++) {
- var file = x + extensions[i];
- if (isFile(file)) {
- return file;
- }
- }
- }
-
- function loadpkg(dir) {
- if (dir === '' || dir === '/') return;
- if (process.platform === 'win32' && (/^\w:[/\\]*$/).test(dir)) {
- return;
- }
- if ((/[/\\]node_modules[/\\]*$/).test(dir)) return;
-
- var pkgfile = path.join(maybeRealpathSync(realpathSync, dir, opts), 'package.json');
-
- if (!isFile(pkgfile)) {
- return loadpkg(path.dirname(dir));
- }
-
- var pkg = readPackageSync(readFileSync, pkgfile);
-
- if (pkg && opts.packageFilter) {
- // v2 will pass pkgfile
- pkg = opts.packageFilter(pkg, /*pkgfile,*/ dir); // eslint-disable-line spaced-comment
- }
-
- return { pkg: pkg, dir: dir };
- }
-
- function loadAsDirectorySync(x) {
- var pkgfile = path.join(maybeRealpathSync(realpathSync, x, opts), '/package.json');
- if (isFile(pkgfile)) {
- try {
- var pkg = readPackageSync(readFileSync, pkgfile);
- } catch (e) {}
-
- if (pkg && opts.packageFilter) {
- // v2 will pass pkgfile
- pkg = opts.packageFilter(pkg, /*pkgfile,*/ x); // eslint-disable-line spaced-comment
- }
-
- if (pkg && pkg.main) {
- if (typeof pkg.main !== 'string') {
- var mainError = new TypeError('package “' + pkg.name + '” `main` must be a string');
- mainError.code = 'INVALID_PACKAGE_MAIN';
- throw mainError;
- }
- if (pkg.main === '.' || pkg.main === './') {
- pkg.main = 'index';
- }
- try {
- var m = loadAsFileSync(path.resolve(x, pkg.main));
- if (m) return m;
- var n = loadAsDirectorySync(path.resolve(x, pkg.main));
- if (n) return n;
- } catch (e) {}
- }
- }
-
- return loadAsFileSync(path.join(x, '/index'));
- }
-
- function loadNodeModulesSync(x, start) {
- var thunk = function () { return getPackageCandidates(x, start, opts); };
- var dirs = packageIterator ? packageIterator(x, start, thunk, opts) : thunk();
-
- for (var i = 0; i < dirs.length; i++) {
- var dir = dirs[i];
- if (isDirectory(path.dirname(dir))) {
- var m = loadAsFileSync(dir);
- if (m) return m;
- var n = loadAsDirectorySync(dir);
- if (n) return n;
- }
- }
- }
-};
diff --git a/node_modules/resolve/package.json b/node_modules/resolve/package.json
deleted file mode 100644
index 52a78a2..0000000
--- a/node_modules/resolve/package.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
- "name": "resolve",
- "description": "resolve like require.resolve() on behalf of files asynchronously and synchronously",
- "version": "1.20.0",
- "repository": {
- "type": "git",
- "url": "git://github.com/browserify/resolve.git"
- },
- "main": "index.js",
- "keywords": [
- "resolve",
- "require",
- "node",
- "module"
- ],
- "scripts": {
- "prepublish": "safe-publish-latest && cp node_modules/is-core-module/core.json ./lib/ ||:",
- "prelint": "eclint check '**/*'",
- "lint": "eslint --ext=js,mjs .",
- "pretests-only": "cd ./test/resolver/nested_symlinks && node mylib/sync && node mylib/async",
- "tests-only": "tape test/*.js",
- "pretest": "npm run lint",
- "test": "npm run --silent tests-only",
- "posttest": "npm run test:multirepo && aud --production",
- "test:multirepo": "cd ./test/resolver/multirepo && npm install && npm test"
- },
- "devDependencies": {
- "@ljharb/eslint-config": "^17.5.1",
- "array.prototype.map": "^1.0.3",
- "aud": "^1.1.4",
- "eclint": "^2.8.1",
- "eslint": "^7.19.0",
- "object-keys": "^1.1.1",
- "safe-publish-latest": "^1.1.4",
- "tap": "0.4.13",
- "tape": "^5.1.1"
- },
- "license": "MIT",
- "author": {
- "name": "James Halliday",
- "email": "mail@substack.net",
- "url": "http://substack.net"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- },
- "dependencies": {
- "is-core-module": "^2.2.0",
- "path-parse": "^1.0.6"
- }
-}
diff --git a/node_modules/resolve/readme.markdown b/node_modules/resolve/readme.markdown
deleted file mode 100644
index 7c9f2dc..0000000
--- a/node_modules/resolve/readme.markdown
+++ /dev/null
@@ -1,279 +0,0 @@
-# resolve
-
-implements the [node `require.resolve()`
-algorithm](https://nodejs.org/api/modules.html#modules_all_together)
-such that you can `require.resolve()` on behalf of a file asynchronously and
-synchronously
-
-[![build status](https://secure.travis-ci.org/browserify/resolve.png)](http://travis-ci.org/browserify/resolve)
-
-# example
-
-asynchronously resolve:
-
-```js
-var resolve = require('resolve');
-resolve('tap', { basedir: __dirname }, function (err, res) {
- if (err) console.error(err);
- else console.log(res);
-});
-```
-
-```
-$ node example/async.js
-/home/substack/projects/node-resolve/node_modules/tap/lib/main.js
-```
-
-synchronously resolve:
-
-```js
-var resolve = require('resolve');
-var res = resolve.sync('tap', { basedir: __dirname });
-console.log(res);
-```
-
-```
-$ node example/sync.js
-/home/substack/projects/node-resolve/node_modules/tap/lib/main.js
-```
-
-# methods
-
-```js
-var resolve = require('resolve');
-```
-
-For both the synchronous and asynchronous methods, errors may have any of the following `err.code` values:
-
-- `MODULE_NOT_FOUND`: the given path string (`id`) could not be resolved to a module
-- `INVALID_BASEDIR`: the specified `opts.basedir` doesn't exist, or is not a directory
-- `INVALID_PACKAGE_MAIN`: a `package.json` was encountered with an invalid `main` property (eg. not a string)
-
-## resolve(id, opts={}, cb)
-
-Asynchronously resolve the module path string `id` into `cb(err, res [, pkg])`, where `pkg` (if defined) is the data from `package.json`.
-
-options are:
-
-* opts.basedir - directory to begin resolving from
-
-* opts.package - `package.json` data applicable to the module being loaded
-
-* opts.extensions - array of file extensions to search in order
-
-* opts.includeCoreModules - set to `false` to exclude node core modules (e.g. `fs`) from the search
-
-* opts.readFile - how to read files asynchronously
-
-* opts.isFile - function to asynchronously test whether a file exists
-
-* opts.isDirectory - function to asynchronously test whether a directory exists
-
-* opts.realpath - function to asynchronously resolve a potential symlink to its real path
-
-* `opts.readPackage(readFile, pkgfile, cb)` - function to asynchronously read and parse a package.json file
- * readFile - the passed `opts.readFile` or `fs.readFile` if not specified
- * pkgfile - path to package.json
- * cb - callback
-
-* `opts.packageFilter(pkg, pkgfile, dir)` - transform the parsed package.json contents before looking at the "main" field
- * pkg - package data
- * pkgfile - path to package.json
- * dir - directory for package.json
-
-* `opts.pathFilter(pkg, path, relativePath)` - transform a path within a package
- * pkg - package data
- * path - the path being resolved
- * relativePath - the path relative from the package.json location
- * returns - a relative path that will be joined from the package.json location
-
-* opts.paths - require.paths array to use if nothing is found on the normal `node_modules` recursive walk (probably don't use this)
-
- For advanced users, `paths` can also be a `opts.paths(request, start, opts)` function
- * request - the import specifier being resolved
- * start - lookup path
- * getNodeModulesDirs - a thunk (no-argument function) that returns the paths using standard `node_modules` resolution
- * opts - the resolution options
-
-* `opts.packageIterator(request, start, opts)` - return the list of candidate paths where the packages sources may be found (probably don't use this)
- * request - the import specifier being resolved
- * start - lookup path
- * getPackageCandidates - a thunk (no-argument function) that returns the paths using standard `node_modules` resolution
- * opts - the resolution options
-
-* opts.moduleDirectory - directory (or directories) in which to recursively look for modules. default: `"node_modules"`
-
-* opts.preserveSymlinks - if true, doesn't resolve `basedir` to real path before resolving.
-This is the way Node resolves dependencies when executed with the [--preserve-symlinks](https://nodejs.org/api/all.html#cli_preserve_symlinks) flag.
-**Note:** this property is currently `true` by default but it will be changed to
-`false` in the next major version because *Node's resolution algorithm does not preserve symlinks by default*.
-
-default `opts` values:
-
-```js
-{
- paths: [],
- basedir: __dirname,
- extensions: ['.js'],
- includeCoreModules: true,
- readFile: fs.readFile,
- isFile: function isFile(file, cb) {
- fs.stat(file, function (err, stat) {
- if (!err) {
- return cb(null, stat.isFile() || stat.isFIFO());
- }
- if (err.code === 'ENOENT' || err.code === 'ENOTDIR') return cb(null, false);
- return cb(err);
- });
- },
- isDirectory: function isDirectory(dir, cb) {
- fs.stat(dir, function (err, stat) {
- if (!err) {
- return cb(null, stat.isDirectory());
- }
- if (err.code === 'ENOENT' || err.code === 'ENOTDIR') return cb(null, false);
- return cb(err);
- });
- },
- realpath: function realpath(file, cb) {
- var realpath = typeof fs.realpath.native === 'function' ? fs.realpath.native : fs.realpath;
- realpath(file, function (realPathErr, realPath) {
- if (realPathErr && realPathErr.code !== 'ENOENT') cb(realPathErr);
- else cb(null, realPathErr ? file : realPath);
- });
- },
- readPackage: function defaultReadPackage(readFile, pkgfile, cb) {
- readFile(pkgfile, function (readFileErr, body) {
- if (readFileErr) cb(readFileErr);
- else {
- try {
- var pkg = JSON.parse(body);
- cb(null, pkg);
- } catch (jsonErr) {
- cb(null);
- }
- }
- });
- },
- moduleDirectory: 'node_modules',
- preserveSymlinks: true
-}
-```
-
-## resolve.sync(id, opts)
-
-Synchronously resolve the module path string `id`, returning the result and
-throwing an error when `id` can't be resolved.
-
-options are:
-
-* opts.basedir - directory to begin resolving from
-
-* opts.extensions - array of file extensions to search in order
-
-* opts.includeCoreModules - set to `false` to exclude node core modules (e.g. `fs`) from the search
-
-* opts.readFileSync - how to read files synchronously
-
-* opts.isFile - function to synchronously test whether a file exists
-
-* opts.isDirectory - function to synchronously test whether a directory exists
-
-* opts.realpathSync - function to synchronously resolve a potential symlink to its real path
-
-* `opts.readPackageSync(readFileSync, pkgfile)` - function to synchronously read and parse a package.json file
- * readFileSync - the passed `opts.readFileSync` or `fs.readFileSync` if not specified
- * pkgfile - path to package.json
-
-* `opts.packageFilter(pkg, dir)` - transform the parsed package.json contents before looking at the "main" field
- * pkg - package data
- * dir - directory for package.json (Note: the second argument will change to "pkgfile" in v2)
-
-* `opts.pathFilter(pkg, path, relativePath)` - transform a path within a package
- * pkg - package data
- * path - the path being resolved
- * relativePath - the path relative from the package.json location
- * returns - a relative path that will be joined from the package.json location
-
-* opts.paths - require.paths array to use if nothing is found on the normal `node_modules` recursive walk (probably don't use this)
-
- For advanced users, `paths` can also be a `opts.paths(request, start, opts)` function
- * request - the import specifier being resolved
- * start - lookup path
- * getNodeModulesDirs - a thunk (no-argument function) that returns the paths using standard `node_modules` resolution
- * opts - the resolution options
-
-* `opts.packageIterator(request, start, opts)` - return the list of candidate paths where the packages sources may be found (probably don't use this)
- * request - the import specifier being resolved
- * start - lookup path
- * getPackageCandidates - a thunk (no-argument function) that returns the paths using standard `node_modules` resolution
- * opts - the resolution options
-
-* opts.moduleDirectory - directory (or directories) in which to recursively look for modules. default: `"node_modules"`
-
-* opts.preserveSymlinks - if true, doesn't resolve `basedir` to real path before resolving.
-This is the way Node resolves dependencies when executed with the [--preserve-symlinks](https://nodejs.org/api/all.html#cli_preserve_symlinks) flag.
-**Note:** this property is currently `true` by default but it will be changed to
-`false` in the next major version because *Node's resolution algorithm does not preserve symlinks by default*.
-
-default `opts` values:
-
-```js
-{
- paths: [],
- basedir: __dirname,
- extensions: ['.js'],
- includeCoreModules: true,
- readFileSync: fs.readFileSync,
- isFile: function isFile(file) {
- try {
- var stat = fs.statSync(file);
- } catch (e) {
- if (e && (e.code === 'ENOENT' || e.code === 'ENOTDIR')) return false;
- throw e;
- }
- return stat.isFile() || stat.isFIFO();
- },
- isDirectory: function isDirectory(dir) {
- try {
- var stat = fs.statSync(dir);
- } catch (e) {
- if (e && (e.code === 'ENOENT' || e.code === 'ENOTDIR')) return false;
- throw e;
- }
- return stat.isDirectory();
- },
- realpathSync: function realpathSync(file) {
- try {
- var realpath = typeof fs.realpathSync.native === 'function' ? fs.realpathSync.native : fs.realpathSync;
- return realpath(file);
- } catch (realPathErr) {
- if (realPathErr.code !== 'ENOENT') {
- throw realPathErr;
- }
- }
- return file;
- },
- readPackageSync: function defaultReadPackageSync(readFileSync, pkgfile) {
- var body = readFileSync(pkgfile);
- try {
- var pkg = JSON.parse(body);
- return pkg;
- } catch (jsonErr) {}
- },
- moduleDirectory: 'node_modules',
- preserveSymlinks: true
-}
-```
-
-# install
-
-With [npm](https://npmjs.org) do:
-
-```sh
-npm install resolve
-```
-
-# license
-
-MIT
diff --git a/node_modules/resolve/test/.eslintrc b/node_modules/resolve/test/.eslintrc
deleted file mode 100644
index ddd262d..0000000
--- a/node_modules/resolve/test/.eslintrc
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "rules": {
- "max-lines": 0
- }
-}
diff --git a/node_modules/resolve/test/core.js b/node_modules/resolve/test/core.js
deleted file mode 100644
index 7a3ccb1..0000000
--- a/node_modules/resolve/test/core.js
+++ /dev/null
@@ -1,81 +0,0 @@
-var test = require('tape');
-var keys = require('object-keys');
-var resolve = require('../');
-
-test('core modules', function (t) {
- t.test('isCore()', function (st) {
- st.ok(resolve.isCore('fs'));
- st.ok(resolve.isCore('net'));
- st.ok(resolve.isCore('http'));
-
- st.ok(!resolve.isCore('seq'));
- st.ok(!resolve.isCore('../'));
-
- st.ok(!resolve.isCore('toString'));
-
- st.end();
- });
-
- t.test('core list', function (st) {
- var cores = keys(resolve.core);
- st.plan(cores.length);
-
- for (var i = 0; i < cores.length; ++i) {
- var mod = cores[i];
- var requireFunc = function () { require(mod); }; // eslint-disable-line no-loop-func
- console.log(mod, resolve.core, resolve.core[mod]);
- if (resolve.core[mod]) {
- st.doesNotThrow(requireFunc, mod + ' supported; requiring does not throw');
- } else {
- st.throws(requireFunc, mod + ' not supported; requiring throws');
- }
- }
-
- st.end();
- });
-
- t.test('core via repl module', { skip: !resolve.core.repl }, function (st) {
- var libs = require('repl')._builtinLibs; // eslint-disable-line no-underscore-dangle
- if (!libs) {
- st.skip('module.builtinModules does not exist');
- return st.end();
- }
- for (var i = 0; i < libs.length; ++i) {
- var mod = libs[i];
- st.ok(resolve.core[mod], mod + ' is a core module');
- st.doesNotThrow(
- function () { require(mod); }, // eslint-disable-line no-loop-func
- 'requiring ' + mod + ' does not throw'
- );
- }
- st.end();
- });
-
- t.test('core via builtinModules list', { skip: !resolve.core.module }, function (st) {
- var libs = require('module').builtinModules;
- if (!libs) {
- st.skip('module.builtinModules does not exist');
- return st.end();
- }
- var blacklist = [
- '_debug_agent',
- 'v8/tools/tickprocessor-driver',
- 'v8/tools/SourceMap',
- 'v8/tools/tickprocessor',
- 'v8/tools/profile'
- ];
- for (var i = 0; i < libs.length; ++i) {
- var mod = libs[i];
- if (blacklist.indexOf(mod) === -1) {
- st.ok(resolve.core[mod], mod + ' is a core module');
- st.doesNotThrow(
- function () { require(mod); }, // eslint-disable-line no-loop-func
- 'requiring ' + mod + ' does not throw'
- );
- }
- }
- st.end();
- });
-
- t.end();
-});
diff --git a/node_modules/resolve/test/dotdot.js b/node_modules/resolve/test/dotdot.js
deleted file mode 100644
index 3080665..0000000
--- a/node_modules/resolve/test/dotdot.js
+++ /dev/null
@@ -1,29 +0,0 @@
-var path = require('path');
-var test = require('tape');
-var resolve = require('../');
-
-test('dotdot', function (t) {
- t.plan(4);
- var dir = path.join(__dirname, '/dotdot/abc');
-
- resolve('..', { basedir: dir }, function (err, res, pkg) {
- t.ifError(err);
- t.equal(res, path.join(__dirname, 'dotdot/index.js'));
- });
-
- resolve('.', { basedir: dir }, function (err, res, pkg) {
- t.ifError(err);
- t.equal(res, path.join(dir, 'index.js'));
- });
-});
-
-test('dotdot sync', function (t) {
- t.plan(2);
- var dir = path.join(__dirname, '/dotdot/abc');
-
- var a = resolve.sync('..', { basedir: dir });
- t.equal(a, path.join(__dirname, 'dotdot/index.js'));
-
- var b = resolve.sync('.', { basedir: dir });
- t.equal(b, path.join(dir, 'index.js'));
-});
diff --git a/node_modules/resolve/test/dotdot/abc/index.js b/node_modules/resolve/test/dotdot/abc/index.js
deleted file mode 100644
index 67f2534..0000000
--- a/node_modules/resolve/test/dotdot/abc/index.js
+++ /dev/null
@@ -1,2 +0,0 @@
-var x = require('..');
-console.log(x);
diff --git a/node_modules/resolve/test/dotdot/index.js b/node_modules/resolve/test/dotdot/index.js
deleted file mode 100644
index 643f9fc..0000000
--- a/node_modules/resolve/test/dotdot/index.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = 'whatever';
diff --git a/node_modules/resolve/test/faulty_basedir.js b/node_modules/resolve/test/faulty_basedir.js
deleted file mode 100644
index 5f2141a..0000000
--- a/node_modules/resolve/test/faulty_basedir.js
+++ /dev/null
@@ -1,29 +0,0 @@
-var test = require('tape');
-var path = require('path');
-var resolve = require('../');
-
-test('faulty basedir must produce error in windows', { skip: process.platform !== 'win32' }, function (t) {
- t.plan(1);
-
- var resolverDir = 'C:\\a\\b\\c\\d';
-
- resolve('tape/lib/test.js', { basedir: resolverDir }, function (err, res, pkg) {
- t.equal(!!err, true);
- });
-});
-
-test('non-existent basedir should not throw when preserveSymlinks is false', function (t) {
- t.plan(2);
-
- var opts = {
- basedir: path.join(path.sep, 'unreal', 'path', 'that', 'does', 'not', 'exist'),
- preserveSymlinks: false
- };
-
- var module = './dotdot/abc';
-
- resolve(module, opts, function (err, res) {
- t.equal(err.code, 'MODULE_NOT_FOUND');
- t.equal(res, undefined);
- });
-});
diff --git a/node_modules/resolve/test/filter.js b/node_modules/resolve/test/filter.js
deleted file mode 100644
index 8f8cccd..0000000
--- a/node_modules/resolve/test/filter.js
+++ /dev/null
@@ -1,34 +0,0 @@
-var path = require('path');
-var test = require('tape');
-var resolve = require('../');
-
-test('filter', function (t) {
- t.plan(4);
- var dir = path.join(__dirname, 'resolver');
- var packageFilterArgs;
- resolve('./baz', {
- basedir: dir,
- packageFilter: function (pkg, pkgfile) {
- pkg.main = 'doom'; // eslint-disable-line no-param-reassign
- packageFilterArgs = [pkg, pkgfile];
- return pkg;
- }
- }, function (err, res, pkg) {
- if (err) t.fail(err);
-
- t.equal(res, path.join(dir, 'baz/doom.js'), 'changing the package "main" works');
-
- var packageData = packageFilterArgs[0];
- t.equal(pkg, packageData, 'first packageFilter argument is "pkg"');
- t.equal(packageData.main, 'doom', 'package "main" was altered');
-
- var packageFile = packageFilterArgs[1];
- t.equal(
- packageFile,
- path.join(dir, 'baz/package.json'),
- 'second packageFilter argument is "pkgfile"'
- );
-
- t.end();
- });
-});
diff --git a/node_modules/resolve/test/filter_sync.js b/node_modules/resolve/test/filter_sync.js
deleted file mode 100644
index 8a43b98..0000000
--- a/node_modules/resolve/test/filter_sync.js
+++ /dev/null
@@ -1,33 +0,0 @@
-var path = require('path');
-var test = require('tape');
-var resolve = require('../');
-
-test('filter', function (t) {
- var dir = path.join(__dirname, 'resolver');
- var packageFilterArgs;
- var res = resolve.sync('./baz', {
- basedir: dir,
- // NOTE: in v2.x, this will be `pkg, pkgfile, dir`, but must remain "broken" here in v1.x for compatibility
- packageFilter: function (pkg, /*pkgfile,*/ dir) { // eslint-disable-line spaced-comment
- pkg.main = 'doom'; // eslint-disable-line no-param-reassign
- packageFilterArgs = 'is 1.x' ? [pkg, dir] : [pkg, pkgfile, dir]; // eslint-disable-line no-constant-condition, no-undef
- return pkg;
- }
- });
-
- t.equal(res, path.join(dir, 'baz/doom.js'), 'changing the package "main" works');
-
- var packageData = packageFilterArgs[0];
- t.equal(packageData.main, 'doom', 'package "main" was altered');
-
- if (!'is 1.x') { // eslint-disable-line no-constant-condition
- var packageFile = packageFilterArgs[1];
- t.equal(packageFile, path.join(dir, 'baz', 'package.json'), 'package.json path is correct');
- }
-
- var packageDir = packageFilterArgs['is 1.x' ? 1 : 2]; // eslint-disable-line no-constant-condition
- // eslint-disable-next-line no-constant-condition
- t.equal(packageDir, path.join(dir, 'baz'), ('is 1.x' ? 'second' : 'third') + ' packageFilter argument is "dir"');
-
- t.end();
-});
diff --git a/node_modules/resolve/test/mock.js b/node_modules/resolve/test/mock.js
deleted file mode 100644
index 6116275..0000000
--- a/node_modules/resolve/test/mock.js
+++ /dev/null
@@ -1,315 +0,0 @@
-var path = require('path');
-var test = require('tape');
-var resolve = require('../');
-
-test('mock', function (t) {
- t.plan(8);
-
- var files = {};
- files[path.resolve('/foo/bar/baz.js')] = 'beep';
-
- var dirs = {};
- dirs[path.resolve('/foo/bar')] = true;
-
- function opts(basedir) {
- return {
- basedir: path.resolve(basedir),
- isFile: function (file, cb) {
- cb(null, Object.prototype.hasOwnProperty.call(files, path.resolve(file)));
- },
- isDirectory: function (dir, cb) {
- cb(null, !!dirs[path.resolve(dir)]);
- },
- readFile: function (file, cb) {
- cb(null, files[path.resolve(file)]);
- },
- realpath: function (file, cb) {
- cb(null, file);
- }
- };
- }
-
- resolve('./baz', opts('/foo/bar'), function (err, res, pkg) {
- if (err) return t.fail(err);
- t.equal(res, path.resolve('/foo/bar/baz.js'));
- t.equal(pkg, undefined);
- });
-
- resolve('./baz.js', opts('/foo/bar'), function (err, res, pkg) {
- if (err) return t.fail(err);
- t.equal(res, path.resolve('/foo/bar/baz.js'));
- t.equal(pkg, undefined);
- });
-
- resolve('baz', opts('/foo/bar'), function (err, res) {
- t.equal(err.message, "Cannot find module 'baz' from '" + path.resolve('/foo/bar') + "'");
- t.equal(err.code, 'MODULE_NOT_FOUND');
- });
-
- resolve('../baz', opts('/foo/bar'), function (err, res) {
- t.equal(err.message, "Cannot find module '../baz' from '" + path.resolve('/foo/bar') + "'");
- t.equal(err.code, 'MODULE_NOT_FOUND');
- });
-});
-
-test('mock from package', function (t) {
- t.plan(8);
-
- var files = {};
- files[path.resolve('/foo/bar/baz.js')] = 'beep';
-
- var dirs = {};
- dirs[path.resolve('/foo/bar')] = true;
-
- function opts(basedir) {
- return {
- basedir: path.resolve(basedir),
- isFile: function (file, cb) {
- cb(null, Object.prototype.hasOwnProperty.call(files, file));
- },
- isDirectory: function (dir, cb) {
- cb(null, !!dirs[path.resolve(dir)]);
- },
- 'package': { main: 'bar' },
- readFile: function (file, cb) {
- cb(null, files[file]);
- },
- realpath: function (file, cb) {
- cb(null, file);
- }
- };
- }
-
- resolve('./baz', opts('/foo/bar'), function (err, res, pkg) {
- if (err) return t.fail(err);
- t.equal(res, path.resolve('/foo/bar/baz.js'));
- t.equal(pkg && pkg.main, 'bar');
- });
-
- resolve('./baz.js', opts('/foo/bar'), function (err, res, pkg) {
- if (err) return t.fail(err);
- t.equal(res, path.resolve('/foo/bar/baz.js'));
- t.equal(pkg && pkg.main, 'bar');
- });
-
- resolve('baz', opts('/foo/bar'), function (err, res) {
- t.equal(err.message, "Cannot find module 'baz' from '" + path.resolve('/foo/bar') + "'");
- t.equal(err.code, 'MODULE_NOT_FOUND');
- });
-
- resolve('../baz', opts('/foo/bar'), function (err, res) {
- t.equal(err.message, "Cannot find module '../baz' from '" + path.resolve('/foo/bar') + "'");
- t.equal(err.code, 'MODULE_NOT_FOUND');
- });
-});
-
-test('mock package', function (t) {
- t.plan(2);
-
- var files = {};
- files[path.resolve('/foo/node_modules/bar/baz.js')] = 'beep';
- files[path.resolve('/foo/node_modules/bar/package.json')] = JSON.stringify({
- main: './baz.js'
- });
-
- var dirs = {};
- dirs[path.resolve('/foo')] = true;
- dirs[path.resolve('/foo/node_modules')] = true;
-
- function opts(basedir) {
- return {
- basedir: path.resolve(basedir),
- isFile: function (file, cb) {
- cb(null, Object.prototype.hasOwnProperty.call(files, path.resolve(file)));
- },
- isDirectory: function (dir, cb) {
- cb(null, !!dirs[path.resolve(dir)]);
- },
- readFile: function (file, cb) {
- cb(null, files[path.resolve(file)]);
- },
- realpath: function (file, cb) {
- cb(null, file);
- }
- };
- }
-
- resolve('bar', opts('/foo'), function (err, res, pkg) {
- if (err) return t.fail(err);
- t.equal(res, path.resolve('/foo/node_modules/bar/baz.js'));
- t.equal(pkg && pkg.main, './baz.js');
- });
-});
-
-test('mock package from package', function (t) {
- t.plan(2);
-
- var files = {};
- files[path.resolve('/foo/node_modules/bar/baz.js')] = 'beep';
- files[path.resolve('/foo/node_modules/bar/package.json')] = JSON.stringify({
- main: './baz.js'
- });
-
- var dirs = {};
- dirs[path.resolve('/foo')] = true;
- dirs[path.resolve('/foo/node_modules')] = true;
-
- function opts(basedir) {
- return {
- basedir: path.resolve(basedir),
- isFile: function (file, cb) {
- cb(null, Object.prototype.hasOwnProperty.call(files, path.resolve(file)));
- },
- isDirectory: function (dir, cb) {
- cb(null, !!dirs[path.resolve(dir)]);
- },
- 'package': { main: 'bar' },
- readFile: function (file, cb) {
- cb(null, files[path.resolve(file)]);
- },
- realpath: function (file, cb) {
- cb(null, file);
- }
- };
- }
-
- resolve('bar', opts('/foo'), function (err, res, pkg) {
- if (err) return t.fail(err);
- t.equal(res, path.resolve('/foo/node_modules/bar/baz.js'));
- t.equal(pkg && pkg.main, './baz.js');
- });
-});
-
-test('symlinked', function (t) {
- t.plan(4);
-
- var files = {};
- files[path.resolve('/foo/bar/baz.js')] = 'beep';
- files[path.resolve('/foo/bar/symlinked/baz.js')] = 'beep';
-
- var dirs = {};
- dirs[path.resolve('/foo/bar')] = true;
- dirs[path.resolve('/foo/bar/symlinked')] = true;
-
- function opts(basedir) {
- return {
- preserveSymlinks: false,
- basedir: path.resolve(basedir),
- isFile: function (file, cb) {
- cb(null, Object.prototype.hasOwnProperty.call(files, path.resolve(file)));
- },
- isDirectory: function (dir, cb) {
- cb(null, !!dirs[path.resolve(dir)]);
- },
- readFile: function (file, cb) {
- cb(null, files[path.resolve(file)]);
- },
- realpath: function (file, cb) {
- var resolved = path.resolve(file);
-
- if (resolved.indexOf('symlinked') >= 0) {
- cb(null, resolved);
- return;
- }
-
- var ext = path.extname(resolved);
-
- if (ext) {
- var dir = path.dirname(resolved);
- var base = path.basename(resolved);
- cb(null, path.join(dir, 'symlinked', base));
- } else {
- cb(null, path.join(resolved, 'symlinked'));
- }
- }
- };
- }
-
- resolve('./baz', opts('/foo/bar'), function (err, res, pkg) {
- if (err) return t.fail(err);
- t.equal(res, path.resolve('/foo/bar/symlinked/baz.js'));
- t.equal(pkg, undefined);
- });
-
- resolve('./baz.js', opts('/foo/bar'), function (err, res, pkg) {
- if (err) return t.fail(err);
- t.equal(res, path.resolve('/foo/bar/symlinked/baz.js'));
- t.equal(pkg, undefined);
- });
-});
-
-test('readPackage', function (t) {
- t.plan(3);
-
- var files = {};
- files[path.resolve('/foo/node_modules/bar/something-else.js')] = 'beep';
- files[path.resolve('/foo/node_modules/bar/package.json')] = JSON.stringify({
- main: './baz.js'
- });
- files[path.resolve('/foo/node_modules/bar/baz.js')] = 'boop';
-
- var dirs = {};
- dirs[path.resolve('/foo')] = true;
- dirs[path.resolve('/foo/node_modules')] = true;
-
- function opts(basedir) {
- return {
- basedir: path.resolve(basedir),
- isFile: function (file, cb) {
- cb(null, Object.prototype.hasOwnProperty.call(files, path.resolve(file)));
- },
- isDirectory: function (dir, cb) {
- cb(null, !!dirs[path.resolve(dir)]);
- },
- 'package': { main: 'bar' },
- readFile: function (file, cb) {
- cb(null, files[path.resolve(file)]);
- },
- realpath: function (file, cb) {
- cb(null, file);
- }
- };
- }
-
- t.test('with readFile', function (st) {
- st.plan(3);
-
- resolve('bar', opts('/foo'), function (err, res, pkg) {
- st.error(err);
- st.equal(res, path.resolve('/foo/node_modules/bar/baz.js'));
- st.equal(pkg && pkg.main, './baz.js');
- });
- });
-
- var readPackage = function (readFile, file, cb) {
- var barPackage = path.join('bar', 'package.json');
- if (file.slice(-barPackage.length) === barPackage) {
- cb(null, { main: './something-else.js' });
- } else {
- cb(null, JSON.parse(files[path.resolve(file)]));
- }
- };
-
- t.test('with readPackage', function (st) {
- st.plan(3);
-
- var options = opts('/foo');
- delete options.readFile;
- options.readPackage = readPackage;
- resolve('bar', options, function (err, res, pkg) {
- st.error(err);
- st.equal(res, path.resolve('/foo/node_modules/bar/something-else.js'));
- st.equal(pkg && pkg.main, './something-else.js');
- });
- });
-
- t.test('with readFile and readPackage', function (st) {
- st.plan(1);
-
- var options = opts('/foo');
- options.readPackage = readPackage;
- resolve('bar', options, function (err) {
- st.throws(function () { throw err; }, TypeError, 'errors when both readFile and readPackage are provided');
- });
- });
-});
diff --git a/node_modules/resolve/test/mock_sync.js b/node_modules/resolve/test/mock_sync.js
deleted file mode 100644
index 0e3a60d..0000000
--- a/node_modules/resolve/test/mock_sync.js
+++ /dev/null
@@ -1,216 +0,0 @@
-var path = require('path');
-var test = require('tape');
-var resolve = require('../');
-
-test('mock', function (t) {
- t.plan(4);
-
- var files = {};
- files[path.resolve('/foo/bar/baz.js')] = 'beep';
-
- var dirs = {};
- dirs[path.resolve('/foo/bar')] = true;
-
- function opts(basedir) {
- return {
- basedir: path.resolve(basedir),
- isFile: function (file) {
- return Object.prototype.hasOwnProperty.call(files, path.resolve(file));
- },
- isDirectory: function (dir) {
- return !!dirs[path.resolve(dir)];
- },
- readFileSync: function (file) {
- return files[path.resolve(file)];
- },
- realpathSync: function (file) {
- return file;
- }
- };
- }
-
- t.equal(
- resolve.sync('./baz', opts('/foo/bar')),
- path.resolve('/foo/bar/baz.js')
- );
-
- t.equal(
- resolve.sync('./baz.js', opts('/foo/bar')),
- path.resolve('/foo/bar/baz.js')
- );
-
- t.throws(function () {
- resolve.sync('baz', opts('/foo/bar'));
- });
-
- t.throws(function () {
- resolve.sync('../baz', opts('/foo/bar'));
- });
-});
-
-test('mock package', function (t) {
- t.plan(1);
-
- var files = {};
- files[path.resolve('/foo/node_modules/bar/baz.js')] = 'beep';
- files[path.resolve('/foo/node_modules/bar/package.json')] = JSON.stringify({
- main: './baz.js'
- });
-
- var dirs = {};
- dirs[path.resolve('/foo')] = true;
- dirs[path.resolve('/foo/node_modules')] = true;
-
- function opts(basedir) {
- return {
- basedir: path.resolve(basedir),
- isFile: function (file) {
- return Object.prototype.hasOwnProperty.call(files, path.resolve(file));
- },
- isDirectory: function (dir) {
- return !!dirs[path.resolve(dir)];
- },
- readFileSync: function (file) {
- return files[path.resolve(file)];
- },
- realpathSync: function (file) {
- return file;
- }
- };
- }
-
- t.equal(
- resolve.sync('bar', opts('/foo')),
- path.resolve('/foo/node_modules/bar/baz.js')
- );
-});
-
-test('symlinked', function (t) {
- t.plan(2);
-
- var files = {};
- files[path.resolve('/foo/bar/baz.js')] = 'beep';
- files[path.resolve('/foo/bar/symlinked/baz.js')] = 'beep';
-
- var dirs = {};
- dirs[path.resolve('/foo/bar')] = true;
- dirs[path.resolve('/foo/bar/symlinked')] = true;
-
- function opts(basedir) {
- return {
- preserveSymlinks: false,
- basedir: path.resolve(basedir),
- isFile: function (file) {
- return Object.prototype.hasOwnProperty.call(files, path.resolve(file));
- },
- isDirectory: function (dir) {
- return !!dirs[path.resolve(dir)];
- },
- readFileSync: function (file) {
- return files[path.resolve(file)];
- },
- realpathSync: function (file) {
- var resolved = path.resolve(file);
-
- if (resolved.indexOf('symlinked') >= 0) {
- return resolved;
- }
-
- var ext = path.extname(resolved);
-
- if (ext) {
- var dir = path.dirname(resolved);
- var base = path.basename(resolved);
- return path.join(dir, 'symlinked', base);
- } else {
- return path.join(resolved, 'symlinked');
- }
- }
- };
- }
-
- t.equal(
- resolve.sync('./baz', opts('/foo/bar')),
- path.resolve('/foo/bar/symlinked/baz.js')
- );
-
- t.equal(
- resolve.sync('./baz.js', opts('/foo/bar')),
- path.resolve('/foo/bar/symlinked/baz.js')
- );
-});
-
-test('readPackageSync', function (t) {
- t.plan(3);
-
- var files = {};
- files[path.resolve('/foo/node_modules/bar/something-else.js')] = 'beep';
- files[path.resolve('/foo/node_modules/bar/package.json')] = JSON.stringify({
- main: './baz.js'
- });
- files[path.resolve('/foo/node_modules/bar/baz.js')] = 'boop';
-
- var dirs = {};
- dirs[path.resolve('/foo')] = true;
- dirs[path.resolve('/foo/node_modules')] = true;
-
- function opts(basedir, useReadPackage) {
- return {
- basedir: path.resolve(basedir),
- isFile: function (file) {
- return Object.prototype.hasOwnProperty.call(files, path.resolve(file));
- },
- isDirectory: function (dir) {
- return !!dirs[path.resolve(dir)];
- },
- readFileSync: useReadPackage ? null : function (file) {
- return files[path.resolve(file)];
- },
- realpathSync: function (file) {
- return file;
- }
- };
- }
- t.test('with readFile', function (st) {
- st.plan(1);
-
- st.equal(
- resolve.sync('bar', opts('/foo')),
- path.resolve('/foo/node_modules/bar/baz.js')
- );
- });
-
- var readPackageSync = function (readFileSync, file) {
- if (file.indexOf(path.join('bar', 'package.json')) >= 0) {
- return { main: './something-else.js' };
- } else {
- return JSON.parse(files[path.resolve(file)]);
- }
- };
-
- t.test('with readPackage', function (st) {
- st.plan(1);
-
- var options = opts('/foo');
- delete options.readFileSync;
- options.readPackageSync = readPackageSync;
-
- st.equal(
- resolve.sync('bar', options),
- path.resolve('/foo/node_modules/bar/something-else.js')
- );
- });
-
- t.test('with readFile and readPackage', function (st) {
- st.plan(1);
-
- var options = opts('/foo');
- options.readPackageSync = readPackageSync;
- st.throws(
- function () { resolve.sync('bar', options); },
- TypeError,
- 'errors when both readFile and readPackage are provided'
- );
- });
-});
-
diff --git a/node_modules/resolve/test/module_dir.js b/node_modules/resolve/test/module_dir.js
deleted file mode 100644
index b50e5bb..0000000
--- a/node_modules/resolve/test/module_dir.js
+++ /dev/null
@@ -1,56 +0,0 @@
-var path = require('path');
-var test = require('tape');
-var resolve = require('../');
-
-test('moduleDirectory strings', function (t) {
- t.plan(4);
- var dir = path.join(__dirname, 'module_dir');
- var xopts = {
- basedir: dir,
- moduleDirectory: 'xmodules'
- };
- resolve('aaa', xopts, function (err, res, pkg) {
- t.ifError(err);
- t.equal(res, path.join(dir, '/xmodules/aaa/index.js'));
- });
-
- var yopts = {
- basedir: dir,
- moduleDirectory: 'ymodules'
- };
- resolve('aaa', yopts, function (err, res, pkg) {
- t.ifError(err);
- t.equal(res, path.join(dir, '/ymodules/aaa/index.js'));
- });
-});
-
-test('moduleDirectory array', function (t) {
- t.plan(6);
- var dir = path.join(__dirname, 'module_dir');
- var aopts = {
- basedir: dir,
- moduleDirectory: ['xmodules', 'ymodules', 'zmodules']
- };
- resolve('aaa', aopts, function (err, res, pkg) {
- t.ifError(err);
- t.equal(res, path.join(dir, '/xmodules/aaa/index.js'));
- });
-
- var bopts = {
- basedir: dir,
- moduleDirectory: ['zmodules', 'ymodules', 'xmodules']
- };
- resolve('aaa', bopts, function (err, res, pkg) {
- t.ifError(err);
- t.equal(res, path.join(dir, '/ymodules/aaa/index.js'));
- });
-
- var copts = {
- basedir: dir,
- moduleDirectory: ['xmodules', 'ymodules', 'zmodules']
- };
- resolve('bbb', copts, function (err, res, pkg) {
- t.ifError(err);
- t.equal(res, path.join(dir, '/zmodules/bbb/main.js'));
- });
-});
diff --git a/node_modules/resolve/test/module_dir/xmodules/aaa/index.js b/node_modules/resolve/test/module_dir/xmodules/aaa/index.js
deleted file mode 100644
index dd7cf7b..0000000
--- a/node_modules/resolve/test/module_dir/xmodules/aaa/index.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = function (x) { return x * 100; };
diff --git a/node_modules/resolve/test/module_dir/ymodules/aaa/index.js b/node_modules/resolve/test/module_dir/ymodules/aaa/index.js
deleted file mode 100644
index ef2d4d4..0000000
--- a/node_modules/resolve/test/module_dir/ymodules/aaa/index.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = function (x) { return x + 100; };
diff --git a/node_modules/resolve/test/module_dir/zmodules/bbb/main.js b/node_modules/resolve/test/module_dir/zmodules/bbb/main.js
deleted file mode 100644
index e8ba629..0000000
--- a/node_modules/resolve/test/module_dir/zmodules/bbb/main.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = function (n) { return n * 111; };
diff --git a/node_modules/resolve/test/module_dir/zmodules/bbb/package.json b/node_modules/resolve/test/module_dir/zmodules/bbb/package.json
deleted file mode 100644
index c13b8cf..0000000
--- a/node_modules/resolve/test/module_dir/zmodules/bbb/package.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "main": "main.js"
-}
diff --git a/node_modules/resolve/test/node-modules-paths.js b/node_modules/resolve/test/node-modules-paths.js
deleted file mode 100644
index 675441d..0000000
--- a/node_modules/resolve/test/node-modules-paths.js
+++ /dev/null
@@ -1,143 +0,0 @@
-var test = require('tape');
-var path = require('path');
-var parse = path.parse || require('path-parse');
-var keys = require('object-keys');
-
-var nodeModulesPaths = require('../lib/node-modules-paths');
-
-var verifyDirs = function verifyDirs(t, start, dirs, moduleDirectories, paths) {
- var moduleDirs = [].concat(moduleDirectories || 'node_modules');
- if (paths) {
- for (var k = 0; k < paths.length; ++k) {
- moduleDirs.push(path.basename(paths[k]));
- }
- }
-
- var foundModuleDirs = {};
- var uniqueDirs = {};
- var parsedDirs = {};
- for (var i = 0; i < dirs.length; ++i) {
- var parsed = parse(dirs[i]);
- if (!foundModuleDirs[parsed.base]) { foundModuleDirs[parsed.base] = 0; }
- foundModuleDirs[parsed.base] += 1;
- parsedDirs[parsed.dir] = true;
- uniqueDirs[dirs[i]] = true;
- }
- t.equal(keys(parsedDirs).length >= start.split(path.sep).length, true, 'there are >= dirs than "start" has');
- var foundModuleDirNames = keys(foundModuleDirs);
- t.deepEqual(foundModuleDirNames, moduleDirs, 'all desired module dirs were found');
- t.equal(keys(uniqueDirs).length, dirs.length, 'all dirs provided were unique');
-
- var counts = {};
- for (var j = 0; j < foundModuleDirNames.length; ++j) {
- counts[foundModuleDirs[j]] = true;
- }
- t.equal(keys(counts).length, 1, 'all found module directories had the same count');
-};
-
-test('node-modules-paths', function (t) {
- t.test('no options', function (t) {
- var start = path.join(__dirname, 'resolver');
- var dirs = nodeModulesPaths(start);
-
- verifyDirs(t, start, dirs);
-
- t.end();
- });
-
- t.test('empty options', function (t) {
- var start = path.join(__dirname, 'resolver');
- var dirs = nodeModulesPaths(start, {});
-
- verifyDirs(t, start, dirs);
-
- t.end();
- });
-
- t.test('with paths=array option', function (t) {
- var start = path.join(__dirname, 'resolver');
- var paths = ['a', 'b'];
- var dirs = nodeModulesPaths(start, { paths: paths });
-
- verifyDirs(t, start, dirs, null, paths);
-
- t.end();
- });
-
- t.test('with paths=function option', function (t) {
- var paths = function paths(request, absoluteStart, getNodeModulesDirs, opts) {
- return getNodeModulesDirs().concat(path.join(absoluteStart, 'not node modules', request));
- };
-
- var start = path.join(__dirname, 'resolver');
- var dirs = nodeModulesPaths(start, { paths: paths }, 'pkg');
-
- verifyDirs(t, start, dirs, null, [path.join(start, 'not node modules', 'pkg')]);
-
- t.end();
- });
-
- t.test('with paths=function skipping node modules resolution', function (t) {
- var paths = function paths(request, absoluteStart, getNodeModulesDirs, opts) {
- return [];
- };
- var start = path.join(__dirname, 'resolver');
- var dirs = nodeModulesPaths(start, { paths: paths });
- t.deepEqual(dirs, [], 'no node_modules was computed');
- t.end();
- });
-
- t.test('with moduleDirectory option', function (t) {
- var start = path.join(__dirname, 'resolver');
- var moduleDirectory = 'not node modules';
- var dirs = nodeModulesPaths(start, { moduleDirectory: moduleDirectory });
-
- verifyDirs(t, start, dirs, moduleDirectory);
-
- t.end();
- });
-
- t.test('with 1 moduleDirectory and paths options', function (t) {
- var start = path.join(__dirname, 'resolver');
- var paths = ['a', 'b'];
- var moduleDirectory = 'not node modules';
- var dirs = nodeModulesPaths(start, { paths: paths, moduleDirectory: moduleDirectory });
-
- verifyDirs(t, start, dirs, moduleDirectory, paths);
-
- t.end();
- });
-
- t.test('with 1+ moduleDirectory and paths options', function (t) {
- var start = path.join(__dirname, 'resolver');
- var paths = ['a', 'b'];
- var moduleDirectories = ['not node modules', 'other modules'];
- var dirs = nodeModulesPaths(start, { paths: paths, moduleDirectory: moduleDirectories });
-
- verifyDirs(t, start, dirs, moduleDirectories, paths);
-
- t.end();
- });
-
- t.test('combine paths correctly on Windows', function (t) {
- var start = 'C:\\Users\\username\\myProject\\src';
- var paths = [];
- var moduleDirectories = ['node_modules', start];
- var dirs = nodeModulesPaths(start, { paths: paths, moduleDirectory: moduleDirectories });
-
- t.equal(dirs.indexOf(path.resolve(start)) > -1, true, 'should contain start dir');
-
- t.end();
- });
-
- t.test('combine paths correctly on non-Windows', { skip: process.platform === 'win32' }, function (t) {
- var start = '/Users/username/git/myProject/src';
- var paths = [];
- var moduleDirectories = ['node_modules', '/Users/username/git/myProject/src'];
- var dirs = nodeModulesPaths(start, { paths: paths, moduleDirectory: moduleDirectories });
-
- t.equal(dirs.indexOf(path.resolve(start)) > -1, true, 'should contain start dir');
-
- t.end();
- });
-});
diff --git a/node_modules/resolve/test/node_path.js b/node_modules/resolve/test/node_path.js
deleted file mode 100644
index d06aa4e..0000000
--- a/node_modules/resolve/test/node_path.js
+++ /dev/null
@@ -1,70 +0,0 @@
-var fs = require('fs');
-var path = require('path');
-var test = require('tape');
-var resolve = require('../');
-
-test('$NODE_PATH', function (t) {
- t.plan(8);
-
- var isDir = function (dir, cb) {
- if (dir === '/node_path' || dir === 'node_path/x') {
- return cb(null, true);
- }
- fs.stat(dir, function (err, stat) {
- if (!err) {
- return cb(null, stat.isDirectory());
- }
- if (err.code === 'ENOENT' || err.code === 'ENOTDIR') return cb(null, false);
- return cb(err);
- });
- };
-
- resolve('aaa', {
- paths: [
- path.join(__dirname, '/node_path/x'),
- path.join(__dirname, '/node_path/y')
- ],
- basedir: __dirname,
- isDirectory: isDir
- }, function (err, res) {
- t.error(err);
- t.equal(res, path.join(__dirname, '/node_path/x/aaa/index.js'), 'aaa resolves');
- });
-
- resolve('bbb', {
- paths: [
- path.join(__dirname, '/node_path/x'),
- path.join(__dirname, '/node_path/y')
- ],
- basedir: __dirname,
- isDirectory: isDir
- }, function (err, res) {
- t.error(err);
- t.equal(res, path.join(__dirname, '/node_path/y/bbb/index.js'), 'bbb resolves');
- });
-
- resolve('ccc', {
- paths: [
- path.join(__dirname, '/node_path/x'),
- path.join(__dirname, '/node_path/y')
- ],
- basedir: __dirname,
- isDirectory: isDir
- }, function (err, res) {
- t.error(err);
- t.equal(res, path.join(__dirname, '/node_path/x/ccc/index.js'), 'ccc resolves');
- });
-
- // ensure that relative paths still resolve against the regular `node_modules` correctly
- resolve('tap', {
- paths: [
- 'node_path'
- ],
- basedir: path.join(__dirname, 'node_path/x'),
- isDirectory: isDir
- }, function (err, res) {
- var root = require('tap/package.json').main;
- t.error(err);
- t.equal(res, path.resolve(__dirname, '..', 'node_modules/tap', root), 'tap resolves');
- });
-});
diff --git a/node_modules/resolve/test/node_path/x/aaa/index.js b/node_modules/resolve/test/node_path/x/aaa/index.js
deleted file mode 100644
index ad70d0b..0000000
--- a/node_modules/resolve/test/node_path/x/aaa/index.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = 'A';
diff --git a/node_modules/resolve/test/node_path/x/ccc/index.js b/node_modules/resolve/test/node_path/x/ccc/index.js
deleted file mode 100644
index a64132e..0000000
--- a/node_modules/resolve/test/node_path/x/ccc/index.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = 'C';
diff --git a/node_modules/resolve/test/node_path/y/bbb/index.js b/node_modules/resolve/test/node_path/y/bbb/index.js
deleted file mode 100644
index 4d0f32e..0000000
--- a/node_modules/resolve/test/node_path/y/bbb/index.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = 'B';
diff --git a/node_modules/resolve/test/node_path/y/ccc/index.js b/node_modules/resolve/test/node_path/y/ccc/index.js
deleted file mode 100644
index 793315e..0000000
--- a/node_modules/resolve/test/node_path/y/ccc/index.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = 'CY';
diff --git a/node_modules/resolve/test/nonstring.js b/node_modules/resolve/test/nonstring.js
deleted file mode 100644
index ef63c40..0000000
--- a/node_modules/resolve/test/nonstring.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var test = require('tape');
-var resolve = require('../');
-
-test('nonstring', function (t) {
- t.plan(1);
- resolve(555, function (err, res, pkg) {
- t.ok(err);
- });
-});
diff --git a/node_modules/resolve/test/pathfilter.js b/node_modules/resolve/test/pathfilter.js
deleted file mode 100644
index 16519ae..0000000
--- a/node_modules/resolve/test/pathfilter.js
+++ /dev/null
@@ -1,75 +0,0 @@
-var path = require('path');
-var test = require('tape');
-var resolve = require('../');
-
-var resolverDir = path.join(__dirname, '/pathfilter/deep_ref');
-
-var pathFilterFactory = function (t) {
- return function (pkg, x, remainder) {
- t.equal(pkg.version, '1.2.3');
- t.equal(x, path.join(resolverDir, 'node_modules/deep/ref'));
- t.equal(remainder, 'ref');
- return 'alt';
- };
-};
-
-test('#62: deep module references and the pathFilter', function (t) {
- t.test('deep/ref.js', function (st) {
- st.plan(3);
-
- resolve('deep/ref', { basedir: resolverDir }, function (err, res, pkg) {
- if (err) st.fail(err);
-
- st.equal(pkg.version, '1.2.3');
- st.equal(res, path.join(resolverDir, 'node_modules/deep/ref.js'));
- });
-
- var res = resolve.sync('deep/ref', { basedir: resolverDir });
- st.equal(res, path.join(resolverDir, 'node_modules/deep/ref.js'));
- });
-
- t.test('deep/deeper/ref', function (st) {
- st.plan(4);
-
- resolve(
- 'deep/deeper/ref',
- { basedir: resolverDir },
- function (err, res, pkg) {
- if (err) t.fail(err);
- st.notEqual(pkg, undefined);
- st.equal(pkg.version, '1.2.3');
- st.equal(res, path.join(resolverDir, 'node_modules/deep/deeper/ref.js'));
- }
- );
-
- var res = resolve.sync(
- 'deep/deeper/ref',
- { basedir: resolverDir }
- );
- st.equal(res, path.join(resolverDir, 'node_modules/deep/deeper/ref.js'));
- });
-
- t.test('deep/ref alt', function (st) {
- st.plan(8);
-
- var pathFilter = pathFilterFactory(st);
-
- var res = resolve.sync(
- 'deep/ref',
- { basedir: resolverDir, pathFilter: pathFilter }
- );
- st.equal(res, path.join(resolverDir, 'node_modules/deep/alt.js'));
-
- resolve(
- 'deep/ref',
- { basedir: resolverDir, pathFilter: pathFilter },
- function (err, res, pkg) {
- if (err) st.fail(err);
- st.equal(res, path.join(resolverDir, 'node_modules/deep/alt.js'));
- st.end();
- }
- );
- });
-
- t.end();
-});
diff --git a/node_modules/resolve/test/pathfilter/deep_ref/main.js b/node_modules/resolve/test/pathfilter/deep_ref/main.js
deleted file mode 100644
index e69de29..0000000
diff --git a/node_modules/resolve/test/precedence.js b/node_modules/resolve/test/precedence.js
deleted file mode 100644
index 2febb59..0000000
--- a/node_modules/resolve/test/precedence.js
+++ /dev/null
@@ -1,23 +0,0 @@
-var path = require('path');
-var test = require('tape');
-var resolve = require('../');
-
-test('precedence', function (t) {
- t.plan(3);
- var dir = path.join(__dirname, 'precedence/aaa');
-
- resolve('./', { basedir: dir }, function (err, res, pkg) {
- t.ifError(err);
- t.equal(res, path.join(dir, 'index.js'));
- t.equal(pkg.name, 'resolve');
- });
-});
-
-test('./ should not load ${dir}.js', function (t) { // eslint-disable-line no-template-curly-in-string
- t.plan(1);
- var dir = path.join(__dirname, 'precedence/bbb');
-
- resolve('./', { basedir: dir }, function (err, res, pkg) {
- t.ok(err);
- });
-});
diff --git a/node_modules/resolve/test/precedence/aaa.js b/node_modules/resolve/test/precedence/aaa.js
deleted file mode 100644
index b83a3e7..0000000
--- a/node_modules/resolve/test/precedence/aaa.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = 'wtf';
diff --git a/node_modules/resolve/test/precedence/aaa/index.js b/node_modules/resolve/test/precedence/aaa/index.js
deleted file mode 100644
index e0f8f6a..0000000
--- a/node_modules/resolve/test/precedence/aaa/index.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = 'okok';
diff --git a/node_modules/resolve/test/precedence/aaa/main.js b/node_modules/resolve/test/precedence/aaa/main.js
deleted file mode 100644
index 93542a9..0000000
--- a/node_modules/resolve/test/precedence/aaa/main.js
+++ /dev/null
@@ -1 +0,0 @@
-console.log(require('./'));
diff --git a/node_modules/resolve/test/precedence/bbb.js b/node_modules/resolve/test/precedence/bbb.js
deleted file mode 100644
index 2298f47..0000000
--- a/node_modules/resolve/test/precedence/bbb.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = '>_<';
diff --git a/node_modules/resolve/test/precedence/bbb/main.js b/node_modules/resolve/test/precedence/bbb/main.js
deleted file mode 100644
index 716b81d..0000000
--- a/node_modules/resolve/test/precedence/bbb/main.js
+++ /dev/null
@@ -1 +0,0 @@
-console.log(require('./')); // should throw
diff --git a/node_modules/resolve/test/resolver.js b/node_modules/resolve/test/resolver.js
deleted file mode 100644
index aa36ee1..0000000
--- a/node_modules/resolve/test/resolver.js
+++ /dev/null
@@ -1,450 +0,0 @@
-var path = require('path');
-var test = require('tape');
-var resolve = require('../');
-
-test('async foo', function (t) {
- t.plan(12);
- var dir = path.join(__dirname, 'resolver');
-
- resolve('./foo', { basedir: dir }, function (err, res, pkg) {
- if (err) t.fail(err);
- t.equal(res, path.join(dir, 'foo.js'));
- t.equal(pkg && pkg.name, 'resolve');
- });
-
- resolve('./foo.js', { basedir: dir }, function (err, res, pkg) {
- if (err) t.fail(err);
- t.equal(res, path.join(dir, 'foo.js'));
- t.equal(pkg && pkg.name, 'resolve');
- });
-
- resolve('./foo', { basedir: dir, 'package': { main: 'resolver' } }, function (err, res, pkg) {
- if (err) t.fail(err);
- t.equal(res, path.join(dir, 'foo.js'));
- t.equal(pkg && pkg.main, 'resolver');
- });
-
- resolve('./foo.js', { basedir: dir, 'package': { main: 'resolver' } }, function (err, res, pkg) {
- if (err) t.fail(err);
- t.equal(res, path.join(dir, 'foo.js'));
- t.equal(pkg.main, 'resolver');
- });
-
- resolve('./foo', { basedir: dir, filename: path.join(dir, 'baz.js') }, function (err, res) {
- if (err) t.fail(err);
- t.equal(res, path.join(dir, 'foo.js'));
- });
-
- resolve('foo', { basedir: dir }, function (err) {
- t.equal(err.message, "Cannot find module 'foo' from '" + path.resolve(dir) + "'");
- t.equal(err.code, 'MODULE_NOT_FOUND');
- });
-
- // Test that filename is reported as the "from" value when passed.
- resolve('foo', { basedir: dir, filename: path.join(dir, 'baz.js') }, function (err) {
- t.equal(err.message, "Cannot find module 'foo' from '" + path.join(dir, 'baz.js') + "'");
- });
-});
-
-test('bar', function (t) {
- t.plan(6);
- var dir = path.join(__dirname, 'resolver');
-
- resolve('foo', { basedir: dir + '/bar' }, function (err, res, pkg) {
- if (err) t.fail(err);
- t.equal(res, path.join(dir, 'bar/node_modules/foo/index.js'));
- t.equal(pkg, undefined);
- });
-
- resolve('foo', { basedir: dir + '/bar' }, function (err, res, pkg) {
- if (err) t.fail(err);
- t.equal(res, path.join(dir, 'bar/node_modules/foo/index.js'));
- t.equal(pkg, undefined);
- });
-
- resolve('foo', { basedir: dir + '/bar', 'package': { main: 'bar' } }, function (err, res, pkg) {
- if (err) t.fail(err);
- t.equal(res, path.join(dir, 'bar/node_modules/foo/index.js'));
- t.equal(pkg.main, 'bar');
- });
-});
-
-test('baz', function (t) {
- t.plan(4);
- var dir = path.join(__dirname, 'resolver');
-
- resolve('./baz', { basedir: dir }, function (err, res, pkg) {
- if (err) t.fail(err);
- t.equal(res, path.join(dir, 'baz/quux.js'));
- t.equal(pkg.main, 'quux.js');
- });
-
- resolve('./baz', { basedir: dir, 'package': { main: 'resolver' } }, function (err, res, pkg) {
- if (err) t.fail(err);
- t.equal(res, path.join(dir, 'baz/quux.js'));
- t.equal(pkg.main, 'quux.js');
- });
-});
-
-test('biz', function (t) {
- t.plan(24);
- var dir = path.join(__dirname, 'resolver/biz/node_modules');
-
- resolve('./grux', { basedir: dir }, function (err, res, pkg) {
- if (err) t.fail(err);
- t.equal(res, path.join(dir, 'grux/index.js'));
- t.equal(pkg, undefined);
- });
-
- resolve('./grux', { basedir: dir, 'package': { main: 'biz' } }, function (err, res, pkg) {
- if (err) t.fail(err);
- t.equal(res, path.join(dir, 'grux/index.js'));
- t.equal(pkg.main, 'biz');
- });
-
- resolve('./garply', { basedir: dir }, function (err, res, pkg) {
- if (err) t.fail(err);
- t.equal(res, path.join(dir, 'garply/lib/index.js'));
- t.equal(pkg.main, './lib');
- });
-
- resolve('./garply', { basedir: dir, 'package': { main: 'biz' } }, function (err, res, pkg) {
- if (err) t.fail(err);
- t.equal(res, path.join(dir, 'garply/lib/index.js'));
- t.equal(pkg.main, './lib');
- });
-
- resolve('tiv', { basedir: dir + '/grux' }, function (err, res, pkg) {
- if (err) t.fail(err);
- t.equal(res, path.join(dir, 'tiv/index.js'));
- t.equal(pkg, undefined);
- });
-
- resolve('tiv', { basedir: dir + '/grux', 'package': { main: 'grux' } }, function (err, res, pkg) {
- if (err) t.fail(err);
- t.equal(res, path.join(dir, 'tiv/index.js'));
- t.equal(pkg.main, 'grux');
- });
-
- resolve('tiv', { basedir: dir + '/garply' }, function (err, res, pkg) {
- if (err) t.fail(err);
- t.equal(res, path.join(dir, 'tiv/index.js'));
- t.equal(pkg, undefined);
- });
-
- resolve('tiv', { basedir: dir + '/garply', 'package': { main: './lib' } }, function (err, res, pkg) {
- if (err) t.fail(err);
- t.equal(res, path.join(dir, 'tiv/index.js'));
- t.equal(pkg.main, './lib');
- });
-
- resolve('grux', { basedir: dir + '/tiv' }, function (err, res, pkg) {
- if (err) t.fail(err);
- t.equal(res, path.join(dir, 'grux/index.js'));
- t.equal(pkg, undefined);
- });
-
- resolve('grux', { basedir: dir + '/tiv', 'package': { main: 'tiv' } }, function (err, res, pkg) {
- if (err) t.fail(err);
- t.equal(res, path.join(dir, 'grux/index.js'));
- t.equal(pkg.main, 'tiv');
- });
-
- resolve('garply', { basedir: dir + '/tiv' }, function (err, res, pkg) {
- if (err) t.fail(err);
- t.equal(res, path.join(dir, 'garply/lib/index.js'));
- t.equal(pkg.main, './lib');
- });
-
- resolve('garply', { basedir: dir + '/tiv', 'package': { main: 'tiv' } }, function (err, res, pkg) {
- if (err) t.fail(err);
- t.equal(res, path.join(dir, 'garply/lib/index.js'));
- t.equal(pkg.main, './lib');
- });
-});
-
-test('quux', function (t) {
- t.plan(2);
- var dir = path.join(__dirname, 'resolver/quux');
-
- resolve('./foo', { basedir: dir, 'package': { main: 'quux' } }, function (err, res, pkg) {
- if (err) t.fail(err);
- t.equal(res, path.join(dir, 'foo/index.js'));
- t.equal(pkg.main, 'quux');
- });
-});
-
-test('normalize', function (t) {
- t.plan(2);
- var dir = path.join(__dirname, 'resolver/biz/node_modules/grux');
-
- resolve('../grux', { basedir: dir }, function (err, res, pkg) {
- if (err) t.fail(err);
- t.equal(res, path.join(dir, 'index.js'));
- t.equal(pkg, undefined);
- });
-});
-
-test('cup', function (t) {
- t.plan(5);
- var dir = path.join(__dirname, 'resolver');
-
- resolve('./cup', { basedir: dir, extensions: ['.js', '.coffee'] }, function (err, res) {
- if (err) t.fail(err);
- t.equal(res, path.join(dir, 'cup.coffee'));
- });
-
- resolve('./cup.coffee', { basedir: dir }, function (err, res) {
- if (err) t.fail(err);
- t.equal(res, path.join(dir, 'cup.coffee'));
- });
-
- resolve('./cup', { basedir: dir, extensions: ['.js'] }, function (err, res) {
- t.equal(err.message, "Cannot find module './cup' from '" + path.resolve(dir) + "'");
- t.equal(err.code, 'MODULE_NOT_FOUND');
- });
-
- // Test that filename is reported as the "from" value when passed.
- resolve('./cup', { basedir: dir, extensions: ['.js'], filename: path.join(dir, 'cupboard.js') }, function (err, res) {
- t.equal(err.message, "Cannot find module './cup' from '" + path.join(dir, 'cupboard.js') + "'");
- });
-});
-
-test('mug', function (t) {
- t.plan(3);
- var dir = path.join(__dirname, 'resolver');
-
- resolve('./mug', { basedir: dir }, function (err, res) {
- if (err) t.fail(err);
- t.equal(res, path.join(dir, 'mug.js'));
- });
-
- resolve('./mug', { basedir: dir, extensions: ['.coffee', '.js'] }, function (err, res) {
- if (err) t.fail(err);
- t.equal(res, path.join(dir, '/mug.coffee'));
- });
-
- resolve('./mug', { basedir: dir, extensions: ['.js', '.coffee'] }, function (err, res) {
- t.equal(res, path.join(dir, '/mug.js'));
- });
-});
-
-test('other path', function (t) {
- t.plan(6);
- var resolverDir = path.join(__dirname, 'resolver');
- var dir = path.join(resolverDir, 'bar');
- var otherDir = path.join(resolverDir, 'other_path');
-
- resolve('root', { basedir: dir, paths: [otherDir] }, function (err, res) {
- if (err) t.fail(err);
- t.equal(res, path.join(resolverDir, 'other_path/root.js'));
- });
-
- resolve('lib/other-lib', { basedir: dir, paths: [otherDir] }, function (err, res) {
- if (err) t.fail(err);
- t.equal(res, path.join(resolverDir, 'other_path/lib/other-lib.js'));
- });
-
- resolve('root', { basedir: dir }, function (err, res) {
- t.equal(err.message, "Cannot find module 'root' from '" + path.resolve(dir) + "'");
- t.equal(err.code, 'MODULE_NOT_FOUND');
- });
-
- resolve('zzz', { basedir: dir, paths: [otherDir] }, function (err, res) {
- t.equal(err.message, "Cannot find module 'zzz' from '" + path.resolve(dir) + "'");
- t.equal(err.code, 'MODULE_NOT_FOUND');
- });
-});
-
-test('path iterator', function (t) {
- t.plan(2);
-
- var resolverDir = path.join(__dirname, 'resolver');
-
- var exactIterator = function (x, start, getPackageCandidates, opts) {
- return [path.join(resolverDir, x)];
- };
-
- resolve('baz', { packageIterator: exactIterator }, function (err, res, pkg) {
- if (err) t.fail(err);
- t.equal(res, path.join(resolverDir, 'baz/quux.js'));
- t.equal(pkg && pkg.name, 'baz');
- });
-});
-
-test('incorrect main', function (t) {
- t.plan(1);
-
- var resolverDir = path.join(__dirname, 'resolver');
- var dir = path.join(resolverDir, 'incorrect_main');
-
- resolve('./incorrect_main', { basedir: resolverDir }, function (err, res, pkg) {
- if (err) t.fail(err);
- t.equal(res, path.join(dir, 'index.js'));
- });
-});
-
-test('without basedir', function (t) {
- t.plan(1);
-
- var dir = path.join(__dirname, 'resolver/without_basedir');
- var tester = require(path.join(dir, 'main.js'));
-
- tester(t, function (err, res, pkg) {
- if (err) {
- t.fail(err);
- } else {
- t.equal(res, path.join(dir, 'node_modules/mymodule.js'));
- }
- });
-});
-
-test('#52 - incorrectly resolves module-paths like "./someFolder/" when there is a file of the same name', function (t) {
- t.plan(2);
-
- var dir = path.join(__dirname, 'resolver');
-
- resolve('./foo', { basedir: path.join(dir, 'same_names') }, function (err, res, pkg) {
- if (err) t.fail(err);
- t.equal(res, path.join(dir, 'same_names/foo.js'));
- });
-
- resolve('./foo/', { basedir: path.join(dir, 'same_names') }, function (err, res, pkg) {
- if (err) t.fail(err);
- t.equal(res, path.join(dir, 'same_names/foo/index.js'));
- });
-});
-
-test('#211 - incorrectly resolves module-paths like "." when from inside a folder with a sibling file of the same name', function (t) {
- t.plan(2);
-
- var dir = path.join(__dirname, 'resolver');
-
- resolve('./', { basedir: path.join(dir, 'same_names/foo') }, function (err, res, pkg) {
- if (err) t.fail(err);
- t.equal(res, path.join(dir, 'same_names/foo/index.js'));
- });
-
- resolve('.', { basedir: path.join(dir, 'same_names/foo') }, function (err, res, pkg) {
- if (err) t.fail(err);
- t.equal(res, path.join(dir, 'same_names/foo/index.js'));
- });
-});
-
-test('async: #121 - treating an existing file as a dir when no basedir', function (t) {
- var testFile = path.basename(__filename);
-
- t.test('sanity check', function (st) {
- st.plan(1);
- resolve('./' + testFile, function (err, res, pkg) {
- if (err) t.fail(err);
- st.equal(res, __filename, 'sanity check');
- });
- });
-
- t.test('with a fake directory', function (st) {
- st.plan(4);
-
- resolve('./' + testFile + '/blah', function (err, res, pkg) {
- st.ok(err, 'there is an error');
- st.notOk(res, 'no result');
-
- st.equal(err && err.code, 'MODULE_NOT_FOUND', 'error code matches require.resolve');
- st.equal(
- err && err.message,
- 'Cannot find module \'./' + testFile + '/blah\' from \'' + __dirname + '\'',
- 'can not find nonexistent module'
- );
- st.end();
- });
- });
-
- t.end();
-});
-
-test('async dot main', function (t) {
- var start = new Date();
- t.plan(3);
- resolve('./resolver/dot_main', function (err, ret) {
- t.notOk(err);
- t.equal(ret, path.join(__dirname, 'resolver/dot_main/index.js'));
- t.ok(new Date() - start < 50, 'resolve.sync timedout');
- t.end();
- });
-});
-
-test('async dot slash main', function (t) {
- var start = new Date();
- t.plan(3);
- resolve('./resolver/dot_slash_main', function (err, ret) {
- t.notOk(err);
- t.equal(ret, path.join(__dirname, 'resolver/dot_slash_main/index.js'));
- t.ok(new Date() - start < 50, 'resolve.sync timedout');
- t.end();
- });
-});
-
-test('not a directory', function (t) {
- t.plan(6);
- var path = './foo';
- resolve(path, { basedir: __filename }, function (err, res, pkg) {
- t.ok(err, 'a non-directory errors');
- t.equal(arguments.length, 1);
- t.equal(res, undefined);
- t.equal(pkg, undefined);
-
- t.equal(err && err.message, 'Cannot find module \'' + path + '\' from \'' + __filename + '\'');
- t.equal(err && err.code, 'MODULE_NOT_FOUND');
- });
-});
-
-test('non-string "main" field in package.json', function (t) {
- t.plan(5);
-
- var dir = path.join(__dirname, 'resolver');
- resolve('./invalid_main', { basedir: dir }, function (err, res, pkg) {
- t.ok(err, 'errors on non-string main');
- t.equal(err.message, 'package “invalid main” `main` must be a string');
- t.equal(err.code, 'INVALID_PACKAGE_MAIN');
- t.equal(res, undefined, 'res is undefined');
- t.equal(pkg, undefined, 'pkg is undefined');
- });
-});
-
-test('non-string "main" field in package.json', function (t) {
- t.plan(5);
-
- var dir = path.join(__dirname, 'resolver');
- resolve('./invalid_main', { basedir: dir }, function (err, res, pkg) {
- t.ok(err, 'errors on non-string main');
- t.equal(err.message, 'package “invalid main” `main` must be a string');
- t.equal(err.code, 'INVALID_PACKAGE_MAIN');
- t.equal(res, undefined, 'res is undefined');
- t.equal(pkg, undefined, 'pkg is undefined');
- });
-});
-
-test('browser field in package.json', function (t) {
- t.plan(3);
-
- var dir = path.join(__dirname, 'resolver');
- resolve(
- './browser_field',
- {
- basedir: dir,
- packageFilter: function packageFilter(pkg) {
- if (pkg.browser) {
- pkg.main = pkg.browser; // eslint-disable-line no-param-reassign
- delete pkg.browser; // eslint-disable-line no-param-reassign
- }
- return pkg;
- }
- },
- function (err, res, pkg) {
- if (err) t.fail(err);
- t.equal(res, path.join(dir, 'browser_field', 'b.js'));
- t.equal(pkg && pkg.main, 'b');
- t.equal(pkg && pkg.browser, undefined);
- }
- );
-});
diff --git a/node_modules/resolve/test/resolver/baz/doom.js b/node_modules/resolve/test/resolver/baz/doom.js
deleted file mode 100644
index e69de29..0000000
diff --git a/node_modules/resolve/test/resolver/baz/package.json b/node_modules/resolve/test/resolver/baz/package.json
deleted file mode 100644
index 2f77720..0000000
--- a/node_modules/resolve/test/resolver/baz/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "name": "baz",
- "main": "quux.js"
-}
diff --git a/node_modules/resolve/test/resolver/baz/quux.js b/node_modules/resolve/test/resolver/baz/quux.js
deleted file mode 100644
index bd816ea..0000000
--- a/node_modules/resolve/test/resolver/baz/quux.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = 1;
diff --git a/node_modules/resolve/test/resolver/browser_field/a.js b/node_modules/resolve/test/resolver/browser_field/a.js
deleted file mode 100644
index e69de29..0000000
diff --git a/node_modules/resolve/test/resolver/browser_field/b.js b/node_modules/resolve/test/resolver/browser_field/b.js
deleted file mode 100644
index e69de29..0000000
diff --git a/node_modules/resolve/test/resolver/browser_field/package.json b/node_modules/resolve/test/resolver/browser_field/package.json
deleted file mode 100644
index bf406f0..0000000
--- a/node_modules/resolve/test/resolver/browser_field/package.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "browser_field",
- "main": "a",
- "browser": "b"
-}
diff --git a/node_modules/resolve/test/resolver/cup.coffee b/node_modules/resolve/test/resolver/cup.coffee
deleted file mode 100644
index 8b13789..0000000
--- a/node_modules/resolve/test/resolver/cup.coffee
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/node_modules/resolve/test/resolver/dot_main/index.js b/node_modules/resolve/test/resolver/dot_main/index.js
deleted file mode 100644
index bd816ea..0000000
--- a/node_modules/resolve/test/resolver/dot_main/index.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = 1;
diff --git a/node_modules/resolve/test/resolver/dot_main/package.json b/node_modules/resolve/test/resolver/dot_main/package.json
deleted file mode 100644
index d7f4fc8..0000000
--- a/node_modules/resolve/test/resolver/dot_main/package.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "main": "."
-}
diff --git a/node_modules/resolve/test/resolver/dot_slash_main/index.js b/node_modules/resolve/test/resolver/dot_slash_main/index.js
deleted file mode 100644
index bd816ea..0000000
--- a/node_modules/resolve/test/resolver/dot_slash_main/index.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = 1;
diff --git a/node_modules/resolve/test/resolver/dot_slash_main/package.json b/node_modules/resolve/test/resolver/dot_slash_main/package.json
deleted file mode 100644
index f51287b..0000000
--- a/node_modules/resolve/test/resolver/dot_slash_main/package.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "main": "./"
-}
diff --git a/node_modules/resolve/test/resolver/foo.js b/node_modules/resolve/test/resolver/foo.js
deleted file mode 100644
index bd816ea..0000000
--- a/node_modules/resolve/test/resolver/foo.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = 1;
diff --git a/node_modules/resolve/test/resolver/incorrect_main/index.js b/node_modules/resolve/test/resolver/incorrect_main/index.js
deleted file mode 100644
index bc1fb0a..0000000
--- a/node_modules/resolve/test/resolver/incorrect_main/index.js
+++ /dev/null
@@ -1,2 +0,0 @@
-// this is the actual main file 'index.js', not 'wrong.js' like the package.json would indicate
-module.exports = 1;
diff --git a/node_modules/resolve/test/resolver/incorrect_main/package.json b/node_modules/resolve/test/resolver/incorrect_main/package.json
deleted file mode 100644
index b718804..0000000
--- a/node_modules/resolve/test/resolver/incorrect_main/package.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "main": "wrong.js"
-}
diff --git a/node_modules/resolve/test/resolver/invalid_main/package.json b/node_modules/resolve/test/resolver/invalid_main/package.json
deleted file mode 100644
index 0cf8279..0000000
--- a/node_modules/resolve/test/resolver/invalid_main/package.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "name": "invalid main",
- "main": [
- "why is this a thing",
- "srsly omg wtf"
- ]
-}
diff --git a/node_modules/resolve/test/resolver/mug.coffee b/node_modules/resolve/test/resolver/mug.coffee
deleted file mode 100644
index e69de29..0000000
diff --git a/node_modules/resolve/test/resolver/mug.js b/node_modules/resolve/test/resolver/mug.js
deleted file mode 100644
index e69de29..0000000
diff --git a/node_modules/resolve/test/resolver/multirepo/lerna.json b/node_modules/resolve/test/resolver/multirepo/lerna.json
deleted file mode 100644
index d6707ca..0000000
--- a/node_modules/resolve/test/resolver/multirepo/lerna.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "packages": [
- "packages/*"
- ],
- "version": "0.0.0"
-}
diff --git a/node_modules/resolve/test/resolver/multirepo/package.json b/node_modules/resolve/test/resolver/multirepo/package.json
deleted file mode 100644
index 8508f9d..0000000
--- a/node_modules/resolve/test/resolver/multirepo/package.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "name": "monorepo-symlink-test",
- "private": true,
- "version": "0.0.0",
- "description": "",
- "main": "index.js",
- "scripts": {
- "postinstall": "lerna bootstrap",
- "test": "node packages/package-a"
- },
- "author": "",
- "license": "MIT",
- "dependencies": {
- "jquery": "^3.3.1",
- "resolve": "../../../"
- },
- "devDependencies": {
- "lerna": "^3.4.3"
- }
-}
diff --git a/node_modules/resolve/test/resolver/multirepo/packages/package-a/index.js b/node_modules/resolve/test/resolver/multirepo/packages/package-a/index.js
deleted file mode 100644
index 8875a32..0000000
--- a/node_modules/resolve/test/resolver/multirepo/packages/package-a/index.js
+++ /dev/null
@@ -1,35 +0,0 @@
-'use strict';
-
-var assert = require('assert');
-var path = require('path');
-var resolve = require('resolve');
-
-var basedir = __dirname + '/node_modules/@my-scope/package-b';
-
-var expected = path.join(__dirname, '../../node_modules/jquery/dist/jquery.js');
-
-/*
- * preserveSymlinks === false
- * will search NPM package from
- * - packages/package-b/node_modules
- * - packages/node_modules
- * - node_modules
- */
-assert.equal(resolve.sync('jquery', { basedir: basedir, preserveSymlinks: false }), expected);
-assert.equal(resolve.sync('../../node_modules/jquery', { basedir: basedir, preserveSymlinks: false }), expected);
-
-/*
- * preserveSymlinks === true
- * will search NPM package from
- * - packages/package-a/node_modules/@my-scope/packages/package-b/node_modules
- * - packages/package-a/node_modules/@my-scope/packages/node_modules
- * - packages/package-a/node_modules/@my-scope/node_modules
- * - packages/package-a/node_modules/node_modules
- * - packages/package-a/node_modules
- * - packages/node_modules
- * - node_modules
- */
-assert.equal(resolve.sync('jquery', { basedir: basedir, preserveSymlinks: true }), expected);
-assert.equal(resolve.sync('../../../../../node_modules/jquery', { basedir: basedir, preserveSymlinks: true }), expected);
-
-console.log(' * all monorepo paths successfully resolved through symlinks');
diff --git a/node_modules/resolve/test/resolver/multirepo/packages/package-a/package.json b/node_modules/resolve/test/resolver/multirepo/packages/package-a/package.json
deleted file mode 100644
index 204de51..0000000
--- a/node_modules/resolve/test/resolver/multirepo/packages/package-a/package.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "name": "@my-scope/package-a",
- "version": "0.0.0",
- "private": true,
- "description": "",
- "license": "MIT",
- "main": "index.js",
- "scripts": {
- "test": "echo \"Error: run tests from root\" && exit 1"
- },
- "dependencies": {
- "@my-scope/package-b": "^0.0.0"
- }
-}
diff --git a/node_modules/resolve/test/resolver/multirepo/packages/package-b/index.js b/node_modules/resolve/test/resolver/multirepo/packages/package-b/index.js
deleted file mode 100644
index e69de29..0000000
diff --git a/node_modules/resolve/test/resolver/multirepo/packages/package-b/package.json b/node_modules/resolve/test/resolver/multirepo/packages/package-b/package.json
deleted file mode 100644
index f57c3b5..0000000
--- a/node_modules/resolve/test/resolver/multirepo/packages/package-b/package.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "name": "@my-scope/package-b",
- "private": true,
- "version": "0.0.0",
- "description": "",
- "license": "MIT",
- "main": "index.js",
- "scripts": {
- "test": "echo \"Error: run tests from root\" && exit 1"
- },
- "dependencies": {
- "@my-scope/package-a": "^0.0.0"
- }
-}
diff --git a/node_modules/resolve/test/resolver/nested_symlinks/mylib/async.js b/node_modules/resolve/test/resolver/nested_symlinks/mylib/async.js
deleted file mode 100644
index 9b4846a..0000000
--- a/node_modules/resolve/test/resolver/nested_symlinks/mylib/async.js
+++ /dev/null
@@ -1,26 +0,0 @@
-var a = require.resolve('buffer/').replace(process.cwd(), '$CWD');
-var b;
-var c;
-
-var test = function test() {
- console.log(a, ': require.resolve, preserveSymlinks ' + (process.execArgv.indexOf('preserve-symlinks') > -1 ? 'true' : 'false'));
- console.log(b, ': preserveSymlinks true');
- console.log(c, ': preserveSymlinks false');
-
- if (a !== b && a !== c) {
- throw 'async: no match';
- }
- console.log('async: success! a matched either b or c\n');
-};
-
-require('resolve')('buffer/', { preserveSymlinks: true }, function (err, result) {
- if (err) { throw err; }
- b = result.replace(process.cwd(), '$CWD');
- if (b && c) { test(); }
-});
-require('resolve')('buffer/', { preserveSymlinks: false }, function (err, result) {
- if (err) { throw err; }
- c = result.replace(process.cwd(), '$CWD');
- if (b && c) { test(); }
-});
-
diff --git a/node_modules/resolve/test/resolver/nested_symlinks/mylib/package.json b/node_modules/resolve/test/resolver/nested_symlinks/mylib/package.json
deleted file mode 100644
index acfe9e9..0000000
--- a/node_modules/resolve/test/resolver/nested_symlinks/mylib/package.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "name": "mylib",
- "version": "0.0.0",
- "description": "",
- "private": true,
- "scripts": {
- "test": "echo \"Error: no test specified\" && exit 1"
- },
- "keywords": [],
- "author": "",
- "license": "ISC",
- "dependencies": {
- "buffer": "*"
- }
-}
diff --git a/node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js b/node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js
deleted file mode 100644
index 3283efc..0000000
--- a/node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var a = require.resolve('buffer/').replace(process.cwd(), '$CWD');
-var b = require('resolve').sync('buffer/', { preserveSymlinks: true }).replace(process.cwd(), '$CWD');
-var c = require('resolve').sync('buffer/', { preserveSymlinks: false }).replace(process.cwd(), '$CWD');
-
-console.log(a, ': require.resolve, preserveSymlinks ' + (process.execArgv.indexOf('preserve-symlinks') > -1 ? 'true' : 'false'));
-console.log(b, ': preserveSymlinks true');
-console.log(c, ': preserveSymlinks false');
-
-if (a !== b && a !== c) {
- throw 'sync: no match';
-}
-console.log('sync: success! a matched either b or c\n');
diff --git a/node_modules/resolve/test/resolver/other_path/lib/other-lib.js b/node_modules/resolve/test/resolver/other_path/lib/other-lib.js
deleted file mode 100644
index e69de29..0000000
diff --git a/node_modules/resolve/test/resolver/other_path/root.js b/node_modules/resolve/test/resolver/other_path/root.js
deleted file mode 100644
index e69de29..0000000
diff --git a/node_modules/resolve/test/resolver/quux/foo/index.js b/node_modules/resolve/test/resolver/quux/foo/index.js
deleted file mode 100644
index bd816ea..0000000
--- a/node_modules/resolve/test/resolver/quux/foo/index.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = 1;
diff --git a/node_modules/resolve/test/resolver/same_names/foo.js b/node_modules/resolve/test/resolver/same_names/foo.js
deleted file mode 100644
index 888cae3..0000000
--- a/node_modules/resolve/test/resolver/same_names/foo.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = 42;
diff --git a/node_modules/resolve/test/resolver/same_names/foo/index.js b/node_modules/resolve/test/resolver/same_names/foo/index.js
deleted file mode 100644
index bd816ea..0000000
--- a/node_modules/resolve/test/resolver/same_names/foo/index.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = 1;
diff --git a/node_modules/resolve/test/resolver/symlinked/_/node_modules/foo.js b/node_modules/resolve/test/resolver/symlinked/_/node_modules/foo.js
deleted file mode 100644
index e69de29..0000000
diff --git a/node_modules/resolve/test/resolver/symlinked/_/symlink_target/.gitkeep b/node_modules/resolve/test/resolver/symlinked/_/symlink_target/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/node_modules/resolve/test/resolver/symlinked/package/bar.js b/node_modules/resolve/test/resolver/symlinked/package/bar.js
deleted file mode 100644
index cb1c2c0..0000000
--- a/node_modules/resolve/test/resolver/symlinked/package/bar.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = 'bar';
diff --git a/node_modules/resolve/test/resolver/symlinked/package/package.json b/node_modules/resolve/test/resolver/symlinked/package/package.json
deleted file mode 100644
index 8e1b585..0000000
--- a/node_modules/resolve/test/resolver/symlinked/package/package.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "main": "bar.js"
-}
\ No newline at end of file
diff --git a/node_modules/resolve/test/resolver/without_basedir/main.js b/node_modules/resolve/test/resolver/without_basedir/main.js
deleted file mode 100644
index 5b31975..0000000
--- a/node_modules/resolve/test/resolver/without_basedir/main.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var resolve = require('../../../');
-
-module.exports = function (t, cb) {
- resolve('mymodule', null, cb);
-};
diff --git a/node_modules/resolve/test/resolver_sync.js b/node_modules/resolve/test/resolver_sync.js
deleted file mode 100644
index 3082c96..0000000
--- a/node_modules/resolve/test/resolver_sync.js
+++ /dev/null
@@ -1,358 +0,0 @@
-var path = require('path');
-var test = require('tape');
-var resolve = require('../');
-
-test('foo', function (t) {
- var dir = path.join(__dirname, 'resolver');
-
- t.equal(
- resolve.sync('./foo', { basedir: dir }),
- path.join(dir, 'foo.js')
- );
-
- t.equal(
- resolve.sync('./foo.js', { basedir: dir }),
- path.join(dir, 'foo.js')
- );
-
- t.equal(
- resolve.sync('./foo.js', { basedir: dir, filename: path.join(dir, 'bar.js') }),
- path.join(dir, 'foo.js')
- );
-
- t.throws(function () {
- resolve.sync('foo', { basedir: dir });
- });
-
- // Test that filename is reported as the "from" value when passed.
- t.throws(
- function () {
- resolve.sync('foo', { basedir: dir, filename: path.join(dir, 'bar.js') });
- },
- {
- name: 'Error',
- message: "Cannot find module 'foo' from '" + path.join(dir, 'bar.js') + "'"
- }
- );
-
- t.end();
-});
-
-test('bar', function (t) {
- var dir = path.join(__dirname, 'resolver');
-
- t.equal(
- resolve.sync('foo', { basedir: path.join(dir, 'bar') }),
- path.join(dir, 'bar/node_modules/foo/index.js')
- );
- t.end();
-});
-
-test('baz', function (t) {
- var dir = path.join(__dirname, 'resolver');
-
- t.equal(
- resolve.sync('./baz', { basedir: dir }),
- path.join(dir, 'baz/quux.js')
- );
- t.end();
-});
-
-test('biz', function (t) {
- var dir = path.join(__dirname, 'resolver/biz/node_modules');
- t.equal(
- resolve.sync('./grux', { basedir: dir }),
- path.join(dir, 'grux/index.js')
- );
-
- t.equal(
- resolve.sync('tiv', { basedir: path.join(dir, 'grux') }),
- path.join(dir, 'tiv/index.js')
- );
-
- t.equal(
- resolve.sync('grux', { basedir: path.join(dir, 'tiv') }),
- path.join(dir, 'grux/index.js')
- );
- t.end();
-});
-
-test('normalize', function (t) {
- var dir = path.join(__dirname, 'resolver/biz/node_modules/grux');
- t.equal(
- resolve.sync('../grux', { basedir: dir }),
- path.join(dir, 'index.js')
- );
- t.end();
-});
-
-test('cup', function (t) {
- var dir = path.join(__dirname, 'resolver');
- t.equal(
- resolve.sync('./cup', {
- basedir: dir,
- extensions: ['.js', '.coffee']
- }),
- path.join(dir, 'cup.coffee')
- );
-
- t.equal(
- resolve.sync('./cup.coffee', { basedir: dir }),
- path.join(dir, 'cup.coffee')
- );
-
- t.throws(function () {
- resolve.sync('./cup', {
- basedir: dir,
- extensions: ['.js']
- });
- });
-
- t.end();
-});
-
-test('mug', function (t) {
- var dir = path.join(__dirname, 'resolver');
- t.equal(
- resolve.sync('./mug', { basedir: dir }),
- path.join(dir, 'mug.js')
- );
-
- t.equal(
- resolve.sync('./mug', {
- basedir: dir,
- extensions: ['.coffee', '.js']
- }),
- path.join(dir, 'mug.coffee')
- );
-
- t.equal(
- resolve.sync('./mug', {
- basedir: dir,
- extensions: ['.js', '.coffee']
- }),
- path.join(dir, 'mug.js')
- );
-
- t.end();
-});
-
-test('other path', function (t) {
- var resolverDir = path.join(__dirname, 'resolver');
- var dir = path.join(resolverDir, 'bar');
- var otherDir = path.join(resolverDir, 'other_path');
-
- t.equal(
- resolve.sync('root', {
- basedir: dir,
- paths: [otherDir]
- }),
- path.join(resolverDir, 'other_path/root.js')
- );
-
- t.equal(
- resolve.sync('lib/other-lib', {
- basedir: dir,
- paths: [otherDir]
- }),
- path.join(resolverDir, 'other_path/lib/other-lib.js')
- );
-
- t.throws(function () {
- resolve.sync('root', { basedir: dir });
- });
-
- t.throws(function () {
- resolve.sync('zzz', {
- basedir: dir,
- paths: [otherDir]
- });
- });
-
- t.end();
-});
-
-test('path iterator', function (t) {
- var resolverDir = path.join(__dirname, 'resolver');
-
- var exactIterator = function (x, start, getPackageCandidates, opts) {
- return [path.join(resolverDir, x)];
- };
-
- t.equal(
- resolve.sync('baz', { packageIterator: exactIterator }),
- path.join(resolverDir, 'baz/quux.js')
- );
-
- t.end();
-});
-
-test('incorrect main', function (t) {
- var resolverDir = path.join(__dirname, 'resolver');
- var dir = path.join(resolverDir, 'incorrect_main');
-
- t.equal(
- resolve.sync('./incorrect_main', { basedir: resolverDir }),
- path.join(dir, 'index.js')
- );
-
- t.end();
-});
-
-var stubStatSync = function stubStatSync(fn) {
- var fs = require('fs');
- var statSync = fs.statSync;
- try {
- fs.statSync = function () {
- throw new EvalError('Unknown Error');
- };
- return fn();
- } finally {
- fs.statSync = statSync;
- }
-};
-
-test('#79 - re-throw non ENOENT errors from stat', function (t) {
- var dir = path.join(__dirname, 'resolver');
-
- stubStatSync(function () {
- t.throws(function () {
- resolve.sync('foo', { basedir: dir });
- }, /Unknown Error/);
- });
-
- t.end();
-});
-
-test('#52 - incorrectly resolves module-paths like "./someFolder/" when there is a file of the same name', function (t) {
- var dir = path.join(__dirname, 'resolver');
-
- t.equal(
- resolve.sync('./foo', { basedir: path.join(dir, 'same_names') }),
- path.join(dir, 'same_names/foo.js')
- );
- t.equal(
- resolve.sync('./foo/', { basedir: path.join(dir, 'same_names') }),
- path.join(dir, 'same_names/foo/index.js')
- );
- t.end();
-});
-
-test('#211 - incorrectly resolves module-paths like "." when from inside a folder with a sibling file of the same name', function (t) {
- var dir = path.join(__dirname, 'resolver');
-
- t.equal(
- resolve.sync('./', { basedir: path.join(dir, 'same_names/foo') }),
- path.join(dir, 'same_names/foo/index.js')
- );
- t.equal(
- resolve.sync('.', { basedir: path.join(dir, 'same_names/foo') }),
- path.join(dir, 'same_names/foo/index.js')
- );
- t.end();
-});
-
-test('sync: #121 - treating an existing file as a dir when no basedir', function (t) {
- var testFile = path.basename(__filename);
-
- t.test('sanity check', function (st) {
- st.equal(
- resolve.sync('./' + testFile),
- __filename,
- 'sanity check'
- );
- st.end();
- });
-
- t.test('with a fake directory', function (st) {
- function run() { return resolve.sync('./' + testFile + '/blah'); }
-
- st.throws(run, 'throws an error');
-
- try {
- run();
- } catch (e) {
- st.equal(e.code, 'MODULE_NOT_FOUND', 'error code matches require.resolve');
- st.equal(
- e.message,
- 'Cannot find module \'./' + testFile + '/blah\' from \'' + __dirname + '\'',
- 'can not find nonexistent module'
- );
- }
-
- st.end();
- });
-
- t.end();
-});
-
-test('sync dot main', function (t) {
- var start = new Date();
- t.equal(resolve.sync('./resolver/dot_main'), path.join(__dirname, 'resolver/dot_main/index.js'));
- t.ok(new Date() - start < 50, 'resolve.sync timedout');
- t.end();
-});
-
-test('sync dot slash main', function (t) {
- var start = new Date();
- t.equal(resolve.sync('./resolver/dot_slash_main'), path.join(__dirname, 'resolver/dot_slash_main/index.js'));
- t.ok(new Date() - start < 50, 'resolve.sync timedout');
- t.end();
-});
-
-test('not a directory', function (t) {
- var path = './foo';
- try {
- resolve.sync(path, { basedir: __filename });
- t.fail();
- } catch (err) {
- t.ok(err, 'a non-directory errors');
- t.equal(err && err.message, 'Cannot find module \'' + path + "' from '" + __filename + "'");
- t.equal(err && err.code, 'MODULE_NOT_FOUND');
- }
- t.end();
-});
-
-test('non-string "main" field in package.json', function (t) {
- var dir = path.join(__dirname, 'resolver');
- try {
- var result = resolve.sync('./invalid_main', { basedir: dir });
- t.equal(result, undefined, 'result should not exist');
- t.fail('should not get here');
- } catch (err) {
- t.ok(err, 'errors on non-string main');
- t.equal(err.message, 'package “invalid main” `main` must be a string');
- t.equal(err.code, 'INVALID_PACKAGE_MAIN');
- }
- t.end();
-});
-
-test('non-string "main" field in package.json', function (t) {
- var dir = path.join(__dirname, 'resolver');
- try {
- var result = resolve.sync('./invalid_main', { basedir: dir });
- t.equal(result, undefined, 'result should not exist');
- t.fail('should not get here');
- } catch (err) {
- t.ok(err, 'errors on non-string main');
- t.equal(err.message, 'package “invalid main” `main` must be a string');
- t.equal(err.code, 'INVALID_PACKAGE_MAIN');
- }
- t.end();
-});
-
-test('browser field in package.json', function (t) {
- var dir = path.join(__dirname, 'resolver');
- var res = resolve.sync('./browser_field', {
- basedir: dir,
- packageFilter: function packageFilter(pkg) {
- if (pkg.browser) {
- pkg.main = pkg.browser; // eslint-disable-line no-param-reassign
- delete pkg.browser; // eslint-disable-line no-param-reassign
- }
- return pkg;
- }
- });
- t.equal(res, path.join(dir, 'browser_field', 'b.js'));
- t.end();
-});
diff --git a/node_modules/resolve/test/shadowed_core.js b/node_modules/resolve/test/shadowed_core.js
deleted file mode 100644
index 3a5f4fc..0000000
--- a/node_modules/resolve/test/shadowed_core.js
+++ /dev/null
@@ -1,54 +0,0 @@
-var test = require('tape');
-var resolve = require('../');
-var path = require('path');
-
-test('shadowed core modules still return core module', function (t) {
- t.plan(2);
-
- resolve('util', { basedir: path.join(__dirname, 'shadowed_core') }, function (err, res) {
- t.ifError(err);
- t.equal(res, 'util');
- });
-});
-
-test('shadowed core modules still return core module [sync]', function (t) {
- t.plan(1);
-
- var res = resolve.sync('util', { basedir: path.join(__dirname, 'shadowed_core') });
-
- t.equal(res, 'util');
-});
-
-test('shadowed core modules return shadow when appending `/`', function (t) {
- t.plan(2);
-
- resolve('util/', { basedir: path.join(__dirname, 'shadowed_core') }, function (err, res) {
- t.ifError(err);
- t.equal(res, path.join(__dirname, 'shadowed_core/node_modules/util/index.js'));
- });
-});
-
-test('shadowed core modules return shadow when appending `/` [sync]', function (t) {
- t.plan(1);
-
- var res = resolve.sync('util/', { basedir: path.join(__dirname, 'shadowed_core') });
-
- t.equal(res, path.join(__dirname, 'shadowed_core/node_modules/util/index.js'));
-});
-
-test('shadowed core modules return shadow with `includeCoreModules: false`', function (t) {
- t.plan(2);
-
- resolve('util', { basedir: path.join(__dirname, 'shadowed_core'), includeCoreModules: false }, function (err, res) {
- t.ifError(err);
- t.equal(res, path.join(__dirname, 'shadowed_core/node_modules/util/index.js'));
- });
-});
-
-test('shadowed core modules return shadow with `includeCoreModules: false` [sync]', function (t) {
- t.plan(1);
-
- var res = resolve.sync('util', { basedir: path.join(__dirname, 'shadowed_core'), includeCoreModules: false });
-
- t.equal(res, path.join(__dirname, 'shadowed_core/node_modules/util/index.js'));
-});
diff --git a/node_modules/resolve/test/shadowed_core/node_modules/util/index.js b/node_modules/resolve/test/shadowed_core/node_modules/util/index.js
deleted file mode 100644
index e69de29..0000000
diff --git a/node_modules/resolve/test/subdirs.js b/node_modules/resolve/test/subdirs.js
deleted file mode 100644
index b7b8450..0000000
--- a/node_modules/resolve/test/subdirs.js
+++ /dev/null
@@ -1,13 +0,0 @@
-var test = require('tape');
-var resolve = require('../');
-var path = require('path');
-
-test('subdirs', function (t) {
- t.plan(2);
-
- var dir = path.join(__dirname, '/subdirs');
- resolve('a/b/c/x.json', { basedir: dir }, function (err, res) {
- t.ifError(err);
- t.equal(res, path.join(dir, 'node_modules/a/b/c/x.json'));
- });
-});
diff --git a/node_modules/resolve/test/symlinks.js b/node_modules/resolve/test/symlinks.js
deleted file mode 100644
index 35f881a..0000000
--- a/node_modules/resolve/test/symlinks.js
+++ /dev/null
@@ -1,176 +0,0 @@
-var path = require('path');
-var fs = require('fs');
-var test = require('tape');
-var map = require('array.prototype.map');
-var resolve = require('../');
-
-var symlinkDir = path.join(__dirname, 'resolver', 'symlinked', 'symlink');
-var packageDir = path.join(__dirname, 'resolver', 'symlinked', '_', 'node_modules', 'package');
-var modADir = path.join(__dirname, 'symlinks', 'source', 'node_modules', 'mod-a');
-var symlinkModADir = path.join(__dirname, 'symlinks', 'dest', 'node_modules', 'mod-a');
-try {
- fs.unlinkSync(symlinkDir);
-} catch (err) {}
-try {
- fs.unlinkSync(packageDir);
-} catch (err) {}
-try {
- fs.unlinkSync(modADir);
-} catch (err) {}
-try {
- fs.unlinkSync(symlinkModADir);
-} catch (err) {}
-
-try {
- fs.symlinkSync('./_/symlink_target', symlinkDir, 'dir');
-} catch (err) {
- // if fails then it is probably on Windows and lets try to create a junction
- fs.symlinkSync(path.join(__dirname, 'resolver', 'symlinked', '_', 'symlink_target') + '\\', symlinkDir, 'junction');
-}
-try {
- fs.symlinkSync('../../package', packageDir, 'dir');
-} catch (err) {
- // if fails then it is probably on Windows and lets try to create a junction
- fs.symlinkSync(path.join(__dirname, '..', '..', 'package') + '\\', packageDir, 'junction');
-}
-try {
- fs.symlinkSync('../../source/node_modules/mod-a', symlinkModADir, 'dir');
-} catch (err) {
- // if fails then it is probably on Windows and lets try to create a junction
- fs.symlinkSync(path.join(__dirname, '..', '..', 'source', 'node_modules', 'mod-a') + '\\', symlinkModADir, 'junction');
-}
-
-test('symlink', function (t) {
- t.plan(2);
-
- resolve('foo', { basedir: symlinkDir, preserveSymlinks: false }, function (err, res, pkg) {
- t.error(err);
- t.equal(res, path.join(__dirname, 'resolver', 'symlinked', '_', 'node_modules', 'foo.js'));
- });
-});
-
-test('sync symlink when preserveSymlinks = true', function (t) {
- t.plan(4);
-
- resolve('foo', { basedir: symlinkDir }, function (err, res, pkg) {
- t.ok(err, 'there is an error');
- t.notOk(res, 'no result');
-
- t.equal(err && err.code, 'MODULE_NOT_FOUND', 'error code matches require.resolve');
- t.equal(
- err && err.message,
- 'Cannot find module \'foo\' from \'' + symlinkDir + '\'',
- 'can not find nonexistent module'
- );
- });
-});
-
-test('sync symlink', function (t) {
- var start = new Date();
- t.doesNotThrow(function () {
- t.equal(
- resolve.sync('foo', { basedir: symlinkDir, preserveSymlinks: false }),
- path.join(__dirname, 'resolver', 'symlinked', '_', 'node_modules', 'foo.js')
- );
- });
- t.ok(new Date() - start < 50, 'resolve.sync timedout');
- t.end();
-});
-
-test('sync symlink when preserveSymlinks = true', function (t) {
- t.throws(function () {
- resolve.sync('foo', { basedir: symlinkDir });
- }, /Cannot find module 'foo'/);
- t.end();
-});
-
-test('sync symlink from node_modules to other dir when preserveSymlinks = false', function (t) {
- var basedir = path.join(__dirname, 'resolver', 'symlinked', '_');
- var fn = resolve.sync('package', { basedir: basedir, preserveSymlinks: false });
-
- t.equal(fn, path.resolve(__dirname, 'resolver/symlinked/package/bar.js'));
- t.end();
-});
-
-test('async symlink from node_modules to other dir when preserveSymlinks = false', function (t) {
- t.plan(2);
- var basedir = path.join(__dirname, 'resolver', 'symlinked', '_');
- resolve('package', { basedir: basedir, preserveSymlinks: false }, function (err, result) {
- t.notOk(err, 'no error');
- t.equal(result, path.resolve(__dirname, 'resolver/symlinked/package/bar.js'));
- });
-});
-
-test('packageFilter', function (t) {
- function relative(x) {
- return path.relative(__dirname, x);
- }
-
- function testPackageFilter(preserveSymlinks) {
- return function (st) {
- st.plan('is 1.x' ? 3 : 5); // eslint-disable-line no-constant-condition
-
- var destMain = 'symlinks/dest/node_modules/mod-a/index.js';
- var destPkg = 'symlinks/dest/node_modules/mod-a/package.json';
- var sourceMain = 'symlinks/source/node_modules/mod-a/index.js';
- var sourcePkg = 'symlinks/source/node_modules/mod-a/package.json';
- var destDir = path.join(__dirname, 'symlinks', 'dest');
-
- /* eslint multiline-comment-style: 0 */
- /* v2.x will restore these tests
- var packageFilterPath = [];
- var actualPath = resolve.sync('mod-a', {
- basedir: destDir,
- preserveSymlinks: preserveSymlinks,
- packageFilter: function (pkg, pkgfile, dir) {
- packageFilterPath.push(pkgfile);
- }
- });
- st.equal(
- relative(actualPath),
- path.normalize(preserveSymlinks ? destMain : sourceMain),
- 'sync: actual path is correct'
- );
- st.deepEqual(
- map(packageFilterPath, relative),
- map(preserveSymlinks ? [destPkg, destPkg] : [sourcePkg, sourcePkg], path.normalize),
- 'sync: packageFilter pkgfile arg is correct'
- );
- */
-
- var asyncPackageFilterPath = [];
- resolve(
- 'mod-a',
- {
- basedir: destDir,
- preserveSymlinks: preserveSymlinks,
- packageFilter: function (pkg, pkgfile) {
- asyncPackageFilterPath.push(pkgfile);
- }
- },
- function (err, actualPath) {
- st.error(err, 'no error');
- st.equal(
- relative(actualPath),
- path.normalize(preserveSymlinks ? destMain : sourceMain),
- 'async: actual path is correct'
- );
- st.deepEqual(
- map(asyncPackageFilterPath, relative),
- map(
- preserveSymlinks ? [destPkg, destPkg, destPkg] : [sourcePkg, sourcePkg, sourcePkg],
- path.normalize
- ),
- 'async: packageFilter pkgfile arg is correct'
- );
- }
- );
- };
- }
-
- t.test('preserveSymlinks: false', testPackageFilter(false));
-
- t.test('preserveSymlinks: true', testPackageFilter(true));
-
- t.end();
-});
diff --git a/node_modules/ret/LICENSE b/node_modules/ret/LICENSE
deleted file mode 100644
index b351ee8..0000000
--- a/node_modules/ret/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (C) 2011 by Roly Fentanes
-
-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/ret/README.md b/node_modules/ret/README.md
deleted file mode 100644
index 28563e1..0000000
--- a/node_modules/ret/README.md
+++ /dev/null
@@ -1,183 +0,0 @@
-# Regular Expression Tokenizer
-
-Tokenizes strings that represent a regular expressions.
-
-[![Build Status](https://secure.travis-ci.org/fent/ret.js.svg)](http://travis-ci.org/fent/ret.js)
-[![Dependency Status](https://david-dm.org/fent/ret.js.svg)](https://david-dm.org/fent/ret.js)
-[![codecov](https://codecov.io/gh/fent/ret.js/branch/master/graph/badge.svg)](https://codecov.io/gh/fent/ret.js)
-
-# Usage
-
-```js
-var ret = require('ret');
-
-var tokens = ret(/foo|bar/.source);
-```
-
-`tokens` will contain the following object
-
-```js
-{
- "type": ret.types.ROOT
- "options": [
- [ { "type": ret.types.CHAR, "value", 102 },
- { "type": ret.types.CHAR, "value", 111 },
- { "type": ret.types.CHAR, "value", 111 } ],
- [ { "type": ret.types.CHAR, "value", 98 },
- { "type": ret.types.CHAR, "value", 97 },
- { "type": ret.types.CHAR, "value", 114 } ]
- ]
-}
-```
-
-# Token Types
-
-`ret.types` is a collection of the various token types exported by ret.
-
-### ROOT
-
-Only used in the root of the regexp. This is needed due to the posibility of the root containing a pipe `|` character. In that case, the token will have an `options` key that will be an array of arrays of tokens. If not, it will contain a `stack` key that is an array of tokens.
-
-```js
-{
- "type": ret.types.ROOT,
- "stack": [token1, token2...],
-}
-```
-
-```js
-{
- "type": ret.types.ROOT,
- "options" [
- [token1, token2...],
- [othertoken1, othertoken2...]
- ...
- ],
-}
-```
-
-### GROUP
-
-Groups contain tokens that are inside of a parenthesis. If the group begins with `?` followed by another character, it's a special type of group. A ':' tells the group not to be remembered when `exec` is used. '=' means the previous token matches only if followed by this group, and '!' means the previous token matches only if NOT followed.
-
-Like root, it can contain an `options` key instead of `stack` if there is a pipe.
-
-```js
-{
- "type": ret.types.GROUP,
- "remember" true,
- "followedBy": false,
- "notFollowedBy": false,
- "stack": [token1, token2...],
-}
-```
-
-```js
-{
- "type": ret.types.GROUP,
- "remember" true,
- "followedBy": false,
- "notFollowedBy": false,
- "options" [
- [token1, token2...],
- [othertoken1, othertoken2...]
- ...
- ],
-}
-```
-
-### POSITION
-
-`\b`, `\B`, `^`, and `$` specify positions in the regexp.
-
-```js
-{
- "type": ret.types.POSITION,
- "value": "^",
-}
-```
-
-### SET
-
-Contains a key `set` specifying what tokens are allowed and a key `not` specifying if the set should be negated. A set can contain other sets, ranges, and characters.
-
-```js
-{
- "type": ret.types.SET,
- "set": [token1, token2...],
- "not": false,
-}
-```
-
-### RANGE
-
-Used in set tokens to specify a character range. `from` and `to` are character codes.
-
-```js
-{
- "type": ret.types.RANGE,
- "from": 97,
- "to": 122,
-}
-```
-
-### REPETITION
-
-```js
-{
- "type": ret.types.REPETITION,
- "min": 0,
- "max": Infinity,
- "value": token,
-}
-```
-
-### REFERENCE
-
-References a group token. `value` is 1-9.
-
-```js
-{
- "type": ret.types.REFERENCE,
- "value": 1,
-}
-```
-
-### CHAR
-
-Represents a single character token. `value` is the character code. This might seem a bit cluttering instead of concatenating characters together. But since repetition tokens only repeat the last token and not the last clause like the pipe, it's simpler to do it this way.
-
-```js
-{
- "type": ret.types.CHAR,
- "value": 123,
-}
-```
-
-## Errors
-
-ret.js will throw errors if given a string with an invalid regular expression. All possible errors are
-
-* Invalid group. When a group with an immediate `?` character is followed by an invalid character. It can only be followed by `!`, `=`, or `:`. Example: `/(?_abc)/`
-* Nothing to repeat. Thrown when a repetitional token is used as the first token in the current clause, as in right in the beginning of the regexp or group, or right after a pipe. Example: `/foo|?bar/`, `/{1,3}foo|bar/`, `/foo(+bar)/`
-* Unmatched ). A group was not opened, but was closed. Example: `/hello)2u/`
-* Unterminated group. A group was not closed. Example: `/(1(23)4/`
-* Unterminated character class. A custom character set was not closed. Example: `/[abc/`
-
-
-# Install
-
- npm install ret
-
-
-# Tests
-
-Tests are written with [vows](http://vowsjs.org/)
-
-```bash
-npm test
-```
-
-# License
-
-MIT
diff --git a/node_modules/ret/lib/index.js b/node_modules/ret/lib/index.js
deleted file mode 100644
index 0e151c3..0000000
--- a/node_modules/ret/lib/index.js
+++ /dev/null
@@ -1,282 +0,0 @@
-var util = require('./util');
-var types = require('./types');
-var sets = require('./sets');
-var positions = require('./positions');
-
-
-module.exports = function(regexpStr) {
- var i = 0, l, c,
- start = { type: types.ROOT, stack: []},
-
- // Keep track of last clause/group and stack.
- lastGroup = start,
- last = start.stack,
- groupStack = [];
-
-
- var repeatErr = function(i) {
- util.error(regexpStr, 'Nothing to repeat at column ' + (i - 1));
- };
-
- // Decode a few escaped characters.
- var str = util.strToChars(regexpStr);
- l = str.length;
-
- // Iterate through each character in string.
- while (i < l) {
- c = str[i++];
-
- switch (c) {
- // Handle escaped characters, inclues a few sets.
- case '\\':
- c = str[i++];
-
- switch (c) {
- case 'b':
- last.push(positions.wordBoundary());
- break;
-
- case 'B':
- last.push(positions.nonWordBoundary());
- break;
-
- case 'w':
- last.push(sets.words());
- break;
-
- case 'W':
- last.push(sets.notWords());
- break;
-
- case 'd':
- last.push(sets.ints());
- break;
-
- case 'D':
- last.push(sets.notInts());
- break;
-
- case 's':
- last.push(sets.whitespace());
- break;
-
- case 'S':
- last.push(sets.notWhitespace());
- break;
-
- default:
- // Check if c is integer.
- // In which case it's a reference.
- if (/\d/.test(c)) {
- last.push({ type: types.REFERENCE, value: parseInt(c, 10) });
-
- // Escaped character.
- } else {
- last.push({ type: types.CHAR, value: c.charCodeAt(0) });
- }
- }
-
- break;
-
-
- // Positionals.
- case '^':
- last.push(positions.begin());
- break;
-
- case '$':
- last.push(positions.end());
- break;
-
-
- // Handle custom sets.
- case '[':
- // Check if this class is 'anti' i.e. [^abc].
- var not;
- if (str[i] === '^') {
- not = true;
- i++;
- } else {
- not = false;
- }
-
- // Get all the characters in class.
- var classTokens = util.tokenizeClass(str.slice(i), regexpStr);
-
- // Increase index by length of class.
- i += classTokens[1];
- last.push({
- type: types.SET,
- set: classTokens[0],
- not: not,
- });
-
- break;
-
-
- // Class of any character except \n.
- case '.':
- last.push(sets.anyChar());
- break;
-
-
- // Push group onto stack.
- case '(':
- // Create group.
- var group = {
- type: types.GROUP,
- stack: [],
- remember: true,
- };
-
- c = str[i];
-
- // If if this is a special kind of group.
- if (c === '?') {
- c = str[i + 1];
- i += 2;
-
- // Match if followed by.
- if (c === '=') {
- group.followedBy = true;
-
- // Match if not followed by.
- } else if (c === '!') {
- group.notFollowedBy = true;
-
- } else if (c !== ':') {
- util.error(regexpStr,
- 'Invalid group, character \'' + c +
- '\' after \'?\' at column ' + (i - 1));
- }
-
- group.remember = false;
- }
-
- // Insert subgroup into current group stack.
- last.push(group);
-
- // Remember the current group for when the group closes.
- groupStack.push(lastGroup);
-
- // Make this new group the current group.
- lastGroup = group;
- last = group.stack;
- break;
-
-
- // Pop group out of stack.
- case ')':
- if (groupStack.length === 0) {
- util.error(regexpStr, 'Unmatched ) at column ' + (i - 1));
- }
- lastGroup = groupStack.pop();
-
- // Check if this group has a PIPE.
- // To get back the correct last stack.
- last = lastGroup.options ?
- lastGroup.options[lastGroup.options.length - 1] : lastGroup.stack;
- break;
-
-
- // Use pipe character to give more choices.
- case '|':
- // Create array where options are if this is the first PIPE
- // in this clause.
- if (!lastGroup.options) {
- lastGroup.options = [lastGroup.stack];
- delete lastGroup.stack;
- }
-
- // Create a new stack and add to options for rest of clause.
- var stack = [];
- lastGroup.options.push(stack);
- last = stack;
- break;
-
-
- // Repetition.
- // For every repetition, remove last element from last stack
- // then insert back a RANGE object.
- // This design is chosen because there could be more than
- // one repetition symbols in a regex i.e. `a?+{2,3}`.
- case '{':
- var rs = /^(\d+)(,(\d+)?)?\}/.exec(str.slice(i)), min, max;
- if (rs !== null) {
- if (last.length === 0) {
- repeatErr(i);
- }
- min = parseInt(rs[1], 10);
- max = rs[2] ? rs[3] ? parseInt(rs[3], 10) : Infinity : min;
- i += rs[0].length;
-
- last.push({
- type: types.REPETITION,
- min: min,
- max: max,
- value: last.pop(),
- });
- } else {
- last.push({
- type: types.CHAR,
- value: 123,
- });
- }
- break;
-
- case '?':
- if (last.length === 0) {
- repeatErr(i);
- }
- last.push({
- type: types.REPETITION,
- min: 0,
- max: 1,
- value: last.pop(),
- });
- break;
-
- case '+':
- if (last.length === 0) {
- repeatErr(i);
- }
- last.push({
- type: types.REPETITION,
- min: 1,
- max: Infinity,
- value: last.pop(),
- });
- break;
-
- case '*':
- if (last.length === 0) {
- repeatErr(i);
- }
- last.push({
- type: types.REPETITION,
- min: 0,
- max: Infinity,
- value: last.pop(),
- });
- break;
-
-
- // Default is a character that is not `\[](){}?+*^$`.
- default:
- last.push({
- type: types.CHAR,
- value: c.charCodeAt(0),
- });
- }
-
- }
-
- // Check if any groups have not been closed.
- if (groupStack.length !== 0) {
- util.error(regexpStr, 'Unterminated group');
- }
-
- return start;
-};
-
-module.exports.types = types;
diff --git a/node_modules/ret/lib/positions.js b/node_modules/ret/lib/positions.js
deleted file mode 100644
index 80677ee..0000000
--- a/node_modules/ret/lib/positions.js
+++ /dev/null
@@ -1,17 +0,0 @@
-var types = require('./types');
-
-exports.wordBoundary = function() {
- return { type: types.POSITION, value: 'b' };
-};
-
-exports.nonWordBoundary = function() {
- return { type: types.POSITION, value: 'B' };
-};
-
-exports.begin = function() {
- return { type: types.POSITION, value: '^' };
-};
-
-exports.end = function() {
- return { type: types.POSITION, value: '$' };
-};
diff --git a/node_modules/ret/lib/sets.js b/node_modules/ret/lib/sets.js
deleted file mode 100644
index 5fb6be5..0000000
--- a/node_modules/ret/lib/sets.js
+++ /dev/null
@@ -1,82 +0,0 @@
-var types = require('./types');
-
-var INTS = function() {
- return [{ type: types.RANGE , from: 48, to: 57 }];
-};
-
-var WORDS = function() {
- return [
- { type: types.CHAR, value: 95 },
- { type: types.RANGE, from: 97, to: 122 },
- { type: types.RANGE, from: 65, to: 90 }
- ].concat(INTS());
-};
-
-var WHITESPACE = function() {
- return [
- { type: types.CHAR, value: 9 },
- { type: types.CHAR, value: 10 },
- { type: types.CHAR, value: 11 },
- { type: types.CHAR, value: 12 },
- { type: types.CHAR, value: 13 },
- { type: types.CHAR, value: 32 },
- { type: types.CHAR, value: 160 },
- { type: types.CHAR, value: 5760 },
- { type: types.CHAR, value: 6158 },
- { type: types.CHAR, value: 8192 },
- { type: types.CHAR, value: 8193 },
- { type: types.CHAR, value: 8194 },
- { type: types.CHAR, value: 8195 },
- { type: types.CHAR, value: 8196 },
- { type: types.CHAR, value: 8197 },
- { type: types.CHAR, value: 8198 },
- { type: types.CHAR, value: 8199 },
- { type: types.CHAR, value: 8200 },
- { type: types.CHAR, value: 8201 },
- { type: types.CHAR, value: 8202 },
- { type: types.CHAR, value: 8232 },
- { type: types.CHAR, value: 8233 },
- { type: types.CHAR, value: 8239 },
- { type: types.CHAR, value: 8287 },
- { type: types.CHAR, value: 12288 },
- { type: types.CHAR, value: 65279 }
- ];
-};
-
-var NOTANYCHAR = function() {
- return [
- { type: types.CHAR, value: 10 },
- { type: types.CHAR, value: 13 },
- { type: types.CHAR, value: 8232 },
- { type: types.CHAR, value: 8233 },
- ];
-};
-
-// Predefined class objects.
-exports.words = function() {
- return { type: types.SET, set: WORDS(), not: false };
-};
-
-exports.notWords = function() {
- return { type: types.SET, set: WORDS(), not: true };
-};
-
-exports.ints = function() {
- return { type: types.SET, set: INTS(), not: false };
-};
-
-exports.notInts = function() {
- return { type: types.SET, set: INTS(), not: true };
-};
-
-exports.whitespace = function() {
- return { type: types.SET, set: WHITESPACE(), not: false };
-};
-
-exports.notWhitespace = function() {
- return { type: types.SET, set: WHITESPACE(), not: true };
-};
-
-exports.anyChar = function() {
- return { type: types.SET, set: NOTANYCHAR(), not: true };
-};
diff --git a/node_modules/ret/lib/types.js b/node_modules/ret/lib/types.js
deleted file mode 100644
index 9484145..0000000
--- a/node_modules/ret/lib/types.js
+++ /dev/null
@@ -1,10 +0,0 @@
-module.exports = {
- ROOT : 0,
- GROUP : 1,
- POSITION : 2,
- SET : 3,
- RANGE : 4,
- REPETITION : 5,
- REFERENCE : 6,
- CHAR : 7,
-};
diff --git a/node_modules/ret/lib/util.js b/node_modules/ret/lib/util.js
deleted file mode 100644
index 97d8cf5..0000000
--- a/node_modules/ret/lib/util.js
+++ /dev/null
@@ -1,111 +0,0 @@
-var types = require('./types');
-var sets = require('./sets');
-
-
-// All of these are private and only used by randexp.
-// It's assumed that they will always be called with the correct input.
-
-var CTRL = '@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^ ?';
-var SLSH = { '0': 0, 't': 9, 'n': 10, 'v': 11, 'f': 12, 'r': 13 };
-
-/**
- * Finds character representations in str and convert all to
- * their respective characters
- *
- * @param {String} str
- * @return {String}
- */
-exports.strToChars = function(str) {
- /* jshint maxlen: false */
- var chars_regex = /(\[\\b\])|(\\)?\\(?:u([A-F0-9]{4})|x([A-F0-9]{2})|(0?[0-7]{2})|c([@A-Z\[\\\]\^?])|([0tnvfr]))/g;
- str = str.replace(chars_regex, function(s, b, lbs, a16, b16, c8, dctrl, eslsh) {
- if (lbs) {
- return s;
- }
-
- var code = b ? 8 :
- a16 ? parseInt(a16, 16) :
- b16 ? parseInt(b16, 16) :
- c8 ? parseInt(c8, 8) :
- dctrl ? CTRL.indexOf(dctrl) :
- SLSH[eslsh];
-
- var c = String.fromCharCode(code);
-
- // Escape special regex characters.
- if (/[\[\]{}\^$.|?*+()]/.test(c)) {
- c = '\\' + c;
- }
-
- return c;
- });
-
- return str;
-};
-
-
-/**
- * turns class into tokens
- * reads str until it encounters a ] not preceeded by a \
- *
- * @param {String} str
- * @param {String} regexpStr
- * @return {Array., Number>}
- */
-exports.tokenizeClass = function(str, regexpStr) {
- /* jshint maxlen: false */
- var tokens = [];
- var regexp = /\\(?:(w)|(d)|(s)|(W)|(D)|(S))|((?:(?:\\)(.)|([^\]\\]))-(?:\\)?([^\]]))|(\])|(?:\\)?(.)/g;
- var rs, c;
-
-
- while ((rs = regexp.exec(str)) != null) {
- if (rs[1]) {
- tokens.push(sets.words());
-
- } else if (rs[2]) {
- tokens.push(sets.ints());
-
- } else if (rs[3]) {
- tokens.push(sets.whitespace());
-
- } else if (rs[4]) {
- tokens.push(sets.notWords());
-
- } else if (rs[5]) {
- tokens.push(sets.notInts());
-
- } else if (rs[6]) {
- tokens.push(sets.notWhitespace());
-
- } else if (rs[7]) {
- tokens.push({
- type: types.RANGE,
- from: (rs[8] || rs[9]).charCodeAt(0),
- to: rs[10].charCodeAt(0),
- });
-
- } else if (c = rs[12]) {
- tokens.push({
- type: types.CHAR,
- value: c.charCodeAt(0),
- });
-
- } else {
- return [tokens, regexp.lastIndex];
- }
- }
-
- exports.error(regexpStr, 'Unterminated character class');
-};
-
-
-/**
- * Shortcut to throw errors.
- *
- * @param {String} regexp
- * @param {String} msg
- */
-exports.error = function(regexp, msg) {
- throw new SyntaxError('Invalid regular expression: /' + regexp + '/: ' + msg);
-};
diff --git a/node_modules/ret/package.json b/node_modules/ret/package.json
deleted file mode 100644
index 2fde9a4..0000000
--- a/node_modules/ret/package.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "name": "ret",
- "description": "Tokenizes a string that represents a regular expression.",
- "keywords": [
- "regex",
- "regexp",
- "regular expression",
- "parser",
- "tokenizer"
- ],
- "version": "0.1.15",
- "repository": {
- "type": "git",
- "url": "git://github.com/fent/ret.js.git"
- },
- "author": "Roly Fentanes (https://github.com/fent)",
- "main": "./lib/index.js",
- "files": [
- "lib"
- ],
- "scripts": {
- "test": "istanbul cover vows -- --spec test/*-test.js"
- },
- "directories": {
- "lib": "./lib"
- },
- "devDependencies": {
- "istanbul": "*",
- "vows": "*"
- },
- "engines": {
- "node": ">=0.12"
- },
- "license": "MIT"
-}
diff --git a/node_modules/safe-buffer/LICENSE b/node_modules/safe-buffer/LICENSE
deleted file mode 100644
index 0c068ce..0000000
--- a/node_modules/safe-buffer/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Feross Aboukhadijeh
-
-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/safe-buffer/README.md b/node_modules/safe-buffer/README.md
deleted file mode 100644
index e9a81af..0000000
--- a/node_modules/safe-buffer/README.md
+++ /dev/null
@@ -1,584 +0,0 @@
-# safe-buffer [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url]
-
-[travis-image]: https://img.shields.io/travis/feross/safe-buffer/master.svg
-[travis-url]: https://travis-ci.org/feross/safe-buffer
-[npm-image]: https://img.shields.io/npm/v/safe-buffer.svg
-[npm-url]: https://npmjs.org/package/safe-buffer
-[downloads-image]: https://img.shields.io/npm/dm/safe-buffer.svg
-[downloads-url]: https://npmjs.org/package/safe-buffer
-[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg
-[standard-url]: https://standardjs.com
-
-#### Safer Node.js Buffer API
-
-**Use the new Node.js Buffer APIs (`Buffer.from`, `Buffer.alloc`,
-`Buffer.allocUnsafe`, `Buffer.allocUnsafeSlow`) in all versions of Node.js.**
-
-**Uses the built-in implementation when available.**
-
-## install
-
-```
-npm install safe-buffer
-```
-
-## usage
-
-The goal of this package is to provide a safe replacement for the node.js `Buffer`.
-
-It's a drop-in replacement for `Buffer`. You can use it by adding one `require` line to
-the top of your node.js modules:
-
-```js
-var Buffer = require('safe-buffer').Buffer
-
-// Existing buffer code will continue to work without issues:
-
-new Buffer('hey', 'utf8')
-new Buffer([1, 2, 3], 'utf8')
-new Buffer(obj)
-new Buffer(16) // create an uninitialized buffer (potentially unsafe)
-
-// But you can use these new explicit APIs to make clear what you want:
-
-Buffer.from('hey', 'utf8') // convert from many types to a Buffer
-Buffer.alloc(16) // create a zero-filled buffer (safe)
-Buffer.allocUnsafe(16) // create an uninitialized buffer (potentially unsafe)
-```
-
-## api
-
-### Class Method: Buffer.from(array)
-
-
-* `array` {Array}
-
-Allocates a new `Buffer` using an `array` of octets.
-
-```js
-const buf = Buffer.from([0x62,0x75,0x66,0x66,0x65,0x72]);
- // creates a new Buffer containing ASCII bytes
- // ['b','u','f','f','e','r']
-```
-
-A `TypeError` will be thrown if `array` is not an `Array`.
-
-### Class Method: Buffer.from(arrayBuffer[, byteOffset[, length]])
-
-
-* `arrayBuffer` {ArrayBuffer} The `.buffer` property of a `TypedArray` or
- a `new ArrayBuffer()`
-* `byteOffset` {Number} Default: `0`
-* `length` {Number} Default: `arrayBuffer.length - byteOffset`
-
-When passed a reference to the `.buffer` property of a `TypedArray` instance,
-the newly created `Buffer` will share the same allocated memory as the
-TypedArray.
-
-```js
-const arr = new Uint16Array(2);
-arr[0] = 5000;
-arr[1] = 4000;
-
-const buf = Buffer.from(arr.buffer); // shares the memory with arr;
-
-console.log(buf);
- // Prints:
-
-// changing the TypedArray changes the Buffer also
-arr[1] = 6000;
-
-console.log(buf);
- // Prints:
-```
-
-The optional `byteOffset` and `length` arguments specify a memory range within
-the `arrayBuffer` that will be shared by the `Buffer`.
-
-```js
-const ab = new ArrayBuffer(10);
-const buf = Buffer.from(ab, 0, 2);
-console.log(buf.length);
- // Prints: 2
-```
-
-A `TypeError` will be thrown if `arrayBuffer` is not an `ArrayBuffer`.
-
-### Class Method: Buffer.from(buffer)
-
-
-* `buffer` {Buffer}
-
-Copies the passed `buffer` data onto a new `Buffer` instance.
-
-```js
-const buf1 = Buffer.from('buffer');
-const buf2 = Buffer.from(buf1);
-
-buf1[0] = 0x61;
-console.log(buf1.toString());
- // 'auffer'
-console.log(buf2.toString());
- // 'buffer' (copy is not changed)
-```
-
-A `TypeError` will be thrown if `buffer` is not a `Buffer`.
-
-### Class Method: Buffer.from(str[, encoding])
-
-
-* `str` {String} String to encode.
-* `encoding` {String} Encoding to use, Default: `'utf8'`
-
-Creates a new `Buffer` containing the given JavaScript string `str`. If
-provided, the `encoding` parameter identifies the character encoding.
-If not provided, `encoding` defaults to `'utf8'`.
-
-```js
-const buf1 = Buffer.from('this is a tést');
-console.log(buf1.toString());
- // prints: this is a tést
-console.log(buf1.toString('ascii'));
- // prints: this is a tC)st
-
-const buf2 = Buffer.from('7468697320697320612074c3a97374', 'hex');
-console.log(buf2.toString());
- // prints: this is a tést
-```
-
-A `TypeError` will be thrown if `str` is not a string.
-
-### Class Method: Buffer.alloc(size[, fill[, encoding]])
-
-
-* `size` {Number}
-* `fill` {Value} Default: `undefined`
-* `encoding` {String} Default: `utf8`
-
-Allocates a new `Buffer` of `size` bytes. If `fill` is `undefined`, the
-`Buffer` will be *zero-filled*.
-
-```js
-const buf = Buffer.alloc(5);
-console.log(buf);
- //
-```
-
-The `size` must be less than or equal to the value of
-`require('buffer').kMaxLength` (on 64-bit architectures, `kMaxLength` is
-`(2^31)-1`). Otherwise, a [`RangeError`][] is thrown. A zero-length Buffer will
-be created if a `size` less than or equal to 0 is specified.
-
-If `fill` is specified, the allocated `Buffer` will be initialized by calling
-`buf.fill(fill)`. See [`buf.fill()`][] for more information.
-
-```js
-const buf = Buffer.alloc(5, 'a');
-console.log(buf);
- //
-```
-
-If both `fill` and `encoding` are specified, the allocated `Buffer` will be
-initialized by calling `buf.fill(fill, encoding)`. For example:
-
-```js
-const buf = Buffer.alloc(11, 'aGVsbG8gd29ybGQ=', 'base64');
-console.log(buf);
- //
-```
-
-Calling `Buffer.alloc(size)` can be significantly slower than the alternative
-`Buffer.allocUnsafe(size)` but ensures that the newly created `Buffer` instance
-contents will *never contain sensitive data*.
-
-A `TypeError` will be thrown if `size` is not a number.
-
-### Class Method: Buffer.allocUnsafe(size)
-
-
-* `size` {Number}
-
-Allocates a new *non-zero-filled* `Buffer` of `size` bytes. The `size` must
-be less than or equal to the value of `require('buffer').kMaxLength` (on 64-bit
-architectures, `kMaxLength` is `(2^31)-1`). Otherwise, a [`RangeError`][] is
-thrown. A zero-length Buffer will be created if a `size` less than or equal to
-0 is specified.
-
-The underlying memory for `Buffer` instances created in this way is *not
-initialized*. The contents of the newly created `Buffer` are unknown and
-*may contain sensitive data*. Use [`buf.fill(0)`][] to initialize such
-`Buffer` instances to zeroes.
-
-```js
-const buf = Buffer.allocUnsafe(5);
-console.log(buf);
- //
- // (octets will be different, every time)
-buf.fill(0);
-console.log(buf);
- //
-```
-
-A `TypeError` will be thrown if `size` is not a number.
-
-Note that the `Buffer` module pre-allocates an internal `Buffer` instance of
-size `Buffer.poolSize` that is used as a pool for the fast allocation of new
-`Buffer` instances created using `Buffer.allocUnsafe(size)` (and the deprecated
-`new Buffer(size)` constructor) only when `size` is less than or equal to
-`Buffer.poolSize >> 1` (floor of `Buffer.poolSize` divided by two). The default
-value of `Buffer.poolSize` is `8192` but can be modified.
-
-Use of this pre-allocated internal memory pool is a key difference between
-calling `Buffer.alloc(size, fill)` vs. `Buffer.allocUnsafe(size).fill(fill)`.
-Specifically, `Buffer.alloc(size, fill)` will *never* use the internal Buffer
-pool, while `Buffer.allocUnsafe(size).fill(fill)` *will* use the internal
-Buffer pool if `size` is less than or equal to half `Buffer.poolSize`. The
-difference is subtle but can be important when an application requires the
-additional performance that `Buffer.allocUnsafe(size)` provides.
-
-### Class Method: Buffer.allocUnsafeSlow(size)
-
-
-* `size` {Number}
-
-Allocates a new *non-zero-filled* and non-pooled `Buffer` of `size` bytes. The
-`size` must be less than or equal to the value of
-`require('buffer').kMaxLength` (on 64-bit architectures, `kMaxLength` is
-`(2^31)-1`). Otherwise, a [`RangeError`][] is thrown. A zero-length Buffer will
-be created if a `size` less than or equal to 0 is specified.
-
-The underlying memory for `Buffer` instances created in this way is *not
-initialized*. The contents of the newly created `Buffer` are unknown and
-*may contain sensitive data*. Use [`buf.fill(0)`][] to initialize such
-`Buffer` instances to zeroes.
-
-When using `Buffer.allocUnsafe()` to allocate new `Buffer` instances,
-allocations under 4KB are, by default, sliced from a single pre-allocated
-`Buffer`. This allows applications to avoid the garbage collection overhead of
-creating many individually allocated Buffers. This approach improves both
-performance and memory usage by eliminating the need to track and cleanup as
-many `Persistent` objects.
-
-However, in the case where a developer may need to retain a small chunk of
-memory from a pool for an indeterminate amount of time, it may be appropriate
-to create an un-pooled Buffer instance using `Buffer.allocUnsafeSlow()` then
-copy out the relevant bits.
-
-```js
-// need to keep around a few small chunks of memory
-const store = [];
-
-socket.on('readable', () => {
- const data = socket.read();
- // allocate for retained data
- const sb = Buffer.allocUnsafeSlow(10);
- // copy the data into the new allocation
- data.copy(sb, 0, 0, 10);
- store.push(sb);
-});
-```
-
-Use of `Buffer.allocUnsafeSlow()` should be used only as a last resort *after*
-a developer has observed undue memory retention in their applications.
-
-A `TypeError` will be thrown if `size` is not a number.
-
-### All the Rest
-
-The rest of the `Buffer` API is exactly the same as in node.js.
-[See the docs](https://nodejs.org/api/buffer.html).
-
-
-## Related links
-
-- [Node.js issue: Buffer(number) is unsafe](https://github.com/nodejs/node/issues/4660)
-- [Node.js Enhancement Proposal: Buffer.from/Buffer.alloc/Buffer.zalloc/Buffer() soft-deprecate](https://github.com/nodejs/node-eps/pull/4)
-
-## Why is `Buffer` unsafe?
-
-Today, the node.js `Buffer` constructor is overloaded to handle many different argument
-types like `String`, `Array`, `Object`, `TypedArrayView` (`Uint8Array`, etc.),
-`ArrayBuffer`, and also `Number`.
-
-The API is optimized for convenience: you can throw any type at it, and it will try to do
-what you want.
-
-Because the Buffer constructor is so powerful, you often see code like this:
-
-```js
-// Convert UTF-8 strings to hex
-function toHex (str) {
- return new Buffer(str).toString('hex')
-}
-```
-
-***But what happens if `toHex` is called with a `Number` argument?***
-
-### Remote Memory Disclosure
-
-If an attacker can make your program call the `Buffer` constructor with a `Number`
-argument, then they can make it allocate uninitialized memory from the node.js process.
-This could potentially disclose TLS private keys, user data, or database passwords.
-
-When the `Buffer` constructor is passed a `Number` argument, it returns an
-**UNINITIALIZED** block of memory of the specified `size`. When you create a `Buffer` like
-this, you **MUST** overwrite the contents before returning it to the user.
-
-From the [node.js docs](https://nodejs.org/api/buffer.html#buffer_new_buffer_size):
-
-> `new Buffer(size)`
->
-> - `size` Number
->
-> The underlying memory for `Buffer` instances created in this way is not initialized.
-> **The contents of a newly created `Buffer` are unknown and could contain sensitive
-> data.** Use `buf.fill(0)` to initialize a Buffer to zeroes.
-
-(Emphasis our own.)
-
-Whenever the programmer intended to create an uninitialized `Buffer` you often see code
-like this:
-
-```js
-var buf = new Buffer(16)
-
-// Immediately overwrite the uninitialized buffer with data from another buffer
-for (var i = 0; i < buf.length; i++) {
- buf[i] = otherBuf[i]
-}
-```
-
-
-### Would this ever be a problem in real code?
-
-Yes. It's surprisingly common to forget to check the type of your variables in a
-dynamically-typed language like JavaScript.
-
-Usually the consequences of assuming the wrong type is that your program crashes with an
-uncaught exception. But the failure mode for forgetting to check the type of arguments to
-the `Buffer` constructor is more catastrophic.
-
-Here's an example of a vulnerable service that takes a JSON payload and converts it to
-hex:
-
-```js
-// Take a JSON payload {str: "some string"} and convert it to hex
-var server = http.createServer(function (req, res) {
- var data = ''
- req.setEncoding('utf8')
- req.on('data', function (chunk) {
- data += chunk
- })
- req.on('end', function () {
- var body = JSON.parse(data)
- res.end(new Buffer(body.str).toString('hex'))
- })
-})
-
-server.listen(8080)
-```
-
-In this example, an http client just has to send:
-
-```json
-{
- "str": 1000
-}
-```
-
-and it will get back 1,000 bytes of uninitialized memory from the server.
-
-This is a very serious bug. It's similar in severity to the
-[the Heartbleed bug](http://heartbleed.com/) that allowed disclosure of OpenSSL process
-memory by remote attackers.
-
-
-### Which real-world packages were vulnerable?
-
-#### [`bittorrent-dht`](https://www.npmjs.com/package/bittorrent-dht)
-
-[Mathias Buus](https://github.com/mafintosh) and I
-([Feross Aboukhadijeh](http://feross.org/)) found this issue in one of our own packages,
-[`bittorrent-dht`](https://www.npmjs.com/package/bittorrent-dht). The bug would allow
-anyone on the internet to send a series of messages to a user of `bittorrent-dht` and get
-them to reveal 20 bytes at a time of uninitialized memory from the node.js process.
-
-Here's
-[the commit](https://github.com/feross/bittorrent-dht/commit/6c7da04025d5633699800a99ec3fbadf70ad35b8)
-that fixed it. We released a new fixed version, created a
-[Node Security Project disclosure](https://nodesecurity.io/advisories/68), and deprecated all
-vulnerable versions on npm so users will get a warning to upgrade to a newer version.
-
-#### [`ws`](https://www.npmjs.com/package/ws)
-
-That got us wondering if there were other vulnerable packages. Sure enough, within a short
-period of time, we found the same issue in [`ws`](https://www.npmjs.com/package/ws), the
-most popular WebSocket implementation in node.js.
-
-If certain APIs were called with `Number` parameters instead of `String` or `Buffer` as
-expected, then uninitialized server memory would be disclosed to the remote peer.
-
-These were the vulnerable methods:
-
-```js
-socket.send(number)
-socket.ping(number)
-socket.pong(number)
-```
-
-Here's a vulnerable socket server with some echo functionality:
-
-```js
-server.on('connection', function (socket) {
- socket.on('message', function (message) {
- message = JSON.parse(message)
- if (message.type === 'echo') {
- socket.send(message.data) // send back the user's message
- }
- })
-})
-```
-
-`socket.send(number)` called on the server, will disclose server memory.
-
-Here's [the release](https://github.com/websockets/ws/releases/tag/1.0.1) where the issue
-was fixed, with a more detailed explanation. Props to
-[Arnout Kazemier](https://github.com/3rd-Eden) for the quick fix. Here's the
-[Node Security Project disclosure](https://nodesecurity.io/advisories/67).
-
-
-### What's the solution?
-
-It's important that node.js offers a fast way to get memory otherwise performance-critical
-applications would needlessly get a lot slower.
-
-But we need a better way to *signal our intent* as programmers. **When we want
-uninitialized memory, we should request it explicitly.**
-
-Sensitive functionality should not be packed into a developer-friendly API that loosely
-accepts many different types. This type of API encourages the lazy practice of passing
-variables in without checking the type very carefully.
-
-#### A new API: `Buffer.allocUnsafe(number)`
-
-The functionality of creating buffers with uninitialized memory should be part of another
-API. We propose `Buffer.allocUnsafe(number)`. This way, it's not part of an API that
-frequently gets user input of all sorts of different types passed into it.
-
-```js
-var buf = Buffer.allocUnsafe(16) // careful, uninitialized memory!
-
-// Immediately overwrite the uninitialized buffer with data from another buffer
-for (var i = 0; i < buf.length; i++) {
- buf[i] = otherBuf[i]
-}
-```
-
-
-### How do we fix node.js core?
-
-We sent [a PR to node.js core](https://github.com/nodejs/node/pull/4514) (merged as
-`semver-major`) which defends against one case:
-
-```js
-var str = 16
-new Buffer(str, 'utf8')
-```
-
-In this situation, it's implied that the programmer intended the first argument to be a
-string, since they passed an encoding as a second argument. Today, node.js will allocate
-uninitialized memory in the case of `new Buffer(number, encoding)`, which is probably not
-what the programmer intended.
-
-But this is only a partial solution, since if the programmer does `new Buffer(variable)`
-(without an `encoding` parameter) there's no way to know what they intended. If `variable`
-is sometimes a number, then uninitialized memory will sometimes be returned.
-
-### What's the real long-term fix?
-
-We could deprecate and remove `new Buffer(number)` and use `Buffer.allocUnsafe(number)` when
-we need uninitialized memory. But that would break 1000s of packages.
-
-~~We believe the best solution is to:~~
-
-~~1. Change `new Buffer(number)` to return safe, zeroed-out memory~~
-
-~~2. Create a new API for creating uninitialized Buffers. We propose: `Buffer.allocUnsafe(number)`~~
-
-#### Update
-
-We now support adding three new APIs:
-
-- `Buffer.from(value)` - convert from any type to a buffer
-- `Buffer.alloc(size)` - create a zero-filled buffer
-- `Buffer.allocUnsafe(size)` - create an uninitialized buffer with given size
-
-This solves the core problem that affected `ws` and `bittorrent-dht` which is
-`Buffer(variable)` getting tricked into taking a number argument.
-
-This way, existing code continues working and the impact on the npm ecosystem will be
-minimal. Over time, npm maintainers can migrate performance-critical code to use
-`Buffer.allocUnsafe(number)` instead of `new Buffer(number)`.
-
-
-### Conclusion
-
-We think there's a serious design issue with the `Buffer` API as it exists today. It
-promotes insecure software by putting high-risk functionality into a convenient API
-with friendly "developer ergonomics".
-
-This wasn't merely a theoretical exercise because we found the issue in some of the
-most popular npm packages.
-
-Fortunately, there's an easy fix that can be applied today. Use `safe-buffer` in place of
-`buffer`.
-
-```js
-var Buffer = require('safe-buffer').Buffer
-```
-
-Eventually, we hope that node.js core can switch to this new, safer behavior. We believe
-the impact on the ecosystem would be minimal since it's not a breaking change.
-Well-maintained, popular packages would be updated to use `Buffer.alloc` quickly, while
-older, insecure packages would magically become safe from this attack vector.
-
-
-## links
-
-- [Node.js PR: buffer: throw if both length and enc are passed](https://github.com/nodejs/node/pull/4514)
-- [Node Security Project disclosure for `ws`](https://nodesecurity.io/advisories/67)
-- [Node Security Project disclosure for`bittorrent-dht`](https://nodesecurity.io/advisories/68)
-
-
-## credit
-
-The original issues in `bittorrent-dht`
-([disclosure](https://nodesecurity.io/advisories/68)) and
-`ws` ([disclosure](https://nodesecurity.io/advisories/67)) were discovered by
-[Mathias Buus](https://github.com/mafintosh) and
-[Feross Aboukhadijeh](http://feross.org/).
-
-Thanks to [Adam Baldwin](https://github.com/evilpacket) for helping disclose these issues
-and for his work running the [Node Security Project](https://nodesecurity.io/).
-
-Thanks to [John Hiesey](https://github.com/jhiesey) for proofreading this README and
-auditing the code.
-
-
-## license
-
-MIT. Copyright (C) [Feross Aboukhadijeh](http://feross.org)
diff --git a/node_modules/safe-buffer/index.d.ts b/node_modules/safe-buffer/index.d.ts
deleted file mode 100644
index e9fed80..0000000
--- a/node_modules/safe-buffer/index.d.ts
+++ /dev/null
@@ -1,187 +0,0 @@
-declare module "safe-buffer" {
- export class Buffer {
- length: number
- write(string: string, offset?: number, length?: number, encoding?: string): number;
- toString(encoding?: string, start?: number, end?: number): string;
- toJSON(): { type: 'Buffer', data: any[] };
- equals(otherBuffer: Buffer): boolean;
- compare(otherBuffer: Buffer, targetStart?: number, targetEnd?: number, sourceStart?: number, sourceEnd?: number): number;
- copy(targetBuffer: Buffer, targetStart?: number, sourceStart?: number, sourceEnd?: number): number;
- slice(start?: number, end?: number): Buffer;
- writeUIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number;
- writeUIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number;
- writeIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number;
- writeIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number;
- readUIntLE(offset: number, byteLength: number, noAssert?: boolean): number;
- readUIntBE(offset: number, byteLength: number, noAssert?: boolean): number;
- readIntLE(offset: number, byteLength: number, noAssert?: boolean): number;
- readIntBE(offset: number, byteLength: number, noAssert?: boolean): number;
- readUInt8(offset: number, noAssert?: boolean): number;
- readUInt16LE(offset: number, noAssert?: boolean): number;
- readUInt16BE(offset: number, noAssert?: boolean): number;
- readUInt32LE(offset: number, noAssert?: boolean): number;
- readUInt32BE(offset: number, noAssert?: boolean): number;
- readInt8(offset: number, noAssert?: boolean): number;
- readInt16LE(offset: number, noAssert?: boolean): number;
- readInt16BE(offset: number, noAssert?: boolean): number;
- readInt32LE(offset: number, noAssert?: boolean): number;
- readInt32BE(offset: number, noAssert?: boolean): number;
- readFloatLE(offset: number, noAssert?: boolean): number;
- readFloatBE(offset: number, noAssert?: boolean): number;
- readDoubleLE(offset: number, noAssert?: boolean): number;
- readDoubleBE(offset: number, noAssert?: boolean): number;
- swap16(): Buffer;
- swap32(): Buffer;
- swap64(): Buffer;
- writeUInt8(value: number, offset: number, noAssert?: boolean): number;
- writeUInt16LE(value: number, offset: number, noAssert?: boolean): number;
- writeUInt16BE(value: number, offset: number, noAssert?: boolean): number;
- writeUInt32LE(value: number, offset: number, noAssert?: boolean): number;
- writeUInt32BE(value: number, offset: number, noAssert?: boolean): number;
- writeInt8(value: number, offset: number, noAssert?: boolean): number;
- writeInt16LE(value: number, offset: number, noAssert?: boolean): number;
- writeInt16BE(value: number, offset: number, noAssert?: boolean): number;
- writeInt32LE(value: number, offset: number, noAssert?: boolean): number;
- writeInt32BE(value: number, offset: number, noAssert?: boolean): number;
- writeFloatLE(value: number, offset: number, noAssert?: boolean): number;
- writeFloatBE(value: number, offset: number, noAssert?: boolean): number;
- writeDoubleLE(value: number, offset: number, noAssert?: boolean): number;
- writeDoubleBE(value: number, offset: number, noAssert?: boolean): number;
- fill(value: any, offset?: number, end?: number): this;
- indexOf(value: string | number | Buffer, byteOffset?: number, encoding?: string): number;
- lastIndexOf(value: string | number | Buffer, byteOffset?: number, encoding?: string): number;
- includes(value: string | number | Buffer, byteOffset?: number, encoding?: string): boolean;
-
- /**
- * Allocates a new buffer containing the given {str}.
- *
- * @param str String to store in buffer.
- * @param encoding encoding to use, optional. Default is 'utf8'
- */
- constructor (str: string, encoding?: string);
- /**
- * Allocates a new buffer of {size} octets.
- *
- * @param size count of octets to allocate.
- */
- constructor (size: number);
- /**
- * Allocates a new buffer containing the given {array} of octets.
- *
- * @param array The octets to store.
- */
- constructor (array: Uint8Array);
- /**
- * Produces a Buffer backed by the same allocated memory as
- * the given {ArrayBuffer}.
- *
- *
- * @param arrayBuffer The ArrayBuffer with which to share memory.
- */
- constructor (arrayBuffer: ArrayBuffer);
- /**
- * Allocates a new buffer containing the given {array} of octets.
- *
- * @param array The octets to store.
- */
- constructor (array: any[]);
- /**
- * Copies the passed {buffer} data onto a new {Buffer} instance.
- *
- * @param buffer The buffer to copy.
- */
- constructor (buffer: Buffer);
- prototype: Buffer;
- /**
- * Allocates a new Buffer using an {array} of octets.
- *
- * @param array
- */
- static from(array: any[]): Buffer;
- /**
- * When passed a reference to the .buffer property of a TypedArray instance,
- * the newly created Buffer will share the same allocated memory as the TypedArray.
- * The optional {byteOffset} and {length} arguments specify a memory range
- * within the {arrayBuffer} that will be shared by the Buffer.
- *
- * @param arrayBuffer The .buffer property of a TypedArray or a new ArrayBuffer()
- * @param byteOffset
- * @param length
- */
- static from(arrayBuffer: ArrayBuffer, byteOffset?: number, length?: number): Buffer;
- /**
- * Copies the passed {buffer} data onto a new Buffer instance.
- *
- * @param buffer
- */
- static from(buffer: Buffer): Buffer;
- /**
- * Creates a new Buffer containing the given JavaScript string {str}.
- * If provided, the {encoding} parameter identifies the character encoding.
- * If not provided, {encoding} defaults to 'utf8'.
- *
- * @param str
- */
- static from(str: string, encoding?: string): Buffer;
- /**
- * Returns true if {obj} is a Buffer
- *
- * @param obj object to test.
- */
- static isBuffer(obj: any): obj is Buffer;
- /**
- * Returns true if {encoding} is a valid encoding argument.
- * Valid string encodings in Node 0.12: 'ascii'|'utf8'|'utf16le'|'ucs2'(alias of 'utf16le')|'base64'|'binary'(deprecated)|'hex'
- *
- * @param encoding string to test.
- */
- static isEncoding(encoding: string): boolean;
- /**
- * Gives the actual byte length of a string. encoding defaults to 'utf8'.
- * This is not the same as String.prototype.length since that returns the number of characters in a string.
- *
- * @param string string to test.
- * @param encoding encoding used to evaluate (defaults to 'utf8')
- */
- static byteLength(string: string, encoding?: string): number;
- /**
- * Returns a buffer which is the result of concatenating all the buffers in the list together.
- *
- * If the list has no items, or if the totalLength is 0, then it returns a zero-length buffer.
- * If the list has exactly one item, then the first item of the list is returned.
- * If the list has more than one item, then a new Buffer is created.
- *
- * @param list An array of Buffer objects to concatenate
- * @param totalLength Total length of the buffers when concatenated.
- * If totalLength is not provided, it is read from the buffers in the list. However, this adds an additional loop to the function, so it is faster to provide the length explicitly.
- */
- static concat(list: Buffer[], totalLength?: number): Buffer;
- /**
- * The same as buf1.compare(buf2).
- */
- static compare(buf1: Buffer, buf2: Buffer): number;
- /**
- * Allocates a new buffer of {size} octets.
- *
- * @param size count of octets to allocate.
- * @param fill if specified, buffer will be initialized by calling buf.fill(fill).
- * If parameter is omitted, buffer will be filled with zeros.
- * @param encoding encoding used for call to buf.fill while initalizing
- */
- static alloc(size: number, fill?: string | Buffer | number, encoding?: string): Buffer;
- /**
- * Allocates a new buffer of {size} octets, leaving memory not initialized, so the contents
- * of the newly created Buffer are unknown and may contain sensitive data.
- *
- * @param size count of octets to allocate
- */
- static allocUnsafe(size: number): Buffer;
- /**
- * Allocates a new non-pooled buffer of {size} octets, leaving memory not initialized, so the contents
- * of the newly created Buffer are unknown and may contain sensitive data.
- *
- * @param size count of octets to allocate
- */
- static allocUnsafeSlow(size: number): Buffer;
- }
-}
\ No newline at end of file
diff --git a/node_modules/safe-buffer/index.js b/node_modules/safe-buffer/index.js
deleted file mode 100644
index 22438da..0000000
--- a/node_modules/safe-buffer/index.js
+++ /dev/null
@@ -1,62 +0,0 @@
-/* eslint-disable node/no-deprecated-api */
-var buffer = require('buffer')
-var Buffer = buffer.Buffer
-
-// alternative to using Object.keys for old browsers
-function copyProps (src, dst) {
- for (var key in src) {
- dst[key] = src[key]
- }
-}
-if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {
- module.exports = buffer
-} else {
- // Copy properties from require('buffer')
- copyProps(buffer, exports)
- exports.Buffer = SafeBuffer
-}
-
-function SafeBuffer (arg, encodingOrOffset, length) {
- return Buffer(arg, encodingOrOffset, length)
-}
-
-// Copy static methods from Buffer
-copyProps(Buffer, SafeBuffer)
-
-SafeBuffer.from = function (arg, encodingOrOffset, length) {
- if (typeof arg === 'number') {
- throw new TypeError('Argument must not be a number')
- }
- return Buffer(arg, encodingOrOffset, length)
-}
-
-SafeBuffer.alloc = function (size, fill, encoding) {
- if (typeof size !== 'number') {
- throw new TypeError('Argument must be a number')
- }
- var buf = Buffer(size)
- if (fill !== undefined) {
- if (typeof encoding === 'string') {
- buf.fill(fill, encoding)
- } else {
- buf.fill(fill)
- }
- } else {
- buf.fill(0)
- }
- return buf
-}
-
-SafeBuffer.allocUnsafe = function (size) {
- if (typeof size !== 'number') {
- throw new TypeError('Argument must be a number')
- }
- return Buffer(size)
-}
-
-SafeBuffer.allocUnsafeSlow = function (size) {
- if (typeof size !== 'number') {
- throw new TypeError('Argument must be a number')
- }
- return buffer.SlowBuffer(size)
-}
diff --git a/node_modules/safe-buffer/package.json b/node_modules/safe-buffer/package.json
deleted file mode 100644
index 623fbc3..0000000
--- a/node_modules/safe-buffer/package.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "name": "safe-buffer",
- "description": "Safer Node.js Buffer API",
- "version": "5.1.2",
- "author": {
- "name": "Feross Aboukhadijeh",
- "email": "feross@feross.org",
- "url": "http://feross.org"
- },
- "bugs": {
- "url": "https://github.com/feross/safe-buffer/issues"
- },
- "devDependencies": {
- "standard": "*",
- "tape": "^4.0.0"
- },
- "homepage": "https://github.com/feross/safe-buffer",
- "keywords": [
- "buffer",
- "buffer allocate",
- "node security",
- "safe",
- "safe-buffer",
- "security",
- "uninitialized"
- ],
- "license": "MIT",
- "main": "index.js",
- "types": "index.d.ts",
- "repository": {
- "type": "git",
- "url": "git://github.com/feross/safe-buffer.git"
- },
- "scripts": {
- "test": "standard && tape test/*.js"
- }
-}
diff --git a/node_modules/safe-regex/.travis.yml b/node_modules/safe-regex/.travis.yml
deleted file mode 100644
index cc4dba2..0000000
--- a/node_modules/safe-regex/.travis.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-language: node_js
-node_js:
- - "0.8"
- - "0.10"
diff --git a/node_modules/safe-regex/LICENSE b/node_modules/safe-regex/LICENSE
deleted file mode 100644
index ee27ba4..0000000
--- a/node_modules/safe-regex/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/safe-regex/example/safe.js b/node_modules/safe-regex/example/safe.js
deleted file mode 100644
index f486f59..0000000
--- a/node_modules/safe-regex/example/safe.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var safe = require('../');
-var regex = process.argv.slice(2).join(' ');
-console.log(safe(regex));
diff --git a/node_modules/safe-regex/index.js b/node_modules/safe-regex/index.js
deleted file mode 100644
index 488f501..0000000
--- a/node_modules/safe-regex/index.js
+++ /dev/null
@@ -1,43 +0,0 @@
-var parse = require('ret');
-var types = parse.types;
-
-module.exports = function (re, opts) {
- if (!opts) opts = {};
- var replimit = opts.limit === undefined ? 25 : opts.limit;
-
- if (isRegExp(re)) re = re.source;
- else if (typeof re !== 'string') re = String(re);
-
- try { re = parse(re) }
- catch (err) { return false }
-
- var reps = 0;
- return (function walk (node, starHeight) {
- if (node.type === types.REPETITION) {
- starHeight ++;
- reps ++;
- if (starHeight > 1) return false;
- if (reps > replimit) return false;
- }
-
- if (node.options) {
- for (var i = 0, len = node.options.length; i < len; i++) {
- var ok = walk({ stack: node.options[i] }, starHeight);
- if (!ok) return false;
- }
- }
- var stack = node.stack || (node.value && node.value.stack);
- if (!stack) return true;
-
- for (var i = 0; i < stack.length; i++) {
- var ok = walk(stack[i], starHeight);
- if (!ok) return false;
- }
-
- return true;
- })(re, 0);
-};
-
-function isRegExp (x) {
- return {}.toString.call(x) === '[object RegExp]';
-}
diff --git a/node_modules/safe-regex/package.json b/node_modules/safe-regex/package.json
deleted file mode 100644
index 0dd631b..0000000
--- a/node_modules/safe-regex/package.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "name": "safe-regex",
- "version": "1.1.0",
- "description": "detect possibly catastrophic, exponential-time regular expressions",
- "main": "index.js",
- "dependencies": {
- "ret": "~0.1.10"
- },
- "devDependencies": {
- "tape": "^3.5.0"
- },
- "scripts": {
- "test": "tape test/*.js"
- },
- "testling": {
- "files": "test/*.js",
- "browsers": [
- "ie/8", "ie/9", "ie/10",
- "firefox/latest",
- "chrome/latest",
- "opera/latest",
- "safari/latest"
- ]
- },
- "repository": {
- "type": "git",
- "url": "git://github.com/substack/safe-regex.git"
- },
- "homepage": "https://github.com/substack/safe-regex",
- "keywords": [
- "catastrophic",
- "exponential",
- "regex",
- "safe",
- "sandbox"
- ],
- "author": {
- "name": "James Halliday",
- "email": "mail@substack.net",
- "url": "http://substack.net"
- },
- "license": "MIT"
-}
diff --git a/node_modules/safe-regex/readme.markdown b/node_modules/safe-regex/readme.markdown
deleted file mode 100644
index 83673ac..0000000
--- a/node_modules/safe-regex/readme.markdown
+++ /dev/null
@@ -1,65 +0,0 @@
-# safe-regex
-
-detect potentially
-[catastrophic](http://regular-expressions.mobi/catastrophic.html)
-[exponential-time](http://perlgeek.de/blog-en/perl-tips/in-search-of-an-exponetial-regexp.html)
-regular expressions by limiting the
-[star height](https://en.wikipedia.org/wiki/Star_height) to 1
-
-WARNING: This module merely *seems* to work given all the catastrophic regular
-expressions I could find scouring the internet, but I don't have enough of a
-background in automata to be absolutely sure that this module will catch all
-exponential-time cases.
-
-[![browser support](https://ci.testling.com/substack/safe-regex.png)](https://ci.testling.com/substack/safe-regex)
-
-[![build status](https://secure.travis-ci.org/substack/safe-regex.png)](http://travis-ci.org/substack/safe-regex)
-
-# example
-
-``` js
-var safe = require('safe-regex');
-var regex = process.argv.slice(2).join(' ');
-console.log(safe(regex));
-```
-
-```
-$ node safe.js '(x+x+)+y'
-false
-$ node safe.js '(beep|boop)*'
-true
-$ node safe.js '(a+){10}'
-false
-$ node safe.js '\blocation\s*:[^:\n]+\b(Oakland|San Francisco)\b'
-true
-```
-
-# methods
-
-``` js
-var safe = require('safe-regex')
-```
-
-## var ok = safe(re, opts={})
-
-Return a boolean `ok` whether or not the regex `re` is safe and not possibly
-catastrophic.
-
-`re` can be a `RegExp` object or just a string.
-
-If the `re` is a string and is an invalid regex, returns `false`.
-
-* `opts.limit` - maximum number of allowed repetitions in the entire regex.
-Default: `25`.
-
-# install
-
-With [npm](https://npmjs.org) do:
-
-```
-npm install safe-regex
-```
-
-# license
-
-MIT
diff --git a/node_modules/safe-regex/test/regex.js b/node_modules/safe-regex/test/regex.js
deleted file mode 100644
index 0bda850..0000000
--- a/node_modules/safe-regex/test/regex.js
+++ /dev/null
@@ -1,50 +0,0 @@
-var safe = require('../');
-var test = require('tape');
-
-var good = [
- /\bOakland\b/,
- /\b(Oakland|San Francisco)\b/i,
- /^\d+1337\d+$/i,
- /^\d+(1337|404)\d+$/i,
- /^\d+(1337|404)*\d+$/i,
- RegExp(Array(26).join('a?') + Array(26).join('a')),
-];
-
-test('safe regex', function (t) {
- t.plan(good.length);
- good.forEach(function (re) {
- t.equal(safe(re), true);
- });
-});
-
-
-var bad = [
- /^(a?){25}(a){25}$/,
- RegExp(Array(27).join('a?') + Array(27).join('a')),
- /(x+x+)+y/,
- /foo|(x+x+)+y/,
- /(a+){10}y/,
- /(a+){2}y/,
- /(.*){1,32000}[bc]/
-];
-
-test('unsafe regex', function (t) {
- t.plan(bad.length);
- bad.forEach(function (re) {
- t.equal(safe(re), false);
- });
-});
-
-var invalid = [
- '*Oakland*',
- 'hey(yoo))',
- 'abcde(?>hellow)',
- '[abc'
-];
-
-test('invalid regex', function (t) {
- t.plan(invalid.length);
- invalid.forEach(function (re) {
- t.equal(safe(re), false);
- });
-});
diff --git a/node_modules/semver-greatest-satisfied-range/LICENSE b/node_modules/semver-greatest-satisfied-range/LICENSE
deleted file mode 100644
index d7e309b..0000000
--- a/node_modules/semver-greatest-satisfied-range/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015, 2017 Blaine Bublitz , Eric Schoffstall and other contributors
-
-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/semver-greatest-satisfied-range/README.md b/node_modules/semver-greatest-satisfied-range/README.md
deleted file mode 100644
index c30f858..0000000
--- a/node_modules/semver-greatest-satisfied-range/README.md
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
-
-
-
-
-# semver-greatest-satisfied-range
-
-[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Build Status][travis-image]][travis-url] [![AppVeyor Build Status][appveyor-image]][appveyor-url] [![Coveralls Status][coveralls-image]][coveralls-url] [![Gitter chat][gitter-image]][gitter-url]
-
-Find the greatest satisfied semver range from an array of ranges.
-
-## Usage
-
-```js
-var findRange = require('semver-greatest-satisfied-range');
-
-var range = findRange('1.1.0', ['^1.0.0', '^1.1.0', '^1.2.0']);
-// range === '^1.1.0'
-```
-
-## API
-
-### `findRange(version, rangeArray)`
-
-Takes a version and array of ranges, returns the greatest satisfied range. Range support is defined by [sver-compat][range-support].
-
-## License
-
-MIT
-
-[range-support]: https://github.com/phated/sver-compat#range-support
-
-[downloads-image]: http://img.shields.io/npm/dm/semver-greatest-satisfied-range.svg
-[npm-url]: https://www.npmjs.com/package/semver-greatest-satisfied-range
-[npm-image]: http://img.shields.io/npm/v/semver-greatest-satisfied-range.svg
-
-[travis-url]: https://travis-ci.org/gulpjs/semver-greatest-satisfied-range
-[travis-image]: http://img.shields.io/travis/gulpjs/semver-greatest-satisfied-range.svg?label=travis-ci
-
-[appveyor-url]: https://ci.appveyor.com/project/gulpjs/semver-greatest-satisfied-range
-[appveyor-image]: https://img.shields.io/appveyor/ci/gulpjs/semver-greatest-satisfied-range.svg?label=appveyor
-
-[coveralls-url]: https://coveralls.io/r/gulpjs/semver-greatest-satisfied-range
-[coveralls-image]: http://img.shields.io/coveralls/gulpjs/semver-greatest-satisfied-range/master.svg
-
-[gitter-url]: https://gitter.im/gulpjs/gulp
-[gitter-image]: https://badges.gitter.im/gulpjs/gulp.svg
diff --git a/node_modules/semver-greatest-satisfied-range/index.js b/node_modules/semver-greatest-satisfied-range/index.js
deleted file mode 100644
index 08b54c1..0000000
--- a/node_modules/semver-greatest-satisfied-range/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-'use strict';
-
-var SemverRange = require('sver-compat').SemverRange;
-
-function findRange(version, ranges) {
- ranges = ranges || [];
-
- function matches(range) {
- return SemverRange.match(range, version, true);
- }
-
- var validRanges = ranges.filter(matches);
-
- var sortedRanges = validRanges.sort(SemverRange.compare);
-
- return sortedRanges.pop() || null;
-}
-
-module.exports = findRange;
diff --git a/node_modules/semver-greatest-satisfied-range/package.json b/node_modules/semver-greatest-satisfied-range/package.json
deleted file mode 100644
index e7a32c7..0000000
--- a/node_modules/semver-greatest-satisfied-range/package.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
- "name": "semver-greatest-satisfied-range",
- "version": "1.1.0",
- "description": "Find the greatest satisfied semver range from an array of ranges.",
- "author": "Gulp Team (http://gulpjs.com/)",
- "contributors": [
- "Blaine Bublitz "
- ],
- "repository": "gulpjs/semver-greatest-satisfied-range",
- "license": "MIT",
- "engines": {
- "node": ">= 0.10"
- },
- "main": "index.js",
- "files": [
- "index.js",
- "LICENSE"
- ],
- "scripts": {
- "lint": "eslint . && jscs index.js test/",
- "pretest": "npm run lint",
- "test": "mocha --async-only",
- "cover": "istanbul cover _mocha --report lcovonly",
- "coveralls": "npm run cover && istanbul-coveralls"
- },
- "dependencies": {
- "sver-compat": "^1.5.0"
- },
- "devDependencies": {
- "eslint": "^1.7.3",
- "eslint-config-gulp": "^2.0.0",
- "expect": "^1.19.0",
- "istanbul": "^0.4.3",
- "istanbul-coveralls": "^1.0.3",
- "jscs": "^2.3.5",
- "jscs-preset-gulp": "^1.0.0",
- "mocha": "^2.4.5"
- },
- "keywords": [
- "semver",
- "range",
- "max",
- "satisfied",
- "range",
- "array",
- "greatest"
- ]
-}
diff --git a/node_modules/semver/CHANGELOG.md b/node_modules/semver/CHANGELOG.md
deleted file mode 100644
index 66304fd..0000000
--- a/node_modules/semver/CHANGELOG.md
+++ /dev/null
@@ -1,39 +0,0 @@
-# changes log
-
-## 5.7
-
-* Add `minVersion` method
-
-## 5.6
-
-* Move boolean `loose` param to an options object, with
- backwards-compatibility protection.
-* Add ability to opt out of special prerelease version handling with
- the `includePrerelease` option flag.
-
-## 5.5
-
-* Add version coercion capabilities
-
-## 5.4
-
-* Add intersection checking
-
-## 5.3
-
-* Add `minSatisfying` method
-
-## 5.2
-
-* Add `prerelease(v)` that returns prerelease components
-
-## 5.1
-
-* Add Backus-Naur for ranges
-* Remove excessively cute inspection methods
-
-## 5.0
-
-* Remove AMD/Browserified build artifacts
-* Fix ltr and gtr when using the `*` range
-* Fix for range `*` with a prerelease identifier
diff --git a/node_modules/semver/LICENSE b/node_modules/semver/LICENSE
deleted file mode 100644
index 19129e3..0000000
--- a/node_modules/semver/LICENSE
+++ /dev/null
@@ -1,15 +0,0 @@
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/node_modules/semver/README.md b/node_modules/semver/README.md
deleted file mode 100644
index f8dfa5a..0000000
--- a/node_modules/semver/README.md
+++ /dev/null
@@ -1,412 +0,0 @@
-semver(1) -- The semantic versioner for npm
-===========================================
-
-## Install
-
-```bash
-npm install --save semver
-````
-
-## Usage
-
-As a node module:
-
-```js
-const semver = require('semver')
-
-semver.valid('1.2.3') // '1.2.3'
-semver.valid('a.b.c') // null
-semver.clean(' =v1.2.3 ') // '1.2.3'
-semver.satisfies('1.2.3', '1.x || >=2.5.0 || 5.0.0 - 7.2.3') // true
-semver.gt('1.2.3', '9.8.7') // false
-semver.lt('1.2.3', '9.8.7') // true
-semver.minVersion('>=1.0.0') // '1.0.0'
-semver.valid(semver.coerce('v2')) // '2.0.0'
-semver.valid(semver.coerce('42.6.7.9.3-alpha')) // '42.6.7'
-```
-
-As a command-line utility:
-
-```
-$ semver -h
-
-A JavaScript implementation of the https://semver.org/ specification
-Copyright Isaac Z. Schlueter
-
-Usage: semver [options] [ [...]]
-Prints valid versions sorted by SemVer precedence
-
-Options:
--r --range
- Print versions that match the specified range.
-
--i --increment []
- Increment a version by the specified level. Level can
- be one of: major, minor, patch, premajor, preminor,
- prepatch, or prerelease. Default level is 'patch'.
- Only one version may be specified.
-
---preid
- Identifier to be used to prefix premajor, preminor,
- prepatch or prerelease version increments.
-
--l --loose
- Interpret versions and ranges loosely
-
--p --include-prerelease
- Always include prerelease versions in range matching
-
--c --coerce
- Coerce a string into SemVer if possible
- (does not imply --loose)
-
-Program exits successfully if any valid version satisfies
-all supplied ranges, and prints all satisfying versions.
-
-If no satisfying versions are found, then exits failure.
-
-Versions are printed in ascending order, so supplying
-multiple versions to the utility will just sort them.
-```
-
-## Versions
-
-A "version" is described by the `v2.0.0` specification found at
- .
-
-A leading `"="` or `"v"` character is stripped off and ignored.
-
-## Ranges
-
-A `version range` is a set of `comparators` which specify versions
-that satisfy the range.
-
-A `comparator` is composed of an `operator` and a `version`. The set
-of primitive `operators` is:
-
-* `<` Less than
-* `<=` Less than or equal to
-* `>` Greater than
-* `>=` Greater than or equal to
-* `=` Equal. If no operator is specified, then equality is assumed,
- so this operator is optional, but MAY be included.
-
-For example, the comparator `>=1.2.7` would match the versions
-`1.2.7`, `1.2.8`, `2.5.3`, and `1.3.9`, but not the versions `1.2.6`
-or `1.1.0`.
-
-Comparators can be joined by whitespace to form a `comparator set`,
-which is satisfied by the **intersection** of all of the comparators
-it includes.
-
-A range is composed of one or more comparator sets, joined by `||`. A
-version matches a range if and only if every comparator in at least
-one of the `||`-separated comparator sets is satisfied by the version.
-
-For example, the range `>=1.2.7 <1.3.0` would match the versions
-`1.2.7`, `1.2.8`, and `1.2.99`, but not the versions `1.2.6`, `1.3.0`,
-or `1.1.0`.
-
-The range `1.2.7 || >=1.2.9 <2.0.0` would match the versions `1.2.7`,
-`1.2.9`, and `1.4.6`, but not the versions `1.2.8` or `2.0.0`.
-
-### Prerelease Tags
-
-If a version has a prerelease tag (for example, `1.2.3-alpha.3`) then
-it will only be allowed to satisfy comparator sets if at least one
-comparator with the same `[major, minor, patch]` tuple also has a
-prerelease tag.
-
-For example, the range `>1.2.3-alpha.3` would be allowed to match the
-version `1.2.3-alpha.7`, but it would *not* be satisfied by
-`3.4.5-alpha.9`, even though `3.4.5-alpha.9` is technically "greater
-than" `1.2.3-alpha.3` according to the SemVer sort rules. The version
-range only accepts prerelease tags on the `1.2.3` version. The
-version `3.4.5` *would* satisfy the range, because it does not have a
-prerelease flag, and `3.4.5` is greater than `1.2.3-alpha.7`.
-
-The purpose for this behavior is twofold. First, prerelease versions
-frequently are updated very quickly, and contain many breaking changes
-that are (by the author's design) not yet fit for public consumption.
-Therefore, by default, they are excluded from range matching
-semantics.
-
-Second, a user who has opted into using a prerelease version has
-clearly indicated the intent to use *that specific* set of
-alpha/beta/rc versions. By including a prerelease tag in the range,
-the user is indicating that they are aware of the risk. However, it
-is still not appropriate to assume that they have opted into taking a
-similar risk on the *next* set of prerelease versions.
-
-Note that this behavior can be suppressed (treating all prerelease
-versions as if they were normal versions, for the purpose of range
-matching) by setting the `includePrerelease` flag on the options
-object to any
-[functions](https://github.com/npm/node-semver#functions) that do
-range matching.
-
-#### Prerelease Identifiers
-
-The method `.inc` takes an additional `identifier` string argument that
-will append the value of the string as a prerelease identifier:
-
-```javascript
-semver.inc('1.2.3', 'prerelease', 'beta')
-// '1.2.4-beta.0'
-```
-
-command-line example:
-
-```bash
-$ semver 1.2.3 -i prerelease --preid beta
-1.2.4-beta.0
-```
-
-Which then can be used to increment further:
-
-```bash
-$ semver 1.2.4-beta.0 -i prerelease
-1.2.4-beta.1
-```
-
-### Advanced Range Syntax
-
-Advanced range syntax desugars to primitive comparators in
-deterministic ways.
-
-Advanced ranges may be combined in the same way as primitive
-comparators using white space or `||`.
-
-#### Hyphen Ranges `X.Y.Z - A.B.C`
-
-Specifies an inclusive set.
-
-* `1.2.3 - 2.3.4` := `>=1.2.3 <=2.3.4`
-
-If a partial version is provided as the first version in the inclusive
-range, then the missing pieces are replaced with zeroes.
-
-* `1.2 - 2.3.4` := `>=1.2.0 <=2.3.4`
-
-If a partial version is provided as the second version in the
-inclusive range, then all versions that start with the supplied parts
-of the tuple are accepted, but nothing that would be greater than the
-provided tuple parts.
-
-* `1.2.3 - 2.3` := `>=1.2.3 <2.4.0`
-* `1.2.3 - 2` := `>=1.2.3 <3.0.0`
-
-#### X-Ranges `1.2.x` `1.X` `1.2.*` `*`
-
-Any of `X`, `x`, or `*` may be used to "stand in" for one of the
-numeric values in the `[major, minor, patch]` tuple.
-
-* `*` := `>=0.0.0` (Any version satisfies)
-* `1.x` := `>=1.0.0 <2.0.0` (Matching major version)
-* `1.2.x` := `>=1.2.0 <1.3.0` (Matching major and minor versions)
-
-A partial version range is treated as an X-Range, so the special
-character is in fact optional.
-
-* `""` (empty string) := `*` := `>=0.0.0`
-* `1` := `1.x.x` := `>=1.0.0 <2.0.0`
-* `1.2` := `1.2.x` := `>=1.2.0 <1.3.0`
-
-#### Tilde Ranges `~1.2.3` `~1.2` `~1`
-
-Allows patch-level changes if a minor version is specified on the
-comparator. Allows minor-level changes if not.
-
-* `~1.2.3` := `>=1.2.3 <1.(2+1).0` := `>=1.2.3 <1.3.0`
-* `~1.2` := `>=1.2.0 <1.(2+1).0` := `>=1.2.0 <1.3.0` (Same as `1.2.x`)
-* `~1` := `>=1.0.0 <(1+1).0.0` := `>=1.0.0 <2.0.0` (Same as `1.x`)
-* `~0.2.3` := `>=0.2.3 <0.(2+1).0` := `>=0.2.3 <0.3.0`
-* `~0.2` := `>=0.2.0 <0.(2+1).0` := `>=0.2.0 <0.3.0` (Same as `0.2.x`)
-* `~0` := `>=0.0.0 <(0+1).0.0` := `>=0.0.0 <1.0.0` (Same as `0.x`)
-* `~1.2.3-beta.2` := `>=1.2.3-beta.2 <1.3.0` Note that prereleases in
- the `1.2.3` version will be allowed, if they are greater than or
- equal to `beta.2`. So, `1.2.3-beta.4` would be allowed, but
- `1.2.4-beta.2` would not, because it is a prerelease of a
- different `[major, minor, patch]` tuple.
-
-#### Caret Ranges `^1.2.3` `^0.2.5` `^0.0.4`
-
-Allows changes that do not modify the left-most non-zero digit in the
-`[major, minor, patch]` tuple. In other words, this allows patch and
-minor updates for versions `1.0.0` and above, patch updates for
-versions `0.X >=0.1.0`, and *no* updates for versions `0.0.X`.
-
-Many authors treat a `0.x` version as if the `x` were the major
-"breaking-change" indicator.
-
-Caret ranges are ideal when an author may make breaking changes
-between `0.2.4` and `0.3.0` releases, which is a common practice.
-However, it presumes that there will *not* be breaking changes between
-`0.2.4` and `0.2.5`. It allows for changes that are presumed to be
-additive (but non-breaking), according to commonly observed practices.
-
-* `^1.2.3` := `>=1.2.3 <2.0.0`
-* `^0.2.3` := `>=0.2.3 <0.3.0`
-* `^0.0.3` := `>=0.0.3 <0.0.4`
-* `^1.2.3-beta.2` := `>=1.2.3-beta.2 <2.0.0` Note that prereleases in
- the `1.2.3` version will be allowed, if they are greater than or
- equal to `beta.2`. So, `1.2.3-beta.4` would be allowed, but
- `1.2.4-beta.2` would not, because it is a prerelease of a
- different `[major, minor, patch]` tuple.
-* `^0.0.3-beta` := `>=0.0.3-beta <0.0.4` Note that prereleases in the
- `0.0.3` version *only* will be allowed, if they are greater than or
- equal to `beta`. So, `0.0.3-pr.2` would be allowed.
-
-When parsing caret ranges, a missing `patch` value desugars to the
-number `0`, but will allow flexibility within that value, even if the
-major and minor versions are both `0`.
-
-* `^1.2.x` := `>=1.2.0 <2.0.0`
-* `^0.0.x` := `>=0.0.0 <0.1.0`
-* `^0.0` := `>=0.0.0 <0.1.0`
-
-A missing `minor` and `patch` values will desugar to zero, but also
-allow flexibility within those values, even if the major version is
-zero.
-
-* `^1.x` := `>=1.0.0 <2.0.0`
-* `^0.x` := `>=0.0.0 <1.0.0`
-
-### Range Grammar
-
-Putting all this together, here is a Backus-Naur grammar for ranges,
-for the benefit of parser authors:
-
-```bnf
-range-set ::= range ( logical-or range ) *
-logical-or ::= ( ' ' ) * '||' ( ' ' ) *
-range ::= hyphen | simple ( ' ' simple ) * | ''
-hyphen ::= partial ' - ' partial
-simple ::= primitive | partial | tilde | caret
-primitive ::= ( '<' | '>' | '>=' | '<=' | '=' ) partial
-partial ::= xr ( '.' xr ( '.' xr qualifier ? )? )?
-xr ::= 'x' | 'X' | '*' | nr
-nr ::= '0' | ['1'-'9'] ( ['0'-'9'] ) *
-tilde ::= '~' partial
-caret ::= '^' partial
-qualifier ::= ( '-' pre )? ( '+' build )?
-pre ::= parts
-build ::= parts
-parts ::= part ( '.' part ) *
-part ::= nr | [-0-9A-Za-z]+
-```
-
-## Functions
-
-All methods and classes take a final `options` object argument. All
-options in this object are `false` by default. The options supported
-are:
-
-- `loose` Be more forgiving about not-quite-valid semver strings.
- (Any resulting output will always be 100% strict compliant, of
- course.) For backwards compatibility reasons, if the `options`
- argument is a boolean value instead of an object, it is interpreted
- to be the `loose` param.
-- `includePrerelease` Set to suppress the [default
- behavior](https://github.com/npm/node-semver#prerelease-tags) of
- excluding prerelease tagged versions from ranges unless they are
- explicitly opted into.
-
-Strict-mode Comparators and Ranges will be strict about the SemVer
-strings that they parse.
-
-* `valid(v)`: Return the parsed version, or null if it's not valid.
-* `inc(v, release)`: Return the version incremented by the release
- type (`major`, `premajor`, `minor`, `preminor`, `patch`,
- `prepatch`, or `prerelease`), or null if it's not valid
- * `premajor` in one call will bump the version up to the next major
- version and down to a prerelease of that major version.
- `preminor`, and `prepatch` work the same way.
- * If called from a non-prerelease version, the `prerelease` will work the
- same as `prepatch`. It increments the patch version, then makes a
- prerelease. If the input version is already a prerelease it simply
- increments it.
-* `prerelease(v)`: Returns an array of prerelease components, or null
- if none exist. Example: `prerelease('1.2.3-alpha.1') -> ['alpha', 1]`
-* `major(v)`: Return the major version number.
-* `minor(v)`: Return the minor version number.
-* `patch(v)`: Return the patch version number.
-* `intersects(r1, r2, loose)`: Return true if the two supplied ranges
- or comparators intersect.
-* `parse(v)`: Attempt to parse a string as a semantic version, returning either
- a `SemVer` object or `null`.
-
-### Comparison
-
-* `gt(v1, v2)`: `v1 > v2`
-* `gte(v1, v2)`: `v1 >= v2`
-* `lt(v1, v2)`: `v1 < v2`
-* `lte(v1, v2)`: `v1 <= v2`
-* `eq(v1, v2)`: `v1 == v2` This is true if they're logically equivalent,
- even if they're not the exact same string. You already know how to
- compare strings.
-* `neq(v1, v2)`: `v1 != v2` The opposite of `eq`.
-* `cmp(v1, comparator, v2)`: Pass in a comparison string, and it'll call
- the corresponding function above. `"==="` and `"!=="` do simple
- string comparison, but are included for completeness. Throws if an
- invalid comparison string is provided.
-* `compare(v1, v2)`: Return `0` if `v1 == v2`, or `1` if `v1` is greater, or `-1` if
- `v2` is greater. Sorts in ascending order if passed to `Array.sort()`.
-* `rcompare(v1, v2)`: The reverse of compare. Sorts an array of versions
- in descending order when passed to `Array.sort()`.
-* `diff(v1, v2)`: Returns difference between two versions by the release type
- (`major`, `premajor`, `minor`, `preminor`, `patch`, `prepatch`, or `prerelease`),
- or null if the versions are the same.
-
-### Comparators
-
-* `intersects(comparator)`: Return true if the comparators intersect
-
-### Ranges
-
-* `validRange(range)`: Return the valid range or null if it's not valid
-* `satisfies(version, range)`: Return true if the version satisfies the
- range.
-* `maxSatisfying(versions, range)`: Return the highest version in the list
- that satisfies the range, or `null` if none of them do.
-* `minSatisfying(versions, range)`: Return the lowest version in the list
- that satisfies the range, or `null` if none of them do.
-* `minVersion(range)`: Return the lowest version that can possibly match
- the given range.
-* `gtr(version, range)`: Return `true` if version is greater than all the
- versions possible in the range.
-* `ltr(version, range)`: Return `true` if version is less than all the
- versions possible in the range.
-* `outside(version, range, hilo)`: Return true if the version is outside
- the bounds of the range in either the high or low direction. The
- `hilo` argument must be either the string `'>'` or `'<'`. (This is
- the function called by `gtr` and `ltr`.)
-* `intersects(range)`: Return true if any of the ranges comparators intersect
-
-Note that, since ranges may be non-contiguous, a version might not be
-greater than a range, less than a range, *or* satisfy a range! For
-example, the range `1.2 <1.2.9 || >2.0.0` would have a hole from `1.2.9`
-until `2.0.0`, so the version `1.2.10` would not be greater than the
-range (because `2.0.1` satisfies, which is higher), nor less than the
-range (since `1.2.8` satisfies, which is lower), and it also does not
-satisfy the range.
-
-If you want to know if a version satisfies or does not satisfy a
-range, use the `satisfies(version, range)` function.
-
-### Coercion
-
-* `coerce(version)`: Coerces a string to semver if possible
-
-This aims to provide a very forgiving translation of a non-semver string to
-semver. It looks for the first digit in a string, and consumes all
-remaining characters which satisfy at least a partial semver (e.g., `1`,
-`1.2`, `1.2.3`) up to the max permitted length (256 characters). Longer
-versions are simply truncated (`4.6.3.9.2-alpha2` becomes `4.6.3`). All
-surrounding text is simply ignored (`v3.4 replaces v3.3.1` becomes
-`3.4.0`). Only text which lacks digits will fail coercion (`version one`
-is not valid). The maximum length for any semver component considered for
-coercion is 16 characters; longer components will be ignored
-(`10000000000000000.4.7.4` becomes `4.7.4`). The maximum value for any
-semver component is `Number.MAX_SAFE_INTEGER || (2**53 - 1)`; higher value
-components are invalid (`9999999999999999.4.7.4` is likely invalid).
diff --git a/node_modules/semver/bin/semver b/node_modules/semver/bin/semver
deleted file mode 100755
index 801e77f..0000000
--- a/node_modules/semver/bin/semver
+++ /dev/null
@@ -1,160 +0,0 @@
-#!/usr/bin/env node
-// Standalone semver comparison program.
-// Exits successfully and prints matching version(s) if
-// any supplied version is valid and passes all tests.
-
-var argv = process.argv.slice(2)
-
-var versions = []
-
-var range = []
-
-var inc = null
-
-var version = require('../package.json').version
-
-var loose = false
-
-var includePrerelease = false
-
-var coerce = false
-
-var identifier
-
-var semver = require('../semver')
-
-var reverse = false
-
-var options = {}
-
-main()
-
-function main () {
- if (!argv.length) return help()
- while (argv.length) {
- var a = argv.shift()
- var indexOfEqualSign = a.indexOf('=')
- if (indexOfEqualSign !== -1) {
- a = a.slice(0, indexOfEqualSign)
- argv.unshift(a.slice(indexOfEqualSign + 1))
- }
- switch (a) {
- case '-rv': case '-rev': case '--rev': case '--reverse':
- reverse = true
- break
- case '-l': case '--loose':
- loose = true
- break
- case '-p': case '--include-prerelease':
- includePrerelease = true
- break
- case '-v': case '--version':
- versions.push(argv.shift())
- break
- case '-i': case '--inc': case '--increment':
- switch (argv[0]) {
- case 'major': case 'minor': case 'patch': case 'prerelease':
- case 'premajor': case 'preminor': case 'prepatch':
- inc = argv.shift()
- break
- default:
- inc = 'patch'
- break
- }
- break
- case '--preid':
- identifier = argv.shift()
- break
- case '-r': case '--range':
- range.push(argv.shift())
- break
- case '-c': case '--coerce':
- coerce = true
- break
- case '-h': case '--help': case '-?':
- return help()
- default:
- versions.push(a)
- break
- }
- }
-
- var options = { loose: loose, includePrerelease: includePrerelease }
-
- versions = versions.map(function (v) {
- return coerce ? (semver.coerce(v) || { version: v }).version : v
- }).filter(function (v) {
- return semver.valid(v)
- })
- if (!versions.length) return fail()
- if (inc && (versions.length !== 1 || range.length)) { return failInc() }
-
- for (var i = 0, l = range.length; i < l; i++) {
- versions = versions.filter(function (v) {
- return semver.satisfies(v, range[i], options)
- })
- if (!versions.length) return fail()
- }
- return success(versions)
-}
-
-function failInc () {
- console.error('--inc can only be used on a single version with no range')
- fail()
-}
-
-function fail () { process.exit(1) }
-
-function success () {
- var compare = reverse ? 'rcompare' : 'compare'
- versions.sort(function (a, b) {
- return semver[compare](a, b, options)
- }).map(function (v) {
- return semver.clean(v, options)
- }).map(function (v) {
- return inc ? semver.inc(v, inc, options, identifier) : v
- }).forEach(function (v, i, _) { console.log(v) })
-}
-
-function help () {
- console.log(['SemVer ' + version,
- '',
- 'A JavaScript implementation of the https://semver.org/ specification',
- 'Copyright Isaac Z. Schlueter',
- '',
- 'Usage: semver [options] [ [...]]',
- 'Prints valid versions sorted by SemVer precedence',
- '',
- 'Options:',
- '-r --range ',
- ' Print versions that match the specified range.',
- '',
- '-i --increment []',
- ' Increment a version by the specified level. Level can',
- ' be one of: major, minor, patch, premajor, preminor,',
- " prepatch, or prerelease. Default level is 'patch'.",
- ' Only one version may be specified.',
- '',
- '--preid ',
- ' Identifier to be used to prefix premajor, preminor,',
- ' prepatch or prerelease version increments.',
- '',
- '-l --loose',
- ' Interpret versions and ranges loosely',
- '',
- '-p --include-prerelease',
- ' Always include prerelease versions in range matching',
- '',
- '-c --coerce',
- ' Coerce a string into SemVer if possible',
- ' (does not imply --loose)',
- '',
- 'Program exits successfully if any valid version satisfies',
- 'all supplied ranges, and prints all satisfying versions.',
- '',
- 'If no satisfying versions are found, then exits failure.',
- '',
- 'Versions are printed in ascending order, so supplying',
- 'multiple versions to the utility will just sort them.'
- ].join('\n'))
-}
diff --git a/node_modules/semver/package.json b/node_modules/semver/package.json
deleted file mode 100644
index 69d2db1..0000000
--- a/node_modules/semver/package.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "name": "semver",
- "version": "5.7.1",
- "description": "The semantic version parser used by npm.",
- "main": "semver.js",
- "scripts": {
- "test": "tap",
- "preversion": "npm test",
- "postversion": "npm publish",
- "postpublish": "git push origin --all; git push origin --tags"
- },
- "devDependencies": {
- "tap": "^13.0.0-rc.18"
- },
- "license": "ISC",
- "repository": "https://github.com/npm/node-semver",
- "bin": {
- "semver": "./bin/semver"
- },
- "files": [
- "bin",
- "range.bnf",
- "semver.js"
- ],
- "tap": {
- "check-coverage": true
- }
-}
diff --git a/node_modules/semver/range.bnf b/node_modules/semver/range.bnf
deleted file mode 100644
index d4c6ae0..0000000
--- a/node_modules/semver/range.bnf
+++ /dev/null
@@ -1,16 +0,0 @@
-range-set ::= range ( logical-or range ) *
-logical-or ::= ( ' ' ) * '||' ( ' ' ) *
-range ::= hyphen | simple ( ' ' simple ) * | ''
-hyphen ::= partial ' - ' partial
-simple ::= primitive | partial | tilde | caret
-primitive ::= ( '<' | '>' | '>=' | '<=' | '=' ) partial
-partial ::= xr ( '.' xr ( '.' xr qualifier ? )? )?
-xr ::= 'x' | 'X' | '*' | nr
-nr ::= '0' | [1-9] ( [0-9] ) *
-tilde ::= '~' partial
-caret ::= '^' partial
-qualifier ::= ( '-' pre )? ( '+' build )?
-pre ::= parts
-build ::= parts
-parts ::= part ( '.' part ) *
-part ::= nr | [-0-9A-Za-z]+
diff --git a/node_modules/semver/semver.js b/node_modules/semver/semver.js
deleted file mode 100644
index d315d5d..0000000
--- a/node_modules/semver/semver.js
+++ /dev/null
@@ -1,1483 +0,0 @@
-exports = module.exports = SemVer
-
-var debug
-/* istanbul ignore next */
-if (typeof process === 'object' &&
- process.env &&
- process.env.NODE_DEBUG &&
- /\bsemver\b/i.test(process.env.NODE_DEBUG)) {
- debug = function () {
- var args = Array.prototype.slice.call(arguments, 0)
- args.unshift('SEMVER')
- console.log.apply(console, args)
- }
-} else {
- debug = function () {}
-}
-
-// Note: this is the semver.org version of the spec that it implements
-// Not necessarily the package version of this code.
-exports.SEMVER_SPEC_VERSION = '2.0.0'
-
-var MAX_LENGTH = 256
-var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||
- /* istanbul ignore next */ 9007199254740991
-
-// Max safe segment length for coercion.
-var MAX_SAFE_COMPONENT_LENGTH = 16
-
-// The actual regexps go on exports.re
-var re = exports.re = []
-var src = exports.src = []
-var R = 0
-
-// The following Regular Expressions can be used for tokenizing,
-// validating, and parsing SemVer version strings.
-
-// ## Numeric Identifier
-// A single `0`, or a non-zero digit followed by zero or more digits.
-
-var NUMERICIDENTIFIER = R++
-src[NUMERICIDENTIFIER] = '0|[1-9]\\d*'
-var NUMERICIDENTIFIERLOOSE = R++
-src[NUMERICIDENTIFIERLOOSE] = '[0-9]+'
-
-// ## Non-numeric Identifier
-// Zero or more digits, followed by a letter or hyphen, and then zero or
-// more letters, digits, or hyphens.
-
-var NONNUMERICIDENTIFIER = R++
-src[NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-][a-zA-Z0-9-]*'
-
-// ## Main Version
-// Three dot-separated numeric identifiers.
-
-var MAINVERSION = R++
-src[MAINVERSION] = '(' + src[NUMERICIDENTIFIER] + ')\\.' +
- '(' + src[NUMERICIDENTIFIER] + ')\\.' +
- '(' + src[NUMERICIDENTIFIER] + ')'
-
-var MAINVERSIONLOOSE = R++
-src[MAINVERSIONLOOSE] = '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' +
- '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' +
- '(' + src[NUMERICIDENTIFIERLOOSE] + ')'
-
-// ## Pre-release Version Identifier
-// A numeric identifier, or a non-numeric identifier.
-
-var PRERELEASEIDENTIFIER = R++
-src[PRERELEASEIDENTIFIER] = '(?:' + src[NUMERICIDENTIFIER] +
- '|' + src[NONNUMERICIDENTIFIER] + ')'
-
-var PRERELEASEIDENTIFIERLOOSE = R++
-src[PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[NUMERICIDENTIFIERLOOSE] +
- '|' + src[NONNUMERICIDENTIFIER] + ')'
-
-// ## Pre-release Version
-// Hyphen, followed by one or more dot-separated pre-release version
-// identifiers.
-
-var PRERELEASE = R++
-src[PRERELEASE] = '(?:-(' + src[PRERELEASEIDENTIFIER] +
- '(?:\\.' + src[PRERELEASEIDENTIFIER] + ')*))'
-
-var PRERELEASELOOSE = R++
-src[PRERELEASELOOSE] = '(?:-?(' + src[PRERELEASEIDENTIFIERLOOSE] +
- '(?:\\.' + src[PRERELEASEIDENTIFIERLOOSE] + ')*))'
-
-// ## Build Metadata Identifier
-// Any combination of digits, letters, or hyphens.
-
-var BUILDIDENTIFIER = R++
-src[BUILDIDENTIFIER] = '[0-9A-Za-z-]+'
-
-// ## Build Metadata
-// Plus sign, followed by one or more period-separated build metadata
-// identifiers.
-
-var BUILD = R++
-src[BUILD] = '(?:\\+(' + src[BUILDIDENTIFIER] +
- '(?:\\.' + src[BUILDIDENTIFIER] + ')*))'
-
-// ## Full Version String
-// A main version, followed optionally by a pre-release version and
-// build metadata.
-
-// Note that the only major, minor, patch, and pre-release sections of
-// the version string are capturing groups. The build metadata is not a
-// capturing group, because it should not ever be used in version
-// comparison.
-
-var FULL = R++
-var FULLPLAIN = 'v?' + src[MAINVERSION] +
- src[PRERELEASE] + '?' +
- src[BUILD] + '?'
-
-src[FULL] = '^' + FULLPLAIN + '$'
-
-// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.
-// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty
-// common in the npm registry.
-var LOOSEPLAIN = '[v=\\s]*' + src[MAINVERSIONLOOSE] +
- src[PRERELEASELOOSE] + '?' +
- src[BUILD] + '?'
-
-var LOOSE = R++
-src[LOOSE] = '^' + LOOSEPLAIN + '$'
-
-var GTLT = R++
-src[GTLT] = '((?:<|>)?=?)'
-
-// Something like "2.*" or "1.2.x".
-// Note that "x.x" is a valid xRange identifer, meaning "any version"
-// Only the first item is strictly required.
-var XRANGEIDENTIFIERLOOSE = R++
-src[XRANGEIDENTIFIERLOOSE] = src[NUMERICIDENTIFIERLOOSE] + '|x|X|\\*'
-var XRANGEIDENTIFIER = R++
-src[XRANGEIDENTIFIER] = src[NUMERICIDENTIFIER] + '|x|X|\\*'
-
-var XRANGEPLAIN = R++
-src[XRANGEPLAIN] = '[v=\\s]*(' + src[XRANGEIDENTIFIER] + ')' +
- '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' +
- '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' +
- '(?:' + src[PRERELEASE] + ')?' +
- src[BUILD] + '?' +
- ')?)?'
-
-var XRANGEPLAINLOOSE = R++
-src[XRANGEPLAINLOOSE] = '[v=\\s]*(' + src[XRANGEIDENTIFIERLOOSE] + ')' +
- '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' +
- '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' +
- '(?:' + src[PRERELEASELOOSE] + ')?' +
- src[BUILD] + '?' +
- ')?)?'
-
-var XRANGE = R++
-src[XRANGE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAIN] + '$'
-var XRANGELOOSE = R++
-src[XRANGELOOSE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAINLOOSE] + '$'
-
-// Coercion.
-// Extract anything that could conceivably be a part of a valid semver
-var COERCE = R++
-src[COERCE] = '(?:^|[^\\d])' +
- '(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' +
- '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +
- '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +
- '(?:$|[^\\d])'
-
-// Tilde ranges.
-// Meaning is "reasonably at or greater than"
-var LONETILDE = R++
-src[LONETILDE] = '(?:~>?)'
-
-var TILDETRIM = R++
-src[TILDETRIM] = '(\\s*)' + src[LONETILDE] + '\\s+'
-re[TILDETRIM] = new RegExp(src[TILDETRIM], 'g')
-var tildeTrimReplace = '$1~'
-
-var TILDE = R++
-src[TILDE] = '^' + src[LONETILDE] + src[XRANGEPLAIN] + '$'
-var TILDELOOSE = R++
-src[TILDELOOSE] = '^' + src[LONETILDE] + src[XRANGEPLAINLOOSE] + '$'
-
-// Caret ranges.
-// Meaning is "at least and backwards compatible with"
-var LONECARET = R++
-src[LONECARET] = '(?:\\^)'
-
-var CARETTRIM = R++
-src[CARETTRIM] = '(\\s*)' + src[LONECARET] + '\\s+'
-re[CARETTRIM] = new RegExp(src[CARETTRIM], 'g')
-var caretTrimReplace = '$1^'
-
-var CARET = R++
-src[CARET] = '^' + src[LONECARET] + src[XRANGEPLAIN] + '$'
-var CARETLOOSE = R++
-src[CARETLOOSE] = '^' + src[LONECARET] + src[XRANGEPLAINLOOSE] + '$'
-
-// A simple gt/lt/eq thing, or just "" to indicate "any version"
-var COMPARATORLOOSE = R++
-src[COMPARATORLOOSE] = '^' + src[GTLT] + '\\s*(' + LOOSEPLAIN + ')$|^$'
-var COMPARATOR = R++
-src[COMPARATOR] = '^' + src[GTLT] + '\\s*(' + FULLPLAIN + ')$|^$'
-
-// An expression to strip any whitespace between the gtlt and the thing
-// it modifies, so that `> 1.2.3` ==> `>1.2.3`
-var COMPARATORTRIM = R++
-src[COMPARATORTRIM] = '(\\s*)' + src[GTLT] +
- '\\s*(' + LOOSEPLAIN + '|' + src[XRANGEPLAIN] + ')'
-
-// this one has to use the /g flag
-re[COMPARATORTRIM] = new RegExp(src[COMPARATORTRIM], 'g')
-var comparatorTrimReplace = '$1$2$3'
-
-// Something like `1.2.3 - 1.2.4`
-// Note that these all use the loose form, because they'll be
-// checked against either the strict or loose comparator form
-// later.
-var HYPHENRANGE = R++
-src[HYPHENRANGE] = '^\\s*(' + src[XRANGEPLAIN] + ')' +
- '\\s+-\\s+' +
- '(' + src[XRANGEPLAIN] + ')' +
- '\\s*$'
-
-var HYPHENRANGELOOSE = R++
-src[HYPHENRANGELOOSE] = '^\\s*(' + src[XRANGEPLAINLOOSE] + ')' +
- '\\s+-\\s+' +
- '(' + src[XRANGEPLAINLOOSE] + ')' +
- '\\s*$'
-
-// Star ranges basically just allow anything at all.
-var STAR = R++
-src[STAR] = '(<|>)?=?\\s*\\*'
-
-// Compile to actual regexp objects.
-// All are flag-free, unless they were created above with a flag.
-for (var i = 0; i < R; i++) {
- debug(i, src[i])
- if (!re[i]) {
- re[i] = new RegExp(src[i])
- }
-}
-
-exports.parse = parse
-function parse (version, options) {
- if (!options || typeof options !== 'object') {
- options = {
- loose: !!options,
- includePrerelease: false
- }
- }
-
- if (version instanceof SemVer) {
- return version
- }
-
- if (typeof version !== 'string') {
- return null
- }
-
- if (version.length > MAX_LENGTH) {
- return null
- }
-
- var r = options.loose ? re[LOOSE] : re[FULL]
- if (!r.test(version)) {
- return null
- }
-
- try {
- return new SemVer(version, options)
- } catch (er) {
- return null
- }
-}
-
-exports.valid = valid
-function valid (version, options) {
- var v = parse(version, options)
- return v ? v.version : null
-}
-
-exports.clean = clean
-function clean (version, options) {
- var s = parse(version.trim().replace(/^[=v]+/, ''), options)
- return s ? s.version : null
-}
-
-exports.SemVer = SemVer
-
-function SemVer (version, options) {
- if (!options || typeof options !== 'object') {
- options = {
- loose: !!options,
- includePrerelease: false
- }
- }
- if (version instanceof SemVer) {
- if (version.loose === options.loose) {
- return version
- } else {
- version = version.version
- }
- } else if (typeof version !== 'string') {
- throw new TypeError('Invalid Version: ' + version)
- }
-
- if (version.length > MAX_LENGTH) {
- throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')
- }
-
- if (!(this instanceof SemVer)) {
- return new SemVer(version, options)
- }
-
- debug('SemVer', version, options)
- this.options = options
- this.loose = !!options.loose
-
- var m = version.trim().match(options.loose ? re[LOOSE] : re[FULL])
-
- if (!m) {
- throw new TypeError('Invalid Version: ' + version)
- }
-
- this.raw = version
-
- // these are actually numbers
- this.major = +m[1]
- this.minor = +m[2]
- this.patch = +m[3]
-
- if (this.major > MAX_SAFE_INTEGER || this.major < 0) {
- throw new TypeError('Invalid major version')
- }
-
- if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {
- throw new TypeError('Invalid minor version')
- }
-
- if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {
- throw new TypeError('Invalid patch version')
- }
-
- // numberify any prerelease numeric ids
- if (!m[4]) {
- this.prerelease = []
- } else {
- this.prerelease = m[4].split('.').map(function (id) {
- if (/^[0-9]+$/.test(id)) {
- var num = +id
- if (num >= 0 && num < MAX_SAFE_INTEGER) {
- return num
- }
- }
- return id
- })
- }
-
- this.build = m[5] ? m[5].split('.') : []
- this.format()
-}
-
-SemVer.prototype.format = function () {
- this.version = this.major + '.' + this.minor + '.' + this.patch
- if (this.prerelease.length) {
- this.version += '-' + this.prerelease.join('.')
- }
- return this.version
-}
-
-SemVer.prototype.toString = function () {
- return this.version
-}
-
-SemVer.prototype.compare = function (other) {
- debug('SemVer.compare', this.version, this.options, other)
- if (!(other instanceof SemVer)) {
- other = new SemVer(other, this.options)
- }
-
- return this.compareMain(other) || this.comparePre(other)
-}
-
-SemVer.prototype.compareMain = function (other) {
- if (!(other instanceof SemVer)) {
- other = new SemVer(other, this.options)
- }
-
- return compareIdentifiers(this.major, other.major) ||
- compareIdentifiers(this.minor, other.minor) ||
- compareIdentifiers(this.patch, other.patch)
-}
-
-SemVer.prototype.comparePre = function (other) {
- if (!(other instanceof SemVer)) {
- other = new SemVer(other, this.options)
- }
-
- // NOT having a prerelease is > having one
- if (this.prerelease.length && !other.prerelease.length) {
- return -1
- } else if (!this.prerelease.length && other.prerelease.length) {
- return 1
- } else if (!this.prerelease.length && !other.prerelease.length) {
- return 0
- }
-
- var i = 0
- do {
- var a = this.prerelease[i]
- var b = other.prerelease[i]
- debug('prerelease compare', i, a, b)
- if (a === undefined && b === undefined) {
- return 0
- } else if (b === undefined) {
- return 1
- } else if (a === undefined) {
- return -1
- } else if (a === b) {
- continue
- } else {
- return compareIdentifiers(a, b)
- }
- } while (++i)
-}
-
-// preminor will bump the version up to the next minor release, and immediately
-// down to pre-release. premajor and prepatch work the same way.
-SemVer.prototype.inc = function (release, identifier) {
- switch (release) {
- case 'premajor':
- this.prerelease.length = 0
- this.patch = 0
- this.minor = 0
- this.major++
- this.inc('pre', identifier)
- break
- case 'preminor':
- this.prerelease.length = 0
- this.patch = 0
- this.minor++
- this.inc('pre', identifier)
- break
- case 'prepatch':
- // If this is already a prerelease, it will bump to the next version
- // drop any prereleases that might already exist, since they are not
- // relevant at this point.
- this.prerelease.length = 0
- this.inc('patch', identifier)
- this.inc('pre', identifier)
- break
- // If the input is a non-prerelease version, this acts the same as
- // prepatch.
- case 'prerelease':
- if (this.prerelease.length === 0) {
- this.inc('patch', identifier)
- }
- this.inc('pre', identifier)
- break
-
- case 'major':
- // If this is a pre-major version, bump up to the same major version.
- // Otherwise increment major.
- // 1.0.0-5 bumps to 1.0.0
- // 1.1.0 bumps to 2.0.0
- if (this.minor !== 0 ||
- this.patch !== 0 ||
- this.prerelease.length === 0) {
- this.major++
- }
- this.minor = 0
- this.patch = 0
- this.prerelease = []
- break
- case 'minor':
- // If this is a pre-minor version, bump up to the same minor version.
- // Otherwise increment minor.
- // 1.2.0-5 bumps to 1.2.0
- // 1.2.1 bumps to 1.3.0
- if (this.patch !== 0 || this.prerelease.length === 0) {
- this.minor++
- }
- this.patch = 0
- this.prerelease = []
- break
- case 'patch':
- // If this is not a pre-release version, it will increment the patch.
- // If it is a pre-release it will bump up to the same patch version.
- // 1.2.0-5 patches to 1.2.0
- // 1.2.0 patches to 1.2.1
- if (this.prerelease.length === 0) {
- this.patch++
- }
- this.prerelease = []
- break
- // This probably shouldn't be used publicly.
- // 1.0.0 "pre" would become 1.0.0-0 which is the wrong direction.
- case 'pre':
- if (this.prerelease.length === 0) {
- this.prerelease = [0]
- } else {
- var i = this.prerelease.length
- while (--i >= 0) {
- if (typeof this.prerelease[i] === 'number') {
- this.prerelease[i]++
- i = -2
- }
- }
- if (i === -1) {
- // didn't increment anything
- this.prerelease.push(0)
- }
- }
- if (identifier) {
- // 1.2.0-beta.1 bumps to 1.2.0-beta.2,
- // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0
- if (this.prerelease[0] === identifier) {
- if (isNaN(this.prerelease[1])) {
- this.prerelease = [identifier, 0]
- }
- } else {
- this.prerelease = [identifier, 0]
- }
- }
- break
-
- default:
- throw new Error('invalid increment argument: ' + release)
- }
- this.format()
- this.raw = this.version
- return this
-}
-
-exports.inc = inc
-function inc (version, release, loose, identifier) {
- if (typeof (loose) === 'string') {
- identifier = loose
- loose = undefined
- }
-
- try {
- return new SemVer(version, loose).inc(release, identifier).version
- } catch (er) {
- return null
- }
-}
-
-exports.diff = diff
-function diff (version1, version2) {
- if (eq(version1, version2)) {
- return null
- } else {
- var v1 = parse(version1)
- var v2 = parse(version2)
- var prefix = ''
- if (v1.prerelease.length || v2.prerelease.length) {
- prefix = 'pre'
- var defaultResult = 'prerelease'
- }
- for (var key in v1) {
- if (key === 'major' || key === 'minor' || key === 'patch') {
- if (v1[key] !== v2[key]) {
- return prefix + key
- }
- }
- }
- return defaultResult // may be undefined
- }
-}
-
-exports.compareIdentifiers = compareIdentifiers
-
-var numeric = /^[0-9]+$/
-function compareIdentifiers (a, b) {
- var anum = numeric.test(a)
- var bnum = numeric.test(b)
-
- if (anum && bnum) {
- a = +a
- b = +b
- }
-
- return a === b ? 0
- : (anum && !bnum) ? -1
- : (bnum && !anum) ? 1
- : a < b ? -1
- : 1
-}
-
-exports.rcompareIdentifiers = rcompareIdentifiers
-function rcompareIdentifiers (a, b) {
- return compareIdentifiers(b, a)
-}
-
-exports.major = major
-function major (a, loose) {
- return new SemVer(a, loose).major
-}
-
-exports.minor = minor
-function minor (a, loose) {
- return new SemVer(a, loose).minor
-}
-
-exports.patch = patch
-function patch (a, loose) {
- return new SemVer(a, loose).patch
-}
-
-exports.compare = compare
-function compare (a, b, loose) {
- return new SemVer(a, loose).compare(new SemVer(b, loose))
-}
-
-exports.compareLoose = compareLoose
-function compareLoose (a, b) {
- return compare(a, b, true)
-}
-
-exports.rcompare = rcompare
-function rcompare (a, b, loose) {
- return compare(b, a, loose)
-}
-
-exports.sort = sort
-function sort (list, loose) {
- return list.sort(function (a, b) {
- return exports.compare(a, b, loose)
- })
-}
-
-exports.rsort = rsort
-function rsort (list, loose) {
- return list.sort(function (a, b) {
- return exports.rcompare(a, b, loose)
- })
-}
-
-exports.gt = gt
-function gt (a, b, loose) {
- return compare(a, b, loose) > 0
-}
-
-exports.lt = lt
-function lt (a, b, loose) {
- return compare(a, b, loose) < 0
-}
-
-exports.eq = eq
-function eq (a, b, loose) {
- return compare(a, b, loose) === 0
-}
-
-exports.neq = neq
-function neq (a, b, loose) {
- return compare(a, b, loose) !== 0
-}
-
-exports.gte = gte
-function gte (a, b, loose) {
- return compare(a, b, loose) >= 0
-}
-
-exports.lte = lte
-function lte (a, b, loose) {
- return compare(a, b, loose) <= 0
-}
-
-exports.cmp = cmp
-function cmp (a, op, b, loose) {
- switch (op) {
- case '===':
- if (typeof a === 'object')
- a = a.version
- if (typeof b === 'object')
- b = b.version
- return a === b
-
- case '!==':
- if (typeof a === 'object')
- a = a.version
- if (typeof b === 'object')
- b = b.version
- return a !== b
-
- case '':
- case '=':
- case '==':
- return eq(a, b, loose)
-
- case '!=':
- return neq(a, b, loose)
-
- case '>':
- return gt(a, b, loose)
-
- case '>=':
- return gte(a, b, loose)
-
- case '<':
- return lt(a, b, loose)
-
- case '<=':
- return lte(a, b, loose)
-
- default:
- throw new TypeError('Invalid operator: ' + op)
- }
-}
-
-exports.Comparator = Comparator
-function Comparator (comp, options) {
- if (!options || typeof options !== 'object') {
- options = {
- loose: !!options,
- includePrerelease: false
- }
- }
-
- if (comp instanceof Comparator) {
- if (comp.loose === !!options.loose) {
- return comp
- } else {
- comp = comp.value
- }
- }
-
- if (!(this instanceof Comparator)) {
- return new Comparator(comp, options)
- }
-
- debug('comparator', comp, options)
- this.options = options
- this.loose = !!options.loose
- this.parse(comp)
-
- if (this.semver === ANY) {
- this.value = ''
- } else {
- this.value = this.operator + this.semver.version
- }
-
- debug('comp', this)
-}
-
-var ANY = {}
-Comparator.prototype.parse = function (comp) {
- var r = this.options.loose ? re[COMPARATORLOOSE] : re[COMPARATOR]
- var m = comp.match(r)
-
- if (!m) {
- throw new TypeError('Invalid comparator: ' + comp)
- }
-
- this.operator = m[1]
- if (this.operator === '=') {
- this.operator = ''
- }
-
- // if it literally is just '>' or '' then allow anything.
- if (!m[2]) {
- this.semver = ANY
- } else {
- this.semver = new SemVer(m[2], this.options.loose)
- }
-}
-
-Comparator.prototype.toString = function () {
- return this.value
-}
-
-Comparator.prototype.test = function (version) {
- debug('Comparator.test', version, this.options.loose)
-
- if (this.semver === ANY) {
- return true
- }
-
- if (typeof version === 'string') {
- version = new SemVer(version, this.options)
- }
-
- return cmp(version, this.operator, this.semver, this.options)
-}
-
-Comparator.prototype.intersects = function (comp, options) {
- if (!(comp instanceof Comparator)) {
- throw new TypeError('a Comparator is required')
- }
-
- if (!options || typeof options !== 'object') {
- options = {
- loose: !!options,
- includePrerelease: false
- }
- }
-
- var rangeTmp
-
- if (this.operator === '') {
- rangeTmp = new Range(comp.value, options)
- return satisfies(this.value, rangeTmp, options)
- } else if (comp.operator === '') {
- rangeTmp = new Range(this.value, options)
- return satisfies(comp.semver, rangeTmp, options)
- }
-
- var sameDirectionIncreasing =
- (this.operator === '>=' || this.operator === '>') &&
- (comp.operator === '>=' || comp.operator === '>')
- var sameDirectionDecreasing =
- (this.operator === '<=' || this.operator === '<') &&
- (comp.operator === '<=' || comp.operator === '<')
- var sameSemVer = this.semver.version === comp.semver.version
- var differentDirectionsInclusive =
- (this.operator === '>=' || this.operator === '<=') &&
- (comp.operator === '>=' || comp.operator === '<=')
- var oppositeDirectionsLessThan =
- cmp(this.semver, '<', comp.semver, options) &&
- ((this.operator === '>=' || this.operator === '>') &&
- (comp.operator === '<=' || comp.operator === '<'))
- var oppositeDirectionsGreaterThan =
- cmp(this.semver, '>', comp.semver, options) &&
- ((this.operator === '<=' || this.operator === '<') &&
- (comp.operator === '>=' || comp.operator === '>'))
-
- return sameDirectionIncreasing || sameDirectionDecreasing ||
- (sameSemVer && differentDirectionsInclusive) ||
- oppositeDirectionsLessThan || oppositeDirectionsGreaterThan
-}
-
-exports.Range = Range
-function Range (range, options) {
- if (!options || typeof options !== 'object') {
- options = {
- loose: !!options,
- includePrerelease: false
- }
- }
-
- if (range instanceof Range) {
- if (range.loose === !!options.loose &&
- range.includePrerelease === !!options.includePrerelease) {
- return range
- } else {
- return new Range(range.raw, options)
- }
- }
-
- if (range instanceof Comparator) {
- return new Range(range.value, options)
- }
-
- if (!(this instanceof Range)) {
- return new Range(range, options)
- }
-
- this.options = options
- this.loose = !!options.loose
- this.includePrerelease = !!options.includePrerelease
-
- // First, split based on boolean or ||
- this.raw = range
- this.set = range.split(/\s*\|\|\s*/).map(function (range) {
- return this.parseRange(range.trim())
- }, this).filter(function (c) {
- // throw out any that are not relevant for whatever reason
- return c.length
- })
-
- if (!this.set.length) {
- throw new TypeError('Invalid SemVer Range: ' + range)
- }
-
- this.format()
-}
-
-Range.prototype.format = function () {
- this.range = this.set.map(function (comps) {
- return comps.join(' ').trim()
- }).join('||').trim()
- return this.range
-}
-
-Range.prototype.toString = function () {
- return this.range
-}
-
-Range.prototype.parseRange = function (range) {
- var loose = this.options.loose
- range = range.trim()
- // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`
- var hr = loose ? re[HYPHENRANGELOOSE] : re[HYPHENRANGE]
- range = range.replace(hr, hyphenReplace)
- debug('hyphen replace', range)
- // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`
- range = range.replace(re[COMPARATORTRIM], comparatorTrimReplace)
- debug('comparator trim', range, re[COMPARATORTRIM])
-
- // `~ 1.2.3` => `~1.2.3`
- range = range.replace(re[TILDETRIM], tildeTrimReplace)
-
- // `^ 1.2.3` => `^1.2.3`
- range = range.replace(re[CARETTRIM], caretTrimReplace)
-
- // normalize spaces
- range = range.split(/\s+/).join(' ')
-
- // At this point, the range is completely trimmed and
- // ready to be split into comparators.
-
- var compRe = loose ? re[COMPARATORLOOSE] : re[COMPARATOR]
- var set = range.split(' ').map(function (comp) {
- return parseComparator(comp, this.options)
- }, this).join(' ').split(/\s+/)
- if (this.options.loose) {
- // in loose mode, throw out any that are not valid comparators
- set = set.filter(function (comp) {
- return !!comp.match(compRe)
- })
- }
- set = set.map(function (comp) {
- return new Comparator(comp, this.options)
- }, this)
-
- return set
-}
-
-Range.prototype.intersects = function (range, options) {
- if (!(range instanceof Range)) {
- throw new TypeError('a Range is required')
- }
-
- return this.set.some(function (thisComparators) {
- return thisComparators.every(function (thisComparator) {
- return range.set.some(function (rangeComparators) {
- return rangeComparators.every(function (rangeComparator) {
- return thisComparator.intersects(rangeComparator, options)
- })
- })
- })
- })
-}
-
-// Mostly just for testing and legacy API reasons
-exports.toComparators = toComparators
-function toComparators (range, options) {
- return new Range(range, options).set.map(function (comp) {
- return comp.map(function (c) {
- return c.value
- }).join(' ').trim().split(' ')
- })
-}
-
-// comprised of xranges, tildes, stars, and gtlt's at this point.
-// already replaced the hyphen ranges
-// turn into a set of JUST comparators.
-function parseComparator (comp, options) {
- debug('comp', comp, options)
- comp = replaceCarets(comp, options)
- debug('caret', comp)
- comp = replaceTildes(comp, options)
- debug('tildes', comp)
- comp = replaceXRanges(comp, options)
- debug('xrange', comp)
- comp = replaceStars(comp, options)
- debug('stars', comp)
- return comp
-}
-
-function isX (id) {
- return !id || id.toLowerCase() === 'x' || id === '*'
-}
-
-// ~, ~> --> * (any, kinda silly)
-// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0
-// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0
-// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0
-// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0
-// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0
-function replaceTildes (comp, options) {
- return comp.trim().split(/\s+/).map(function (comp) {
- return replaceTilde(comp, options)
- }).join(' ')
-}
-
-function replaceTilde (comp, options) {
- var r = options.loose ? re[TILDELOOSE] : re[TILDE]
- return comp.replace(r, function (_, M, m, p, pr) {
- debug('tilde', comp, _, M, m, p, pr)
- var ret
-
- if (isX(M)) {
- ret = ''
- } else if (isX(m)) {
- ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'
- } else if (isX(p)) {
- // ~1.2 == >=1.2.0 <1.3.0
- ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'
- } else if (pr) {
- debug('replaceTilde pr', pr)
- ret = '>=' + M + '.' + m + '.' + p + '-' + pr +
- ' <' + M + '.' + (+m + 1) + '.0'
- } else {
- // ~1.2.3 == >=1.2.3 <1.3.0
- ret = '>=' + M + '.' + m + '.' + p +
- ' <' + M + '.' + (+m + 1) + '.0'
- }
-
- debug('tilde return', ret)
- return ret
- })
-}
-
-// ^ --> * (any, kinda silly)
-// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0
-// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0
-// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0
-// ^1.2.3 --> >=1.2.3 <2.0.0
-// ^1.2.0 --> >=1.2.0 <2.0.0
-function replaceCarets (comp, options) {
- return comp.trim().split(/\s+/).map(function (comp) {
- return replaceCaret(comp, options)
- }).join(' ')
-}
-
-function replaceCaret (comp, options) {
- debug('caret', comp, options)
- var r = options.loose ? re[CARETLOOSE] : re[CARET]
- return comp.replace(r, function (_, M, m, p, pr) {
- debug('caret', comp, _, M, m, p, pr)
- var ret
-
- if (isX(M)) {
- ret = ''
- } else if (isX(m)) {
- ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'
- } else if (isX(p)) {
- if (M === '0') {
- ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'
- } else {
- ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'
- }
- } else if (pr) {
- debug('replaceCaret pr', pr)
- if (M === '0') {
- if (m === '0') {
- ret = '>=' + M + '.' + m + '.' + p + '-' + pr +
- ' <' + M + '.' + m + '.' + (+p + 1)
- } else {
- ret = '>=' + M + '.' + m + '.' + p + '-' + pr +
- ' <' + M + '.' + (+m + 1) + '.0'
- }
- } else {
- ret = '>=' + M + '.' + m + '.' + p + '-' + pr +
- ' <' + (+M + 1) + '.0.0'
- }
- } else {
- debug('no pr')
- if (M === '0') {
- if (m === '0') {
- ret = '>=' + M + '.' + m + '.' + p +
- ' <' + M + '.' + m + '.' + (+p + 1)
- } else {
- ret = '>=' + M + '.' + m + '.' + p +
- ' <' + M + '.' + (+m + 1) + '.0'
- }
- } else {
- ret = '>=' + M + '.' + m + '.' + p +
- ' <' + (+M + 1) + '.0.0'
- }
- }
-
- debug('caret return', ret)
- return ret
- })
-}
-
-function replaceXRanges (comp, options) {
- debug('replaceXRanges', comp, options)
- return comp.split(/\s+/).map(function (comp) {
- return replaceXRange(comp, options)
- }).join(' ')
-}
-
-function replaceXRange (comp, options) {
- comp = comp.trim()
- var r = options.loose ? re[XRANGELOOSE] : re[XRANGE]
- return comp.replace(r, function (ret, gtlt, M, m, p, pr) {
- debug('xRange', comp, ret, gtlt, M, m, p, pr)
- var xM = isX(M)
- var xm = xM || isX(m)
- var xp = xm || isX(p)
- var anyX = xp
-
- if (gtlt === '=' && anyX) {
- gtlt = ''
- }
-
- if (xM) {
- if (gtlt === '>' || gtlt === '<') {
- // nothing is allowed
- ret = '<0.0.0'
- } else {
- // nothing is forbidden
- ret = '*'
- }
- } else if (gtlt && anyX) {
- // we know patch is an x, because we have any x at all.
- // replace X with 0
- if (xm) {
- m = 0
- }
- p = 0
-
- if (gtlt === '>') {
- // >1 => >=2.0.0
- // >1.2 => >=1.3.0
- // >1.2.3 => >= 1.2.4
- gtlt = '>='
- if (xm) {
- M = +M + 1
- m = 0
- p = 0
- } else {
- m = +m + 1
- p = 0
- }
- } else if (gtlt === '<=') {
- // <=0.7.x is actually <0.8.0, since any 0.7.x should
- // pass. Similarly, <=7.x is actually <8.0.0, etc.
- gtlt = '<'
- if (xm) {
- M = +M + 1
- } else {
- m = +m + 1
- }
- }
-
- ret = gtlt + M + '.' + m + '.' + p
- } else if (xm) {
- ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'
- } else if (xp) {
- ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'
- }
-
- debug('xRange return', ret)
-
- return ret
- })
-}
-
-// Because * is AND-ed with everything else in the comparator,
-// and '' means "any version", just remove the *s entirely.
-function replaceStars (comp, options) {
- debug('replaceStars', comp, options)
- // Looseness is ignored here. star is always as loose as it gets!
- return comp.trim().replace(re[STAR], '')
-}
-
-// This function is passed to string.replace(re[HYPHENRANGE])
-// M, m, patch, prerelease, build
-// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5
-// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do
-// 1.2 - 3.4 => >=1.2.0 <3.5.0
-function hyphenReplace ($0,
- from, fM, fm, fp, fpr, fb,
- to, tM, tm, tp, tpr, tb) {
- if (isX(fM)) {
- from = ''
- } else if (isX(fm)) {
- from = '>=' + fM + '.0.0'
- } else if (isX(fp)) {
- from = '>=' + fM + '.' + fm + '.0'
- } else {
- from = '>=' + from
- }
-
- if (isX(tM)) {
- to = ''
- } else if (isX(tm)) {
- to = '<' + (+tM + 1) + '.0.0'
- } else if (isX(tp)) {
- to = '<' + tM + '.' + (+tm + 1) + '.0'
- } else if (tpr) {
- to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr
- } else {
- to = '<=' + to
- }
-
- return (from + ' ' + to).trim()
-}
-
-// if ANY of the sets match ALL of its comparators, then pass
-Range.prototype.test = function (version) {
- if (!version) {
- return false
- }
-
- if (typeof version === 'string') {
- version = new SemVer(version, this.options)
- }
-
- for (var i = 0; i < this.set.length; i++) {
- if (testSet(this.set[i], version, this.options)) {
- return true
- }
- }
- return false
-}
-
-function testSet (set, version, options) {
- for (var i = 0; i < set.length; i++) {
- if (!set[i].test(version)) {
- return false
- }
- }
-
- if (version.prerelease.length && !options.includePrerelease) {
- // Find the set of versions that are allowed to have prereleases
- // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0
- // That should allow `1.2.3-pr.2` to pass.
- // However, `1.2.4-alpha.notready` should NOT be allowed,
- // even though it's within the range set by the comparators.
- for (i = 0; i < set.length; i++) {
- debug(set[i].semver)
- if (set[i].semver === ANY) {
- continue
- }
-
- if (set[i].semver.prerelease.length > 0) {
- var allowed = set[i].semver
- if (allowed.major === version.major &&
- allowed.minor === version.minor &&
- allowed.patch === version.patch) {
- return true
- }
- }
- }
-
- // Version has a -pre, but it's not one of the ones we like.
- return false
- }
-
- return true
-}
-
-exports.satisfies = satisfies
-function satisfies (version, range, options) {
- try {
- range = new Range(range, options)
- } catch (er) {
- return false
- }
- return range.test(version)
-}
-
-exports.maxSatisfying = maxSatisfying
-function maxSatisfying (versions, range, options) {
- var max = null
- var maxSV = null
- try {
- var rangeObj = new Range(range, options)
- } catch (er) {
- return null
- }
- versions.forEach(function (v) {
- if (rangeObj.test(v)) {
- // satisfies(v, range, options)
- if (!max || maxSV.compare(v) === -1) {
- // compare(max, v, true)
- max = v
- maxSV = new SemVer(max, options)
- }
- }
- })
- return max
-}
-
-exports.minSatisfying = minSatisfying
-function minSatisfying (versions, range, options) {
- var min = null
- var minSV = null
- try {
- var rangeObj = new Range(range, options)
- } catch (er) {
- return null
- }
- versions.forEach(function (v) {
- if (rangeObj.test(v)) {
- // satisfies(v, range, options)
- if (!min || minSV.compare(v) === 1) {
- // compare(min, v, true)
- min = v
- minSV = new SemVer(min, options)
- }
- }
- })
- return min
-}
-
-exports.minVersion = minVersion
-function minVersion (range, loose) {
- range = new Range(range, loose)
-
- var minver = new SemVer('0.0.0')
- if (range.test(minver)) {
- return minver
- }
-
- minver = new SemVer('0.0.0-0')
- if (range.test(minver)) {
- return minver
- }
-
- minver = null
- for (var i = 0; i < range.set.length; ++i) {
- var comparators = range.set[i]
-
- comparators.forEach(function (comparator) {
- // Clone to avoid manipulating the comparator's semver object.
- var compver = new SemVer(comparator.semver.version)
- switch (comparator.operator) {
- case '>':
- if (compver.prerelease.length === 0) {
- compver.patch++
- } else {
- compver.prerelease.push(0)
- }
- compver.raw = compver.format()
- /* fallthrough */
- case '':
- case '>=':
- if (!minver || gt(minver, compver)) {
- minver = compver
- }
- break
- case '<':
- case '<=':
- /* Ignore maximum versions */
- break
- /* istanbul ignore next */
- default:
- throw new Error('Unexpected operation: ' + comparator.operator)
- }
- })
- }
-
- if (minver && range.test(minver)) {
- return minver
- }
-
- return null
-}
-
-exports.validRange = validRange
-function validRange (range, options) {
- try {
- // Return '*' instead of '' so that truthiness works.
- // This will throw if it's invalid anyway
- return new Range(range, options).range || '*'
- } catch (er) {
- return null
- }
-}
-
-// Determine if version is less than all the versions possible in the range
-exports.ltr = ltr
-function ltr (version, range, options) {
- return outside(version, range, '<', options)
-}
-
-// Determine if version is greater than all the versions possible in the range.
-exports.gtr = gtr
-function gtr (version, range, options) {
- return outside(version, range, '>', options)
-}
-
-exports.outside = outside
-function outside (version, range, hilo, options) {
- version = new SemVer(version, options)
- range = new Range(range, options)
-
- var gtfn, ltefn, ltfn, comp, ecomp
- switch (hilo) {
- case '>':
- gtfn = gt
- ltefn = lte
- ltfn = lt
- comp = '>'
- ecomp = '>='
- break
- case '<':
- gtfn = lt
- ltefn = gte
- ltfn = gt
- comp = '<'
- ecomp = '<='
- break
- default:
- throw new TypeError('Must provide a hilo val of "<" or ">"')
- }
-
- // If it satisifes the range it is not outside
- if (satisfies(version, range, options)) {
- return false
- }
-
- // From now on, variable terms are as if we're in "gtr" mode.
- // but note that everything is flipped for the "ltr" function.
-
- for (var i = 0; i < range.set.length; ++i) {
- var comparators = range.set[i]
-
- var high = null
- var low = null
-
- comparators.forEach(function (comparator) {
- if (comparator.semver === ANY) {
- comparator = new Comparator('>=0.0.0')
- }
- high = high || comparator
- low = low || comparator
- if (gtfn(comparator.semver, high.semver, options)) {
- high = comparator
- } else if (ltfn(comparator.semver, low.semver, options)) {
- low = comparator
- }
- })
-
- // If the edge version comparator has a operator then our version
- // isn't outside it
- if (high.operator === comp || high.operator === ecomp) {
- return false
- }
-
- // If the lowest version comparator has an operator and our version
- // is less than it then it isn't higher than the range
- if ((!low.operator || low.operator === comp) &&
- ltefn(version, low.semver)) {
- return false
- } else if (low.operator === ecomp && ltfn(version, low.semver)) {
- return false
- }
- }
- return true
-}
-
-exports.prerelease = prerelease
-function prerelease (version, options) {
- var parsed = parse(version, options)
- return (parsed && parsed.prerelease.length) ? parsed.prerelease : null
-}
-
-exports.intersects = intersects
-function intersects (r1, r2, options) {
- r1 = new Range(r1, options)
- r2 = new Range(r2, options)
- return r1.intersects(r2)
-}
-
-exports.coerce = coerce
-function coerce (version) {
- if (version instanceof SemVer) {
- return version
- }
-
- if (typeof version !== 'string') {
- return null
- }
-
- var match = version.match(re[COERCE])
-
- if (match == null) {
- return null
- }
-
- return parse(match[1] +
- '.' + (match[2] || '0') +
- '.' + (match[3] || '0'))
-}
diff --git a/node_modules/set-blocking/CHANGELOG.md b/node_modules/set-blocking/CHANGELOG.md
deleted file mode 100644
index 03bf591..0000000
--- a/node_modules/set-blocking/CHANGELOG.md
+++ /dev/null
@@ -1,26 +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.
-
-
-# [2.0.0](https://github.com/yargs/set-blocking/compare/v1.0.0...v2.0.0) (2016-05-17)
-
-
-### Features
-
-* add an isTTY check ([#3](https://github.com/yargs/set-blocking/issues/3)) ([66ce277](https://github.com/yargs/set-blocking/commit/66ce277))
-
-
-### BREAKING CHANGES
-
-* stdio/stderr will not be set to blocking if isTTY === false
-
-
-
-
-# 1.0.0 (2016-05-14)
-
-
-### Features
-
-* implemented shim for stream._handle.setBlocking ([6bde0c0](https://github.com/yargs/set-blocking/commit/6bde0c0))
diff --git a/node_modules/set-blocking/LICENSE.txt b/node_modules/set-blocking/LICENSE.txt
deleted file mode 100644
index 836440b..0000000
--- a/node_modules/set-blocking/LICENSE.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-Copyright (c) 2016, Contributors
-
-Permission to use, copy, modify, and/or distribute this software
-for any purpose with or without fee is hereby granted, provided
-that the above copyright notice and this permission notice
-appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE
-LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
-OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/node_modules/set-blocking/README.md b/node_modules/set-blocking/README.md
deleted file mode 100644
index e93b420..0000000
--- a/node_modules/set-blocking/README.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# set-blocking
-
-[![Build Status](https://travis-ci.org/yargs/set-blocking.svg)](https://travis-ci.org/yargs/set-blocking)
-[![NPM version](https://img.shields.io/npm/v/set-blocking.svg)](https://www.npmjs.com/package/set-blocking)
-[![Coverage Status](https://coveralls.io/repos/yargs/set-blocking/badge.svg?branch=)](https://coveralls.io/r/yargs/set-blocking?branch=master)
-[![Standard Version](https://img.shields.io/badge/release-standard%20version-brightgreen.svg)](https://github.com/conventional-changelog/standard-version)
-
-set blocking `stdio` and `stderr` ensuring that terminal output does not truncate.
-
-```js
-const setBlocking = require('set-blocking')
-setBlocking(true)
-console.log(someLargeStringToOutput)
-```
-
-## Historical Context/Word of Warning
-
-This was created as a shim to address the bug discussed in [node #6456](https://github.com/nodejs/node/issues/6456). This bug crops up on
-newer versions of Node.js (`0.12+`), truncating terminal output.
-
-You should be mindful of the side-effects caused by using `set-blocking`:
-
-* if your module sets blocking to `true`, it will effect other modules
- consuming your library. In [yargs](https://github.com/yargs/yargs/blob/master/yargs.js#L653) we only call
- `setBlocking(true)` once we already know we are about to call `process.exit(code)`.
-* this patch will not apply to subprocesses spawned with `isTTY = true`, this is
- the [default `spawn()` behavior](https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options).
-
-## License
-
-ISC
diff --git a/node_modules/set-blocking/index.js b/node_modules/set-blocking/index.js
deleted file mode 100644
index 6f78774..0000000
--- a/node_modules/set-blocking/index.js
+++ /dev/null
@@ -1,7 +0,0 @@
-module.exports = function (blocking) {
- [process.stdout, process.stderr].forEach(function (stream) {
- if (stream._handle && stream.isTTY && typeof stream._handle.setBlocking === 'function') {
- stream._handle.setBlocking(blocking)
- }
- })
-}
diff --git a/node_modules/set-blocking/package.json b/node_modules/set-blocking/package.json
deleted file mode 100644
index c082db7..0000000
--- a/node_modules/set-blocking/package.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "name": "set-blocking",
- "version": "2.0.0",
- "description": "set blocking stdio and stderr ensuring that terminal output does not truncate",
- "main": "index.js",
- "scripts": {
- "pretest": "standard",
- "test": "nyc mocha ./test/*.js",
- "coverage": "nyc report --reporter=text-lcov | coveralls",
- "version": "standard-version"
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/yargs/set-blocking.git"
- },
- "keywords": [
- "flush",
- "terminal",
- "blocking",
- "shim",
- "stdio",
- "stderr"
- ],
- "author": "Ben Coe ",
- "license": "ISC",
- "bugs": {
- "url": "https://github.com/yargs/set-blocking/issues"
- },
- "homepage": "https://github.com/yargs/set-blocking#readme",
- "devDependencies": {
- "chai": "^3.5.0",
- "coveralls": "^2.11.9",
- "mocha": "^2.4.5",
- "nyc": "^6.4.4",
- "standard": "^7.0.1",
- "standard-version": "^2.2.1"
- },
- "files": [
- "index.js",
- "LICENSE.txt"
- ]
-}
\ No newline at end of file
diff --git a/node_modules/set-value/LICENSE b/node_modules/set-value/LICENSE
deleted file mode 100644
index d734237..0000000
--- a/node_modules/set-value/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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/set-value/README.md b/node_modules/set-value/README.md
deleted file mode 100644
index e336d74..0000000
--- a/node_modules/set-value/README.md
+++ /dev/null
@@ -1,150 +0,0 @@
-# set-value [![NPM version](https://img.shields.io/npm/v/set-value.svg?style=flat)](https://www.npmjs.com/package/set-value) [![NPM monthly downloads](https://img.shields.io/npm/dm/set-value.svg?style=flat)](https://npmjs.org/package/set-value) [![NPM total downloads](https://img.shields.io/npm/dt/set-value.svg?style=flat)](https://npmjs.org/package/set-value) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/set-value.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/set-value)
-
-> Create nested values and any intermediaries using dot notation (`'a.b.c'`) paths.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save set-value
-```
-
-## Usage
-
-```js
-var set = require('set-value');
-set(object, prop, value);
-```
-
-### Params
-
-* `object` **{object}**: The object to set `value` on
-* `prop` **{string}**: The property to set. Dot-notation may be used.
-* `value` **{any}**: The value to set on `object[prop]`
-
-## Examples
-
-Updates and returns the given object:
-
-```js
-var obj = {};
-set(obj, 'a.b.c', 'd');
-console.log(obj);
-//=> { a: { b: { c: 'd' } } }
-```
-
-### Escaping
-
-**Escaping with backslashes**
-
-Prevent set-value from splitting on a dot by prefixing it with backslashes:
-
-```js
-console.log(set({}, 'a\\.b.c', 'd'));
-//=> { 'a.b': { c: 'd' } }
-
-console.log(set({}, 'a\\.b\\.c', 'd'));
-//=> { 'a.b.c': 'd' }
-```
-
-**Escaping with double-quotes or single-quotes**
-
-Wrap double or single quotes around the string, or part of the string, that should not be split by set-value:
-
-```js
-console.log(set({}, '"a.b".c', 'd'));
-//=> { 'a.b': { c: 'd' } }
-
-console.log(set({}, "'a.b'.c", "d"));
-//=> { 'a.b': { c: 'd' } }
-
-console.log(set({}, '"this/is/a/.file.path"', 'd'));
-//=> { 'this/is/a/file.path': 'd' }
-```
-
-### Bracket support
-
-set-value does not split inside brackets or braces:
-
-```js
-console.log(set({}, '[a.b].c', 'd'));
-//=> { '[a.b]': { c: 'd' } }
-
-console.log(set({}, "(a.b).c", "d"));
-//=> { '(a.b)': { c: 'd' } }
-
-console.log(set({}, ".c", "d"));
-//=> { '': { c: 'd' } }
-
-console.log(set({}, "{a..b}.c", "d"));
-//=> { '{a..b}': { c: 'd' } }
-```
-
-## History
-
-### v2.0.0
-
-* Adds support for escaping with double or single quotes. See [escaping](#escaping) for examples.
-* Will no longer split inside brackets or braces. See [bracket support](#bracket-support) for examples.
-
-If there are any regressions please create a [bug report](../../issues/new). Thanks!
-
-## About
-
-### Related projects
-
-* [assign-value](https://www.npmjs.com/package/assign-value): Assign a value or extend a deeply nested property of an object using object path… [more](https://github.com/jonschlinkert/assign-value) | [homepage](https://github.com/jonschlinkert/assign-value "Assign a value or extend a deeply nested property of an object using object path notation.")
-* [get-value](https://www.npmjs.com/package/get-value): Use property paths (`a.b.c`) to get a nested value from an object. | [homepage](https://github.com/jonschlinkert/get-value "Use property paths (`a.b.c`) to get a nested value from an object.")
-* [has-value](https://www.npmjs.com/package/has-value): Returns true if a value exists, false if empty. Works with deeply nested values using… [more](https://github.com/jonschlinkert/has-value) | [homepage](https://github.com/jonschlinkert/has-value "Returns true if a value exists, false if empty. Works with deeply nested values using object paths.")
-* [merge-value](https://www.npmjs.com/package/merge-value): Similar to assign-value but deeply merges object values or nested values using object path/dot notation. | [homepage](https://github.com/jonschlinkert/merge-value "Similar to assign-value but deeply merges object values or nested values using object path/dot notation.")
-* [omit-value](https://www.npmjs.com/package/omit-value): Omit properties from an object or deeply nested property of an object using object path… [more](https://github.com/jonschlinkert/omit-value) | [homepage](https://github.com/jonschlinkert/omit-value "Omit properties from an object or deeply nested property of an object using object path notation.")
-* [set-value](https://www.npmjs.com/package/set-value): Create nested values and any intermediaries using dot notation (`'a.b.c'`) paths. | [homepage](https://github.com/jonschlinkert/set-value "Create nested values and any intermediaries using dot notation (`'a.b.c'`) paths.")
-* [union-value](https://www.npmjs.com/package/union-value): Set an array of unique values as the property of an object. Supports setting deeply… [more](https://github.com/jonschlinkert/union-value) | [homepage](https://github.com/jonschlinkert/union-value "Set an array of unique values as the property of an object. Supports setting deeply nested properties using using object-paths/dot notation.")
-* [unset-value](https://www.npmjs.com/package/unset-value): Delete nested properties from an object using dot notation. | [homepage](https://github.com/jonschlinkert/unset-value "Delete nested properties from an object using dot notation.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 59 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 1 | [vadimdemedes](https://github.com/vadimdemedes) |
-| 1 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) |
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on June 21, 2017._
\ No newline at end of file
diff --git a/node_modules/set-value/index.js b/node_modules/set-value/index.js
deleted file mode 100644
index 0b32e8f..0000000
--- a/node_modules/set-value/index.js
+++ /dev/null
@@ -1,55 +0,0 @@
-/*!
- * set-value
- *
- * Copyright (c) 2014-2015, 2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-var split = require('split-string');
-var extend = require('extend-shallow');
-var isPlainObject = require('is-plain-object');
-var isObject = require('is-extendable');
-
-module.exports = function(obj, prop, val) {
- if (!isObject(obj)) {
- return obj;
- }
-
- if (Array.isArray(prop)) {
- prop = [].concat.apply([], prop).join('.');
- }
-
- if (typeof prop !== 'string') {
- return obj;
- }
-
- var keys = split(prop, {sep: '.', brackets: true}).filter(isValidKey);
- var len = keys.length;
- var idx = -1;
- var current = obj;
-
- while (++idx < len) {
- var key = keys[idx];
- if (idx !== len - 1) {
- if (!isObject(current[key])) {
- current[key] = {};
- }
- current = current[key];
- continue;
- }
-
- if (isPlainObject(current[key]) && isPlainObject(val)) {
- current[key] = extend({}, current[key], val);
- } else {
- current[key] = val;
- }
- }
-
- return obj;
-};
-
-function isValidKey(key) {
- return key !== '__proto__' && key !== 'constructor' && key !== 'prototype';
-}
diff --git a/node_modules/set-value/node_modules/is-plain-object/LICENSE b/node_modules/set-value/node_modules/is-plain-object/LICENSE
deleted file mode 100644
index 3f2eca1..0000000
--- a/node_modules/set-value/node_modules/is-plain-object/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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/set-value/node_modules/is-plain-object/README.md b/node_modules/set-value/node_modules/is-plain-object/README.md
deleted file mode 100644
index 1f9d0c8..0000000
--- a/node_modules/set-value/node_modules/is-plain-object/README.md
+++ /dev/null
@@ -1,104 +0,0 @@
-# is-plain-object [![NPM version](https://img.shields.io/npm/v/is-plain-object.svg?style=flat)](https://www.npmjs.com/package/is-plain-object) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-plain-object.svg?style=flat)](https://npmjs.org/package/is-plain-object) [![NPM total downloads](https://img.shields.io/npm/dt/is-plain-object.svg?style=flat)](https://npmjs.org/package/is-plain-object) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-plain-object.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-plain-object)
-
-> Returns true if an object was created by the `Object` constructor.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save is-plain-object
-```
-
-Use [isobject](https://github.com/jonschlinkert/isobject) if you only want to check if the value is an object and not an array or null.
-
-## Usage
-
-```js
-var isPlainObject = require('is-plain-object');
-```
-
-**true** when created by the `Object` constructor.
-
-```js
-isPlainObject(Object.create({}));
-//=> true
-isPlainObject(Object.create(Object.prototype));
-//=> true
-isPlainObject({foo: 'bar'});
-//=> true
-isPlainObject({});
-//=> true
-```
-
-**false** when not created by the `Object` constructor.
-
-```js
-isPlainObject(1);
-//=> false
-isPlainObject(['foo', 'bar']);
-//=> false
-isPlainObject([]);
-//=> false
-isPlainObject(new Foo);
-//=> false
-isPlainObject(null);
-//=> false
-isPlainObject(Object.create(null));
-//=> false
-```
-
-## About
-
-### Related projects
-
-* [is-number](https://www.npmjs.com/package/is-number): Returns true if the value is a number. comprehensive tests. | [homepage](https://github.com/jonschlinkert/is-number "Returns true if the value is a number. comprehensive tests.")
-* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.")
-* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 17 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 6 | [stevenvachon](https://github.com/stevenvachon) |
-| 3 | [onokumus](https://github.com/onokumus) |
-| 1 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) |
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on July 11, 2017._
\ No newline at end of file
diff --git a/node_modules/set-value/node_modules/is-plain-object/index.d.ts b/node_modules/set-value/node_modules/is-plain-object/index.d.ts
deleted file mode 100644
index 74a44e9..0000000
--- a/node_modules/set-value/node_modules/is-plain-object/index.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export = isPlainObject;
-
-declare function isPlainObject(o: any): boolean;
-
-declare namespace isPlainObject {}
diff --git a/node_modules/set-value/node_modules/is-plain-object/index.js b/node_modules/set-value/node_modules/is-plain-object/index.js
deleted file mode 100644
index c328484..0000000
--- a/node_modules/set-value/node_modules/is-plain-object/index.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/*!
- * is-plain-object
- *
- * Copyright (c) 2014-2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-var isObject = require('isobject');
-
-function isObjectObject(o) {
- return isObject(o) === true
- && Object.prototype.toString.call(o) === '[object Object]';
-}
-
-module.exports = function isPlainObject(o) {
- var ctor,prot;
-
- if (isObjectObject(o) === false) return false;
-
- // If has modified constructor
- ctor = o.constructor;
- if (typeof ctor !== 'function') return false;
-
- // If has modified prototype
- prot = ctor.prototype;
- if (isObjectObject(prot) === false) return false;
-
- // If constructor does not have an Object-specific method
- if (prot.hasOwnProperty('isPrototypeOf') === false) {
- return false;
- }
-
- // Most likely a plain Object
- return true;
-};
diff --git a/node_modules/set-value/node_modules/is-plain-object/package.json b/node_modules/set-value/node_modules/is-plain-object/package.json
deleted file mode 100644
index dd60498..0000000
--- a/node_modules/set-value/node_modules/is-plain-object/package.json
+++ /dev/null
@@ -1,79 +0,0 @@
-{
- "name": "is-plain-object",
- "description": "Returns true if an object was created by the `Object` constructor.",
- "version": "2.0.4",
- "homepage": "https://github.com/jonschlinkert/is-plain-object",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Osman Nuri Okumuş (http://onokumus.com)",
- "Steven Vachon (https://svachon.com)",
- "(https://github.com/wtgtybhertgeghgtwtg)"
- ],
- "repository": "jonschlinkert/is-plain-object",
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-plain-object/issues"
- },
- "license": "MIT",
- "files": [
- "index.d.ts",
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "browserify": "browserify index.js --standalone isPlainObject | uglifyjs --compress --mangle -o browser/is-plain-object.js",
- "test_browser": "mocha-phantomjs test/browser.html",
- "test_node": "mocha",
- "test": "npm run test_node && npm run browserify && npm run test_browser"
- },
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "devDependencies": {
- "browserify": "^14.4.0",
- "chai": "^4.0.2",
- "gulp-format-md": "^1.0.0",
- "mocha": "^3.4.2",
- "mocha-phantomjs": "^4.1.0",
- "phantomjs": "^2.1.7",
- "uglify-js": "^3.0.24"
- },
- "keywords": [
- "check",
- "is",
- "is-object",
- "isobject",
- "javascript",
- "kind",
- "kind-of",
- "object",
- "plain",
- "type",
- "typeof",
- "value"
- ],
- "types": "index.d.ts",
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "is-number",
- "isobject",
- "kind-of"
- ]
- },
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/set-value/package.json b/node_modules/set-value/package.json
deleted file mode 100644
index 736db34..0000000
--- a/node_modules/set-value/package.json
+++ /dev/null
@@ -1,79 +0,0 @@
-{
- "name": "set-value",
- "description": "Create nested values and any intermediaries using dot notation (`'a.b.c'`) paths.",
- "version": "2.0.1",
- "homepage": "https://github.com/jonschlinkert/set-value",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "(https://github.com/wtgtybhertgeghgtwtg)",
- "Vadim Demedes (https://vadimdemedes.com)"
- ],
- "repository": "jonschlinkert/set-value",
- "bugs": {
- "url": "https://github.com/jonschlinkert/set-value/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "extend-shallow": "^2.0.1",
- "is-extendable": "^0.1.1",
- "is-plain-object": "^2.0.3",
- "split-string": "^3.0.1"
- },
- "devDependencies": {
- "gulp-format-md": "^0.1.12",
- "mocha": "^3.4.2"
- },
- "keywords": [
- "get",
- "has",
- "hasown",
- "key",
- "keys",
- "nested",
- "notation",
- "object",
- "prop",
- "properties",
- "property",
- "props",
- "set",
- "value",
- "values"
- ],
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "assign-value",
- "get-value",
- "has-value",
- "merge-value",
- "omit-value",
- "set-value",
- "union-value",
- "unset-value"
- ]
- },
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/snapdragon-node/LICENSE b/node_modules/snapdragon-node/LICENSE
deleted file mode 100644
index 9a1c856..0000000
--- a/node_modules/snapdragon-node/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2017, 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/snapdragon-node/README.md b/node_modules/snapdragon-node/README.md
deleted file mode 100644
index 2300a3c..0000000
--- a/node_modules/snapdragon-node/README.md
+++ /dev/null
@@ -1,453 +0,0 @@
-# snapdragon-node [![NPM version](https://img.shields.io/npm/v/snapdragon-node.svg?style=flat)](https://www.npmjs.com/package/snapdragon-node) [![NPM monthly downloads](https://img.shields.io/npm/dm/snapdragon-node.svg?style=flat)](https://npmjs.org/package/snapdragon-node) [![NPM total downloads](https://img.shields.io/npm/dt/snapdragon-node.svg?style=flat)](https://npmjs.org/package/snapdragon-node) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/snapdragon-node.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/snapdragon-node)
-
-> Snapdragon utility for creating a new AST node in custom code, such as plugins.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save snapdragon-node
-```
-
-## Usage
-
-With [snapdragon](https://github.com/jonschlinkert/snapdragon) v0.9.0 and higher you can use `this.node()` to create a new `Node`, whenever it makes sense.
-
-```js
-var Node = require('snapdragon-node');
-var Snapdragon = require('snapdragon');
-var snapdragon = new Snapdragon();
-
-// example usage inside a parser visitor function
-snapdragon.parser.set('foo', function() {
- // get the current "start" position
- var pos = this.position();
-
- // returns the match if regex matches the substring
- // at the current position on `parser.input`
- var match = this.match(/foo/);
- if (match) {
- // call "pos" on the node, to set the start and end
- // positions, and return the node to push it onto the AST
- // (snapdragon will push the node onto the correct
- // nodes array, based on the stack)
- return pos(new Node({type: 'bar', val: match[0]}));
- }
-});
-```
-
-## API
-
-### [Node](index.js#L22)
-
-Create a new AST `Node` with the given `val` and `type`.
-
-**Params**
-
-* `val` **{String|Object}**: Pass a matched substring, or an object to merge onto the node.
-* `type` **{String}**: The node type to use when `val` is a string.
-* `returns` **{Object}**: node instance
-
-**Example**
-
-```js
-var node = new Node('*', 'Star');
-var node = new Node({type: 'star', val: '*'});
-```
-
-### [.isNode](index.js#L61)
-
-Returns true if the given value is a node.
-
-**Params**
-
-* `node` **{Object}**
-* `returns` **{Boolean}**
-
-**Example**
-
-```js
-var Node = require('snapdragon-node');
-var node = new Node({type: 'foo'});
-console.log(Node.isNode(node)); //=> true
-console.log(Node.isNode({})); //=> false
-```
-
-### [.define](index.js#L80)
-
-Define a non-enumberable property on the node instance. Useful for adding properties that shouldn't be extended or visible during debugging.
-
-**Params**
-
-* `name` **{String}**
-* `val` **{any}**
-* `returns` **{Object}**: returns the node instance
-
-**Example**
-
-```js
-var node = new Node();
-node.define('foo', 'something non-enumerable');
-```
-
-### [.isEmpty](index.js#L100)
-
-Returns true if `node.val` is an empty string, or `node.nodes` does not contain any non-empty text nodes.
-
-**Params**
-
-* `fn` **{Function}**: (optional) Filter function that is called on `node` and/or child nodes. `isEmpty` will return false immediately when the filter function returns false on any nodes.
-* `returns` **{Boolean}**
-
-**Example**
-
-```js
-var node = new Node({type: 'text'});
-node.isEmpty(); //=> true
-node.val = 'foo';
-node.isEmpty(); //=> false
-```
-
-### [.push](index.js#L118)
-
-Given node `foo` and node `bar`, push node `bar` onto `foo.nodes`, and set `foo` as `bar.parent`.
-
-**Params**
-
-* `node` **{Object}**
-* `returns` **{Number}**: Returns the length of `node.nodes`
-
-**Example**
-
-```js
-var foo = new Node({type: 'foo'});
-var bar = new Node({type: 'bar'});
-foo.push(bar);
-```
-
-### [.unshift](index.js#L140)
-
-Given node `foo` and node `bar`, unshift node `bar` onto `foo.nodes`, and set `foo` as `bar.parent`.
-
-**Params**
-
-* `node` **{Object}**
-* `returns` **{Number}**: Returns the length of `node.nodes`
-
-**Example**
-
-```js
-var foo = new Node({type: 'foo'});
-var bar = new Node({type: 'bar'});
-foo.unshift(bar);
-```
-
-### [.pop](index.js#L167)
-
-Pop a node from `node.nodes`.
-
-* `returns` **{Number}**: Returns the popped `node`
-
-**Example**
-
-```js
-var node = new Node({type: 'foo'});
-node.push(new Node({type: 'a'}));
-node.push(new Node({type: 'b'}));
-node.push(new Node({type: 'c'}));
-node.push(new Node({type: 'd'}));
-console.log(node.nodes.length);
-//=> 4
-node.pop();
-console.log(node.nodes.length);
-//=> 3
-```
-
-### [.shift](index.js#L190)
-
-Shift a node from `node.nodes`.
-
-* `returns` **{Object}**: Returns the shifted `node`
-
-**Example**
-
-```js
-var node = new Node({type: 'foo'});
-node.push(new Node({type: 'a'}));
-node.push(new Node({type: 'b'}));
-node.push(new Node({type: 'c'}));
-node.push(new Node({type: 'd'}));
-console.log(node.nodes.length);
-//=> 4
-node.shift();
-console.log(node.nodes.length);
-//=> 3
-```
-
-### [.remove](index.js#L205)
-
-Remove `node` from `node.nodes`.
-
-**Params**
-
-* `node` **{Object}**
-* `returns` **{Object}**: Returns the removed node.
-
-**Example**
-
-```js
-node.remove(childNode);
-```
-
-### [.find](index.js#L231)
-
-Get the first child node from `node.nodes` that matches the given `type`. If `type` is a number, the child node at that index is returned.
-
-**Params**
-
-* `type` **{String}**
-* `returns` **{Object}**: Returns a child node or undefined.
-
-**Example**
-
-```js
-var child = node.find(1); //<= index of the node to get
-var child = node.find('foo'); //<= node.type of a child node
-var child = node.find(/^(foo|bar)$/); //<= regex to match node.type
-var child = node.find(['foo', 'bar']); //<= array of node.type(s)
-```
-
-### [.isType](index.js#L249)
-
-Return true if the node is the given `type`.
-
-**Params**
-
-* `type` **{String}**
-* `returns` **{Boolean}**
-
-**Example**
-
-```js
-var node = new Node({type: 'bar'});
-cosole.log(node.isType('foo')); // false
-cosole.log(node.isType(/^(foo|bar)$/)); // true
-cosole.log(node.isType(['foo', 'bar'])); // true
-```
-
-### [.hasType](index.js#L270)
-
-Return true if the `node.nodes` has the given `type`.
-
-**Params**
-
-* `type` **{String}**
-* `returns` **{Boolean}**
-
-**Example**
-
-```js
-var foo = new Node({type: 'foo'});
-var bar = new Node({type: 'bar'});
-foo.push(bar);
-
-cosole.log(foo.hasType('qux')); // false
-cosole.log(foo.hasType(/^(qux|bar)$/)); // true
-cosole.log(foo.hasType(['qux', 'bar'])); // true
-```
-
-* `returns` **{Array}**
-
-**Example**
-
-```js
-var foo = new Node({type: 'foo'});
-var bar = new Node({type: 'bar'});
-var baz = new Node({type: 'baz'});
-foo.push(bar);
-foo.push(baz);
-
-console.log(bar.siblings.length) // 2
-console.log(baz.siblings.length) // 2
-```
-
-* `returns` **{Number}**
-
-**Example**
-
-```js
-var foo = new Node({type: 'foo'});
-var bar = new Node({type: 'bar'});
-var baz = new Node({type: 'baz'});
-var qux = new Node({type: 'qux'});
-foo.push(bar);
-foo.push(baz);
-foo.unshift(qux);
-
-console.log(bar.index) // 1
-console.log(baz.index) // 2
-console.log(qux.index) // 0
-```
-
-* `returns` **{Object}**
-
-**Example**
-
-```js
-var foo = new Node({type: 'foo'});
-var bar = new Node({type: 'bar'});
-var baz = new Node({type: 'baz'});
-foo.push(bar);
-foo.push(baz);
-
-console.log(baz.prev.type) // 'bar'
-```
-
-* `returns` **{Object}**
-
-**Example**
-
-```js
-var foo = new Node({type: 'foo'});
-var bar = new Node({type: 'bar'});
-var baz = new Node({type: 'baz'});
-foo.push(bar);
-foo.push(baz);
-
-console.log(bar.siblings.length) // 2
-console.log(baz.siblings.length) // 2
-```
-
-* `returns` **{Object}**: The first node, or undefiend
-
-**Example**
-
-```js
-var foo = new Node({type: 'foo'});
-var bar = new Node({type: 'bar'});
-var baz = new Node({type: 'baz'});
-var qux = new Node({type: 'qux'});
-foo.push(bar);
-foo.push(baz);
-foo.push(qux);
-
-console.log(foo.first.type) // 'bar'
-```
-
-* `returns` **{Object}**: The last node, or undefiend
-
-**Example**
-
-```js
-var foo = new Node({type: 'foo'});
-var bar = new Node({type: 'bar'});
-var baz = new Node({type: 'baz'});
-var qux = new Node({type: 'qux'});
-foo.push(bar);
-foo.push(baz);
-foo.push(qux);
-
-console.log(foo.last.type) // 'qux'
-```
-
-* `returns` **{Object}**: The last node, or undefiend
-
-**Example**
-
-```js
-var foo = new Node({type: 'foo'});
-var bar = new Node({type: 'bar'});
-var baz = new Node({type: 'baz'});
-var qux = new Node({type: 'qux'});
-foo.push(bar);
-foo.push(baz);
-foo.push(qux);
-
-console.log(foo.last.type) // 'qux'
-```
-
-## Release history
-
-Changelog entries are classified using the following labels from [keep-a-changelog](https://github.com/olivierlacan/keep-a-changelog):
-
-* `added`: for new features
-* `changed`: for changes in existing functionality
-* `deprecated`: for once-stable features removed in upcoming releases
-* `removed`: for deprecated features removed in this release
-* `fixed`: for any bug fixes
-
-Custom labels used in this changelog:
-
-* `dependencies`: bumps dependencies
-* `housekeeping`: code re-organization, minor edits, or other changes that don't fit in one of the other categories.
-
-### [2.0.0] - 2017-05-01
-
-**Changed**
-
-* `.unshiftNode` was renamed to [.unshift](#unshift)
-* `.pushNode` was renamed to [.push](#push)
-* `.getNode` was renamed to [.find](#find)
-
-**Added**
-
-* [.isNode](#isNode)
-* [.isEmpty](#isEmpty)
-* [.pop](#pop)
-* [.shift](#shift)
-* [.remove](#remove)
-
-### [0.1.0]
-
-First release.
-
-## About
-
-### Related projects
-
-* [breakdance](https://www.npmjs.com/package/breakdance): Breakdance is a node.js library for converting HTML to markdown. Highly pluggable, flexible and easy… [more](http://breakdance.io) | [homepage](http://breakdance.io "Breakdance is a node.js library for converting HTML to markdown. Highly pluggable, flexible and easy to use. It's time for your markup to get down.")
-* [snapdragon-capture](https://www.npmjs.com/package/snapdragon-capture): Snapdragon plugin that adds a capture method to the parser instance. | [homepage](https://github.com/jonschlinkert/snapdragon-capture "Snapdragon plugin that adds a capture method to the parser instance.")
-* [snapdragon-cheerio](https://www.npmjs.com/package/snapdragon-cheerio): Snapdragon plugin for converting a cheerio AST to a snapdragon AST. | [homepage](https://github.com/jonschlinkert/snapdragon-cheerio "Snapdragon plugin for converting a cheerio AST to a snapdragon AST.")
-* [snapdragon-util](https://www.npmjs.com/package/snapdragon-util): Utilities for the snapdragon parser/compiler. | [homepage](https://github.com/jonschlinkert/snapdragon-util "Utilities for the snapdragon parser/compiler.")
-* [snapdragon](https://www.npmjs.com/package/snapdragon): Easy-to-use plugin system for creating powerful, fast and versatile parsers and compilers, with built-in source-map… [more](https://github.com/jonschlinkert/snapdragon) | [homepage](https://github.com/jonschlinkert/snapdragon "Easy-to-use plugin system for creating powerful, fast and versatile parsers and compilers, with built-in source-map support.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-Please read the [contributing guide](.github/contributing.md) for advice on opening issues, pull requests, and coding standards.
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on June 25, 2017._
\ No newline at end of file
diff --git a/node_modules/snapdragon-node/index.js b/node_modules/snapdragon-node/index.js
deleted file mode 100644
index 0f66ff5..0000000
--- a/node_modules/snapdragon-node/index.js
+++ /dev/null
@@ -1,492 +0,0 @@
-'use strict';
-
-var isObject = require('isobject');
-var define = require('define-property');
-var utils = require('snapdragon-util');
-var ownNames;
-
-/**
- * Create a new AST `Node` with the given `val` and `type`.
- *
- * ```js
- * var node = new Node('*', 'Star');
- * var node = new Node({type: 'star', val: '*'});
- * ```
- * @name Node
- * @param {String|Object} `val` Pass a matched substring, or an object to merge onto the node.
- * @param {String} `type` The node type to use when `val` is a string.
- * @return {Object} node instance
- * @api public
- */
-
-function Node(val, type, parent) {
- if (typeof type !== 'string') {
- parent = type;
- type = null;
- }
-
- define(this, 'parent', parent);
- define(this, 'isNode', true);
- define(this, 'expect', null);
-
- if (typeof type !== 'string' && isObject(val)) {
- lazyKeys();
- var keys = Object.keys(val);
- for (var i = 0; i < keys.length; i++) {
- var key = keys[i];
- if (ownNames.indexOf(key) === -1) {
- this[key] = val[key];
- }
- }
- } else {
- this.type = type;
- this.val = val;
- }
-}
-
-/**
- * Returns true if the given value is a node.
- *
- * ```js
- * var Node = require('snapdragon-node');
- * var node = new Node({type: 'foo'});
- * console.log(Node.isNode(node)); //=> true
- * console.log(Node.isNode({})); //=> false
- * ```
- * @param {Object} `node`
- * @returns {Boolean}
- * @api public
- */
-
-Node.isNode = function(node) {
- return utils.isNode(node);
-};
-
-/**
- * Define a non-enumberable property on the node instance.
- * Useful for adding properties that shouldn't be extended
- * or visible during debugging.
- *
- * ```js
- * var node = new Node();
- * node.define('foo', 'something non-enumerable');
- * ```
- * @param {String} `name`
- * @param {any} `val`
- * @return {Object} returns the node instance
- * @api public
- */
-
-Node.prototype.define = function(name, val) {
- define(this, name, val);
- return this;
-};
-
-/**
- * Returns true if `node.val` is an empty string, or `node.nodes` does
- * not contain any non-empty text nodes.
- *
- * ```js
- * var node = new Node({type: 'text'});
- * node.isEmpty(); //=> true
- * node.val = 'foo';
- * node.isEmpty(); //=> false
- * ```
- * @param {Function} `fn` (optional) Filter function that is called on `node` and/or child nodes. `isEmpty` will return false immediately when the filter function returns false on any nodes.
- * @return {Boolean}
- * @api public
- */
-
-Node.prototype.isEmpty = function(fn) {
- return utils.isEmpty(this, fn);
-};
-
-/**
- * Given node `foo` and node `bar`, push node `bar` onto `foo.nodes`, and
- * set `foo` as `bar.parent`.
- *
- * ```js
- * var foo = new Node({type: 'foo'});
- * var bar = new Node({type: 'bar'});
- * foo.push(bar);
- * ```
- * @param {Object} `node`
- * @return {Number} Returns the length of `node.nodes`
- * @api public
- */
-
-Node.prototype.push = function(node) {
- assert(Node.isNode(node), 'expected node to be an instance of Node');
- define(node, 'parent', this);
-
- this.nodes = this.nodes || [];
- return this.nodes.push(node);
-};
-
-/**
- * Given node `foo` and node `bar`, unshift node `bar` onto `foo.nodes`, and
- * set `foo` as `bar.parent`.
- *
- * ```js
- * var foo = new Node({type: 'foo'});
- * var bar = new Node({type: 'bar'});
- * foo.unshift(bar);
- * ```
- * @param {Object} `node`
- * @return {Number} Returns the length of `node.nodes`
- * @api public
- */
-
-Node.prototype.unshift = function(node) {
- assert(Node.isNode(node), 'expected node to be an instance of Node');
- define(node, 'parent', this);
-
- this.nodes = this.nodes || [];
- return this.nodes.unshift(node);
-};
-
-/**
- * Pop a node from `node.nodes`.
- *
- * ```js
- * var node = new Node({type: 'foo'});
- * node.push(new Node({type: 'a'}));
- * node.push(new Node({type: 'b'}));
- * node.push(new Node({type: 'c'}));
- * node.push(new Node({type: 'd'}));
- * console.log(node.nodes.length);
- * //=> 4
- * node.pop();
- * console.log(node.nodes.length);
- * //=> 3
- * ```
- * @return {Number} Returns the popped `node`
- * @api public
- */
-
-Node.prototype.pop = function() {
- return this.nodes && this.nodes.pop();
-};
-
-/**
- * Shift a node from `node.nodes`.
- *
- * ```js
- * var node = new Node({type: 'foo'});
- * node.push(new Node({type: 'a'}));
- * node.push(new Node({type: 'b'}));
- * node.push(new Node({type: 'c'}));
- * node.push(new Node({type: 'd'}));
- * console.log(node.nodes.length);
- * //=> 4
- * node.shift();
- * console.log(node.nodes.length);
- * //=> 3
- * ```
- * @return {Object} Returns the shifted `node`
- * @api public
- */
-
-Node.prototype.shift = function() {
- return this.nodes && this.nodes.shift();
-};
-
-/**
- * Remove `node` from `node.nodes`.
- *
- * ```js
- * node.remove(childNode);
- * ```
- * @param {Object} `node`
- * @return {Object} Returns the removed node.
- * @api public
- */
-
-Node.prototype.remove = function(node) {
- assert(Node.isNode(node), 'expected node to be an instance of Node');
- this.nodes = this.nodes || [];
- var idx = node.index;
- if (idx !== -1) {
- node.index = -1;
- return this.nodes.splice(idx, 1);
- }
- return null;
-};
-
-/**
- * Get the first child node from `node.nodes` that matches the given `type`.
- * If `type` is a number, the child node at that index is returned.
- *
- * ```js
- * var child = node.find(1); //<= index of the node to get
- * var child = node.find('foo'); //<= node.type of a child node
- * var child = node.find(/^(foo|bar)$/); //<= regex to match node.type
- * var child = node.find(['foo', 'bar']); //<= array of node.type(s)
- * ```
- * @param {String} `type`
- * @return {Object} Returns a child node or undefined.
- * @api public
- */
-
-Node.prototype.find = function(type) {
- return utils.findNode(this.nodes, type);
-};
-
-/**
- * Return true if the node is the given `type`.
- *
- * ```js
- * var node = new Node({type: 'bar'});
- * cosole.log(node.isType('foo')); // false
- * cosole.log(node.isType(/^(foo|bar)$/)); // true
- * cosole.log(node.isType(['foo', 'bar'])); // true
- * ```
- * @param {String} `type`
- * @return {Boolean}
- * @api public
- */
-
-Node.prototype.isType = function(type) {
- return utils.isType(this, type);
-};
-
-/**
- * Return true if the `node.nodes` has the given `type`.
- *
- * ```js
- * var foo = new Node({type: 'foo'});
- * var bar = new Node({type: 'bar'});
- * foo.push(bar);
- *
- * cosole.log(foo.hasType('qux')); // false
- * cosole.log(foo.hasType(/^(qux|bar)$/)); // true
- * cosole.log(foo.hasType(['qux', 'bar'])); // true
- * ```
- * @param {String} `type`
- * @return {Boolean}
- * @api public
- */
-
-Node.prototype.hasType = function(type) {
- return utils.hasType(this, type);
-};
-
-/**
- * Get the siblings array, or `null` if it doesn't exist.
- *
- * ```js
- * var foo = new Node({type: 'foo'});
- * var bar = new Node({type: 'bar'});
- * var baz = new Node({type: 'baz'});
- * foo.push(bar);
- * foo.push(baz);
- *
- * console.log(bar.siblings.length) // 2
- * console.log(baz.siblings.length) // 2
- * ```
- * @return {Array}
- * @api public
- */
-
-Object.defineProperty(Node.prototype, 'siblings', {
- set: function() {
- throw new Error('node.siblings is a getter and cannot be defined');
- },
- get: function() {
- return this.parent ? this.parent.nodes : null;
- }
-});
-
-/**
- * Get the node's current index from `node.parent.nodes`.
- * This should always be correct, even when the parent adds nodes.
- *
- * ```js
- * var foo = new Node({type: 'foo'});
- * var bar = new Node({type: 'bar'});
- * var baz = new Node({type: 'baz'});
- * var qux = new Node({type: 'qux'});
- * foo.push(bar);
- * foo.push(baz);
- * foo.unshift(qux);
- *
- * console.log(bar.index) // 1
- * console.log(baz.index) // 2
- * console.log(qux.index) // 0
- * ```
- * @return {Number}
- * @api public
- */
-
-Object.defineProperty(Node.prototype, 'index', {
- set: function(index) {
- define(this, 'idx', index);
- },
- get: function() {
- if (!Array.isArray(this.siblings)) {
- return -1;
- }
- var tok = this.idx !== -1 ? this.siblings[this.idx] : null;
- if (tok !== this) {
- this.idx = this.siblings.indexOf(this);
- }
- return this.idx;
- }
-});
-
-/**
- * Get the previous node from the siblings array or `null`.
- *
- * ```js
- * var foo = new Node({type: 'foo'});
- * var bar = new Node({type: 'bar'});
- * var baz = new Node({type: 'baz'});
- * foo.push(bar);
- * foo.push(baz);
- *
- * console.log(baz.prev.type) // 'bar'
- * ```
- * @return {Object}
- * @api public
- */
-
-Object.defineProperty(Node.prototype, 'prev', {
- set: function() {
- throw new Error('node.prev is a getter and cannot be defined');
- },
- get: function() {
- if (Array.isArray(this.siblings)) {
- return this.siblings[this.index - 1] || this.parent.prev;
- }
- return null;
- }
-});
-
-/**
- * Get the siblings array, or `null` if it doesn't exist.
- *
- * ```js
- * var foo = new Node({type: 'foo'});
- * var bar = new Node({type: 'bar'});
- * var baz = new Node({type: 'baz'});
- * foo.push(bar);
- * foo.push(baz);
- *
- * console.log(bar.siblings.length) // 2
- * console.log(baz.siblings.length) // 2
- * ```
- * @return {Object}
- * @api public
- */
-
-Object.defineProperty(Node.prototype, 'next', {
- set: function() {
- throw new Error('node.next is a getter and cannot be defined');
- },
- get: function() {
- if (Array.isArray(this.siblings)) {
- return this.siblings[this.index + 1] || this.parent.next;
- }
- return null;
- }
-});
-
-/**
- * Get the first node from `node.nodes`.
- *
- * ```js
- * var foo = new Node({type: 'foo'});
- * var bar = new Node({type: 'bar'});
- * var baz = new Node({type: 'baz'});
- * var qux = new Node({type: 'qux'});
- * foo.push(bar);
- * foo.push(baz);
- * foo.push(qux);
- *
- * console.log(foo.first.type) // 'bar'
- * ```
- * @return {Object} The first node, or undefiend
- * @api public
- */
-
-Object.defineProperty(Node.prototype, 'first', {
- get: function() {
- return this.nodes ? this.nodes[0] : null;
- }
-});
-
-/**
- * Get the last node from `node.nodes`.
- *
- * ```js
- * var foo = new Node({type: 'foo'});
- * var bar = new Node({type: 'bar'});
- * var baz = new Node({type: 'baz'});
- * var qux = new Node({type: 'qux'});
- * foo.push(bar);
- * foo.push(baz);
- * foo.push(qux);
- *
- * console.log(foo.last.type) // 'qux'
- * ```
- * @return {Object} The last node, or undefiend
- * @api public
- */
-
-Object.defineProperty(Node.prototype, 'last', {
- get: function() {
- return this.nodes ? utils.last(this.nodes) : null;
- }
-});
-
-/**
- * Get the last node from `node.nodes`.
- *
- * ```js
- * var foo = new Node({type: 'foo'});
- * var bar = new Node({type: 'bar'});
- * var baz = new Node({type: 'baz'});
- * var qux = new Node({type: 'qux'});
- * foo.push(bar);
- * foo.push(baz);
- * foo.push(qux);
- *
- * console.log(foo.last.type) // 'qux'
- * ```
- * @return {Object} The last node, or undefiend
- * @api public
- */
-
-Object.defineProperty(Node.prototype, 'scope', {
- get: function() {
- if (this.isScope !== true) {
- return this.parent ? this.parent.scope : this;
- }
- return this;
- }
-});
-
-/**
- * Get own property names from Node prototype, but only the
- * first time `Node` is instantiated
- */
-
-function lazyKeys() {
- if (!ownNames) {
- ownNames = Object.getOwnPropertyNames(Node.prototype);
- }
-}
-
-/**
- * Simplified assertion. Throws an error is `val` is falsey.
- */
-
-function assert(val, message) {
- if (!val) throw new Error(message);
-}
-
-/**
- * Expose `Node`
- */
-
-exports = module.exports = Node;
diff --git a/node_modules/snapdragon-node/node_modules/define-property/LICENSE b/node_modules/snapdragon-node/node_modules/define-property/LICENSE
deleted file mode 100644
index ec85897..0000000
--- a/node_modules/snapdragon-node/node_modules/define-property/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015, 2017, 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/snapdragon-node/node_modules/define-property/README.md b/node_modules/snapdragon-node/node_modules/define-property/README.md
deleted file mode 100644
index 2f1af05..0000000
--- a/node_modules/snapdragon-node/node_modules/define-property/README.md
+++ /dev/null
@@ -1,95 +0,0 @@
-# define-property [![NPM version](https://img.shields.io/npm/v/define-property.svg?style=flat)](https://www.npmjs.com/package/define-property) [![NPM monthly downloads](https://img.shields.io/npm/dm/define-property.svg?style=flat)](https://npmjs.org/package/define-property) [![NPM total downloads](https://img.shields.io/npm/dt/define-property.svg?style=flat)](https://npmjs.org/package/define-property) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/define-property.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/define-property)
-
-> Define a non-enumerable property on an object.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save define-property
-```
-
-Install with [yarn](https://yarnpkg.com):
-
-```sh
-$ yarn add define-property
-```
-
-## Usage
-
-**Params**
-
-* `obj`: The object on which to define the property.
-* `prop`: The name of the property to be defined or modified.
-* `descriptor`: The descriptor for the property being defined or modified.
-
-```js
-var define = require('define-property');
-var obj = {};
-define(obj, 'foo', function(val) {
- return val.toUpperCase();
-});
-
-console.log(obj);
-//=> {}
-
-console.log(obj.foo('bar'));
-//=> 'BAR'
-```
-
-**get/set**
-
-```js
-define(obj, 'foo', {
- get: function() {},
- set: function() {}
-});
-```
-
-## About
-
-### Related projects
-
-* [assign-deep](https://www.npmjs.com/package/assign-deep): Deeply assign the enumerable properties and/or es6 Symbol properies of source objects to the target… [more](https://github.com/jonschlinkert/assign-deep) | [homepage](https://github.com/jonschlinkert/assign-deep "Deeply assign the enumerable properties and/or es6 Symbol properies of source objects to the target (first) object.")
-* [extend-shallow](https://www.npmjs.com/package/extend-shallow): Extend an object with the properties of additional objects. node.js/javascript util. | [homepage](https://github.com/jonschlinkert/extend-shallow "Extend an object with the properties of additional objects. node.js/javascript util.")
-* [merge-deep](https://www.npmjs.com/package/merge-deep): Recursively merge values in a javascript object. | [homepage](https://github.com/jonschlinkert/merge-deep "Recursively merge values in a javascript object.")
-* [mixin-deep](https://www.npmjs.com/package/mixin-deep): Deeply mix the properties of objects into the first object. Like merge-deep, but doesn't clone. | [homepage](https://github.com/jonschlinkert/mixin-deep "Deeply mix the properties of objects into the first object. Like merge-deep, but doesn't clone.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.5.0, on April 20, 2017._
\ No newline at end of file
diff --git a/node_modules/snapdragon-node/node_modules/define-property/index.js b/node_modules/snapdragon-node/node_modules/define-property/index.js
deleted file mode 100644
index 27c19eb..0000000
--- a/node_modules/snapdragon-node/node_modules/define-property/index.js
+++ /dev/null
@@ -1,31 +0,0 @@
-/*!
- * define-property
- *
- * Copyright (c) 2015, 2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-var isDescriptor = require('is-descriptor');
-
-module.exports = function defineProperty(obj, prop, val) {
- if (typeof obj !== 'object' && typeof obj !== 'function') {
- throw new TypeError('expected an object or function.');
- }
-
- if (typeof prop !== 'string') {
- throw new TypeError('expected `prop` to be a string.');
- }
-
- if (isDescriptor(val) && ('set' in val || 'get' in val)) {
- return Object.defineProperty(obj, prop, val);
- }
-
- return Object.defineProperty(obj, prop, {
- configurable: true,
- enumerable: false,
- writable: true,
- value: val
- });
-};
diff --git a/node_modules/snapdragon-node/node_modules/define-property/package.json b/node_modules/snapdragon-node/node_modules/define-property/package.json
deleted file mode 100644
index e0ab1ca..0000000
--- a/node_modules/snapdragon-node/node_modules/define-property/package.json
+++ /dev/null
@@ -1,62 +0,0 @@
-{
- "name": "define-property",
- "description": "Define a non-enumerable property on an object.",
- "version": "1.0.0",
- "homepage": "https://github.com/jonschlinkert/define-property",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/define-property",
- "bugs": {
- "url": "https://github.com/jonschlinkert/define-property/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "is-descriptor": "^1.0.0"
- },
- "devDependencies": {
- "gulp-format-md": "^0.1.12",
- "mocha": "^3.2.0"
- },
- "keywords": [
- "define",
- "define-property",
- "enumerable",
- "key",
- "non",
- "non-enumerable",
- "object",
- "prop",
- "property",
- "value"
- ],
- "verb": {
- "related": {
- "list": [
- "extend-shallow",
- "merge-deep",
- "assign-deep",
- "mixin-deep"
- ]
- },
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/snapdragon-node/package.json b/node_modules/snapdragon-node/package.json
deleted file mode 100644
index 2ca8023..0000000
--- a/node_modules/snapdragon-node/package.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "name": "snapdragon-node",
- "description": "Snapdragon utility for creating a new AST node in custom code, such as plugins.",
- "version": "2.1.1",
- "homepage": "https://github.com/jonschlinkert/snapdragon-node",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/snapdragon-node",
- "bugs": {
- "url": "https://github.com/jonschlinkert/snapdragon-node/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "define-property": "^1.0.0",
- "isobject": "^3.0.0",
- "snapdragon-util": "^3.0.1"
- },
- "devDependencies": {
- "gulp": "^3.9.1",
- "gulp-eslint": "^4.0.0",
- "gulp-format-md": "^0.1.12",
- "gulp-istanbul": "^1.1.2",
- "gulp-mocha": "^3.0.1",
- "mocha": "^3.4.2",
- "snapdragon": "^0.11.0"
- },
- "keywords": [
- "ast",
- "compile",
- "compiler",
- "convert",
- "node",
- "parse",
- "parser",
- "plugin",
- "render",
- "snapdragon",
- "snapdragonplugin",
- "token",
- "transform"
- ],
- "verb": {
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "list": [
- "breakdance",
- "snapdragon",
- "snapdragon-capture",
- "snapdragon-cheerio",
- "snapdragon-util"
- ]
- },
- "reflinks": [
- "verb",
- "verb-generate-readme"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/snapdragon-util/LICENSE b/node_modules/snapdragon-util/LICENSE
deleted file mode 100644
index 9a1c856..0000000
--- a/node_modules/snapdragon-util/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2017, 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/snapdragon-util/README.md b/node_modules/snapdragon-util/README.md
deleted file mode 100644
index b654e02..0000000
--- a/node_modules/snapdragon-util/README.md
+++ /dev/null
@@ -1,807 +0,0 @@
-# snapdragon-util [![NPM version](https://img.shields.io/npm/v/snapdragon-util.svg?style=flat)](https://www.npmjs.com/package/snapdragon-util) [![NPM monthly downloads](https://img.shields.io/npm/dm/snapdragon-util.svg?style=flat)](https://npmjs.org/package/snapdragon-util) [![NPM total downloads](https://img.shields.io/npm/dt/snapdragon-util.svg?style=flat)](https://npmjs.org/package/snapdragon-util) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/snapdragon-util.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/snapdragon-util)
-
-> Utilities for the snapdragon parser/compiler.
-
-
-Table of Contents
-
-- [Install](#install)
-- [Usage](#usage)
-- [API](#api)
-- [Release history](#release-history)
- * [[3.0.0] - 2017-05-01](#300---2017-05-01)
- * [[0.1.0]](#010)
-- [About](#about)
-
-
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save snapdragon-util
-```
-
-Install with [yarn](https://yarnpkg.com):
-
-```sh
-$ yarn add snapdragon-util
-```
-
-## Usage
-
-```js
-var util = require('snapdragon-util');
-```
-
-## API
-
-### [.isNode](index.js#L21)
-
-Returns true if the given value is a node.
-
-**Params**
-
-* `node` **{Object}**: Instance of [snapdragon-node](https://github.com/jonschlinkert/snapdragon-node)
-* `returns` **{Boolean}**
-
-**Example**
-
-```js
-var Node = require('snapdragon-node');
-var node = new Node({type: 'foo'});
-console.log(utils.isNode(node)); //=> true
-console.log(utils.isNode({})); //=> false
-```
-
-### [.noop](index.js#L37)
-
-Emit an empty string for the given `node`.
-
-**Params**
-
-* `node` **{Object}**: Instance of [snapdragon-node](https://github.com/jonschlinkert/snapdragon-node)
-* `returns` **{undefined}**
-
-**Example**
-
-```js
-// do nothing for beginning-of-string
-snapdragon.compiler.set('bos', utils.noop);
-```
-
-### [.identity](index.js#L53)
-
-Appdend `node.val` to `compiler.output`, exactly as it was created by the parser.
-
-**Params**
-
-* `node` **{Object}**: Instance of [snapdragon-node](https://github.com/jonschlinkert/snapdragon-node)
-* `returns` **{undefined}**
-
-**Example**
-
-```js
-snapdragon.compiler.set('text', utils.identity);
-```
-
-### [.append](index.js#L76)
-
-Previously named `.emit`, this method appends the given `val` to `compiler.output` for the given node. Useful when you know what value should be appended advance, regardless of the actual value of `node.val`.
-
-**Params**
-
-* `node` **{Object}**: Instance of [snapdragon-node](https://github.com/jonschlinkert/snapdragon-node)
-* `returns` **{Function}**: Returns a compiler middleware function.
-
-**Example**
-
-```js
-snapdragon.compiler
- .set('i', function(node) {
- this.mapVisit(node);
- })
- .set('i.open', utils.append(''))
- .set('i.close', utils.append(' '))
-```
-
-### [.toNoop](index.js#L99)
-
-Used in compiler middleware, this onverts an AST node into an empty `text` node and deletes `node.nodes` if it exists. The advantage of this method is that, as opposed to completely removing the node, indices will not need to be re-calculated in sibling nodes, and nothing is appended to the output.
-
-**Params**
-
-* `node` **{Object}**: Instance of [snapdragon-node](https://github.com/jonschlinkert/snapdragon-node)
-* `nodes` **{Array}**: Optionally pass a new `nodes` value, to replace the existing `node.nodes` array.
-
-**Example**
-
-```js
-utils.toNoop(node);
-// convert `node.nodes` to the given value instead of deleting it
-utils.toNoop(node, []);
-```
-
-### [.visit](index.js#L128)
-
-Visit `node` with the given `fn`. The built-in `.visit` method in snapdragon automatically calls registered compilers, this allows you to pass a visitor function.
-
-**Params**
-
-* `node` **{Object}**: Instance of [snapdragon-node](https://github.com/jonschlinkert/snapdragon-node)
-* `fn` **{Function}**
-* `returns` **{Object}**: returns the node after recursively visiting all child nodes.
-
-**Example**
-
-```js
-snapdragon.compiler.set('i', function(node) {
- utils.visit(node, function(childNode) {
- // do stuff with "childNode"
- return childNode;
- });
-});
-```
-
-### [.mapVisit](index.js#L155)
-
-Map [visit](#visit) the given `fn` over `node.nodes`. This is called by [visit](#visit), use this method if you do not want `fn` to be called on the first node.
-
-**Params**
-
-* `node` **{Object}**: Instance of [snapdragon-node](https://github.com/jonschlinkert/snapdragon-node)
-* `options` **{Object}**
-* `fn` **{Function}**
-* `returns` **{Object}**: returns the node
-
-**Example**
-
-```js
-snapdragon.compiler.set('i', function(node) {
- utils.mapVisit(node, function(childNode) {
- // do stuff with "childNode"
- return childNode;
- });
-});
-```
-
-### [.addOpen](index.js#L194)
-
-Unshift an `*.open` node onto `node.nodes`.
-
-**Params**
-
-* `node` **{Object}**: Instance of [snapdragon-node](https://github.com/jonschlinkert/snapdragon-node)
-* `Node` **{Function}**: (required) Node constructor function from [snapdragon-node](https://github.com/jonschlinkert/snapdragon-node).
-* `filter` **{Function}**: Optionaly specify a filter function to exclude the node.
-* `returns` **{Object}**: Returns the created opening node.
-
-**Example**
-
-```js
-var Node = require('snapdragon-node');
-snapdragon.parser.set('brace', function(node) {
- var match = this.match(/^{/);
- if (match) {
- var parent = new Node({type: 'brace'});
- utils.addOpen(parent, Node);
- console.log(parent.nodes[0]):
- // { type: 'brace.open', val: '' };
-
- // push the parent "brace" node onto the stack
- this.push(parent);
-
- // return the parent node, so it's also added to the AST
- return brace;
- }
-});
-```
-
-### [.addClose](index.js#L244)
-
-Push a `*.close` node onto `node.nodes`.
-
-**Params**
-
-* `node` **{Object}**: Instance of [snapdragon-node](https://github.com/jonschlinkert/snapdragon-node)
-* `Node` **{Function}**: (required) Node constructor function from [snapdragon-node](https://github.com/jonschlinkert/snapdragon-node).
-* `filter` **{Function}**: Optionaly specify a filter function to exclude the node.
-* `returns` **{Object}**: Returns the created closing node.
-
-**Example**
-
-```js
-var Node = require('snapdragon-node');
-snapdragon.parser.set('brace', function(node) {
- var match = this.match(/^}/);
- if (match) {
- var parent = this.parent();
- if (parent.type !== 'brace') {
- throw new Error('missing opening: ' + '}');
- }
-
- utils.addClose(parent, Node);
- console.log(parent.nodes[parent.nodes.length - 1]):
- // { type: 'brace.close', val: '' };
-
- // no need to return a node, since the parent
- // was already added to the AST
- return;
- }
-});
-```
-
-### [.wrapNodes](index.js#L274)
-
-Wraps the given `node` with `*.open` and `*.close` nodes.
-
-**Params**
-
-* `node` **{Object}**: Instance of [snapdragon-node](https://github.com/jonschlinkert/snapdragon-node)
-* `Node` **{Function}**: (required) Node constructor function from [snapdragon-node](https://github.com/jonschlinkert/snapdragon-node).
-* `filter` **{Function}**: Optionaly specify a filter function to exclude the node.
-* `returns` **{Object}**: Returns the node
-
-### [.pushNode](index.js#L299)
-
-Push the given `node` onto `parent.nodes`, and set `parent` as `node.parent.
-
-**Params**
-
-* `parent` **{Object}**
-* `node` **{Object}**: Instance of [snapdragon-node](https://github.com/jonschlinkert/snapdragon-node)
-* `returns` **{Object}**: Returns the child node
-
-**Example**
-
-```js
-var parent = new Node({type: 'foo'});
-var node = new Node({type: 'bar'});
-utils.pushNode(parent, node);
-console.log(parent.nodes[0].type) // 'bar'
-console.log(node.parent.type) // 'foo'
-```
-
-### [.unshiftNode](index.js#L325)
-
-Unshift `node` onto `parent.nodes`, and set `parent` as `node.parent.
-
-**Params**
-
-* `parent` **{Object}**
-* `node` **{Object}**: Instance of [snapdragon-node](https://github.com/jonschlinkert/snapdragon-node)
-* `returns` **{undefined}**
-
-**Example**
-
-```js
-var parent = new Node({type: 'foo'});
-var node = new Node({type: 'bar'});
-utils.unshiftNode(parent, node);
-console.log(parent.nodes[0].type) // 'bar'
-console.log(node.parent.type) // 'foo'
-```
-
-### [.popNode](index.js#L354)
-
-Pop the last `node` off of `parent.nodes`. The advantage of using this method is that it checks for `node.nodes` and works with any version of `snapdragon-node`.
-
-**Params**
-
-* `parent` **{Object}**
-* `node` **{Object}**: Instance of [snapdragon-node](https://github.com/jonschlinkert/snapdragon-node)
-* `returns` **{Number|Undefined}**: Returns the length of `node.nodes` or undefined.
-
-**Example**
-
-```js
-var parent = new Node({type: 'foo'});
-utils.pushNode(parent, new Node({type: 'foo'}));
-utils.pushNode(parent, new Node({type: 'bar'}));
-utils.pushNode(parent, new Node({type: 'baz'}));
-console.log(parent.nodes.length); //=> 3
-utils.popNode(parent);
-console.log(parent.nodes.length); //=> 2
-```
-
-### [.shiftNode](index.js#L382)
-
-Shift the first `node` off of `parent.nodes`. The advantage of using this method is that it checks for `node.nodes` and works with any version of `snapdragon-node`.
-
-**Params**
-
-* `parent` **{Object}**
-* `node` **{Object}**: Instance of [snapdragon-node](https://github.com/jonschlinkert/snapdragon-node)
-* `returns` **{Number|Undefined}**: Returns the length of `node.nodes` or undefined.
-
-**Example**
-
-```js
-var parent = new Node({type: 'foo'});
-utils.pushNode(parent, new Node({type: 'foo'}));
-utils.pushNode(parent, new Node({type: 'bar'}));
-utils.pushNode(parent, new Node({type: 'baz'}));
-console.log(parent.nodes.length); //=> 3
-utils.shiftNode(parent);
-console.log(parent.nodes.length); //=> 2
-```
-
-### [.removeNode](index.js#L409)
-
-Remove the specified `node` from `parent.nodes`.
-
-**Params**
-
-* `parent` **{Object}**
-* `node` **{Object}**: Instance of [snapdragon-node](https://github.com/jonschlinkert/snapdragon-node)
-* `returns` **{Object|undefined}**: Returns the removed node, if successful, or undefined if it does not exist on `parent.nodes`.
-
-**Example**
-
-```js
-var parent = new Node({type: 'abc'});
-var foo = new Node({type: 'foo'});
-utils.pushNode(parent, foo);
-utils.pushNode(parent, new Node({type: 'bar'}));
-utils.pushNode(parent, new Node({type: 'baz'}));
-console.log(parent.nodes.length); //=> 3
-utils.removeNode(parent, foo);
-console.log(parent.nodes.length); //=> 2
-```
-
-### [.isType](index.js#L443)
-
-Returns true if `node.type` matches the given `type`. Throws a `TypeError` if `node` is not an instance of `Node`.
-
-**Params**
-
-* `node` **{Object}**: Instance of [snapdragon-node](https://github.com/jonschlinkert/snapdragon-node)
-* `type` **{String}**
-* `returns` **{Boolean}**
-
-**Example**
-
-```js
-var Node = require('snapdragon-node');
-var node = new Node({type: 'foo'});
-console.log(utils.isType(node, 'foo')); // false
-console.log(utils.isType(node, 'bar')); // true
-```
-
-### [.hasType](index.js#L486)
-
-Returns true if the given `node` has the given `type` in `node.nodes`. Throws a `TypeError` if `node` is not an instance of `Node`.
-
-**Params**
-
-* `node` **{Object}**: Instance of [snapdragon-node](https://github.com/jonschlinkert/snapdragon-node)
-* `type` **{String}**
-* `returns` **{Boolean}**
-
-**Example**
-
-```js
-var Node = require('snapdragon-node');
-var node = new Node({
- type: 'foo',
- nodes: [
- new Node({type: 'bar'}),
- new Node({type: 'baz'})
- ]
-});
-console.log(utils.hasType(node, 'xyz')); // false
-console.log(utils.hasType(node, 'baz')); // true
-```
-
-### [.firstOfType](index.js#L519)
-
-Returns the first node from `node.nodes` of the given `type`
-
-**Params**
-
-* `nodes` **{Array}**
-* `type` **{String}**
-* `returns` **{Object|undefined}**: Returns the first matching node or undefined.
-
-**Example**
-
-```js
-var node = new Node({
- type: 'foo',
- nodes: [
- new Node({type: 'text', val: 'abc'}),
- new Node({type: 'text', val: 'xyz'})
- ]
-});
-
-var textNode = utils.firstOfType(node.nodes, 'text');
-console.log(textNode.val);
-//=> 'abc'
-```
-
-### [.findNode](index.js#L556)
-
-Returns the node at the specified index, or the first node of the given `type` from `node.nodes`.
-
-**Params**
-
-* `nodes` **{Array}**
-* `type` **{String|Number}**: Node type or index.
-* `returns` **{Object}**: Returns a node or undefined.
-
-**Example**
-
-```js
-var node = new Node({
- type: 'foo',
- nodes: [
- new Node({type: 'text', val: 'abc'}),
- new Node({type: 'text', val: 'xyz'})
- ]
-});
-
-var nodeOne = utils.findNode(node.nodes, 'text');
-console.log(nodeOne.val);
-//=> 'abc'
-
-var nodeTwo = utils.findNode(node.nodes, 1);
-console.log(nodeTwo.val);
-//=> 'xyz'
-```
-
-### [.isOpen](index.js#L584)
-
-Returns true if the given node is an "*.open" node.
-
-**Params**
-
-* `node` **{Object}**: Instance of [snapdragon-node](https://github.com/jonschlinkert/snapdragon-node)
-* `returns` **{Boolean}**
-
-**Example**
-
-```js
-var Node = require('snapdragon-node');
-var brace = new Node({type: 'brace'});
-var open = new Node({type: 'brace.open'});
-var close = new Node({type: 'brace.close'});
-
-console.log(utils.isOpen(brace)); // false
-console.log(utils.isOpen(open)); // true
-console.log(utils.isOpen(close)); // false
-```
-
-### [.isClose](index.js#L607)
-
-Returns true if the given node is a "*.close" node.
-
-**Params**
-
-* `node` **{Object}**: Instance of [snapdragon-node](https://github.com/jonschlinkert/snapdragon-node)
-* `returns` **{Boolean}**
-
-**Example**
-
-```js
-var Node = require('snapdragon-node');
-var brace = new Node({type: 'brace'});
-var open = new Node({type: 'brace.open'});
-var close = new Node({type: 'brace.close'});
-
-console.log(utils.isClose(brace)); // false
-console.log(utils.isClose(open)); // false
-console.log(utils.isClose(close)); // true
-```
-
-### [.hasOpen](index.js#L633)
-
-Returns true if `node.nodes` **has** an `.open` node
-
-**Params**
-
-* `node` **{Object}**: Instance of [snapdragon-node](https://github.com/jonschlinkert/snapdragon-node)
-* `returns` **{Boolean}**
-
-**Example**
-
-```js
-var Node = require('snapdragon-node');
-var brace = new Node({
- type: 'brace',
- nodes: []
-});
-
-var open = new Node({type: 'brace.open'});
-console.log(utils.hasOpen(brace)); // false
-
-brace.pushNode(open);
-console.log(utils.hasOpen(brace)); // true
-```
-
-### [.hasClose](index.js#L663)
-
-Returns true if `node.nodes` **has** a `.close` node
-
-**Params**
-
-* `node` **{Object}**: Instance of [snapdragon-node](https://github.com/jonschlinkert/snapdragon-node)
-* `returns` **{Boolean}**
-
-**Example**
-
-```js
-var Node = require('snapdragon-node');
-var brace = new Node({
- type: 'brace',
- nodes: []
-});
-
-var close = new Node({type: 'brace.close'});
-console.log(utils.hasClose(brace)); // false
-
-brace.pushNode(close);
-console.log(utils.hasClose(brace)); // true
-```
-
-### [.hasOpenAndClose](index.js#L697)
-
-Returns true if `node.nodes` has both `.open` and `.close` nodes
-
-**Params**
-
-* `node` **{Object}**: Instance of [snapdragon-node](https://github.com/jonschlinkert/snapdragon-node)
-* `returns` **{Boolean}**
-
-**Example**
-
-```js
-var Node = require('snapdragon-node');
-var brace = new Node({
- type: 'brace',
- nodes: []
-});
-
-var open = new Node({type: 'brace.open'});
-var close = new Node({type: 'brace.close'});
-console.log(utils.hasOpen(brace)); // false
-console.log(utils.hasClose(brace)); // false
-
-brace.pushNode(open);
-brace.pushNode(close);
-console.log(utils.hasOpen(brace)); // true
-console.log(utils.hasClose(brace)); // true
-```
-
-### [.addType](index.js#L719)
-
-Push the given `node` onto the `state.inside` array for the given type. This array is used as a specialized "stack" for only the given `node.type`.
-
-**Params**
-
-* `state` **{Object}**: The `compiler.state` object or custom state object.
-* `node` **{Object}**: Instance of [snapdragon-node](https://github.com/jonschlinkert/snapdragon-node)
-* `returns` **{Array}**: Returns the `state.inside` stack for the given type.
-
-**Example**
-
-```js
-var state = { inside: {}};
-var node = new Node({type: 'brace'});
-utils.addType(state, node);
-console.log(state.inside);
-//=> { brace: [{type: 'brace'}] }
-```
-
-### [.removeType](index.js#L759)
-
-Remove the given `node` from the `state.inside` array for the given type. This array is used as a specialized "stack" for only the given `node.type`.
-
-**Params**
-
-* `state` **{Object}**: The `compiler.state` object or custom state object.
-* `node` **{Object}**: Instance of [snapdragon-node](https://github.com/jonschlinkert/snapdragon-node)
-* `returns` **{Array}**: Returns the `state.inside` stack for the given type.
-
-**Example**
-
-```js
-var state = { inside: {}};
-var node = new Node({type: 'brace'});
-utils.addType(state, node);
-console.log(state.inside);
-//=> { brace: [{type: 'brace'}] }
-utils.removeType(state, node);
-//=> { brace: [] }
-```
-
-### [.isEmpty](index.js#L788)
-
-Returns true if `node.val` is an empty string, or `node.nodes` does not contain any non-empty text nodes.
-
-**Params**
-
-* `node` **{Object}**: Instance of [snapdragon-node](https://github.com/jonschlinkert/snapdragon-node)
-* `fn` **{Function}**
-* `returns` **{Boolean}**
-
-**Example**
-
-```js
-var node = new Node({type: 'text'});
-utils.isEmpty(node); //=> true
-node.val = 'foo';
-utils.isEmpty(node); //=> false
-```
-
-### [.isInsideType](index.js#L833)
-
-Returns true if the `state.inside` stack for the given type exists and has one or more nodes on it.
-
-**Params**
-
-* `state` **{Object}**
-* `type` **{String}**
-* `returns` **{Boolean}**
-
-**Example**
-
-```js
-var state = { inside: {}};
-var node = new Node({type: 'brace'});
-console.log(utils.isInsideType(state, 'brace')); //=> false
-utils.addType(state, node);
-console.log(utils.isInsideType(state, 'brace')); //=> true
-utils.removeType(state, node);
-console.log(utils.isInsideType(state, 'brace')); //=> false
-```
-
-### [.isInside](index.js#L867)
-
-Returns true if `node` is either a child or grand-child of the given `type`, or `state.inside[type]` is a non-empty array.
-
-**Params**
-
-* `state` **{Object}**: Either the `compiler.state` object, if it exists, or a user-supplied state object.
-* `node` **{Object}**: Instance of [snapdragon-node](https://github.com/jonschlinkert/snapdragon-node)
-* `type` **{String}**: The `node.type` to check for.
-* `returns` **{Boolean}**
-
-**Example**
-
-```js
-var state = { inside: {}};
-var node = new Node({type: 'brace'});
-var open = new Node({type: 'brace.open'});
-console.log(utils.isInside(state, open, 'brace')); //=> false
-utils.pushNode(node, open);
-console.log(utils.isInside(state, open, 'brace')); //=> true
-```
-
-### [.last](index.js#L915)
-
-Get the last `n` element from the given `array`. Used for getting
-a node from `node.nodes.`
-
-**Params**
-
-* `array` **{Array}**
-* `n` **{Number}**
-* `returns` **{undefined}**
-
-### [.arrayify](index.js#L935)
-
-Cast the given `val` to an array.
-
-**Params**
-
-* `val` **{any}**
-* `returns` **{Array}**
-
-**Example**
-
-```js
-console.log(utils.arraify(''));
-//=> []
-console.log(utils.arraify('foo'));
-//=> ['foo']
-console.log(utils.arraify(['foo']));
-//=> ['foo']
-```
-
-### [.stringify](index.js#L948)
-
-Convert the given `val` to a string by joining with `,`. Useful
-for creating a cheerio/CSS/DOM-style selector from a list of strings.
-
-**Params**
-
-* `val` **{any}**
-* `returns` **{Array}**
-
-### [.trim](index.js#L961)
-
-Ensure that the given value is a string and call `.trim()` on it,
-or return an empty string.
-
-**Params**
-
-* `str` **{String}**
-* `returns` **{String}**
-
-## Release history
-
-Changelog entries are classified using the following labels from [keep-a-changelog](https://github.com/olivierlacan/keep-a-changelog):
-
-* `added`: for new features
-* `changed`: for changes in existing functionality
-* `deprecated`: for once-stable features removed in upcoming releases
-* `removed`: for deprecated features removed in this release
-* `fixed`: for any bug fixes
-
-Custom labels used in this changelog:
-
-* `dependencies`: bumps dependencies
-* `housekeeping`: code re-organization, minor edits, or other changes that don't fit in one of the other categories.
-
-### [3.0.0] - 2017-05-01
-
-**Changed**
-
-* `.emit` was renamed to [.append](#append)
-* `.addNode` was renamed to [.pushNode](#pushNode)
-* `.getNode` was renamed to [.findNode](#findNode)
-* `.isEmptyNodes` was renamed to [.isEmpty](#isEmpty): also now works with `node.nodes` and/or `node.val`
-
-**Added**
-
-* [.identity](#identity)
-* [.removeNode](#removeNode)
-* [.shiftNode](#shiftNode)
-* [.popNode](#popNode)
-
-### [0.1.0]
-
-First release.
-
-## About
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-Please read the [contributing guide](.github/contributing.md) for advice on opening issues, pull requests, and coding standards.
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on May 01, 2017._
\ No newline at end of file
diff --git a/node_modules/snapdragon-util/index.js b/node_modules/snapdragon-util/index.js
deleted file mode 100644
index 68a030e..0000000
--- a/node_modules/snapdragon-util/index.js
+++ /dev/null
@@ -1,1019 +0,0 @@
-'use strict';
-
-var typeOf = require('kind-of');
-var utils = module.exports;
-
-/**
- * Returns true if the given value is a node.
- *
- * ```js
- * var Node = require('snapdragon-node');
- * var node = new Node({type: 'foo'});
- * console.log(utils.isNode(node)); //=> true
- * console.log(utils.isNode({})); //=> false
- * ```
- * @param {Object} `node` Instance of [snapdragon-node][]
- * @returns {Boolean}
- * @api public
- */
-
-utils.isNode = function(node) {
- return typeOf(node) === 'object' && node.isNode === true;
-};
-
-/**
- * Emit an empty string for the given `node`.
- *
- * ```js
- * // do nothing for beginning-of-string
- * snapdragon.compiler.set('bos', utils.noop);
- * ```
- * @param {Object} `node` Instance of [snapdragon-node][]
- * @returns {undefined}
- * @api public
- */
-
-utils.noop = function(node) {
- append(this, '', node);
-};
-
-/**
- * Appdend `node.val` to `compiler.output`, exactly as it was created
- * by the parser.
- *
- * ```js
- * snapdragon.compiler.set('text', utils.identity);
- * ```
- * @param {Object} `node` Instance of [snapdragon-node][]
- * @returns {undefined}
- * @api public
- */
-
-utils.identity = function(node) {
- append(this, node.val, node);
-};
-
-/**
- * Previously named `.emit`, this method appends the given `val`
- * to `compiler.output` for the given node. Useful when you know
- * what value should be appended advance, regardless of the actual
- * value of `node.val`.
- *
- * ```js
- * snapdragon.compiler
- * .set('i', function(node) {
- * this.mapVisit(node);
- * })
- * .set('i.open', utils.append(''))
- * .set('i.close', utils.append(' '))
- * ```
- * @param {Object} `node` Instance of [snapdragon-node][]
- * @returns {Function} Returns a compiler middleware function.
- * @api public
- */
-
-utils.append = function(val) {
- return function(node) {
- append(this, val, node);
- };
-};
-
-/**
- * Used in compiler middleware, this onverts an AST node into
- * an empty `text` node and deletes `node.nodes` if it exists.
- * The advantage of this method is that, as opposed to completely
- * removing the node, indices will not need to be re-calculated
- * in sibling nodes, and nothing is appended to the output.
- *
- * ```js
- * utils.toNoop(node);
- * // convert `node.nodes` to the given value instead of deleting it
- * utils.toNoop(node, []);
- * ```
- * @param {Object} `node` Instance of [snapdragon-node][]
- * @param {Array} `nodes` Optionally pass a new `nodes` value, to replace the existing `node.nodes` array.
- * @api public
- */
-
-utils.toNoop = function(node, nodes) {
- if (nodes) {
- node.nodes = nodes;
- } else {
- delete node.nodes;
- node.type = 'text';
- node.val = '';
- }
-};
-
-/**
- * Visit `node` with the given `fn`. The built-in `.visit` method in snapdragon
- * automatically calls registered compilers, this allows you to pass a visitor
- * function.
- *
- * ```js
- * snapdragon.compiler.set('i', function(node) {
- * utils.visit(node, function(childNode) {
- * // do stuff with "childNode"
- * return childNode;
- * });
- * });
- * ```
- * @param {Object} `node` Instance of [snapdragon-node][]
- * @param {Function} `fn`
- * @return {Object} returns the node after recursively visiting all child nodes.
- * @api public
- */
-
-utils.visit = function(node, fn) {
- assert(utils.isNode(node), 'expected node to be an instance of Node');
- assert(isFunction(fn), 'expected a visitor function');
- fn(node);
- return node.nodes ? utils.mapVisit(node, fn) : node;
-};
-
-/**
- * Map [visit](#visit) the given `fn` over `node.nodes`. This is called by
- * [visit](#visit), use this method if you do not want `fn` to be called on
- * the first node.
- *
- * ```js
- * snapdragon.compiler.set('i', function(node) {
- * utils.mapVisit(node, function(childNode) {
- * // do stuff with "childNode"
- * return childNode;
- * });
- * });
- * ```
- * @param {Object} `node` Instance of [snapdragon-node][]
- * @param {Object} `options`
- * @param {Function} `fn`
- * @return {Object} returns the node
- * @api public
- */
-
-utils.mapVisit = function(node, fn) {
- assert(utils.isNode(node), 'expected node to be an instance of Node');
- assert(isArray(node.nodes), 'expected node.nodes to be an array');
- assert(isFunction(fn), 'expected a visitor function');
-
- for (var i = 0; i < node.nodes.length; i++) {
- utils.visit(node.nodes[i], fn);
- }
- return node;
-};
-
-/**
- * Unshift an `*.open` node onto `node.nodes`.
- *
- * ```js
- * var Node = require('snapdragon-node');
- * snapdragon.parser.set('brace', function(node) {
- * var match = this.match(/^{/);
- * if (match) {
- * var parent = new Node({type: 'brace'});
- * utils.addOpen(parent, Node);
- * console.log(parent.nodes[0]):
- * // { type: 'brace.open', val: '' };
- *
- * // push the parent "brace" node onto the stack
- * this.push(parent);
- *
- * // return the parent node, so it's also added to the AST
- * return brace;
- * }
- * });
- * ```
- * @param {Object} `node` Instance of [snapdragon-node][]
- * @param {Function} `Node` (required) Node constructor function from [snapdragon-node][].
- * @param {Function} `filter` Optionaly specify a filter function to exclude the node.
- * @return {Object} Returns the created opening node.
- * @api public
- */
-
-utils.addOpen = function(node, Node, val, filter) {
- assert(utils.isNode(node), 'expected node to be an instance of Node');
- assert(isFunction(Node), 'expected Node to be a constructor function');
-
- if (typeof val === 'function') {
- filter = val;
- val = '';
- }
-
- if (typeof filter === 'function' && !filter(node)) return;
- var open = new Node({ type: node.type + '.open', val: val});
- var unshift = node.unshift || node.unshiftNode;
- if (typeof unshift === 'function') {
- unshift.call(node, open);
- } else {
- utils.unshiftNode(node, open);
- }
- return open;
-};
-
-/**
- * Push a `*.close` node onto `node.nodes`.
- *
- * ```js
- * var Node = require('snapdragon-node');
- * snapdragon.parser.set('brace', function(node) {
- * var match = this.match(/^}/);
- * if (match) {
- * var parent = this.parent();
- * if (parent.type !== 'brace') {
- * throw new Error('missing opening: ' + '}');
- * }
- *
- * utils.addClose(parent, Node);
- * console.log(parent.nodes[parent.nodes.length - 1]):
- * // { type: 'brace.close', val: '' };
- *
- * // no need to return a node, since the parent
- * // was already added to the AST
- * return;
- * }
- * });
- * ```
- * @param {Object} `node` Instance of [snapdragon-node][]
- * @param {Function} `Node` (required) Node constructor function from [snapdragon-node][].
- * @param {Function} `filter` Optionaly specify a filter function to exclude the node.
- * @return {Object} Returns the created closing node.
- * @api public
- */
-
-utils.addClose = function(node, Node, val, filter) {
- assert(utils.isNode(node), 'expected node to be an instance of Node');
- assert(isFunction(Node), 'expected Node to be a constructor function');
-
- if (typeof val === 'function') {
- filter = val;
- val = '';
- }
-
- if (typeof filter === 'function' && !filter(node)) return;
- var close = new Node({ type: node.type + '.close', val: val});
- var push = node.push || node.pushNode;
- if (typeof push === 'function') {
- push.call(node, close);
- } else {
- utils.pushNode(node, close);
- }
- return close;
-};
-
-/**
- * Wraps the given `node` with `*.open` and `*.close` nodes.
- *
- * @param {Object} `node` Instance of [snapdragon-node][]
- * @param {Function} `Node` (required) Node constructor function from [snapdragon-node][].
- * @param {Function} `filter` Optionaly specify a filter function to exclude the node.
- * @return {Object} Returns the node
- * @api public
- */
-
-utils.wrapNodes = function(node, Node, filter) {
- assert(utils.isNode(node), 'expected node to be an instance of Node');
- assert(isFunction(Node), 'expected Node to be a constructor function');
-
- utils.addOpen(node, Node, filter);
- utils.addClose(node, Node, filter);
- return node;
-};
-
-/**
- * Push the given `node` onto `parent.nodes`, and set `parent` as `node.parent.
- *
- * ```js
- * var parent = new Node({type: 'foo'});
- * var node = new Node({type: 'bar'});
- * utils.pushNode(parent, node);
- * console.log(parent.nodes[0].type) // 'bar'
- * console.log(node.parent.type) // 'foo'
- * ```
- * @param {Object} `parent`
- * @param {Object} `node` Instance of [snapdragon-node][]
- * @return {Object} Returns the child node
- * @api public
- */
-
-utils.pushNode = function(parent, node) {
- assert(utils.isNode(parent), 'expected parent node to be an instance of Node');
- assert(utils.isNode(node), 'expected node to be an instance of Node');
-
- node.define('parent', parent);
- parent.nodes = parent.nodes || [];
- parent.nodes.push(node);
- return node;
-};
-
-/**
- * Unshift `node` onto `parent.nodes`, and set `parent` as `node.parent.
- *
- * ```js
- * var parent = new Node({type: 'foo'});
- * var node = new Node({type: 'bar'});
- * utils.unshiftNode(parent, node);
- * console.log(parent.nodes[0].type) // 'bar'
- * console.log(node.parent.type) // 'foo'
- * ```
- * @param {Object} `parent`
- * @param {Object} `node` Instance of [snapdragon-node][]
- * @return {undefined}
- * @api public
- */
-
-utils.unshiftNode = function(parent, node) {
- assert(utils.isNode(parent), 'expected parent node to be an instance of Node');
- assert(utils.isNode(node), 'expected node to be an instance of Node');
-
- node.define('parent', parent);
- parent.nodes = parent.nodes || [];
- parent.nodes.unshift(node);
-};
-
-/**
- * Pop the last `node` off of `parent.nodes`. The advantage of
- * using this method is that it checks for `node.nodes` and works
- * with any version of `snapdragon-node`.
- *
- * ```js
- * var parent = new Node({type: 'foo'});
- * utils.pushNode(parent, new Node({type: 'foo'}));
- * utils.pushNode(parent, new Node({type: 'bar'}));
- * utils.pushNode(parent, new Node({type: 'baz'}));
- * console.log(parent.nodes.length); //=> 3
- * utils.popNode(parent);
- * console.log(parent.nodes.length); //=> 2
- * ```
- * @param {Object} `parent`
- * @param {Object} `node` Instance of [snapdragon-node][]
- * @return {Number|Undefined} Returns the length of `node.nodes` or undefined.
- * @api public
- */
-
-utils.popNode = function(node) {
- assert(utils.isNode(node), 'expected node to be an instance of Node');
- if (typeof node.pop === 'function') {
- return node.pop();
- }
- return node.nodes && node.nodes.pop();
-};
-
-/**
- * Shift the first `node` off of `parent.nodes`. The advantage of
- * using this method is that it checks for `node.nodes` and works
- * with any version of `snapdragon-node`.
- *
- * ```js
- * var parent = new Node({type: 'foo'});
- * utils.pushNode(parent, new Node({type: 'foo'}));
- * utils.pushNode(parent, new Node({type: 'bar'}));
- * utils.pushNode(parent, new Node({type: 'baz'}));
- * console.log(parent.nodes.length); //=> 3
- * utils.shiftNode(parent);
- * console.log(parent.nodes.length); //=> 2
- * ```
- * @param {Object} `parent`
- * @param {Object} `node` Instance of [snapdragon-node][]
- * @return {Number|Undefined} Returns the length of `node.nodes` or undefined.
- * @api public
- */
-
-utils.shiftNode = function(node) {
- assert(utils.isNode(node), 'expected node to be an instance of Node');
- if (typeof node.shift === 'function') {
- return node.shift();
- }
- return node.nodes && node.nodes.shift();
-};
-
-/**
- * Remove the specified `node` from `parent.nodes`.
- *
- * ```js
- * var parent = new Node({type: 'abc'});
- * var foo = new Node({type: 'foo'});
- * utils.pushNode(parent, foo);
- * utils.pushNode(parent, new Node({type: 'bar'}));
- * utils.pushNode(parent, new Node({type: 'baz'}));
- * console.log(parent.nodes.length); //=> 3
- * utils.removeNode(parent, foo);
- * console.log(parent.nodes.length); //=> 2
- * ```
- * @param {Object} `parent`
- * @param {Object} `node` Instance of [snapdragon-node][]
- * @return {Object|undefined} Returns the removed node, if successful, or undefined if it does not exist on `parent.nodes`.
- * @api public
- */
-
-utils.removeNode = function(parent, node) {
- assert(utils.isNode(parent), 'expected parent.node to be an instance of Node');
- assert(utils.isNode(node), 'expected node to be an instance of Node');
-
- if (!parent.nodes) {
- return null;
- }
-
- if (typeof parent.remove === 'function') {
- return parent.remove(node);
- }
-
- var idx = parent.nodes.indexOf(node);
- if (idx !== -1) {
- return parent.nodes.splice(idx, 1);
- }
-};
-
-/**
- * Returns true if `node.type` matches the given `type`. Throws a
- * `TypeError` if `node` is not an instance of `Node`.
- *
- * ```js
- * var Node = require('snapdragon-node');
- * var node = new Node({type: 'foo'});
- * console.log(utils.isType(node, 'foo')); // false
- * console.log(utils.isType(node, 'bar')); // true
- * ```
- * @param {Object} `node` Instance of [snapdragon-node][]
- * @param {String} `type`
- * @return {Boolean}
- * @api public
- */
-
-utils.isType = function(node, type) {
- assert(utils.isNode(node), 'expected node to be an instance of Node');
- switch (typeOf(type)) {
- case 'array':
- var types = type.slice();
- for (var i = 0; i < types.length; i++) {
- if (utils.isType(node, types[i])) {
- return true;
- }
- }
- return false;
- case 'string':
- return node.type === type;
- case 'regexp':
- return type.test(node.type);
- default: {
- throw new TypeError('expected "type" to be an array, string or regexp');
- }
- }
-};
-
-/**
- * Returns true if the given `node` has the given `type` in `node.nodes`.
- * Throws a `TypeError` if `node` is not an instance of `Node`.
- *
- * ```js
- * var Node = require('snapdragon-node');
- * var node = new Node({
- * type: 'foo',
- * nodes: [
- * new Node({type: 'bar'}),
- * new Node({type: 'baz'})
- * ]
- * });
- * console.log(utils.hasType(node, 'xyz')); // false
- * console.log(utils.hasType(node, 'baz')); // true
- * ```
- * @param {Object} `node` Instance of [snapdragon-node][]
- * @param {String} `type`
- * @return {Boolean}
- * @api public
- */
-
-utils.hasType = function(node, type) {
- assert(utils.isNode(node), 'expected node to be an instance of Node');
- if (!Array.isArray(node.nodes)) return false;
- for (var i = 0; i < node.nodes.length; i++) {
- if (utils.isType(node.nodes[i], type)) {
- return true;
- }
- }
- return false;
-};
-
-/**
- * Returns the first node from `node.nodes` of the given `type`
- *
- * ```js
- * var node = new Node({
- * type: 'foo',
- * nodes: [
- * new Node({type: 'text', val: 'abc'}),
- * new Node({type: 'text', val: 'xyz'})
- * ]
- * });
- *
- * var textNode = utils.firstOfType(node.nodes, 'text');
- * console.log(textNode.val);
- * //=> 'abc'
- * ```
- * @param {Array} `nodes`
- * @param {String} `type`
- * @return {Object|undefined} Returns the first matching node or undefined.
- * @api public
- */
-
-utils.firstOfType = function(nodes, type) {
- for (var i = 0; i < nodes.length; i++) {
- var node = nodes[i];
- if (utils.isType(node, type)) {
- return node;
- }
- }
-};
-
-/**
- * Returns the node at the specified index, or the first node of the
- * given `type` from `node.nodes`.
- *
- * ```js
- * var node = new Node({
- * type: 'foo',
- * nodes: [
- * new Node({type: 'text', val: 'abc'}),
- * new Node({type: 'text', val: 'xyz'})
- * ]
- * });
- *
- * var nodeOne = utils.findNode(node.nodes, 'text');
- * console.log(nodeOne.val);
- * //=> 'abc'
- *
- * var nodeTwo = utils.findNode(node.nodes, 1);
- * console.log(nodeTwo.val);
- * //=> 'xyz'
- * ```
- *
- * @param {Array} `nodes`
- * @param {String|Number} `type` Node type or index.
- * @return {Object} Returns a node or undefined.
- * @api public
- */
-
-utils.findNode = function(nodes, type) {
- if (!Array.isArray(nodes)) {
- return null;
- }
- if (typeof type === 'number') {
- return nodes[type];
- }
- return utils.firstOfType(nodes, type);
-};
-
-/**
- * Returns true if the given node is an "*.open" node.
- *
- * ```js
- * var Node = require('snapdragon-node');
- * var brace = new Node({type: 'brace'});
- * var open = new Node({type: 'brace.open'});
- * var close = new Node({type: 'brace.close'});
- *
- * console.log(utils.isOpen(brace)); // false
- * console.log(utils.isOpen(open)); // true
- * console.log(utils.isOpen(close)); // false
- * ```
- * @param {Object} `node` Instance of [snapdragon-node][]
- * @return {Boolean}
- * @api public
- */
-
-utils.isOpen = function(node) {
- assert(utils.isNode(node), 'expected node to be an instance of Node');
- return node.type.slice(-5) === '.open';
-};
-
-/**
- * Returns true if the given node is a "*.close" node.
- *
- * ```js
- * var Node = require('snapdragon-node');
- * var brace = new Node({type: 'brace'});
- * var open = new Node({type: 'brace.open'});
- * var close = new Node({type: 'brace.close'});
- *
- * console.log(utils.isClose(brace)); // false
- * console.log(utils.isClose(open)); // false
- * console.log(utils.isClose(close)); // true
- * ```
- * @param {Object} `node` Instance of [snapdragon-node][]
- * @return {Boolean}
- * @api public
- */
-
-utils.isClose = function(node) {
- assert(utils.isNode(node), 'expected node to be an instance of Node');
- return node.type.slice(-6) === '.close';
-};
-
-/**
- * Returns true if `node.nodes` **has** an `.open` node
- *
- * ```js
- * var Node = require('snapdragon-node');
- * var brace = new Node({
- * type: 'brace',
- * nodes: []
- * });
- *
- * var open = new Node({type: 'brace.open'});
- * console.log(utils.hasOpen(brace)); // false
- *
- * brace.pushNode(open);
- * console.log(utils.hasOpen(brace)); // true
- * ```
- * @param {Object} `node` Instance of [snapdragon-node][]
- * @return {Boolean}
- * @api public
- */
-
-utils.hasOpen = function(node) {
- assert(utils.isNode(node), 'expected node to be an instance of Node');
- var first = node.first || node.nodes ? node.nodes[0] : null;
- if (utils.isNode(first)) {
- return first.type === node.type + '.open';
- }
- return false;
-};
-
-/**
- * Returns true if `node.nodes` **has** a `.close` node
- *
- * ```js
- * var Node = require('snapdragon-node');
- * var brace = new Node({
- * type: 'brace',
- * nodes: []
- * });
- *
- * var close = new Node({type: 'brace.close'});
- * console.log(utils.hasClose(brace)); // false
- *
- * brace.pushNode(close);
- * console.log(utils.hasClose(brace)); // true
- * ```
- * @param {Object} `node` Instance of [snapdragon-node][]
- * @return {Boolean}
- * @api public
- */
-
-utils.hasClose = function(node) {
- assert(utils.isNode(node), 'expected node to be an instance of Node');
- var last = node.last || node.nodes ? node.nodes[node.nodes.length - 1] : null;
- if (utils.isNode(last)) {
- return last.type === node.type + '.close';
- }
- return false;
-};
-
-/**
- * Returns true if `node.nodes` has both `.open` and `.close` nodes
- *
- * ```js
- * var Node = require('snapdragon-node');
- * var brace = new Node({
- * type: 'brace',
- * nodes: []
- * });
- *
- * var open = new Node({type: 'brace.open'});
- * var close = new Node({type: 'brace.close'});
- * console.log(utils.hasOpen(brace)); // false
- * console.log(utils.hasClose(brace)); // false
- *
- * brace.pushNode(open);
- * brace.pushNode(close);
- * console.log(utils.hasOpen(brace)); // true
- * console.log(utils.hasClose(brace)); // true
- * ```
- * @param {Object} `node` Instance of [snapdragon-node][]
- * @return {Boolean}
- * @api public
- */
-
-utils.hasOpenAndClose = function(node) {
- return utils.hasOpen(node) && utils.hasClose(node);
-};
-
-/**
- * Push the given `node` onto the `state.inside` array for the
- * given type. This array is used as a specialized "stack" for
- * only the given `node.type`.
- *
- * ```js
- * var state = { inside: {}};
- * var node = new Node({type: 'brace'});
- * utils.addType(state, node);
- * console.log(state.inside);
- * //=> { brace: [{type: 'brace'}] }
- * ```
- * @param {Object} `state` The `compiler.state` object or custom state object.
- * @param {Object} `node` Instance of [snapdragon-node][]
- * @return {Array} Returns the `state.inside` stack for the given type.
- * @api public
- */
-
-utils.addType = function(state, node) {
- assert(utils.isNode(node), 'expected node to be an instance of Node');
- assert(isObject(state), 'expected state to be an object');
-
- var type = node.parent
- ? node.parent.type
- : node.type.replace(/\.open$/, '');
-
- if (!state.hasOwnProperty('inside')) {
- state.inside = {};
- }
- if (!state.inside.hasOwnProperty(type)) {
- state.inside[type] = [];
- }
-
- var arr = state.inside[type];
- arr.push(node);
- return arr;
-};
-
-/**
- * Remove the given `node` from the `state.inside` array for the
- * given type. This array is used as a specialized "stack" for
- * only the given `node.type`.
- *
- * ```js
- * var state = { inside: {}};
- * var node = new Node({type: 'brace'});
- * utils.addType(state, node);
- * console.log(state.inside);
- * //=> { brace: [{type: 'brace'}] }
- * utils.removeType(state, node);
- * //=> { brace: [] }
- * ```
- * @param {Object} `state` The `compiler.state` object or custom state object.
- * @param {Object} `node` Instance of [snapdragon-node][]
- * @return {Array} Returns the `state.inside` stack for the given type.
- * @api public
- */
-
-utils.removeType = function(state, node) {
- assert(utils.isNode(node), 'expected node to be an instance of Node');
- assert(isObject(state), 'expected state to be an object');
-
- var type = node.parent
- ? node.parent.type
- : node.type.replace(/\.close$/, '');
-
- if (state.inside.hasOwnProperty(type)) {
- return state.inside[type].pop();
- }
-};
-
-/**
- * Returns true if `node.val` is an empty string, or `node.nodes` does
- * not contain any non-empty text nodes.
- *
- * ```js
- * var node = new Node({type: 'text'});
- * utils.isEmpty(node); //=> true
- * node.val = 'foo';
- * utils.isEmpty(node); //=> false
- * ```
- * @param {Object} `node` Instance of [snapdragon-node][]
- * @param {Function} `fn`
- * @return {Boolean}
- * @api public
- */
-
-utils.isEmpty = function(node, fn) {
- assert(utils.isNode(node), 'expected node to be an instance of Node');
-
- if (!Array.isArray(node.nodes)) {
- if (node.type !== 'text') {
- return true;
- }
- if (typeof fn === 'function') {
- return fn(node, node.parent);
- }
- return !utils.trim(node.val);
- }
-
- for (var i = 0; i < node.nodes.length; i++) {
- var child = node.nodes[i];
- if (utils.isOpen(child) || utils.isClose(child)) {
- continue;
- }
- if (!utils.isEmpty(child, fn)) {
- return false;
- }
- }
-
- return true;
-};
-
-/**
- * Returns true if the `state.inside` stack for the given type exists
- * and has one or more nodes on it.
- *
- * ```js
- * var state = { inside: {}};
- * var node = new Node({type: 'brace'});
- * console.log(utils.isInsideType(state, 'brace')); //=> false
- * utils.addType(state, node);
- * console.log(utils.isInsideType(state, 'brace')); //=> true
- * utils.removeType(state, node);
- * console.log(utils.isInsideType(state, 'brace')); //=> false
- * ```
- * @param {Object} `state`
- * @param {String} `type`
- * @return {Boolean}
- * @api public
- */
-
-utils.isInsideType = function(state, type) {
- assert(isObject(state), 'expected state to be an object');
- assert(isString(type), 'expected type to be a string');
-
- if (!state.hasOwnProperty('inside')) {
- return false;
- }
-
- if (!state.inside.hasOwnProperty(type)) {
- return false;
- }
-
- return state.inside[type].length > 0;
-};
-
-/**
- * Returns true if `node` is either a child or grand-child of the given `type`,
- * or `state.inside[type]` is a non-empty array.
- *
- * ```js
- * var state = { inside: {}};
- * var node = new Node({type: 'brace'});
- * var open = new Node({type: 'brace.open'});
- * console.log(utils.isInside(state, open, 'brace')); //=> false
- * utils.pushNode(node, open);
- * console.log(utils.isInside(state, open, 'brace')); //=> true
- * ```
- * @param {Object} `state` Either the `compiler.state` object, if it exists, or a user-supplied state object.
- * @param {Object} `node` Instance of [snapdragon-node][]
- * @param {String} `type` The `node.type` to check for.
- * @return {Boolean}
- * @api public
- */
-
-utils.isInside = function(state, node, type) {
- assert(utils.isNode(node), 'expected node to be an instance of Node');
- assert(isObject(state), 'expected state to be an object');
-
- if (Array.isArray(type)) {
- for (var i = 0; i < type.length; i++) {
- if (utils.isInside(state, node, type[i])) {
- return true;
- }
- }
- return false;
- }
-
- var parent = node.parent;
- if (typeof type === 'string') {
- return (parent && parent.type === type) || utils.isInsideType(state, type);
- }
-
- if (typeOf(type) === 'regexp') {
- if (parent && parent.type && type.test(parent.type)) {
- return true;
- }
-
- var keys = Object.keys(state.inside);
- var len = keys.length;
- var idx = -1;
- while (++idx < len) {
- var key = keys[idx];
- var val = state.inside[key];
-
- if (Array.isArray(val) && val.length !== 0 && type.test(key)) {
- return true;
- }
- }
- }
- return false;
-};
-
-/**
- * Get the last `n` element from the given `array`. Used for getting
- * a node from `node.nodes.`
- *
- * @param {Array} `array`
- * @param {Number} `n`
- * @return {undefined}
- * @api public
- */
-
-utils.last = function(arr, n) {
- return arr[arr.length - (n || 1)];
-};
-
-/**
- * Cast the given `val` to an array.
- *
- * ```js
- * console.log(utils.arrayify(''));
- * //=> []
- * console.log(utils.arrayify('foo'));
- * //=> ['foo']
- * console.log(utils.arrayify(['foo']));
- * //=> ['foo']
- * ```
- * @param {any} `val`
- * @return {Array}
- * @api public
- */
-
-utils.arrayify = function(val) {
- if (typeof val === 'string' && val !== '') {
- return [val];
- }
- if (!Array.isArray(val)) {
- return [];
- }
- return val;
-};
-
-/**
- * Convert the given `val` to a string by joining with `,`. Useful
- * for creating a cheerio/CSS/DOM-style selector from a list of strings.
- *
- * @param {any} `val`
- * @return {Array}
- * @api public
- */
-
-utils.stringify = function(val) {
- return utils.arrayify(val).join(',');
-};
-
-/**
- * Ensure that the given value is a string and call `.trim()` on it,
- * or return an empty string.
- *
- * @param {String} `str`
- * @return {String}
- * @api public
- */
-
-utils.trim = function(str) {
- return typeof str === 'string' ? str.trim() : '';
-};
-
-/**
- * Return true if val is an object
- */
-
-function isObject(val) {
- return typeOf(val) === 'object';
-}
-
-/**
- * Return true if val is a string
- */
-
-function isString(val) {
- return typeof val === 'string';
-}
-
-/**
- * Return true if val is a function
- */
-
-function isFunction(val) {
- return typeof val === 'function';
-}
-
-/**
- * Return true if val is an array
- */
-
-function isArray(val) {
- return Array.isArray(val);
-}
-
-/**
- * Shim to ensure the `.append` methods work with any version of snapdragon
- */
-
-function append(compiler, val, node) {
- if (typeof compiler.append !== 'function') {
- return compiler.emit(val, node);
- }
- return compiler.append(val, node);
-}
-
-/**
- * Simplified assertion. Throws an error is `val` is falsey.
- */
-
-function assert(val, message) {
- if (!val) throw new Error(message);
-}
diff --git a/node_modules/snapdragon-util/node_modules/kind-of/LICENSE b/node_modules/snapdragon-util/node_modules/kind-of/LICENSE
deleted file mode 100644
index d734237..0000000
--- a/node_modules/snapdragon-util/node_modules/kind-of/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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/snapdragon-util/node_modules/kind-of/README.md b/node_modules/snapdragon-util/node_modules/kind-of/README.md
deleted file mode 100644
index 6a9df36..0000000
--- a/node_modules/snapdragon-util/node_modules/kind-of/README.md
+++ /dev/null
@@ -1,261 +0,0 @@
-# kind-of [![NPM version](https://img.shields.io/npm/v/kind-of.svg?style=flat)](https://www.npmjs.com/package/kind-of) [![NPM monthly downloads](https://img.shields.io/npm/dm/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![NPM total downloads](https://img.shields.io/npm/dt/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/kind-of.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/kind-of)
-
-> Get the native type of a value.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save kind-of
-```
-
-## Install
-
-Install with [bower](https://bower.io/)
-
-```sh
-$ bower install kind-of --save
-```
-
-## Usage
-
-> es5, browser and es6 ready
-
-```js
-var kindOf = require('kind-of');
-
-kindOf(undefined);
-//=> 'undefined'
-
-kindOf(null);
-//=> 'null'
-
-kindOf(true);
-//=> 'boolean'
-
-kindOf(false);
-//=> 'boolean'
-
-kindOf(new Boolean(true));
-//=> 'boolean'
-
-kindOf(new Buffer(''));
-//=> 'buffer'
-
-kindOf(42);
-//=> 'number'
-
-kindOf(new Number(42));
-//=> 'number'
-
-kindOf('str');
-//=> 'string'
-
-kindOf(new String('str'));
-//=> 'string'
-
-kindOf(arguments);
-//=> 'arguments'
-
-kindOf({});
-//=> 'object'
-
-kindOf(Object.create(null));
-//=> 'object'
-
-kindOf(new Test());
-//=> 'object'
-
-kindOf(new Date());
-//=> 'date'
-
-kindOf([]);
-//=> 'array'
-
-kindOf([1, 2, 3]);
-//=> 'array'
-
-kindOf(new Array());
-//=> 'array'
-
-kindOf(/foo/);
-//=> 'regexp'
-
-kindOf(new RegExp('foo'));
-//=> 'regexp'
-
-kindOf(function () {});
-//=> 'function'
-
-kindOf(function * () {});
-//=> 'function'
-
-kindOf(new Function());
-//=> 'function'
-
-kindOf(new Map());
-//=> 'map'
-
-kindOf(new WeakMap());
-//=> 'weakmap'
-
-kindOf(new Set());
-//=> 'set'
-
-kindOf(new WeakSet());
-//=> 'weakset'
-
-kindOf(Symbol('str'));
-//=> 'symbol'
-
-kindOf(new Int8Array());
-//=> 'int8array'
-
-kindOf(new Uint8Array());
-//=> 'uint8array'
-
-kindOf(new Uint8ClampedArray());
-//=> 'uint8clampedarray'
-
-kindOf(new Int16Array());
-//=> 'int16array'
-
-kindOf(new Uint16Array());
-//=> 'uint16array'
-
-kindOf(new Int32Array());
-//=> 'int32array'
-
-kindOf(new Uint32Array());
-//=> 'uint32array'
-
-kindOf(new Float32Array());
-//=> 'float32array'
-
-kindOf(new Float64Array());
-//=> 'float64array'
-```
-
-## Benchmarks
-
-Benchmarked against [typeof](http://github.com/CodingFu/typeof) and [type-of](https://github.com/ForbesLindesay/type-of).
-Note that performaces is slower for es6 features `Map`, `WeakMap`, `Set` and `WeakSet`.
-
-```bash
-#1: array
- current x 23,329,397 ops/sec ±0.82% (94 runs sampled)
- lib-type-of x 4,170,273 ops/sec ±0.55% (94 runs sampled)
- lib-typeof x 9,686,935 ops/sec ±0.59% (98 runs sampled)
-
-#2: boolean
- current x 27,197,115 ops/sec ±0.85% (94 runs sampled)
- lib-type-of x 3,145,791 ops/sec ±0.73% (97 runs sampled)
- lib-typeof x 9,199,562 ops/sec ±0.44% (99 runs sampled)
-
-#3: date
- current x 20,190,117 ops/sec ±0.86% (92 runs sampled)
- lib-type-of x 5,166,970 ops/sec ±0.74% (94 runs sampled)
- lib-typeof x 9,610,821 ops/sec ±0.50% (96 runs sampled)
-
-#4: function
- current x 23,855,460 ops/sec ±0.60% (97 runs sampled)
- lib-type-of x 5,667,740 ops/sec ±0.54% (100 runs sampled)
- lib-typeof x 10,010,644 ops/sec ±0.44% (100 runs sampled)
-
-#5: null
- current x 27,061,047 ops/sec ±0.97% (96 runs sampled)
- lib-type-of x 13,965,573 ops/sec ±0.62% (97 runs sampled)
- lib-typeof x 8,460,194 ops/sec ±0.61% (97 runs sampled)
-
-#6: number
- current x 25,075,682 ops/sec ±0.53% (99 runs sampled)
- lib-type-of x 2,266,405 ops/sec ±0.41% (98 runs sampled)
- lib-typeof x 9,821,481 ops/sec ±0.45% (99 runs sampled)
-
-#7: object
- current x 3,348,980 ops/sec ±0.49% (99 runs sampled)
- lib-type-of x 3,245,138 ops/sec ±0.60% (94 runs sampled)
- lib-typeof x 9,262,952 ops/sec ±0.59% (99 runs sampled)
-
-#8: regex
- current x 21,284,827 ops/sec ±0.72% (96 runs sampled)
- lib-type-of x 4,689,241 ops/sec ±0.43% (100 runs sampled)
- lib-typeof x 8,957,593 ops/sec ±0.62% (98 runs sampled)
-
-#9: string
- current x 25,379,234 ops/sec ±0.58% (96 runs sampled)
- lib-type-of x 3,635,148 ops/sec ±0.76% (93 runs sampled)
- lib-typeof x 9,494,134 ops/sec ±0.49% (98 runs sampled)
-
-#10: undef
- current x 27,459,221 ops/sec ±1.01% (93 runs sampled)
- lib-type-of x 14,360,433 ops/sec ±0.52% (99 runs sampled)
- lib-typeof x 23,202,868 ops/sec ±0.59% (94 runs sampled)
-
-```
-
-## Optimizations
-
-In 7 out of 8 cases, this library is 2x-10x faster than other top libraries included in the benchmarks. There are a few things that lead to this performance advantage, none of them hard and fast rules, but all of them simple and repeatable in almost any code library:
-
-1. Optimize around the fastest and most common use cases first. Of course, this will change from project-to-project, but I took some time to understand how and why `typeof` checks were being used in my own libraries and other libraries I use a lot.
-2. Optimize around bottlenecks - In other words, the order in which conditionals are implemented is significant, because each check is only as fast as the failing checks that came before it. Here, the biggest bottleneck by far is checking for plain objects (an object that was created by the `Object` constructor). I opted to make this check happen by process of elimination rather than brute force up front (e.g. by using something like `val.constructor.name`), so that every other type check would not be penalized it.
-3. Don't do uneccessary processing - why do `.slice(8, -1).toLowerCase();` just to get the word `regex`? It's much faster to do `if (type === '[object RegExp]') return 'regex'`
-
-## About
-
-### Related projects
-
-* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/jonschlinkert/is-glob) | [homepage](https://github.com/jonschlinkert/is-glob "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet")
-* [is-number](https://www.npmjs.com/package/is-number): Returns true if the value is a number. comprehensive tests. | [homepage](https://github.com/jonschlinkert/is-number "Returns true if the value is a number. comprehensive tests.")
-* [is-primitive](https://www.npmjs.com/package/is-primitive): Returns `true` if the value is a primitive. | [homepage](https://github.com/jonschlinkert/is-primitive "Returns `true` if the value is a primitive. ")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 59 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 2 | [miguelmota](https://github.com/miguelmota) |
-| 1 | [dtothefp](https://github.com/dtothefp) |
-| 1 | [ksheedlo](https://github.com/ksheedlo) |
-| 1 | [pdehaan](https://github.com/pdehaan) |
-| 1 | [laggingreflex](https://github.com/laggingreflex) |
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on May 16, 2017._
\ No newline at end of file
diff --git a/node_modules/snapdragon-util/node_modules/kind-of/index.js b/node_modules/snapdragon-util/node_modules/kind-of/index.js
deleted file mode 100644
index b52c291..0000000
--- a/node_modules/snapdragon-util/node_modules/kind-of/index.js
+++ /dev/null
@@ -1,116 +0,0 @@
-var isBuffer = require('is-buffer');
-var toString = Object.prototype.toString;
-
-/**
- * Get the native `typeof` a value.
- *
- * @param {*} `val`
- * @return {*} Native javascript type
- */
-
-module.exports = function kindOf(val) {
- // primitivies
- if (typeof val === 'undefined') {
- return 'undefined';
- }
- if (val === null) {
- return 'null';
- }
- if (val === true || val === false || val instanceof Boolean) {
- return 'boolean';
- }
- if (typeof val === 'string' || val instanceof String) {
- return 'string';
- }
- if (typeof val === 'number' || val instanceof Number) {
- return 'number';
- }
-
- // functions
- if (typeof val === 'function' || val instanceof Function) {
- return 'function';
- }
-
- // array
- if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) {
- return 'array';
- }
-
- // check for instances of RegExp and Date before calling `toString`
- if (val instanceof RegExp) {
- return 'regexp';
- }
- if (val instanceof Date) {
- return 'date';
- }
-
- // other objects
- var type = toString.call(val);
-
- if (type === '[object RegExp]') {
- return 'regexp';
- }
- if (type === '[object Date]') {
- return 'date';
- }
- if (type === '[object Arguments]') {
- return 'arguments';
- }
- if (type === '[object Error]') {
- return 'error';
- }
-
- // buffer
- if (isBuffer(val)) {
- return 'buffer';
- }
-
- // es6: Map, WeakMap, Set, WeakSet
- if (type === '[object Set]') {
- return 'set';
- }
- if (type === '[object WeakSet]') {
- return 'weakset';
- }
- if (type === '[object Map]') {
- return 'map';
- }
- if (type === '[object WeakMap]') {
- return 'weakmap';
- }
- if (type === '[object Symbol]') {
- return 'symbol';
- }
-
- // typed arrays
- if (type === '[object Int8Array]') {
- return 'int8array';
- }
- if (type === '[object Uint8Array]') {
- return 'uint8array';
- }
- if (type === '[object Uint8ClampedArray]') {
- return 'uint8clampedarray';
- }
- if (type === '[object Int16Array]') {
- return 'int16array';
- }
- if (type === '[object Uint16Array]') {
- return 'uint16array';
- }
- if (type === '[object Int32Array]') {
- return 'int32array';
- }
- if (type === '[object Uint32Array]') {
- return 'uint32array';
- }
- if (type === '[object Float32Array]') {
- return 'float32array';
- }
- if (type === '[object Float64Array]') {
- return 'float64array';
- }
-
- // must be a plain object
- return 'object';
-};
diff --git a/node_modules/snapdragon-util/node_modules/kind-of/package.json b/node_modules/snapdragon-util/node_modules/kind-of/package.json
deleted file mode 100644
index 5de879e..0000000
--- a/node_modules/snapdragon-util/node_modules/kind-of/package.json
+++ /dev/null
@@ -1,90 +0,0 @@
-{
- "name": "kind-of",
- "description": "Get the native type of a value.",
- "version": "3.2.2",
- "homepage": "https://github.com/jonschlinkert/kind-of",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "David Fox-Powell (https://dtothefp.github.io/me)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Ken Sheedlo (kensheedlo.com)",
- "laggingreflex (https://github.com/laggingreflex)",
- "Miguel Mota (https://miguelmota.com)",
- "Peter deHaan (http://about.me/peterdehaan)"
- ],
- "repository": "jonschlinkert/kind-of",
- "bugs": {
- "url": "https://github.com/jonschlinkert/kind-of/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha",
- "prepublish": "browserify -o browser.js -e index.js -s index --bare"
- },
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "devDependencies": {
- "ansi-bold": "^0.1.1",
- "benchmarked": "^1.0.0",
- "browserify": "^14.3.0",
- "glob": "^7.1.1",
- "gulp-format-md": "^0.1.12",
- "mocha": "^3.3.0",
- "type-of": "^2.0.1",
- "typeof": "^1.0.0"
- },
- "keywords": [
- "arguments",
- "array",
- "boolean",
- "check",
- "date",
- "function",
- "is",
- "is-type",
- "is-type-of",
- "kind",
- "kind-of",
- "number",
- "object",
- "of",
- "regexp",
- "string",
- "test",
- "type",
- "type-of",
- "typeof",
- "types"
- ],
- "verb": {
- "related": {
- "list": [
- "is-glob",
- "is-number",
- "is-primitive"
- ]
- },
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- },
- "reflinks": [
- "verb"
- ]
- }
-}
diff --git a/node_modules/snapdragon-util/package.json b/node_modules/snapdragon-util/package.json
deleted file mode 100644
index 434c4f5..0000000
--- a/node_modules/snapdragon-util/package.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "name": "snapdragon-util",
- "description": "Utilities for the snapdragon parser/compiler.",
- "version": "3.0.1",
- "homepage": "https://github.com/jonschlinkert/snapdragon-util",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/snapdragon-util",
- "bugs": {
- "url": "https://github.com/jonschlinkert/snapdragon-util/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "kind-of": "^3.2.0"
- },
- "devDependencies": {
- "define-property": "^1.0.0",
- "gulp": "^3.9.1",
- "gulp-eslint": "^3.0.1",
- "gulp-format-md": "^0.1.12",
- "gulp-istanbul": "^1.1.1",
- "gulp-mocha": "^3.0.0",
- "isobject": "^3.0.0",
- "mocha": "^3.3.0",
- "snapdragon": "^0.11.0",
- "snapdragon-node": "^1.0.6"
- },
- "keywords": [
- "capture",
- "compile",
- "compiler",
- "convert",
- "match",
- "parse",
- "parser",
- "plugin",
- "render",
- "snapdragon",
- "snapdragonplugin",
- "transform",
- "util"
- ],
- "verb": {
- "toc": "collapsible",
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/snapdragon/LICENSE b/node_modules/snapdragon/LICENSE
deleted file mode 100644
index 1e49edf..0000000
--- a/node_modules/snapdragon/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015-2016, 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/snapdragon/README.md b/node_modules/snapdragon/README.md
deleted file mode 100644
index 4006e10..0000000
--- a/node_modules/snapdragon/README.md
+++ /dev/null
@@ -1,321 +0,0 @@
-# snapdragon [![NPM version](https://img.shields.io/npm/v/snapdragon.svg?style=flat)](https://www.npmjs.com/package/snapdragon) [![NPM downloads](https://img.shields.io/npm/dm/snapdragon.svg?style=flat)](https://npmjs.org/package/snapdragon) [![Build Status](https://img.shields.io/travis/jonschlinkert/snapdragon.svg?style=flat)](https://travis-ci.org/jonschlinkert/snapdragon)
-
-> Fast, pluggable and easy-to-use parser-renderer factory.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save snapdragon
-```
-
-Created by [jonschlinkert](https://github.com/jonschlinkert) and [doowb](https://github.com/doowb).
-
-**Features**
-
-* Bootstrap your own parser, get sourcemap support for free
-* All parsing and compiling is handled by simple, reusable middleware functions
-* Inspired by the parsers in [pug](http://jade-lang.com) and [css](https://github.com/reworkcss/css).
-
-## History
-
-### v0.5.0
-
-**Breaking changes**
-
-Substantial breaking changes were made in v0.5.0! Most of these changes are part of a larger refactor that will be finished in 0.6.0, including the introduction of a `Lexer` class.
-
-* Renderer was renamed to `Compiler`
-* the `.render` method was renamed to `.compile`
-* Many other smaller changes. A more detailed overview will be provided in 0.6.0. If you don't have to time review code, I recommend you wait for the 0.6.0 release.
-
-## Usage examples
-
-```js
-var Snapdragon = require('snapdragon');
-var snapdragon = new Snapdragon();
-```
-
-**Parse**
-
-```js
-var ast = snapdragon.parser('some string', options)
- // parser middleware that can be called by other middleware
- .set('foo', function () {})
- // parser middleware, runs immediately in the order defined
- .use(bar())
- .use(baz())
-```
-
-**Render**
-
-```js
-// pass the `ast` from the parse method
-var res = snapdragon.compiler(ast)
- // compiler middleware, called when the name of the middleware
- // matches the `node.type` (defined in a parser middleware)
- .set('bar', function () {})
- .set('baz', function () {})
- .compile()
-```
-
-See the [examples](./examples/).
-
-## Getting started
-
-**Parsers**
-
-Parsers are middleware functions used for parsing a string into an ast node.
-
-```js
-var ast = snapdragon.parser(str, options)
- .use(function() {
- var pos = this.position();
- var m = this.match(/^\./);
- if (!m) return;
- return pos({
- // `type` specifies the compiler to use
- type: 'dot',
- val: m[0]
- });
- })
-```
-
-**AST node**
-
-When the parser finds a match, `pos()` is called, pushing a token for that node onto the ast that looks something like:
-
-```js
-{ type: 'dot',
- val: '.',
- position:
- { start: { lineno: 1, column: 1 },
- end: { lineno: 1, column: 2 } }}
-```
-
-**Renderers**
-
-Renderers are _named_ middleware functions that visit over an array of ast nodes to compile a string.
-
-```js
-var res = snapdragon.compiler(ast)
- .set('dot', function (node) {
- console.log(node.val)
- //=> '.'
- return this.emit(node.val);
- })
-```
-
-**Source maps**
-
-If you want source map support, make sure to emit the position as well.
-
-```js
-var res = snapdragon.compiler(ast)
- .set('dot', function (node) {
- return this.emit(node.val, node.position);
- })
-```
-
-## Docs
-
-### Parser middleware
-
-A parser middleware is a function that returns an abject called a `token`. This token is pushed onto the AST as a node.
-
-**Example token**
-
-```js
-{ type: 'dot',
- val: '.',
- position:
- { start: { lineno: 1, column: 1 },
- end: { lineno: 1, column: 2 } }}
-```
-
-**Example parser middleware**
-
-Match a single `.` in a string:
-
-1. Get the starting position by calling `this.position()`
-2. pass a regex for matching a single dot to the `.match` method
-3. if **no match** is found, return `undefined`
-4. if a **match** is found, `pos()` is called, which returns a token with:
- - `type`: the name of the [compiler] to use
- - `val`: The actual value captured by the regex. In this case, a `.`. Note that you can capture and return whatever will be needed by the corresponding [compiler].
- - The ending position: automatically calculated by adding the length of the first capture group to the starting position.
-
-## Renderer middleware
-
-Renderers are run when the name of the compiler middleware matches the `type` defined on an ast `node` (which is defined in a parser).
-
-**Example**
-
-Exercise: Parse a dot, then compile it as an escaped dot.
-
-```js
-var ast = snapdragon.parser('.')
- .use(function () {
- var pos = this.position();
- var m = this.match(/^\./);
- if (!m) return;
- return pos({
- // define the `type` of compiler to use
- type: 'dot',
- val: m[0]
- })
- })
-
-var result = snapdragon.compiler(ast)
- .set('dot', function (node) {
- return this.emit('\\' + node.val);
- })
- .compile()
-
-console.log(result.output);
-//=> '\.'
-```
-
-## API
-
-### [Parser](lib/parser.js#L19)
-
-Create a new `Parser` with the given `input` and `options`.
-
-**Params**
-
-* `input` **{String}**
-* `options` **{Object}**
-
-### [.define](lib/parser.js#L103)
-
-Define a non-enumberable property on the `Parser` instance.
-
-**Example**
-
-```js
-parser.define('foo', 'bar');
-```
-
-**Params**
-
-* `key` **{String}**: propery name
-* `val` **{any}**: property value
-* `returns` **{Object}**: Returns the Parser instance for chaining.
-
-Set parser `name` with the given `fn`
-
-**Params**
-
-* `name` **{String}**
-* `fn` **{Function}**
-
-Get parser `name`
-
-**Params**
-
-* `name` **{String}**
-
-Push a `token` onto the `type` stack.
-
-**Params**
-
-* `type` **{String}**
-* `returns` **{Object}** `token`
-
-Pop a token off of the `type` stack
-
-**Params**
-
-* `type` **{String}**
-* `returns` **{Object}**: Returns a token
-
-Return true if inside a `stack` node. Types are `braces`, `parens` or `brackets`.
-
-**Params**
-
-* `type` **{String}**
-* `returns` **{Boolean}**
-
-**Example**
-
-```js
-parser.isType(node, 'brace');
-```
-
-**Params**
-
-* `node` **{Object}**
-* `type` **{String}**
-* `returns` **{Boolean}**
-
-### [.define](lib/compiler.js#L71)
-
-Define a non-enumberable property on the `Compiler` instance.
-
-**Example**
-
-```js
-compiler.define('foo', 'bar');
-```
-
-**Params**
-
-* `key` **{String}**: propery name
-* `val` **{any}**: property value
-* `returns` **{Object}**: Returns the Compiler instance for chaining.
-
-## About
-
-### Related projects
-
-* [braces](https://www.npmjs.com/package/braces): Fastest brace expansion for node.js, with the most complete support for the Bash 4.3 braces… [more](https://github.com/jonschlinkert/braces) | [homepage](https://github.com/jonschlinkert/braces "Fastest brace expansion for node.js, with the most complete support for the Bash 4.3 braces specification.")
-* [expand-brackets](https://www.npmjs.com/package/expand-brackets): Expand POSIX bracket expressions (character classes) in glob patterns. | [homepage](https://github.com/jonschlinkert/expand-brackets "Expand POSIX bracket expressions (character classes) in glob patterns.")
-* [extglob](https://www.npmjs.com/package/extglob): Convert extended globs to regex-compatible strings. Add (almost) the expressive power of regular expressions to… [more](https://github.com/jonschlinkert/extglob) | [homepage](https://github.com/jonschlinkert/extglob "Convert extended globs to regex-compatible strings. Add (almost) the expressive power of regular expressions to glob patterns.")
-* [micromatch](https://www.npmjs.com/package/micromatch): Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch. | [homepage](https://github.com/jonschlinkert/micromatch "Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 106 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 2 | [doowb](https://github.com/doowb) |
-
-### Building docs
-
-_(This document was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme) (a [verb](https://github.com/verbose/verb) generator), please don't edit the readme directly. Any changes to the readme must be made in [.verb.md](.verb.md).)_
-
-To generate the readme and API documentation with [verb](https://github.com/verbose/verb):
-
-```sh
-$ npm install -g verb verb-generate-readme && verb
-```
-
-### Running tests
-
-Install dev dependencies:
-
-```sh
-$ npm install -d && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT license](https://github.com/jonschlinkert/snapdragon/blob/master/LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.1.31, on October 10, 2016._
\ No newline at end of file
diff --git a/node_modules/snapdragon/index.js b/node_modules/snapdragon/index.js
deleted file mode 100644
index 235b464..0000000
--- 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/snapdragon/lib/compiler.js b/node_modules/snapdragon/lib/compiler.js
deleted file mode 100644
index 0ce9d21..0000000
--- a/node_modules/snapdragon/lib/compiler.js
+++ /dev/null
@@ -1,177 +0,0 @@
-'use strict';
-
-var use = require('use');
-var define = require('define-property');
-var debug = require('debug')('snapdragon:compiler');
-var utils = require('./utils');
-
-/**
- * Create a new `Compiler` with the given `options`.
- * @param {Object} `options`
- */
-
-function Compiler(options, state) {
- debug('initializing', __filename);
- this.options = utils.extend({source: 'string'}, options);
- this.state = state || {};
- this.compilers = {};
- this.output = '';
- this.set('eos', function(node) {
- return this.emit(node.val, node);
- });
- this.set('noop', function(node) {
- return this.emit(node.val, node);
- });
- this.set('bos', function(node) {
- return this.emit(node.val, node);
- });
- use(this);
-}
-
-/**
- * Prototype methods
- */
-
-Compiler.prototype = {
-
- /**
- * Throw an error message with details including the cursor position.
- * @param {String} `msg` Message to use in the Error.
- */
-
- error: function(msg, node) {
- var pos = node.position || {start: {column: 0}};
- var message = this.options.source + ' column:' + pos.start.column + ': ' + msg;
-
- var err = new Error(message);
- err.reason = msg;
- err.column = pos.start.column;
- err.source = this.pattern;
-
- if (this.options.silent) {
- this.errors.push(err);
- } else {
- throw err;
- }
- },
-
- /**
- * Define a non-enumberable property on the `Compiler` instance.
- *
- * ```js
- * compiler.define('foo', 'bar');
- * ```
- * @name .define
- * @param {String} `key` propery name
- * @param {any} `val` property value
- * @return {Object} Returns the Compiler instance for chaining.
- * @api public
- */
-
- define: function(key, val) {
- define(this, key, val);
- return this;
- },
-
- /**
- * Emit `node.val`
- */
-
- emit: function(str, node) {
- this.output += str;
- return str;
- },
-
- /**
- * Add a compiler `fn` with the given `name`
- */
-
- set: function(name, fn) {
- this.compilers[name] = fn;
- return this;
- },
-
- /**
- * Get compiler `name`.
- */
-
- get: function(name) {
- return this.compilers[name];
- },
-
- /**
- * Get the previous AST node.
- */
-
- prev: function(n) {
- return this.ast.nodes[this.idx - (n || 1)] || { type: 'bos', val: '' };
- },
-
- /**
- * Get the next AST node.
- */
-
- next: function(n) {
- return this.ast.nodes[this.idx + (n || 1)] || { type: 'eos', val: '' };
- },
-
- /**
- * Visit `node`.
- */
-
- visit: function(node, nodes, i) {
- var fn = this.compilers[node.type];
- this.idx = i;
-
- if (typeof fn !== 'function') {
- throw this.error('compiler "' + node.type + '" is not registered', node);
- }
- return fn.call(this, node, nodes, i);
- },
-
- /**
- * Map visit over array of `nodes`.
- */
-
- mapVisit: function(nodes) {
- if (!Array.isArray(nodes)) {
- throw new TypeError('expected an array');
- }
- var len = nodes.length;
- var idx = -1;
- while (++idx < len) {
- this.visit(nodes[idx], nodes, idx);
- }
- return this;
- },
-
- /**
- * Compile `ast`.
- */
-
- compile: function(ast, options) {
- var opts = utils.extend({}, this.options, options);
- this.ast = ast;
- this.parsingErrors = this.ast.errors;
- this.output = '';
-
- // source map support
- if (opts.sourcemap) {
- var sourcemaps = require('./source-maps');
- sourcemaps(this);
- this.mapVisit(this.ast.nodes);
- this.applySourceMaps();
- this.map = opts.sourcemap === 'generator' ? this.map : this.map.toJSON();
- return this;
- }
-
- this.mapVisit(this.ast.nodes);
- return this;
- }
-};
-
-/**
- * Expose `Compiler`
- */
-
-module.exports = Compiler;
diff --git a/node_modules/snapdragon/lib/parser.js b/node_modules/snapdragon/lib/parser.js
deleted file mode 100644
index a5a9b31..0000000
--- a/node_modules/snapdragon/lib/parser.js
+++ /dev/null
@@ -1,533 +0,0 @@
-'use strict';
-
-var use = require('use');
-var util = require('util');
-var Cache = require('map-cache');
-var define = require('define-property');
-var debug = require('debug')('snapdragon:parser');
-var Position = require('./position');
-var utils = require('./utils');
-
-/**
- * Create a new `Parser` with the given `input` and `options`.
- * @param {String} `input`
- * @param {Object} `options`
- * @api public
- */
-
-function Parser(options) {
- debug('initializing', __filename);
- this.options = utils.extend({source: 'string'}, options);
- this.init(this.options);
- use(this);
-}
-
-/**
- * Prototype methods
- */
-
-Parser.prototype = {
- constructor: Parser,
-
- init: function(options) {
- this.orig = '';
- this.input = '';
- this.parsed = '';
-
- this.column = 1;
- this.line = 1;
-
- this.regex = new Cache();
- this.errors = this.errors || [];
- this.parsers = this.parsers || {};
- this.types = this.types || [];
- this.sets = this.sets || {};
- this.fns = this.fns || [];
- this.currentType = 'root';
-
- var pos = this.position();
- this.bos = pos({type: 'bos', val: ''});
-
- this.ast = {
- type: 'root',
- errors: this.errors,
- nodes: [this.bos]
- };
-
- define(this.bos, 'parent', this.ast);
- this.nodes = [this.ast];
-
- this.count = 0;
- this.setCount = 0;
- this.stack = [];
- },
-
- /**
- * Throw a formatted error with the cursor column and `msg`.
- * @param {String} `msg` Message to use in the Error.
- */
-
- error: function(msg, node) {
- var pos = node.position || {start: {column: 0, line: 0}};
- var line = pos.start.line;
- var column = pos.start.column;
- var source = this.options.source;
-
- var message = source + ' : ' + msg;
- var err = new Error(message);
- err.source = source;
- err.reason = msg;
- err.pos = pos;
-
- if (this.options.silent) {
- this.errors.push(err);
- } else {
- throw err;
- }
- },
-
- /**
- * Define a non-enumberable property on the `Parser` instance.
- *
- * ```js
- * parser.define('foo', 'bar');
- * ```
- * @name .define
- * @param {String} `key` propery name
- * @param {any} `val` property value
- * @return {Object} Returns the Parser instance for chaining.
- * @api public
- */
-
- define: function(key, val) {
- define(this, key, val);
- return this;
- },
-
- /**
- * Mark position and patch `node.position`.
- */
-
- position: function() {
- var start = { line: this.line, column: this.column };
- var self = this;
-
- return function(node) {
- define(node, 'position', new Position(start, self));
- return node;
- };
- },
-
- /**
- * Set parser `name` with the given `fn`
- * @param {String} `name`
- * @param {Function} `fn`
- * @api public
- */
-
- set: function(type, fn) {
- if (this.types.indexOf(type) === -1) {
- this.types.push(type);
- }
- this.parsers[type] = fn.bind(this);
- return this;
- },
-
- /**
- * Get parser `name`
- * @param {String} `name`
- * @api public
- */
-
- get: function(name) {
- return this.parsers[name];
- },
-
- /**
- * Push a `token` onto the `type` stack.
- *
- * @param {String} `type`
- * @return {Object} `token`
- * @api public
- */
-
- push: function(type, token) {
- this.sets[type] = this.sets[type] || [];
- this.count++;
- this.stack.push(token);
- return this.sets[type].push(token);
- },
-
- /**
- * Pop a token off of the `type` stack
- * @param {String} `type`
- * @returns {Object} Returns a token
- * @api public
- */
-
- pop: function(type) {
- this.sets[type] = this.sets[type] || [];
- this.count--;
- this.stack.pop();
- return this.sets[type].pop();
- },
-
- /**
- * Return true if inside a `stack` node. Types are `braces`, `parens` or `brackets`.
- *
- * @param {String} `type`
- * @return {Boolean}
- * @api public
- */
-
- isInside: function(type) {
- this.sets[type] = this.sets[type] || [];
- return this.sets[type].length > 0;
- },
-
- /**
- * Return true if `node` is the given `type`.
- *
- * ```js
- * parser.isType(node, 'brace');
- * ```
- * @param {Object} `node`
- * @param {String} `type`
- * @return {Boolean}
- * @api public
- */
-
- isType: function(node, type) {
- return node && node.type === type;
- },
-
- /**
- * Get the previous AST node
- * @return {Object}
- */
-
- prev: function(n) {
- return this.stack.length > 0
- ? utils.last(this.stack, n)
- : utils.last(this.nodes, n);
- },
-
- /**
- * Update line and column based on `str`.
- */
-
- consume: function(len) {
- this.input = this.input.substr(len);
- },
-
- /**
- * Update column based on `str`.
- */
-
- updatePosition: function(str, len) {
- var lines = str.match(/\n/g);
- if (lines) this.line += lines.length;
- var i = str.lastIndexOf('\n');
- this.column = ~i ? len - i : this.column + len;
- this.parsed += str;
- this.consume(len);
- },
-
- /**
- * Match `regex`, return captures, and update the cursor position by `match[0]` length.
- * @param {RegExp} `regex`
- * @return {Object}
- */
-
- match: function(regex) {
- var m = regex.exec(this.input);
- if (m) {
- this.updatePosition(m[0], m[0].length);
- return m;
- }
- },
-
- /**
- * Capture `type` with the given regex.
- * @param {String} `type`
- * @param {RegExp} `regex`
- * @return {Function}
- */
-
- capture: function(type, regex) {
- if (typeof regex === 'function') {
- return this.set.apply(this, arguments);
- }
-
- this.regex.set(type, regex);
- this.set(type, function() {
- var parsed = this.parsed;
- var pos = this.position();
- var m = this.match(regex);
- if (!m || !m[0]) return;
-
- var prev = this.prev();
- var node = pos({
- type: type,
- val: m[0],
- parsed: parsed,
- rest: this.input
- });
-
- if (m[1]) {
- node.inner = m[1];
- }
-
- define(node, 'inside', this.stack.length > 0);
- define(node, 'parent', prev);
- prev.nodes.push(node);
- }.bind(this));
- return this;
- },
-
- /**
- * Create a parser with open and close for parens,
- * brackets or braces
- */
-
- capturePair: function(type, openRegex, closeRegex, fn) {
- this.sets[type] = this.sets[type] || [];
-
- /**
- * Open
- */
-
- this.set(type + '.open', function() {
- var parsed = this.parsed;
- var pos = this.position();
- var m = this.match(openRegex);
- if (!m || !m[0]) return;
-
- var val = m[0];
- this.setCount++;
- this.specialChars = true;
- var open = pos({
- type: type + '.open',
- val: val,
- rest: this.input
- });
-
- if (typeof m[1] !== 'undefined') {
- open.inner = m[1];
- }
-
- var prev = this.prev();
- var node = pos({
- type: type,
- nodes: [open]
- });
-
- define(node, 'rest', this.input);
- define(node, 'parsed', parsed);
- define(node, 'prefix', m[1]);
- define(node, 'parent', prev);
- define(open, 'parent', node);
-
- if (typeof fn === 'function') {
- fn.call(this, open, node);
- }
-
- this.push(type, node);
- prev.nodes.push(node);
- });
-
- /**
- * Close
- */
-
- this.set(type + '.close', function() {
- var pos = this.position();
- var m = this.match(closeRegex);
- if (!m || !m[0]) return;
-
- var parent = this.pop(type);
- var node = pos({
- type: type + '.close',
- rest: this.input,
- suffix: m[1],
- val: m[0]
- });
-
- if (!this.isType(parent, type)) {
- if (this.options.strict) {
- throw new Error('missing opening "' + type + '"');
- }
-
- this.setCount--;
- node.escaped = true;
- return node;
- }
-
- if (node.suffix === '\\') {
- parent.escaped = true;
- node.escaped = true;
- }
-
- parent.nodes.push(node);
- define(node, 'parent', parent);
- });
-
- return this;
- },
-
- /**
- * Capture end-of-string
- */
-
- eos: function() {
- var pos = this.position();
- if (this.input) return;
- var prev = this.prev();
-
- while (prev.type !== 'root' && !prev.visited) {
- if (this.options.strict === true) {
- throw new SyntaxError('invalid syntax:' + util.inspect(prev, null, 2));
- }
-
- if (!hasDelims(prev)) {
- prev.parent.escaped = true;
- prev.escaped = true;
- }
-
- visit(prev, function(node) {
- if (!hasDelims(node.parent)) {
- node.parent.escaped = true;
- node.escaped = true;
- }
- });
-
- prev = prev.parent;
- }
-
- var tok = pos({
- type: 'eos',
- val: this.append || ''
- });
-
- define(tok, 'parent', this.ast);
- return tok;
- },
-
- /**
- * Run parsers to advance the cursor position
- */
-
- next: function() {
- var parsed = this.parsed;
- var len = this.types.length;
- var idx = -1;
- var tok;
-
- while (++idx < len) {
- if ((tok = this.parsers[this.types[idx]].call(this))) {
- define(tok, 'rest', this.input);
- define(tok, 'parsed', parsed);
- this.last = tok;
- return tok;
- }
- }
- },
-
- /**
- * Parse the given string.
- * @return {Array}
- */
-
- parse: function(input) {
- if (typeof input !== 'string') {
- throw new TypeError('expected a string');
- }
-
- this.init(this.options);
- this.orig = input;
- this.input = input;
- var self = this;
-
- function parse() {
- // check input before calling `.next()`
- input = self.input;
-
- // get the next AST ndoe
- var node = self.next();
- if (node) {
- var prev = self.prev();
- if (prev) {
- define(node, 'parent', prev);
- if (prev.nodes) {
- prev.nodes.push(node);
- }
- }
-
- if (self.sets.hasOwnProperty(prev.type)) {
- self.currentType = prev.type;
- }
- }
-
- // if we got here but input is not changed, throw an error
- if (self.input && input === self.input) {
- throw new Error('no parsers registered for: "' + self.input.slice(0, 5) + '"');
- }
- }
-
- while (this.input) parse();
- if (this.stack.length && this.options.strict) {
- var node = this.stack.pop();
- throw this.error('missing opening ' + node.type + ': "' + this.orig + '"');
- }
-
- var eos = this.eos();
- var tok = this.prev();
- if (tok.type !== 'eos') {
- this.ast.nodes.push(eos);
- }
-
- return this.ast;
- }
-};
-
-/**
- * Visit `node` with the given `fn`
- */
-
-function visit(node, fn) {
- if (!node.visited) {
- define(node, 'visited', true);
- return node.nodes ? mapVisit(node.nodes, fn) : fn(node);
- }
- return node;
-}
-
-/**
- * Map visit over array of `nodes`.
- */
-
-function mapVisit(nodes, fn) {
- var len = nodes.length;
- var idx = -1;
- while (++idx < len) {
- visit(nodes[idx], fn);
- }
-}
-
-function hasOpen(node) {
- return node.nodes && node.nodes[0].type === (node.type + '.open');
-}
-
-function hasClose(node) {
- return node.nodes && utils.last(node.nodes).type === (node.type + '.close');
-}
-
-function hasDelims(node) {
- return hasOpen(node) && hasClose(node);
-}
-
-/**
- * Expose `Parser`
- */
-
-module.exports = Parser;
diff --git a/node_modules/snapdragon/lib/position.js b/node_modules/snapdragon/lib/position.js
deleted file mode 100644
index c859696..0000000
--- a/node_modules/snapdragon/lib/position.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict';
-
-var define = require('define-property');
-
-/**
- * Store position for a node
- */
-
-module.exports = function Position(start, parser) {
- this.start = start;
- this.end = { line: parser.line, column: parser.column };
- define(this, 'content', parser.orig);
- define(this, 'source', parser.options.source);
-};
diff --git a/node_modules/snapdragon/lib/source-maps.js b/node_modules/snapdragon/lib/source-maps.js
deleted file mode 100644
index d8e638b..0000000
--- a/node_modules/snapdragon/lib/source-maps.js
+++ /dev/null
@@ -1,145 +0,0 @@
-'use strict';
-
-var fs = require('fs');
-var path = require('path');
-var define = require('define-property');
-var utils = require('./utils');
-
-/**
- * Expose `mixin()`.
- * This code is based on `source-maps-support.js` in reworkcss/css
- * https://github.com/reworkcss/css/blob/master/lib/stringify/source-map-support.js
- * Copyright (c) 2012 TJ Holowaychuk
- */
-
-module.exports = mixin;
-
-/**
- * Mixin source map support into `compiler`.
- *
- * @param {Object} `compiler`
- * @api public
- */
-
-function mixin(compiler) {
- define(compiler, '_comment', compiler.comment);
- compiler.map = new utils.SourceMap.SourceMapGenerator();
- compiler.position = { line: 1, column: 1 };
- compiler.content = {};
- compiler.files = {};
-
- for (var key in exports) {
- define(compiler, key, exports[key]);
- }
-}
-
-/**
- * Update position.
- *
- * @param {String} str
- */
-
-exports.updatePosition = function(str) {
- var lines = str.match(/\n/g);
- if (lines) this.position.line += lines.length;
- var i = str.lastIndexOf('\n');
- this.position.column = ~i ? str.length - i : this.position.column + str.length;
-};
-
-/**
- * Emit `str` with `position`.
- *
- * @param {String} str
- * @param {Object} [pos]
- * @return {String}
- */
-
-exports.emit = function(str, node) {
- var position = node.position || {};
- var source = position.source;
- if (source) {
- if (position.filepath) {
- source = utils.unixify(position.filepath);
- }
-
- this.map.addMapping({
- source: source,
- generated: {
- line: this.position.line,
- column: Math.max(this.position.column - 1, 0)
- },
- original: {
- line: position.start.line,
- column: position.start.column - 1
- }
- });
-
- if (position.content) {
- this.addContent(source, position);
- }
- if (position.filepath) {
- this.addFile(source, position);
- }
-
- this.updatePosition(str);
- this.output += str;
- }
- return str;
-};
-
-/**
- * Adds a file to the source map output if it has not already been added
- * @param {String} `file`
- * @param {Object} `pos`
- */
-
-exports.addFile = function(file, position) {
- if (typeof position.content !== 'string') return;
- if (Object.prototype.hasOwnProperty.call(this.files, file)) return;
- this.files[file] = position.content;
-};
-
-/**
- * Adds a content source to the source map output if it has not already been added
- * @param {String} `source`
- * @param {Object} `position`
- */
-
-exports.addContent = function(source, position) {
- if (typeof position.content !== 'string') return;
- if (Object.prototype.hasOwnProperty.call(this.content, source)) return;
- this.map.setSourceContent(source, position.content);
-};
-
-/**
- * Applies any original source maps to the output and embeds the source file
- * contents in the source map.
- */
-
-exports.applySourceMaps = function() {
- Object.keys(this.files).forEach(function(file) {
- var content = this.files[file];
- this.map.setSourceContent(file, content);
-
- if (this.options.inputSourcemaps === true) {
- var originalMap = utils.sourceMapResolve.resolveSync(content, file, fs.readFileSync);
- if (originalMap) {
- var map = new utils.SourceMap.SourceMapConsumer(originalMap.map);
- var relativeTo = originalMap.sourcesRelativeTo;
- this.map.applySourceMap(map, file, utils.unixify(path.dirname(relativeTo)));
- }
- }
- }, this);
-};
-
-/**
- * Process comments, drops sourceMap comments.
- * @param {Object} node
- */
-
-exports.comment = function(node) {
- if (/^# sourceMappingURL=/.test(node.comment)) {
- return this.emit('', node.position);
- }
- return this._comment(node);
-};
diff --git a/node_modules/snapdragon/lib/utils.js b/node_modules/snapdragon/lib/utils.js
deleted file mode 100644
index 33f07e1..0000000
--- a/node_modules/snapdragon/lib/utils.js
+++ /dev/null
@@ -1,48 +0,0 @@
-'use strict';
-
-/**
- * Module dependencies
- */
-
-exports.extend = require('extend-shallow');
-exports.SourceMap = require('source-map');
-exports.sourceMapResolve = require('source-map-resolve');
-
-/**
- * Convert backslash in the given string to forward slashes
- */
-
-exports.unixify = function(fp) {
- return fp.split(/\\+/).join('/');
-};
-
-/**
- * Return true if `val` is a non-empty string
- *
- * @param {String} `str`
- * @return {Boolean}
- */
-
-exports.isString = function(str) {
- return str && typeof str === 'string';
-};
-
-/**
- * Cast `val` to an array
- * @return {Array}
- */
-
-exports.arrayify = function(val) {
- if (typeof val === 'string') return [val];
- return val ? (Array.isArray(val) ? val : [val]) : [];
-};
-
-/**
- * Get the last `n` element from the given `array`
- * @param {Array} `array`
- * @return {*}
- */
-
-exports.last = function(arr, n) {
- return arr[arr.length - (n || 1)];
-};
diff --git a/node_modules/snapdragon/node_modules/define-property/LICENSE b/node_modules/snapdragon/node_modules/define-property/LICENSE
deleted file mode 100644
index 65f90ac..0000000
--- a/node_modules/snapdragon/node_modules/define-property/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015, 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/snapdragon/node_modules/define-property/README.md b/node_modules/snapdragon/node_modules/define-property/README.md
deleted file mode 100644
index 8cac698..0000000
--- a/node_modules/snapdragon/node_modules/define-property/README.md
+++ /dev/null
@@ -1,77 +0,0 @@
-# define-property [![NPM version](https://badge.fury.io/js/define-property.svg)](http://badge.fury.io/js/define-property)
-
-> Define a non-enumerable property on an object.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/)
-
-```sh
-$ npm i define-property --save
-```
-
-## Usage
-
-**Params**
-
-* `obj`: The object on which to define the property.
-* `prop`: The name of the property to be defined or modified.
-* `descriptor`: The descriptor for the property being defined or modified.
-
-```js
-var define = require('define-property');
-var obj = {};
-define(obj, 'foo', function(val) {
- return val.toUpperCase();
-});
-
-console.log(obj);
-//=> {}
-
-console.log(obj.foo('bar'));
-//=> 'BAR'
-```
-
-**get/set**
-
-```js
-define(obj, 'foo', {
- get: function() {},
- set: function() {}
-});
-```
-
-## Related projects
-
-* [delegate-object](https://www.npmjs.com/package/delegate-object): Copy properties from an object to another object, where properties with function values will be… [more](https://www.npmjs.com/package/delegate-object) | [homepage](https://github.com/doowb/delegate-object)
-* [forward-object](https://www.npmjs.com/package/forward-object): Copy properties from an object to another object, where properties with function values will be… [more](https://www.npmjs.com/package/forward-object) | [homepage](https://github.com/doowb/forward-object)
-* [mixin-deep](https://www.npmjs.com/package/mixin-deep): Deeply mix the properties of objects into the first object. Like merge-deep, but doesn't clone. | [homepage](https://github.com/jonschlinkert/mixin-deep)
-* [mixin-object](https://www.npmjs.com/package/mixin-object): Mixin the own and inherited properties of other objects onto the first object. Pass an… [more](https://www.npmjs.com/package/mixin-object) | [homepage](https://github.com/jonschlinkert/mixin-object)
-
-## Running tests
-
-Install dev dependencies:
-
-```sh
-$ npm i -d && npm test
-```
-
-## Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/define-property/issues/new).
-
-## 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 August 31, 2015._
diff --git a/node_modules/snapdragon/node_modules/define-property/index.js b/node_modules/snapdragon/node_modules/define-property/index.js
deleted file mode 100644
index 3e0e5e1..0000000
--- a/node_modules/snapdragon/node_modules/define-property/index.js
+++ /dev/null
@@ -1,31 +0,0 @@
-/*!
- * define-property
- *
- * Copyright (c) 2015, Jon Schlinkert.
- * Licensed under the MIT License.
- */
-
-'use strict';
-
-var isDescriptor = require('is-descriptor');
-
-module.exports = function defineProperty(obj, prop, val) {
- if (typeof obj !== 'object' && typeof obj !== 'function') {
- throw new TypeError('expected an object or function.');
- }
-
- if (typeof prop !== 'string') {
- throw new TypeError('expected `prop` to be a string.');
- }
-
- if (isDescriptor(val) && ('set' in val || 'get' in val)) {
- return Object.defineProperty(obj, prop, val);
- }
-
- return Object.defineProperty(obj, prop, {
- configurable: true,
- enumerable: false,
- writable: true,
- value: val
- });
-};
diff --git a/node_modules/snapdragon/node_modules/define-property/package.json b/node_modules/snapdragon/node_modules/define-property/package.json
deleted file mode 100644
index 43561bf..0000000
--- a/node_modules/snapdragon/node_modules/define-property/package.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
- "name": "define-property",
- "description": "Define a non-enumerable property on an object.",
- "version": "0.2.5",
- "homepage": "https://github.com/jonschlinkert/define-property",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/define-property",
- "bugs": {
- "url": "https://github.com/jonschlinkert/define-property/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "devDependencies": {
- "mocha": "*",
- "should": "^7.0.4"
- },
- "keywords": [
- "define",
- "define-property",
- "enumerable",
- "key",
- "non",
- "non-enumerable",
- "object",
- "prop",
- "property",
- "value"
- ],
- "verb": {
- "related": {
- "list": [
- "mixin-deep",
- "mixin-object",
- "delegate-object",
- "forward-object"
- ]
- }
- },
- "dependencies": {
- "is-descriptor": "^0.1.0"
- }
-}
diff --git a/node_modules/snapdragon/node_modules/is-accessor-descriptor/LICENSE b/node_modules/snapdragon/node_modules/is-accessor-descriptor/LICENSE
deleted file mode 100644
index 65f90ac..0000000
--- a/node_modules/snapdragon/node_modules/is-accessor-descriptor/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015, 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/snapdragon/node_modules/is-accessor-descriptor/README.md b/node_modules/snapdragon/node_modules/is-accessor-descriptor/README.md
deleted file mode 100644
index 3743fe6..0000000
--- a/node_modules/snapdragon/node_modules/is-accessor-descriptor/README.md
+++ /dev/null
@@ -1,123 +0,0 @@
-# is-accessor-descriptor [![NPM version](https://img.shields.io/npm/v/is-accessor-descriptor.svg)](https://www.npmjs.com/package/is-accessor-descriptor) [![Build Status](https://img.shields.io/travis/jonschlinkert/is-accessor-descriptor.svg)](https://travis-ci.org/jonschlinkert/is-accessor-descriptor)
-
-> Returns true if a value has the characteristics of a valid JavaScript accessor descriptor.
-
-- [Install](#install)
-- [Usage](#usage)
-- [Examples](#examples)
-- [API](#api)
-- [Related projects](#related-projects)
-- [Running tests](#running-tests)
-- [Contributing](#contributing)
-- [Author](#author)
-- [License](#license)
-
-_(TOC generated by [verb](https://github.com/verbose/verb) using [markdown-toc](https://github.com/jonschlinkert/markdown-toc))_
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm i is-accessor-descriptor --save
-```
-
-## Usage
-
-```js
-var isAccessor = require('is-accessor-descriptor');
-
-isAccessor({get: function() {}});
-//=> true
-```
-
-You may also pass an object and property name to check if the property is an accessor:
-
-```js
-isAccessor(foo, 'bar');
-```
-
-## Examples
-
-`false` when not an object
-
-```js
-isAccessor('a')
-isAccessor(null)
-isAccessor([])
-//=> false
-```
-
-`true` when the object has valid properties
-
-and the properties all have the correct JavaScript types:
-
-```js
-isAccessor({get: noop, set: noop})
-isAccessor({get: noop})
-isAccessor({set: noop})
-//=> true
-```
-
-`false` when the object has invalid properties
-
-```js
-isAccessor({get: noop, set: noop, bar: 'baz'})
-isAccessor({get: noop, writable: true})
-isAccessor({get: noop, value: true})
-//=> false
-```
-
-`false` when an accessor is not a function
-
-```js
-isAccessor({get: noop, set: 'baz'})
-isAccessor({get: 'foo', set: noop})
-isAccessor({get: 'foo', bar: 'baz'})
-isAccessor({get: 'foo', set: 'baz'})
-//=> false
-```
-
-`false` when a value is not the correct type
-
-```js
-isAccessor({get: noop, set: noop, enumerable: 'foo'})
-isAccessor({set: noop, configurable: 'foo'})
-isAccessor({get: noop, configurable: 'foo'})
-//=> false
-```
-
-## Related projects
-
-* [is-accessor-descriptor](https://www.npmjs.com/package/is-accessor-descriptor): Returns true if a value has the characteristics of a valid JavaScript accessor descriptor. | [homepage](https://github.com/jonschlinkert/is-accessor-descriptor)
-* [is-data-descriptor](https://www.npmjs.com/package/is-data-descriptor): Returns true if a value has the characteristics of a valid JavaScript data descriptor. | [homepage](https://github.com/jonschlinkert/is-data-descriptor)
-* [is-descriptor](https://www.npmjs.com/package/is-descriptor): Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for… [more](https://www.npmjs.com/package/is-descriptor) | [homepage](https://github.com/jonschlinkert/is-descriptor)
-* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject)
-
-## Running tests
-
-Install dev dependencies:
-
-```sh
-$ npm i -d && npm test
-```
-
-## Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/is-accessor-descriptor/issues/new).
-
-## Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
-
-## License
-
-Copyright © 2015 [Jon Schlinkert](https://github.com/jonschlinkert)
-Released under the MIT license.
-
-***
-
-_This file was generated by [verb](https://github.com/verbose/verb) on December 28, 2015._
\ No newline at end of file
diff --git a/node_modules/snapdragon/node_modules/is-accessor-descriptor/index.js b/node_modules/snapdragon/node_modules/is-accessor-descriptor/index.js
deleted file mode 100644
index 2ca4af8..0000000
--- a/node_modules/snapdragon/node_modules/is-accessor-descriptor/index.js
+++ /dev/null
@@ -1,69 +0,0 @@
-/*!
- * is-accessor-descriptor
- *
- * Copyright (c) 2015, Jon Schlinkert.
- * Licensed 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/node_modules/is-accessor-descriptor/node_modules/kind-of/LICENSE b/node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of/LICENSE
deleted file mode 100644
index d734237..0000000
--- a/node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of/README.md b/node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of/README.md
deleted file mode 100644
index 6a9df36..0000000
--- a/node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of/README.md
+++ /dev/null
@@ -1,261 +0,0 @@
-# kind-of [![NPM version](https://img.shields.io/npm/v/kind-of.svg?style=flat)](https://www.npmjs.com/package/kind-of) [![NPM monthly downloads](https://img.shields.io/npm/dm/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![NPM total downloads](https://img.shields.io/npm/dt/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/kind-of.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/kind-of)
-
-> Get the native type of a value.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save kind-of
-```
-
-## Install
-
-Install with [bower](https://bower.io/)
-
-```sh
-$ bower install kind-of --save
-```
-
-## Usage
-
-> es5, browser and es6 ready
-
-```js
-var kindOf = require('kind-of');
-
-kindOf(undefined);
-//=> 'undefined'
-
-kindOf(null);
-//=> 'null'
-
-kindOf(true);
-//=> 'boolean'
-
-kindOf(false);
-//=> 'boolean'
-
-kindOf(new Boolean(true));
-//=> 'boolean'
-
-kindOf(new Buffer(''));
-//=> 'buffer'
-
-kindOf(42);
-//=> 'number'
-
-kindOf(new Number(42));
-//=> 'number'
-
-kindOf('str');
-//=> 'string'
-
-kindOf(new String('str'));
-//=> 'string'
-
-kindOf(arguments);
-//=> 'arguments'
-
-kindOf({});
-//=> 'object'
-
-kindOf(Object.create(null));
-//=> 'object'
-
-kindOf(new Test());
-//=> 'object'
-
-kindOf(new Date());
-//=> 'date'
-
-kindOf([]);
-//=> 'array'
-
-kindOf([1, 2, 3]);
-//=> 'array'
-
-kindOf(new Array());
-//=> 'array'
-
-kindOf(/foo/);
-//=> 'regexp'
-
-kindOf(new RegExp('foo'));
-//=> 'regexp'
-
-kindOf(function () {});
-//=> 'function'
-
-kindOf(function * () {});
-//=> 'function'
-
-kindOf(new Function());
-//=> 'function'
-
-kindOf(new Map());
-//=> 'map'
-
-kindOf(new WeakMap());
-//=> 'weakmap'
-
-kindOf(new Set());
-//=> 'set'
-
-kindOf(new WeakSet());
-//=> 'weakset'
-
-kindOf(Symbol('str'));
-//=> 'symbol'
-
-kindOf(new Int8Array());
-//=> 'int8array'
-
-kindOf(new Uint8Array());
-//=> 'uint8array'
-
-kindOf(new Uint8ClampedArray());
-//=> 'uint8clampedarray'
-
-kindOf(new Int16Array());
-//=> 'int16array'
-
-kindOf(new Uint16Array());
-//=> 'uint16array'
-
-kindOf(new Int32Array());
-//=> 'int32array'
-
-kindOf(new Uint32Array());
-//=> 'uint32array'
-
-kindOf(new Float32Array());
-//=> 'float32array'
-
-kindOf(new Float64Array());
-//=> 'float64array'
-```
-
-## Benchmarks
-
-Benchmarked against [typeof](http://github.com/CodingFu/typeof) and [type-of](https://github.com/ForbesLindesay/type-of).
-Note that performaces is slower for es6 features `Map`, `WeakMap`, `Set` and `WeakSet`.
-
-```bash
-#1: array
- current x 23,329,397 ops/sec ±0.82% (94 runs sampled)
- lib-type-of x 4,170,273 ops/sec ±0.55% (94 runs sampled)
- lib-typeof x 9,686,935 ops/sec ±0.59% (98 runs sampled)
-
-#2: boolean
- current x 27,197,115 ops/sec ±0.85% (94 runs sampled)
- lib-type-of x 3,145,791 ops/sec ±0.73% (97 runs sampled)
- lib-typeof x 9,199,562 ops/sec ±0.44% (99 runs sampled)
-
-#3: date
- current x 20,190,117 ops/sec ±0.86% (92 runs sampled)
- lib-type-of x 5,166,970 ops/sec ±0.74% (94 runs sampled)
- lib-typeof x 9,610,821 ops/sec ±0.50% (96 runs sampled)
-
-#4: function
- current x 23,855,460 ops/sec ±0.60% (97 runs sampled)
- lib-type-of x 5,667,740 ops/sec ±0.54% (100 runs sampled)
- lib-typeof x 10,010,644 ops/sec ±0.44% (100 runs sampled)
-
-#5: null
- current x 27,061,047 ops/sec ±0.97% (96 runs sampled)
- lib-type-of x 13,965,573 ops/sec ±0.62% (97 runs sampled)
- lib-typeof x 8,460,194 ops/sec ±0.61% (97 runs sampled)
-
-#6: number
- current x 25,075,682 ops/sec ±0.53% (99 runs sampled)
- lib-type-of x 2,266,405 ops/sec ±0.41% (98 runs sampled)
- lib-typeof x 9,821,481 ops/sec ±0.45% (99 runs sampled)
-
-#7: object
- current x 3,348,980 ops/sec ±0.49% (99 runs sampled)
- lib-type-of x 3,245,138 ops/sec ±0.60% (94 runs sampled)
- lib-typeof x 9,262,952 ops/sec ±0.59% (99 runs sampled)
-
-#8: regex
- current x 21,284,827 ops/sec ±0.72% (96 runs sampled)
- lib-type-of x 4,689,241 ops/sec ±0.43% (100 runs sampled)
- lib-typeof x 8,957,593 ops/sec ±0.62% (98 runs sampled)
-
-#9: string
- current x 25,379,234 ops/sec ±0.58% (96 runs sampled)
- lib-type-of x 3,635,148 ops/sec ±0.76% (93 runs sampled)
- lib-typeof x 9,494,134 ops/sec ±0.49% (98 runs sampled)
-
-#10: undef
- current x 27,459,221 ops/sec ±1.01% (93 runs sampled)
- lib-type-of x 14,360,433 ops/sec ±0.52% (99 runs sampled)
- lib-typeof x 23,202,868 ops/sec ±0.59% (94 runs sampled)
-
-```
-
-## Optimizations
-
-In 7 out of 8 cases, this library is 2x-10x faster than other top libraries included in the benchmarks. There are a few things that lead to this performance advantage, none of them hard and fast rules, but all of them simple and repeatable in almost any code library:
-
-1. Optimize around the fastest and most common use cases first. Of course, this will change from project-to-project, but I took some time to understand how and why `typeof` checks were being used in my own libraries and other libraries I use a lot.
-2. Optimize around bottlenecks - In other words, the order in which conditionals are implemented is significant, because each check is only as fast as the failing checks that came before it. Here, the biggest bottleneck by far is checking for plain objects (an object that was created by the `Object` constructor). I opted to make this check happen by process of elimination rather than brute force up front (e.g. by using something like `val.constructor.name`), so that every other type check would not be penalized it.
-3. Don't do uneccessary processing - why do `.slice(8, -1).toLowerCase();` just to get the word `regex`? It's much faster to do `if (type === '[object RegExp]') return 'regex'`
-
-## About
-
-### Related projects
-
-* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/jonschlinkert/is-glob) | [homepage](https://github.com/jonschlinkert/is-glob "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet")
-* [is-number](https://www.npmjs.com/package/is-number): Returns true if the value is a number. comprehensive tests. | [homepage](https://github.com/jonschlinkert/is-number "Returns true if the value is a number. comprehensive tests.")
-* [is-primitive](https://www.npmjs.com/package/is-primitive): Returns `true` if the value is a primitive. | [homepage](https://github.com/jonschlinkert/is-primitive "Returns `true` if the value is a primitive. ")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 59 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 2 | [miguelmota](https://github.com/miguelmota) |
-| 1 | [dtothefp](https://github.com/dtothefp) |
-| 1 | [ksheedlo](https://github.com/ksheedlo) |
-| 1 | [pdehaan](https://github.com/pdehaan) |
-| 1 | [laggingreflex](https://github.com/laggingreflex) |
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on May 16, 2017._
\ No newline at end of file
diff --git a/node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of/index.js b/node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of/index.js
deleted file mode 100644
index b52c291..0000000
--- a/node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of/index.js
+++ /dev/null
@@ -1,116 +0,0 @@
-var isBuffer = require('is-buffer');
-var toString = Object.prototype.toString;
-
-/**
- * Get the native `typeof` a value.
- *
- * @param {*} `val`
- * @return {*} Native javascript type
- */
-
-module.exports = function kindOf(val) {
- // primitivies
- if (typeof val === 'undefined') {
- return 'undefined';
- }
- if (val === null) {
- return 'null';
- }
- if (val === true || val === false || val instanceof Boolean) {
- return 'boolean';
- }
- if (typeof val === 'string' || val instanceof String) {
- return 'string';
- }
- if (typeof val === 'number' || val instanceof Number) {
- return 'number';
- }
-
- // functions
- if (typeof val === 'function' || val instanceof Function) {
- return 'function';
- }
-
- // array
- if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) {
- return 'array';
- }
-
- // check for instances of RegExp and Date before calling `toString`
- if (val instanceof RegExp) {
- return 'regexp';
- }
- if (val instanceof Date) {
- return 'date';
- }
-
- // other objects
- var type = toString.call(val);
-
- if (type === '[object RegExp]') {
- return 'regexp';
- }
- if (type === '[object Date]') {
- return 'date';
- }
- if (type === '[object Arguments]') {
- return 'arguments';
- }
- if (type === '[object Error]') {
- return 'error';
- }
-
- // buffer
- if (isBuffer(val)) {
- return 'buffer';
- }
-
- // es6: Map, WeakMap, Set, WeakSet
- if (type === '[object Set]') {
- return 'set';
- }
- if (type === '[object WeakSet]') {
- return 'weakset';
- }
- if (type === '[object Map]') {
- return 'map';
- }
- if (type === '[object WeakMap]') {
- return 'weakmap';
- }
- if (type === '[object Symbol]') {
- return 'symbol';
- }
-
- // typed arrays
- if (type === '[object Int8Array]') {
- return 'int8array';
- }
- if (type === '[object Uint8Array]') {
- return 'uint8array';
- }
- if (type === '[object Uint8ClampedArray]') {
- return 'uint8clampedarray';
- }
- if (type === '[object Int16Array]') {
- return 'int16array';
- }
- if (type === '[object Uint16Array]') {
- return 'uint16array';
- }
- if (type === '[object Int32Array]') {
- return 'int32array';
- }
- if (type === '[object Uint32Array]') {
- return 'uint32array';
- }
- if (type === '[object Float32Array]') {
- return 'float32array';
- }
- if (type === '[object Float64Array]') {
- return 'float64array';
- }
-
- // must be a plain object
- return 'object';
-};
diff --git a/node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of/package.json b/node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of/package.json
deleted file mode 100644
index 5de879e..0000000
--- a/node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of/package.json
+++ /dev/null
@@ -1,90 +0,0 @@
-{
- "name": "kind-of",
- "description": "Get the native type of a value.",
- "version": "3.2.2",
- "homepage": "https://github.com/jonschlinkert/kind-of",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "David Fox-Powell (https://dtothefp.github.io/me)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Ken Sheedlo (kensheedlo.com)",
- "laggingreflex (https://github.com/laggingreflex)",
- "Miguel Mota (https://miguelmota.com)",
- "Peter deHaan (http://about.me/peterdehaan)"
- ],
- "repository": "jonschlinkert/kind-of",
- "bugs": {
- "url": "https://github.com/jonschlinkert/kind-of/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha",
- "prepublish": "browserify -o browser.js -e index.js -s index --bare"
- },
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "devDependencies": {
- "ansi-bold": "^0.1.1",
- "benchmarked": "^1.0.0",
- "browserify": "^14.3.0",
- "glob": "^7.1.1",
- "gulp-format-md": "^0.1.12",
- "mocha": "^3.3.0",
- "type-of": "^2.0.1",
- "typeof": "^1.0.0"
- },
- "keywords": [
- "arguments",
- "array",
- "boolean",
- "check",
- "date",
- "function",
- "is",
- "is-type",
- "is-type-of",
- "kind",
- "kind-of",
- "number",
- "object",
- "of",
- "regexp",
- "string",
- "test",
- "type",
- "type-of",
- "typeof",
- "types"
- ],
- "verb": {
- "related": {
- "list": [
- "is-glob",
- "is-number",
- "is-primitive"
- ]
- },
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- },
- "reflinks": [
- "verb"
- ]
- }
-}
diff --git a/node_modules/snapdragon/node_modules/is-accessor-descriptor/package.json b/node_modules/snapdragon/node_modules/is-accessor-descriptor/package.json
deleted file mode 100644
index 0f39c64..0000000
--- a/node_modules/snapdragon/node_modules/is-accessor-descriptor/package.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{
- "name": "is-accessor-descriptor",
- "description": "Returns true if a value has the characteristics of a valid JavaScript accessor descriptor.",
- "version": "0.1.6",
- "homepage": "https://github.com/jonschlinkert/is-accessor-descriptor",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/is-accessor-descriptor",
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-accessor-descriptor/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "devDependencies": {
- "mocha": "*",
- "should": "*"
- },
- "keywords": [
- "accessor",
- "check",
- "data",
- "descriptor",
- "get",
- "getter",
- "is",
- "keys",
- "object",
- "properties",
- "property",
- "set",
- "setter",
- "type",
- "valid",
- "value"
- ],
- "verb": {
- "related": {
- "list": [
- "is-accessor-descriptor",
- "is-data-descriptor",
- "is-descriptor",
- "isobject"
- ]
- },
- "plugins": [
- "gulp-format-md"
- ],
- "layout": "default"
- }
-}
diff --git a/node_modules/snapdragon/node_modules/is-data-descriptor/LICENSE b/node_modules/snapdragon/node_modules/is-data-descriptor/LICENSE
deleted file mode 100644
index 65f90ac..0000000
--- a/node_modules/snapdragon/node_modules/is-data-descriptor/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015, 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/snapdragon/node_modules/is-data-descriptor/README.md b/node_modules/snapdragon/node_modules/is-data-descriptor/README.md
deleted file mode 100644
index 41e1643..0000000
--- a/node_modules/snapdragon/node_modules/is-data-descriptor/README.md
+++ /dev/null
@@ -1,128 +0,0 @@
-# is-data-descriptor [![NPM version](https://img.shields.io/npm/v/is-data-descriptor.svg)](https://www.npmjs.com/package/is-data-descriptor) [![Build Status](https://img.shields.io/travis/jonschlinkert/is-data-descriptor.svg)](https://travis-ci.org/jonschlinkert/is-data-descriptor)
-
-> Returns true if a value has the characteristics of a valid JavaScript data descriptor.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm i is-data-descriptor --save
-```
-
-## Usage
-
-```js
-var isDataDesc = require('is-data-descriptor');
-```
-
-## Examples
-
-`true` when the descriptor has valid properties with valid values.
-
-```js
-// `value` can be anything
-isDataDesc({value: 'foo'})
-isDataDesc({value: function() {}})
-isDataDesc({value: true})
-//=> true
-```
-
-`false` when not an object
-
-```js
-isDataDesc('a')
-//=> false
-isDataDesc(null)
-//=> false
-isDataDesc([])
-//=> false
-```
-
-`false` when the object has invalid properties
-
-```js
-isDataDesc({value: 'foo', bar: 'baz'})
-//=> false
-isDataDesc({value: 'foo', bar: 'baz'})
-//=> false
-isDataDesc({value: 'foo', get: function(){}})
-//=> false
-isDataDesc({get: function(){}, value: 'foo'})
-//=> false
-```
-
-`false` when a value is not the correct type
-
-```js
-isDataDesc({value: 'foo', enumerable: 'foo'})
-//=> false
-isDataDesc({value: 'foo', configurable: 'foo'})
-//=> false
-isDataDesc({value: 'foo', writable: 'foo'})
-//=> false
-```
-
-## Valid properties
-
-The only valid data descriptor properties are the following:
-
-* `configurable` (required)
-* `enumerable` (required)
-* `value` (optional)
-* `writable` (optional)
-
-To be a valid data descriptor, either `value` or `writable` must be defined.
-
-**Invalid properties**
-
-A descriptor may have additional _invalid_ properties (an error will **not** be thrown).
-
-```js
-var foo = {};
-
-Object.defineProperty(foo, 'bar', {
- enumerable: true,
- whatever: 'blah', // invalid, but doesn't cause an error
- get: function() {
- return 'baz';
- }
-});
-
-console.log(foo.bar);
-//=> 'baz'
-```
-
-## Related projects
-
-* [is-accessor-descriptor](https://www.npmjs.com/package/is-accessor-descriptor): Returns true if a value has the characteristics of a valid JavaScript accessor descriptor. | [homepage](https://github.com/jonschlinkert/is-accessor-descriptor)
-* [is-descriptor](https://www.npmjs.com/package/is-descriptor): Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for… [more](https://www.npmjs.com/package/is-descriptor) | [homepage](https://github.com/jonschlinkert/is-descriptor)
-* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject)
-
-## Running tests
-
-Install dev dependencies:
-
-```sh
-$ npm i -d && npm test
-```
-
-## Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/is-data-descriptor/issues/new).
-
-## Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
-
-## License
-
-Copyright © 2015 [Jon Schlinkert](https://github.com/jonschlinkert)
-Released under the MIT license.
-
-***
-
-_This file was generated by [verb](https://github.com/verbose/verb) on December 28, 2015._
\ No newline at end of file
diff --git a/node_modules/snapdragon/node_modules/is-data-descriptor/index.js b/node_modules/snapdragon/node_modules/is-data-descriptor/index.js
deleted file mode 100644
index d4d09c9..0000000
--- a/node_modules/snapdragon/node_modules/is-data-descriptor/index.js
+++ /dev/null
@@ -1,55 +0,0 @@
-/*!
- * is-data-descriptor
- *
- * Copyright (c) 2015, Jon Schlinkert.
- * Licensed under the MIT License.
- */
-
-'use strict';
-
-var typeOf = require('kind-of');
-
-// data descriptor properties
-var data = {
- configurable: 'boolean',
- enumerable: 'boolean',
- writable: 'boolean'
-};
-
-function isDataDescriptor(obj, prop) {
- if (typeOf(obj) !== 'object') {
- return false;
- }
-
- if (typeof prop === 'string') {
- var val = Object.getOwnPropertyDescriptor(obj, prop);
- return typeof val !== 'undefined';
- }
-
- if (!('value' in obj) && !('writable' in obj)) {
- return false;
- }
-
- for (var key in obj) {
- if (key === 'value') continue;
-
- if (!data.hasOwnProperty(key)) {
- continue;
- }
-
- if (typeOf(obj[key]) === data[key]) {
- continue;
- }
-
- if (typeof obj[key] !== 'undefined') {
- return false;
- }
- }
- return true;
-}
-
-/**
- * Expose `isDataDescriptor`
- */
-
-module.exports = isDataDescriptor;
diff --git a/node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of/LICENSE b/node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of/LICENSE
deleted file mode 100644
index d734237..0000000
--- a/node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014-2017, 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/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of/README.md b/node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of/README.md
deleted file mode 100644
index 6a9df36..0000000
--- a/node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of/README.md
+++ /dev/null
@@ -1,261 +0,0 @@
-# kind-of [![NPM version](https://img.shields.io/npm/v/kind-of.svg?style=flat)](https://www.npmjs.com/package/kind-of) [![NPM monthly downloads](https://img.shields.io/npm/dm/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![NPM total downloads](https://img.shields.io/npm/dt/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/kind-of.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/kind-of)
-
-> Get the native type of a value.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save kind-of
-```
-
-## Install
-
-Install with [bower](https://bower.io/)
-
-```sh
-$ bower install kind-of --save
-```
-
-## Usage
-
-> es5, browser and es6 ready
-
-```js
-var kindOf = require('kind-of');
-
-kindOf(undefined);
-//=> 'undefined'
-
-kindOf(null);
-//=> 'null'
-
-kindOf(true);
-//=> 'boolean'
-
-kindOf(false);
-//=> 'boolean'
-
-kindOf(new Boolean(true));
-//=> 'boolean'
-
-kindOf(new Buffer(''));
-//=> 'buffer'
-
-kindOf(42);
-//=> 'number'
-
-kindOf(new Number(42));
-//=> 'number'
-
-kindOf('str');
-//=> 'string'
-
-kindOf(new String('str'));
-//=> 'string'
-
-kindOf(arguments);
-//=> 'arguments'
-
-kindOf({});
-//=> 'object'
-
-kindOf(Object.create(null));
-//=> 'object'
-
-kindOf(new Test());
-//=> 'object'
-
-kindOf(new Date());
-//=> 'date'
-
-kindOf([]);
-//=> 'array'
-
-kindOf([1, 2, 3]);
-//=> 'array'
-
-kindOf(new Array());
-//=> 'array'
-
-kindOf(/foo/);
-//=> 'regexp'
-
-kindOf(new RegExp('foo'));
-//=> 'regexp'
-
-kindOf(function () {});
-//=> 'function'
-
-kindOf(function * () {});
-//=> 'function'
-
-kindOf(new Function());
-//=> 'function'
-
-kindOf(new Map());
-//=> 'map'
-
-kindOf(new WeakMap());
-//=> 'weakmap'
-
-kindOf(new Set());
-//=> 'set'
-
-kindOf(new WeakSet());
-//=> 'weakset'
-
-kindOf(Symbol('str'));
-//=> 'symbol'
-
-kindOf(new Int8Array());
-//=> 'int8array'
-
-kindOf(new Uint8Array());
-//=> 'uint8array'
-
-kindOf(new Uint8ClampedArray());
-//=> 'uint8clampedarray'
-
-kindOf(new Int16Array());
-//=> 'int16array'
-
-kindOf(new Uint16Array());
-//=> 'uint16array'
-
-kindOf(new Int32Array());
-//=> 'int32array'
-
-kindOf(new Uint32Array());
-//=> 'uint32array'
-
-kindOf(new Float32Array());
-//=> 'float32array'
-
-kindOf(new Float64Array());
-//=> 'float64array'
-```
-
-## Benchmarks
-
-Benchmarked against [typeof](http://github.com/CodingFu/typeof) and [type-of](https://github.com/ForbesLindesay/type-of).
-Note that performaces is slower for es6 features `Map`, `WeakMap`, `Set` and `WeakSet`.
-
-```bash
-#1: array
- current x 23,329,397 ops/sec ±0.82% (94 runs sampled)
- lib-type-of x 4,170,273 ops/sec ±0.55% (94 runs sampled)
- lib-typeof x 9,686,935 ops/sec ±0.59% (98 runs sampled)
-
-#2: boolean
- current x 27,197,115 ops/sec ±0.85% (94 runs sampled)
- lib-type-of x 3,145,791 ops/sec ±0.73% (97 runs sampled)
- lib-typeof x 9,199,562 ops/sec ±0.44% (99 runs sampled)
-
-#3: date
- current x 20,190,117 ops/sec ±0.86% (92 runs sampled)
- lib-type-of x 5,166,970 ops/sec ±0.74% (94 runs sampled)
- lib-typeof x 9,610,821 ops/sec ±0.50% (96 runs sampled)
-
-#4: function
- current x 23,855,460 ops/sec ±0.60% (97 runs sampled)
- lib-type-of x 5,667,740 ops/sec ±0.54% (100 runs sampled)
- lib-typeof x 10,010,644 ops/sec ±0.44% (100 runs sampled)
-
-#5: null
- current x 27,061,047 ops/sec ±0.97% (96 runs sampled)
- lib-type-of x 13,965,573 ops/sec ±0.62% (97 runs sampled)
- lib-typeof x 8,460,194 ops/sec ±0.61% (97 runs sampled)
-
-#6: number
- current x 25,075,682 ops/sec ±0.53% (99 runs sampled)
- lib-type-of x 2,266,405 ops/sec ±0.41% (98 runs sampled)
- lib-typeof x 9,821,481 ops/sec ±0.45% (99 runs sampled)
-
-#7: object
- current x 3,348,980 ops/sec ±0.49% (99 runs sampled)
- lib-type-of x 3,245,138 ops/sec ±0.60% (94 runs sampled)
- lib-typeof x 9,262,952 ops/sec ±0.59% (99 runs sampled)
-
-#8: regex
- current x 21,284,827 ops/sec ±0.72% (96 runs sampled)
- lib-type-of x 4,689,241 ops/sec ±0.43% (100 runs sampled)
- lib-typeof x 8,957,593 ops/sec ±0.62% (98 runs sampled)
-
-#9: string
- current x 25,379,234 ops/sec ±0.58% (96 runs sampled)
- lib-type-of x 3,635,148 ops/sec ±0.76% (93 runs sampled)
- lib-typeof x 9,494,134 ops/sec ±0.49% (98 runs sampled)
-
-#10: undef
- current x 27,459,221 ops/sec ±1.01% (93 runs sampled)
- lib-type-of x 14,360,433 ops/sec ±0.52% (99 runs sampled)
- lib-typeof x 23,202,868 ops/sec ±0.59% (94 runs sampled)
-
-```
-
-## Optimizations
-
-In 7 out of 8 cases, this library is 2x-10x faster than other top libraries included in the benchmarks. There are a few things that lead to this performance advantage, none of them hard and fast rules, but all of them simple and repeatable in almost any code library:
-
-1. Optimize around the fastest and most common use cases first. Of course, this will change from project-to-project, but I took some time to understand how and why `typeof` checks were being used in my own libraries and other libraries I use a lot.
-2. Optimize around bottlenecks - In other words, the order in which conditionals are implemented is significant, because each check is only as fast as the failing checks that came before it. Here, the biggest bottleneck by far is checking for plain objects (an object that was created by the `Object` constructor). I opted to make this check happen by process of elimination rather than brute force up front (e.g. by using something like `val.constructor.name`), so that every other type check would not be penalized it.
-3. Don't do uneccessary processing - why do `.slice(8, -1).toLowerCase();` just to get the word `regex`? It's much faster to do `if (type === '[object RegExp]') return 'regex'`
-
-## About
-
-### Related projects
-
-* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/jonschlinkert/is-glob) | [homepage](https://github.com/jonschlinkert/is-glob "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet")
-* [is-number](https://www.npmjs.com/package/is-number): Returns true if the value is a number. comprehensive tests. | [homepage](https://github.com/jonschlinkert/is-number "Returns true if the value is a number. comprehensive tests.")
-* [is-primitive](https://www.npmjs.com/package/is-primitive): Returns `true` if the value is a primitive. | [homepage](https://github.com/jonschlinkert/is-primitive "Returns `true` if the value is a primitive. ")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 59 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 2 | [miguelmota](https://github.com/miguelmota) |
-| 1 | [dtothefp](https://github.com/dtothefp) |
-| 1 | [ksheedlo](https://github.com/ksheedlo) |
-| 1 | [pdehaan](https://github.com/pdehaan) |
-| 1 | [laggingreflex](https://github.com/laggingreflex) |
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on May 16, 2017._
\ No newline at end of file
diff --git a/node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of/index.js b/node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of/index.js
deleted file mode 100644
index b52c291..0000000
--- a/node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of/index.js
+++ /dev/null
@@ -1,116 +0,0 @@
-var isBuffer = require('is-buffer');
-var toString = Object.prototype.toString;
-
-/**
- * Get the native `typeof` a value.
- *
- * @param {*} `val`
- * @return {*} Native javascript type
- */
-
-module.exports = function kindOf(val) {
- // primitivies
- if (typeof val === 'undefined') {
- return 'undefined';
- }
- if (val === null) {
- return 'null';
- }
- if (val === true || val === false || val instanceof Boolean) {
- return 'boolean';
- }
- if (typeof val === 'string' || val instanceof String) {
- return 'string';
- }
- if (typeof val === 'number' || val instanceof Number) {
- return 'number';
- }
-
- // functions
- if (typeof val === 'function' || val instanceof Function) {
- return 'function';
- }
-
- // array
- if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) {
- return 'array';
- }
-
- // check for instances of RegExp and Date before calling `toString`
- if (val instanceof RegExp) {
- return 'regexp';
- }
- if (val instanceof Date) {
- return 'date';
- }
-
- // other objects
- var type = toString.call(val);
-
- if (type === '[object RegExp]') {
- return 'regexp';
- }
- if (type === '[object Date]') {
- return 'date';
- }
- if (type === '[object Arguments]') {
- return 'arguments';
- }
- if (type === '[object Error]') {
- return 'error';
- }
-
- // buffer
- if (isBuffer(val)) {
- return 'buffer';
- }
-
- // es6: Map, WeakMap, Set, WeakSet
- if (type === '[object Set]') {
- return 'set';
- }
- if (type === '[object WeakSet]') {
- return 'weakset';
- }
- if (type === '[object Map]') {
- return 'map';
- }
- if (type === '[object WeakMap]') {
- return 'weakmap';
- }
- if (type === '[object Symbol]') {
- return 'symbol';
- }
-
- // typed arrays
- if (type === '[object Int8Array]') {
- return 'int8array';
- }
- if (type === '[object Uint8Array]') {
- return 'uint8array';
- }
- if (type === '[object Uint8ClampedArray]') {
- return 'uint8clampedarray';
- }
- if (type === '[object Int16Array]') {
- return 'int16array';
- }
- if (type === '[object Uint16Array]') {
- return 'uint16array';
- }
- if (type === '[object Int32Array]') {
- return 'int32array';
- }
- if (type === '[object Uint32Array]') {
- return 'uint32array';
- }
- if (type === '[object Float32Array]') {
- return 'float32array';
- }
- if (type === '[object Float64Array]') {
- return 'float64array';
- }
-
- // must be a plain object
- return 'object';
-};
diff --git a/node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of/package.json b/node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of/package.json
deleted file mode 100644
index 5de879e..0000000
--- a/node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of/package.json
+++ /dev/null
@@ -1,90 +0,0 @@
-{
- "name": "kind-of",
- "description": "Get the native type of a value.",
- "version": "3.2.2",
- "homepage": "https://github.com/jonschlinkert/kind-of",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "David Fox-Powell (https://dtothefp.github.io/me)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "Ken Sheedlo (kensheedlo.com)",
- "laggingreflex (https://github.com/laggingreflex)",
- "Miguel Mota (https://miguelmota.com)",
- "Peter deHaan (http://about.me/peterdehaan)"
- ],
- "repository": "jonschlinkert/kind-of",
- "bugs": {
- "url": "https://github.com/jonschlinkert/kind-of/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha",
- "prepublish": "browserify -o browser.js -e index.js -s index --bare"
- },
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "devDependencies": {
- "ansi-bold": "^0.1.1",
- "benchmarked": "^1.0.0",
- "browserify": "^14.3.0",
- "glob": "^7.1.1",
- "gulp-format-md": "^0.1.12",
- "mocha": "^3.3.0",
- "type-of": "^2.0.1",
- "typeof": "^1.0.0"
- },
- "keywords": [
- "arguments",
- "array",
- "boolean",
- "check",
- "date",
- "function",
- "is",
- "is-type",
- "is-type-of",
- "kind",
- "kind-of",
- "number",
- "object",
- "of",
- "regexp",
- "string",
- "test",
- "type",
- "type-of",
- "typeof",
- "types"
- ],
- "verb": {
- "related": {
- "list": [
- "is-glob",
- "is-number",
- "is-primitive"
- ]
- },
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "lint": {
- "reflinks": true
- },
- "reflinks": [
- "verb"
- ]
- }
-}
diff --git a/node_modules/snapdragon/node_modules/is-data-descriptor/package.json b/node_modules/snapdragon/node_modules/is-data-descriptor/package.json
deleted file mode 100644
index 5fb294b..0000000
--- a/node_modules/snapdragon/node_modules/is-data-descriptor/package.json
+++ /dev/null
@@ -1,60 +0,0 @@
-{
- "name": "is-data-descriptor",
- "description": "Returns true if a value has the characteristics of a valid JavaScript data descriptor.",
- "version": "0.1.4",
- "homepage": "https://github.com/jonschlinkert/is-data-descriptor",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "repository": "jonschlinkert/is-data-descriptor",
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-data-descriptor/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "devDependencies": {
- "mocha": "*",
- "should": "*"
- },
- "keywords": [
- "accessor",
- "check",
- "data",
- "descriptor",
- "get",
- "getter",
- "is",
- "keys",
- "object",
- "properties",
- "property",
- "set",
- "setter",
- "type",
- "valid",
- "value"
- ],
- "verb": {
- "related": {
- "list": [
- "is-accessor-descriptor",
- "is-data-descriptor",
- "is-descriptor",
- "isobject"
- ]
- },
- "plugins": [
- "gulp-format-md"
- ]
- }
-}
diff --git a/node_modules/snapdragon/node_modules/is-descriptor/LICENSE b/node_modules/snapdragon/node_modules/is-descriptor/LICENSE
deleted file mode 100644
index c0d7f13..0000000
--- a/node_modules/snapdragon/node_modules/is-descriptor/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015-2017, 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.
\ No newline at end of file
diff --git a/node_modules/snapdragon/node_modules/is-descriptor/README.md b/node_modules/snapdragon/node_modules/is-descriptor/README.md
deleted file mode 100644
index 658e533..0000000
--- a/node_modules/snapdragon/node_modules/is-descriptor/README.md
+++ /dev/null
@@ -1,193 +0,0 @@
-# is-descriptor [![NPM version](https://img.shields.io/npm/v/is-descriptor.svg?style=flat)](https://www.npmjs.com/package/is-descriptor) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-descriptor.svg?style=flat)](https://npmjs.org/package/is-descriptor) [![NPM total downloads](https://img.shields.io/npm/dt/is-descriptor.svg?style=flat)](https://npmjs.org/package/is-descriptor) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-descriptor.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-descriptor)
-
-> Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for data descriptors and accessor descriptors.
-
-## Install
-
-Install with [npm](https://www.npmjs.com/):
-
-```sh
-$ npm install --save is-descriptor
-```
-
-## Usage
-
-```js
-var isDescriptor = require('is-descriptor');
-
-isDescriptor({value: 'foo'})
-//=> true
-isDescriptor({get: function(){}, set: function(){}})
-//=> true
-isDescriptor({get: 'foo', set: function(){}})
-//=> false
-```
-
-You may also check for a descriptor by passing an object as the first argument and property name (`string`) as the second argument.
-
-```js
-var obj = {};
-obj.foo = 'abc';
-
-Object.defineProperty(obj, 'bar', {
- value: 'xyz'
-});
-
-isDescriptor(obj, 'foo');
-//=> true
-isDescriptor(obj, 'bar');
-//=> true
-```
-
-## Examples
-
-### value type
-
-`false` when not an object
-
-```js
-isDescriptor('a');
-//=> false
-isDescriptor(null);
-//=> false
-isDescriptor([]);
-//=> false
-```
-
-### data descriptor
-
-`true` when the object has valid properties with valid values.
-
-```js
-isDescriptor({value: 'foo'});
-//=> true
-isDescriptor({value: noop});
-//=> true
-```
-
-`false` when the object has invalid properties
-
-```js
-isDescriptor({value: 'foo', bar: 'baz'});
-//=> false
-isDescriptor({value: 'foo', bar: 'baz'});
-//=> false
-isDescriptor({value: 'foo', get: noop});
-//=> false
-isDescriptor({get: noop, value: noop});
-//=> false
-```
-
-`false` when a value is not the correct type
-
-```js
-isDescriptor({value: 'foo', enumerable: 'foo'});
-//=> false
-isDescriptor({value: 'foo', configurable: 'foo'});
-//=> false
-isDescriptor({value: 'foo', writable: 'foo'});
-//=> false
-```
-
-### accessor descriptor
-
-`true` when the object has valid properties with valid values.
-
-```js
-isDescriptor({get: noop, set: noop});
-//=> true
-isDescriptor({get: noop});
-//=> true
-isDescriptor({set: noop});
-//=> true
-```
-
-`false` when the object has invalid properties
-
-```js
-isDescriptor({get: noop, set: noop, bar: 'baz'});
-//=> false
-isDescriptor({get: noop, writable: true});
-//=> false
-isDescriptor({get: noop, value: true});
-//=> false
-```
-
-`false` when an accessor is not a function
-
-```js
-isDescriptor({get: noop, set: 'baz'});
-//=> false
-isDescriptor({get: 'foo', set: noop});
-//=> false
-isDescriptor({get: 'foo', bar: 'baz'});
-//=> false
-isDescriptor({get: 'foo', set: 'baz'});
-//=> false
-```
-
-`false` when a value is not the correct type
-
-```js
-isDescriptor({get: noop, set: noop, enumerable: 'foo'});
-//=> false
-isDescriptor({set: noop, configurable: 'foo'});
-//=> false
-isDescriptor({get: noop, configurable: 'foo'});
-//=> false
-```
-
-## About
-
-### Related projects
-
-* [is-accessor-descriptor](https://www.npmjs.com/package/is-accessor-descriptor): Returns true if a value has the characteristics of a valid JavaScript accessor descriptor. | [homepage](https://github.com/jonschlinkert/is-accessor-descriptor "Returns true if a value has the characteristics of a valid JavaScript accessor descriptor.")
-* [is-data-descriptor](https://www.npmjs.com/package/is-data-descriptor): Returns true if a value has the characteristics of a valid JavaScript data descriptor. | [homepage](https://github.com/jonschlinkert/is-data-descriptor "Returns true if a value has the characteristics of a valid JavaScript data descriptor.")
-* [is-descriptor](https://www.npmjs.com/package/is-descriptor): Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for… [more](https://github.com/jonschlinkert/is-descriptor) | [homepage](https://github.com/jonschlinkert/is-descriptor "Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for data descriptors and accessor descriptors.")
-* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.")
-
-### Contributing
-
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-
-### Contributors
-
-| **Commits** | **Contributor** |
-| --- | --- |
-| 24 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 1 | [doowb](https://github.com/doowb) |
-| 1 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) |
-
-### Building docs
-
-_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-
-To generate the readme, run the following command:
-
-```sh
-$ npm install -g verbose/verb#dev verb-generate-readme && verb
-```
-
-### Running tests
-
-Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-
-```sh
-$ npm install && npm test
-```
-
-### Author
-
-**Jon Schlinkert**
-
-* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-
-### License
-
-Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT License](LICENSE).
-
-***
-
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on July 22, 2017._
\ No newline at end of file
diff --git a/node_modules/snapdragon/node_modules/is-descriptor/index.js b/node_modules/snapdragon/node_modules/is-descriptor/index.js
deleted file mode 100644
index c9b91d7..0000000
--- a/node_modules/snapdragon/node_modules/is-descriptor/index.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/*!
- * is-descriptor
- *
- * Copyright (c) 2015-2017, Jon Schlinkert.
- * Released under the MIT License.
- */
-
-'use strict';
-
-var typeOf = require('kind-of');
-var isAccessor = require('is-accessor-descriptor');
-var isData = require('is-data-descriptor');
-
-module.exports = function isDescriptor(obj, key) {
- if (typeOf(obj) !== 'object') {
- return false;
- }
- if ('get' in obj) {
- return isAccessor(obj, key);
- }
- return isData(obj, key);
-};
diff --git a/node_modules/snapdragon/node_modules/is-descriptor/package.json b/node_modules/snapdragon/node_modules/is-descriptor/package.json
deleted file mode 100644
index a561bfe..0000000
--- a/node_modules/snapdragon/node_modules/is-descriptor/package.json
+++ /dev/null
@@ -1,75 +0,0 @@
-{
- "name": "is-descriptor",
- "description": "Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for data descriptors and accessor descriptors.",
- "version": "0.1.6",
- "homepage": "https://github.com/jonschlinkert/is-descriptor",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Brian Woodward (https://twitter.com/doowb)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)",
- "(https://github.com/wtgtybhertgeghgtwtg)"
- ],
- "repository": "jonschlinkert/is-descriptor",
- "bugs": {
- "url": "https://github.com/jonschlinkert/is-descriptor/issues"
- },
- "license": "MIT",
- "files": [
- "index.js"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
- },
- "devDependencies": {
- "gulp-format-md": "^1.0.0",
- "mocha": "^3.4.2"
- },
- "keywords": [
- "accessor",
- "check",
- "data",
- "descriptor",
- "get",
- "getter",
- "is",
- "keys",
- "object",
- "properties",
- "property",
- "set",
- "setter",
- "type",
- "valid",
- "value"
- ],
- "verb": {
- "related": {
- "list": [
- "is-accessor-descriptor",
- "is-data-descriptor",
- "is-descriptor",
- "isobject"
- ]
- },
- "plugins": [
- "gulp-format-md"
- ],
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/snapdragon/package.json b/node_modules/snapdragon/package.json
deleted file mode 100644
index e4c4e73..0000000
--- a/node_modules/snapdragon/package.json
+++ /dev/null
@@ -1,79 +0,0 @@
-{
- "name": "snapdragon",
- "description": "Fast, pluggable and easy-to-use parser-renderer factory.",
- "version": "0.8.2",
- "homepage": "https://github.com/jonschlinkert/snapdragon",
- "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
- "contributors": [
- "Brian Woodward (https://twitter.com/doowb)",
- "Edward Betts (http://edwardbetts.com)",
- "Jon Schlinkert (http://twitter.com/jonschlinkert)"
- ],
- "repository": "jonschlinkert/snapdragon",
- "bugs": {
- "url": "https://github.com/jonschlinkert/snapdragon/issues"
- },
- "license": "MIT",
- "files": [
- "index.js",
- "lib"
- ],
- "main": "index.js",
- "engines": {
- "node": ">=0.10.0"
- },
- "scripts": {
- "test": "mocha"
- },
- "dependencies": {
- "base": "^0.11.1",
- "debug": "^2.2.0",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "map-cache": "^0.2.2",
- "source-map": "^0.5.6",
- "source-map-resolve": "^0.5.0",
- "use": "^3.1.0"
- },
- "devDependencies": {
- "gulp": "^3.9.1",
- "gulp-eslint": "^3.0.1",
- "gulp-format-md": "^0.1.10",
- "gulp-istanbul": "^1.1.1",
- "gulp-mocha": "^3.0.1",
- "gulp-unused": "^0.2.0",
- "mocha": "^3.0.2"
- },
- "keywords": [
- "lexer",
- "snapdragon"
- ],
- "verb": {
- "toc": false,
- "layout": "default",
- "tasks": [
- "readme"
- ],
- "plugins": [
- "gulp-format-md"
- ],
- "related": {
- "description": "These libraries use snapdragon:",
- "list": [
- "braces",
- "expand-brackets",
- "extglob",
- "micromatch"
- ]
- },
- "reflinks": [
- "css",
- "pug",
- "verb",
- "verb-generate-readme"
- ],
- "lint": {
- "reflinks": true
- }
- }
-}
diff --git a/node_modules/source-map-resolve/LICENSE b/node_modules/source-map-resolve/LICENSE
deleted file mode 100644
index 2ae9757..0000000
--- a/node_modules/source-map-resolve/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014, 2015, 2016, 2017, 2018, 2019 Simon Lydell
-Copyright (c) 2019 ZHAO Jinxiang
-
-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/source-map-resolve/changelog.md b/node_modules/source-map-resolve/changelog.md
deleted file mode 100644
index 7b3f94b..0000000
--- a/node_modules/source-map-resolve/changelog.md
+++ /dev/null
@@ -1,108 +0,0 @@
-### Version 0.5.3 (2019-12-28) ###
-
-- Fixed: base64 encoded source maps now correctly decodes as utf-8. Previously,
- non-ASCII characters could end up garbled. Thanks to ZHAO Jinxiang
- (@xiaoxiangmoe)! (Note: This fix does not work in old evironments not
- supporting both `TextDecoder` and `Uint8Array`.)
-- Improved: Reduced size of the npm package.
-
-### Version 0.5.2 (2018-05-10) ###
-
-- Improved: Updated the version range of `atob` to disallow depending on `2.0.3`
- which as a [security
- vulnerability](https://snyk.io/test/npm/atob/2.0.3?severity=high&severity=medium&severity=low).
-
-### Version 0.5.1 (2017-10-21) ###
-
-- Fixed: URLs are now decoded before being passed to `read` in Node.js. This
- allows reading files with spaces, for example.
-- Fixed: Missing or empty `sources` fields (such as `sources: []`) in source
- maps are now handled. Previously, such source maps would cause crashes or
- callbacks never bing called. Now, an empty result is produced:
-
- ```js
- sourcesResolved: [],
- sourcesContent: []
- ```
-
-### Version 0.5.0 (2016-02-28) ###
-
-- Improved: Errors now have a `sourceMapData` property that contain as much as
- possible of the intended result of the function up until the error occurred.
-- Changed: `resolveSources` and `resolve`, as well as their `*Sync`
- alternatives, no longer fail when one single source fails to be fetched.
- Instead, the `sourcesContent` array in the result object will contain error
- objects for all failed sources, and strings otherwise. (Backwards-incompatible
- change.)
-
-### Version 0.4.0 (2015-08-29) ###
-
-- Removed: The `ignoreSourceRoot` option of `resolveSources`. It has been
- replaced with `sourceRoot: false`. (Backwards-incompatible change.)
-- Added: The `sourceRoot` option of `resolveSources`. It not only allows to
- ignore the source root, it also lets you replace it.
-- Added: The `parseMapToJSON` method.
-- Added: The `resolve` method now accepts `null, mapUrl, ...` as arguments, in
- addition to the existing signature, which will read `mapUrl` instead of
- looking for a sourceMappingURL in the code.
-
-### Version 0.3.1 (2014-08-16) ###
-
-- Improved: Updated the source-map-url dependency to 0.3.0.
-
-
-### Version 0.3.0 (2014-07-02) ###
-
-- Removed: Argument checking. It’s not worth it. (Possibly
- backwards-incompatible change.)
-- Added: The `sourceRoot` property of source maps may now be ignored, which can
- be useful when resolving sources outside of the browser.
-- Added: It is now possible to resolve only the URLs of sources, without
- reading them.
-
-
-### Version 0.2.0 (2014-06-22) ###
-
-- Changed: The result of `resolveSources` is now an object, not an array. The
- old result array is available in the `sourcesContent` property.
- (Backwards-incompatible change.)
-- Changed: `sources` has been renamed to `sourcesContent` in the result object
- of `resolve`. (Backwards-incompatible change.)
-- Added: `resolveSources` now also returns all sources fully resolved, in the
- `sourcesResolved` property.
-- Added: The result object of `resolve` now contains the `sourcesResolved`
- property from `resolveSources`.
-
-
-### Version 0.1.4 (2014-06-16) ###
-
-- Fixed: `sourcesContent` was mis-typed as `sourceContents`, which meant that
- the `sourcesContent` property of source maps never was used when resolving
- sources.
-
-
-### Version 0.1.3 (2014-05-06) ###
-
-- Only documentation and meta-data changes.
-
-
-### Version 0.1.2 (2014-03-23) ###
-
-- Improved: Source maps starting with `)]}'` are now parsed correctly. The spec
- allows source maps to start with that character sequence to prevent XSSI
- attacks.
-
-
-### Version 0.1.1 (2014-03-06) ###
-
-- Improved: Make sourceRoot resolving more sensible.
-
- A source root such as `/scripts/subdir` is now treated as `/scripts/subdir/`
- — that is, as a directory called “subdir”, not a file called “subdir”.
- Pointing to a file as source root does not makes sense.
-
-
-
-### Version 0.1.0 (2014-03-03) ###
-
-- Initial release.
diff --git a/node_modules/source-map-resolve/lib/decode-uri-component.js b/node_modules/source-map-resolve/lib/decode-uri-component.js
deleted file mode 100644
index 0739c20..0000000
--- a/node_modules/source-map-resolve/lib/decode-uri-component.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var decodeUriComponent = require("decode-uri-component")
-
-function customDecodeUriComponent(string) {
- // `decodeUriComponent` turns `+` into ` `, but that's not wanted.
- return decodeUriComponent(string.replace(/\+/g, "%2B"))
-}
-
-module.exports = customDecodeUriComponent
diff --git a/node_modules/source-map-resolve/lib/resolve-url.js b/node_modules/source-map-resolve/lib/resolve-url.js
deleted file mode 100644
index e3a86c4..0000000
--- a/node_modules/source-map-resolve/lib/resolve-url.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var url = require("url")
-
-function resolveUrl(/* ...urls */) {
- return Array.prototype.reduce.call(arguments, function(resolved, nextUrl) {
- return url.resolve(resolved, nextUrl)
- })
-}
-
-module.exports = resolveUrl
diff --git a/node_modules/source-map-resolve/lib/source-map-resolve-node.js b/node_modules/source-map-resolve/lib/source-map-resolve-node.js
deleted file mode 100644
index 31ec3b2..0000000
--- a/node_modules/source-map-resolve/lib/source-map-resolve-node.js
+++ /dev/null
@@ -1,342 +0,0 @@
-var sourceMappingURL = require("source-map-url")
-
-var resolveUrl = require("./resolve-url")
-var decodeUriComponent = require("./decode-uri-component")
-var urix = require("urix")
-var atob = require("atob")
-
-
-
-function callbackAsync(callback, error, result) {
- setImmediate(function() { callback(error, result) })
-}
-
-function parseMapToJSON(string, data) {
- try {
- return JSON.parse(string.replace(/^\)\]\}'/, ""))
- } catch (error) {
- error.sourceMapData = data
- throw error
- }
-}
-
-function readSync(read, url, data) {
- var readUrl = decodeUriComponent(url)
- try {
- return String(read(readUrl))
- } catch (error) {
- error.sourceMapData = data
- throw error
- }
-}
-
-
-
-function resolveSourceMap(code, codeUrl, read, callback) {
- var mapData
- try {
- mapData = resolveSourceMapHelper(code, codeUrl)
- } catch (error) {
- return callbackAsync(callback, error)
- }
- if (!mapData || mapData.map) {
- return callbackAsync(callback, null, mapData)
- }
- var readUrl = decodeUriComponent(mapData.url)
- read(readUrl, function(error, result) {
- if (error) {
- error.sourceMapData = mapData
- return callback(error)
- }
- mapData.map = String(result)
- try {
- mapData.map = parseMapToJSON(mapData.map, mapData)
- } catch (error) {
- return callback(error)
- }
- callback(null, mapData)
- })
-}
-
-function resolveSourceMapSync(code, codeUrl, read) {
- var mapData = resolveSourceMapHelper(code, codeUrl)
- if (!mapData || mapData.map) {
- return mapData
- }
- mapData.map = readSync(read, mapData.url, mapData)
- mapData.map = parseMapToJSON(mapData.map, mapData)
- return mapData
-}
-
-var dataUriRegex = /^data:([^,;]*)(;[^,;]*)*(?:,(.*))?$/
-
-/**
- * The media type for JSON text is application/json.
- *
- * {@link https://tools.ietf.org/html/rfc8259#section-11 | IANA Considerations }
- *
- * `text/json` is non-standard media type
- */
-var jsonMimeTypeRegex = /^(?:application|text)\/json$/
-
-/**
- * JSON text exchanged between systems that are not part of a closed ecosystem
- * MUST be encoded using UTF-8.
- *
- * {@link https://tools.ietf.org/html/rfc8259#section-8.1 | Character Encoding}
- */
-var jsonCharacterEncoding = "utf-8"
-
-function base64ToBuf(b64) {
- var binStr = atob(b64)
- var len = binStr.length
- var arr = new Uint8Array(len)
- for (var i = 0; i < len; i++) {
- arr[i] = binStr.charCodeAt(i)
- }
- return arr
-}
-
-function decodeBase64String(b64) {
- if (typeof TextDecoder === "undefined" || typeof Uint8Array === "undefined") {
- return atob(b64)
- }
- var buf = base64ToBuf(b64);
- // Note: `decoder.decode` method will throw a `DOMException` with the
- // `"EncodingError"` value when an coding error is found.
- var decoder = new TextDecoder(jsonCharacterEncoding, {fatal: true})
- return decoder.decode(buf);
-}
-
-function resolveSourceMapHelper(code, codeUrl) {
- codeUrl = urix(codeUrl)
-
- var url = sourceMappingURL.getFrom(code)
- if (!url) {
- return null
- }
-
- var dataUri = url.match(dataUriRegex)
- if (dataUri) {
- var mimeType = dataUri[1] || "text/plain"
- var lastParameter = dataUri[2] || ""
- var encoded = dataUri[3] || ""
- var data = {
- sourceMappingURL: url,
- url: null,
- sourcesRelativeTo: codeUrl,
- map: encoded
- }
- if (!jsonMimeTypeRegex.test(mimeType)) {
- var error = new Error("Unuseful data uri mime type: " + mimeType)
- error.sourceMapData = data
- throw error
- }
- try {
- data.map = parseMapToJSON(
- lastParameter === ";base64" ? decodeBase64String(encoded) : decodeURIComponent(encoded),
- data
- )
- } catch (error) {
- error.sourceMapData = data
- throw error
- }
- return data
- }
-
- var mapUrl = resolveUrl(codeUrl, url)
- return {
- sourceMappingURL: url,
- url: mapUrl,
- sourcesRelativeTo: mapUrl,
- map: null
- }
-}
-
-
-
-function resolveSources(map, mapUrl, read, options, callback) {
- if (typeof options === "function") {
- callback = options
- options = {}
- }
- var pending = map.sources ? map.sources.length : 0
- var result = {
- sourcesResolved: [],
- sourcesContent: []
- }
-
- if (pending === 0) {
- callbackAsync(callback, null, result)
- return
- }
-
- var done = function() {
- pending--
- if (pending === 0) {
- callback(null, result)
- }
- }
-
- resolveSourcesHelper(map, mapUrl, options, function(fullUrl, sourceContent, index) {
- result.sourcesResolved[index] = fullUrl
- if (typeof sourceContent === "string") {
- result.sourcesContent[index] = sourceContent
- callbackAsync(done, null)
- } else {
- var readUrl = decodeUriComponent(fullUrl)
- read(readUrl, function(error, source) {
- result.sourcesContent[index] = error ? error : String(source)
- done()
- })
- }
- })
-}
-
-function resolveSourcesSync(map, mapUrl, read, options) {
- var result = {
- sourcesResolved: [],
- sourcesContent: []
- }
-
- if (!map.sources || map.sources.length === 0) {
- return result
- }
-
- resolveSourcesHelper(map, mapUrl, options, function(fullUrl, sourceContent, index) {
- result.sourcesResolved[index] = fullUrl
- if (read !== null) {
- if (typeof sourceContent === "string") {
- result.sourcesContent[index] = sourceContent
- } else {
- var readUrl = decodeUriComponent(fullUrl)
- try {
- result.sourcesContent[index] = String(read(readUrl))
- } catch (error) {
- result.sourcesContent[index] = error
- }
- }
- }
- })
-
- return result
-}
-
-var endingSlash = /\/?$/
-
-function resolveSourcesHelper(map, mapUrl, options, fn) {
- options = options || {}
- mapUrl = urix(mapUrl)
- var fullUrl
- var sourceContent
- var sourceRoot
- for (var index = 0, len = map.sources.length; index < len; index++) {
- sourceRoot = null
- if (typeof options.sourceRoot === "string") {
- sourceRoot = options.sourceRoot
- } else if (typeof map.sourceRoot === "string" && options.sourceRoot !== false) {
- sourceRoot = map.sourceRoot
- }
- // If the sourceRoot is the empty string, it is equivalent to not setting
- // the property at all.
- if (sourceRoot === null || sourceRoot === '') {
- fullUrl = resolveUrl(mapUrl, map.sources[index])
- } else {
- // Make sure that the sourceRoot ends with a slash, so that `/scripts/subdir` becomes
- // `/scripts/subdir/`, not `/scripts/`. Pointing to a file as source root
- // does not make sense.
- fullUrl = resolveUrl(mapUrl, sourceRoot.replace(endingSlash, "/"), map.sources[index])
- }
- sourceContent = (map.sourcesContent || [])[index]
- fn(fullUrl, sourceContent, index)
- }
-}
-
-
-
-function resolve(code, codeUrl, read, options, callback) {
- if (typeof options === "function") {
- callback = options
- options = {}
- }
- if (code === null) {
- var mapUrl = codeUrl
- var data = {
- sourceMappingURL: null,
- url: mapUrl,
- sourcesRelativeTo: mapUrl,
- map: null
- }
- var readUrl = decodeUriComponent(mapUrl)
- read(readUrl, function(error, result) {
- if (error) {
- error.sourceMapData = data
- return callback(error)
- }
- data.map = String(result)
- try {
- data.map = parseMapToJSON(data.map, data)
- } catch (error) {
- return callback(error)
- }
- _resolveSources(data)
- })
- } else {
- resolveSourceMap(code, codeUrl, read, function(error, mapData) {
- if (error) {
- return callback(error)
- }
- if (!mapData) {
- return callback(null, null)
- }
- _resolveSources(mapData)
- })
- }
-
- function _resolveSources(mapData) {
- resolveSources(mapData.map, mapData.sourcesRelativeTo, read, options, function(error, result) {
- if (error) {
- return callback(error)
- }
- mapData.sourcesResolved = result.sourcesResolved
- mapData.sourcesContent = result.sourcesContent
- callback(null, mapData)
- })
- }
-}
-
-function resolveSync(code, codeUrl, read, options) {
- var mapData
- if (code === null) {
- var mapUrl = codeUrl
- mapData = {
- sourceMappingURL: null,
- url: mapUrl,
- sourcesRelativeTo: mapUrl,
- map: null
- }
- mapData.map = readSync(read, mapUrl, mapData)
- mapData.map = parseMapToJSON(mapData.map, mapData)
- } else {
- mapData = resolveSourceMapSync(code, codeUrl, read)
- if (!mapData) {
- return null
- }
- }
- var result = resolveSourcesSync(mapData.map, mapData.sourcesRelativeTo, read, options)
- mapData.sourcesResolved = result.sourcesResolved
- mapData.sourcesContent = result.sourcesContent
- return mapData
-}
-
-
-
-module.exports = {
- resolveSourceMap: resolveSourceMap,
- resolveSourceMapSync: resolveSourceMapSync,
- resolveSources: resolveSources,
- resolveSourcesSync: resolveSourcesSync,
- resolve: resolve,
- resolveSync: resolveSync,
- parseMapToJSON: parseMapToJSON
-}
diff --git a/node_modules/source-map-resolve/package.json b/node_modules/source-map-resolve/package.json
deleted file mode 100644
index 78b6398..0000000
--- a/node_modules/source-map-resolve/package.json
+++ /dev/null
@@ -1,47 +0,0 @@
-{
- "name": "source-map-resolve",
- "version": "0.5.3",
- "author": "Simon Lydell",
- "license": "MIT",
- "description": "Resolve the source map and/or sources for a generated file.",
- "keywords": [
- "source map",
- "sourcemap",
- "source",
- "map",
- "sourceMappingURL",
- "resolve",
- "resolver",
- "locate",
- "locator",
- "find",
- "finder"
- ],
- "repository": "lydell/source-map-resolve",
- "main": "lib/source-map-resolve-node.js",
- "browser": "source-map-resolve.js",
- "files": [
- "lib",
- "source-map-resolve.js"
- ],
- "scripts": {
- "lint": "jshint lib/ test/",
- "unit": "node test/source-map-resolve.js && node test/windows.js",
- "test": "npm run lint && npm run unit",
- "build": "node generate-source-map-resolve.js"
- },
- "dependencies": {
- "atob": "^2.1.2",
- "decode-uri-component": "^0.2.0",
- "resolve-url": "^0.2.1",
- "source-map-url": "^0.4.0",
- "urix": "^0.1.0"
- },
- "devDependencies": {
- "Base64": "1.1.0",
- "jshint": "2.10.3",
- "setimmediate": "1.0.5",
- "simple-asyncify": "1.0.0",
- "tape": "4.12.1"
- }
-}
\ No newline at end of file
diff --git a/node_modules/source-map-resolve/readme.md b/node_modules/source-map-resolve/readme.md
deleted file mode 100644
index 5796ba1..0000000
--- a/node_modules/source-map-resolve/readme.md
+++ /dev/null
@@ -1,231 +0,0 @@
-Overview [![Build Status](https://travis-ci.org/lydell/source-map-resolve.svg?branch=master)](https://travis-ci.org/lydell/source-map-resolve)
-========
-
-Resolve the source map and/or sources for a generated file.
-
-```js
-var sourceMapResolve = require("source-map-resolve")
-var sourceMap = require("source-map")
-
-var code = [
- "!function(){...}();",
- "/*# sourceMappingURL=foo.js.map */"
-].join("\n")
-
-sourceMapResolve.resolveSourceMap(code, "/js/foo.js", fs.readFile, function(error, result) {
- if (error) {
- return notifyFailure(error)
- }
- result
- // {
- // map: {file: "foo.js", mappings: "...", sources: ["/coffee/foo.coffee"], names: []},
- // url: "/js/foo.js.map",
- // sourcesRelativeTo: "/js/foo.js.map",
- // sourceMappingURL: "foo.js.map"
- // }
-
- sourceMapResolve.resolveSources(result.map, result.sourcesRelativeTo, fs.readFile, function(error, result) {
- if (error) {
- return notifyFailure(error)
- }
- result
- // {
- // sourcesResolved: ["/coffee/foo.coffee"],
- // sourcesContent: [""]
- // }
- })
-})
-
-sourceMapResolve.resolve(code, "/js/foo.js", fs.readFile, function(error, result) {
- if (error) {
- return notifyFailure(error)
- }
- result
- // {
- // map: {file: "foo.js", mappings: "...", sources: ["/coffee/foo.coffee"], names: []},
- // url: "/js/foo.js.map",
- // sourcesRelativeTo: "/js/foo.js.map",
- // sourceMappingURL: "foo.js.map",
- // sourcesResolved: ["/coffee/foo.coffee"],
- // sourcesContent: [""]
- // }
- result.map.sourcesContent = result.sourcesContent
- var map = new sourceMap.sourceMapConsumer(result.map)
- map.sourceContentFor("/coffee/foo.coffee")
- // ""
-})
-```
-
-
-Installation
-============
-
-- `npm install source-map-resolve`
-- `bower install source-map-resolve`
-- `component install lydell/source-map-resolve`
-
-Works with CommonJS, AMD and browser globals, through UMD.
-
-Note: This module requires `setImmediate` and `atob`.
-Use polyfills if needed, such as:
-
--
--
-
-
-Usage
-=====
-
-### `sourceMapResolve.resolveSourceMap(code, codeUrl, read, callback)` ###
-
-- `code` is a string of code that may or may not contain a sourceMappingURL
- comment. Such a comment is used to resolve the source map.
-- `codeUrl` is the url to the file containing `code`. If the sourceMappingURL
- is relative, it is resolved against `codeUrl`.
-- `read(url, callback)` is a function that reads `url` and responds using
- `callback(error, content)`. In Node.js you might want to use `fs.readFile`,
- while in the browser you might want to use an asynchronus `XMLHttpRequest`.
-- `callback(error, result)` is a function that is invoked with either an error
- or `null` and the result.
-
-The result is an object with the following properties:
-
-- `map`: The source map for `code`, as an object (not a string).
-- `url`: The url to the source map. If the source map came from a data uri,
- this property is `null`, since then there is no url to it.
-- `sourcesRelativeTo`: The url that the sources of the source map are relative
- to. Since the sources are relative to the source map, and the url to the
- source map is provided as the `url` property, this property might seem
- superfluos. However, remember that the `url` property can be `null` if the
- source map came from a data uri. If so, the sources are relative to the file
- containing the data uri—`codeUrl`. This property will be identical to the
- `url` property or `codeUrl`, whichever is appropriate. This way you can
- conveniently resolve the sources without having to think about where the
- source map came from.
-- `sourceMappingURL`: The url of the sourceMappingURL comment in `code`.
-
-If `code` contains no sourceMappingURL, the result is `null`.
-
-### `sourceMapResolve.resolveSources(map, mapUrl, read, [options], callback)` ###
-
-- `map` is a source map, as an object (not a string).
-- `mapUrl` is the url to the file containing `map`. Relative sources in the
- source map, if any, are resolved against `mapUrl`.
-- `read(url, callback)` is a function that reads `url` and responds using
- `callback(error, content)`. In Node.js you might want to use `fs.readFile`,
- while in the browser you might want to use an asynchronus `XMLHttpRequest`.
-- `options` is an optional object with any of the following properties:
- - `sourceRoot`: Override the `sourceRoot` property of the source map, which
- might only be relevant when resolving sources in the browser. This lets you
- bypass it when using the module outside of a browser, if needed. Pass a
- string to replace the `sourceRoot` property with, or `false` to ignore it.
- Defaults to `undefined`.
-- `callback(error, result)` is a function that is invoked with either an error
- or `null` and the result.
-
-The result is an object with the following properties:
-
-- `sourcesResolved`: The same as `map.sources`, except all the sources are
- fully resolved.
-- `sourcesContent`: An array with the contents of all sources in `map.sources`,
- in the same order as `map.sources`. If getting the contents of a source fails,
- an error object is put into the array instead.
-
-### `sourceMapResolve.resolve(code, codeUrl, read, [options], callback)` ###
-
-The arguments are identical to `sourceMapResolve.resolveSourceMap`, except that
-you may also provide the same `options` as in `sourceMapResolve.resolveSources`.
-
-This is a convenience method that first resolves the source map and then its
-sources. You could also do this by first calling
-`sourceMapResolve.resolveSourceMap` and then `sourceMapResolve.resolveSources`.
-
-The result is identical to `sourceMapResolve.resolveSourceMap`, with the
-properties from `sourceMapResolve.resolveSources` merged into it.
-
-There is one extra feature available, though. If `code` is `null`, `codeUrl` is
-treated as a url to the source map instead of to `code`, and will be read. This
-is handy if you _sometimes_ get the source map url from the `SourceMap: `
-header (see the [Notes] section). In this case, the `sourceMappingURL` property
-of the result is `null`.
-
-
-[Notes]: #notes
-
-### `sourceMapResolve.*Sync()` ###
-
-There are also sync versions of the three previous functions. They are identical
-to the async versions, except:
-
-- They expect a sync reading function. In Node.js you might want to use
- `fs.readFileSync`, while in the browser you might want to use a synchronus
- `XMLHttpRequest`.
-- They throw errors and return the result instead of using a callback.
-
-`sourceMapResolve.resolveSourcesSync` also accepts `null` as the `read`
-parameter. The result is the same as when passing a function as the `read
-parameter`, except that the `sourcesContent` property of the result will be an
-empty array. In other words, the sources aren’t read. You only get the
-`sourcesResolved` property. (This only supported in the synchronus version, since
-there is no point doing it asynchronusly.)
-
-### `sourceMapResolve.parseMapToJSON(string, [data])` ###
-
-The spec says that if a source map (as a string) starts with `)]}'`, it should
-be stripped off. This is to prevent XSSI attacks. This function does that and
-returns the result of `JSON.parse`ing what’s left.
-
-If this function throws `error`, `error.sourceMapData === data`.
-
-### Errors
-
-All errors passed to callbacks or thrown by this module have a `sourceMapData`
-property that contain as much as possible of the intended result of the function
-up until the error occurred.
-
-Note that while the `map` property of result objects always is an object,
-`error.sourceMapData.map` will be a string if parsing that string fails.
-
-
-Note
-====
-
-This module resolves the source map for a given generated file by looking for a
-sourceMappingURL comment. The spec defines yet a way to provide the URL to the
-source map: By sending the `SourceMap: ` header along with the generated
-file. Since this module doesn’t retrive the generated code for you (instead
-_you_ give the generated code to the module), it’s up to you to look for such a
-header when you retrieve the file (should the need arise).
-
-
-Development
-===========
-
-Tests
------
-
-First off, run `npm install` to install testing modules and browser polyfills.
-
-`npm test` lints the code and runs the test suite in Node.js.
-
-x-package.json5
----------------
-
-package.json, component.json and bower.json are all generated from
-x-package.json5 by using [`xpkg`]. Only edit x-package.json5, and remember to
-run `xpkg` before commiting!
-
-[`xpkg`]: https://github.com/kof/node-xpkg
-
-Generating the browser version
-------------------------------
-
-source-map-resolve.js is generated from source-map-resolve-node.js and
-source-map-resolve-template.js. Only edit the two latter files, _not_
-source-map-resolve.js! To generate it, run `npm run build`.
-
-
-License
-=======
-
-[MIT](LICENSE).
diff --git a/node_modules/source-map-resolve/source-map-resolve.js b/node_modules/source-map-resolve/source-map-resolve.js
deleted file mode 100644
index 282b126..0000000
--- a/node_modules/source-map-resolve/source-map-resolve.js
+++ /dev/null
@@ -1,348 +0,0 @@
-// Note: source-map-resolve.js is generated from source-map-resolve-node.js and
-// source-map-resolve-template.js. Only edit the two latter files, _not_
-// source-map-resolve.js!
-
-void (function(root, factory) {
- if (typeof define === "function" && define.amd) {
- define(["source-map-url", "resolve-url"], factory)
- } else if (typeof exports === "object") {
- var sourceMappingURL = require("source-map-url")
- var resolveUrl = require("resolve-url")
- module.exports = factory(sourceMappingURL, resolveUrl)
- } else {
- root.sourceMapResolve = factory(root.sourceMappingURL, root.resolveUrl)
- }
-}(this, function(sourceMappingURL, resolveUrl) {
-
- function callbackAsync(callback, error, result) {
- setImmediate(function() { callback(error, result) })
- }
-
- function parseMapToJSON(string, data) {
- try {
- return JSON.parse(string.replace(/^\)\]\}'/, ""))
- } catch (error) {
- error.sourceMapData = data
- throw error
- }
- }
-
- function readSync(read, url, data) {
- var readUrl = url
- try {
- return String(read(readUrl))
- } catch (error) {
- error.sourceMapData = data
- throw error
- }
- }
-
-
-
- function resolveSourceMap(code, codeUrl, read, callback) {
- var mapData
- try {
- mapData = resolveSourceMapHelper(code, codeUrl)
- } catch (error) {
- return callbackAsync(callback, error)
- }
- if (!mapData || mapData.map) {
- return callbackAsync(callback, null, mapData)
- }
- var readUrl = mapData.url
- read(readUrl, function(error, result) {
- if (error) {
- error.sourceMapData = mapData
- return callback(error)
- }
- mapData.map = String(result)
- try {
- mapData.map = parseMapToJSON(mapData.map, mapData)
- } catch (error) {
- return callback(error)
- }
- callback(null, mapData)
- })
- }
-
- function resolveSourceMapSync(code, codeUrl, read) {
- var mapData = resolveSourceMapHelper(code, codeUrl)
- if (!mapData || mapData.map) {
- return mapData
- }
- mapData.map = readSync(read, mapData.url, mapData)
- mapData.map = parseMapToJSON(mapData.map, mapData)
- return mapData
- }
-
- var dataUriRegex = /^data:([^,;]*)(;[^,;]*)*(?:,(.*))?$/
-
- /**
- * The media type for JSON text is application/json.
- *
- * {@link https://tools.ietf.org/html/rfc8259#section-11 | IANA Considerations }
- *
- * `text/json` is non-standard media type
- */
- var jsonMimeTypeRegex = /^(?:application|text)\/json$/
-
- /**
- * JSON text exchanged between systems that are not part of a closed ecosystem
- * MUST be encoded using UTF-8.
- *
- * {@link https://tools.ietf.org/html/rfc8259#section-8.1 | Character Encoding}
- */
- var jsonCharacterEncoding = "utf-8"
-
- function base64ToBuf(b64) {
- var binStr = atob(b64)
- var len = binStr.length
- var arr = new Uint8Array(len)
- for (var i = 0; i < len; i++) {
- arr[i] = binStr.charCodeAt(i)
- }
- return arr
- }
-
- function decodeBase64String(b64) {
- if (typeof TextDecoder === "undefined" || typeof Uint8Array === "undefined") {
- return atob(b64)
- }
- var buf = base64ToBuf(b64);
- // Note: `decoder.decode` method will throw a `DOMException` with the
- // `"EncodingError"` value when an coding error is found.
- var decoder = new TextDecoder(jsonCharacterEncoding, {fatal: true})
- return decoder.decode(buf);
- }
-
- function resolveSourceMapHelper(code, codeUrl) {
- var url = sourceMappingURL.getFrom(code)
- if (!url) {
- return null
- }
-
- var dataUri = url.match(dataUriRegex)
- if (dataUri) {
- var mimeType = dataUri[1] || "text/plain"
- var lastParameter = dataUri[2] || ""
- var encoded = dataUri[3] || ""
- var data = {
- sourceMappingURL: url,
- url: null,
- sourcesRelativeTo: codeUrl,
- map: encoded
- }
- if (!jsonMimeTypeRegex.test(mimeType)) {
- var error = new Error("Unuseful data uri mime type: " + mimeType)
- error.sourceMapData = data
- throw error
- }
- try {
- data.map = parseMapToJSON(
- lastParameter === ";base64" ? decodeBase64String(encoded) : decodeURIComponent(encoded),
- data
- )
- } catch (error) {
- error.sourceMapData = data
- throw error
- }
- return data
- }
-
- var mapUrl = resolveUrl(codeUrl, url)
- return {
- sourceMappingURL: url,
- url: mapUrl,
- sourcesRelativeTo: mapUrl,
- map: null
- }
- }
-
-
-
- function resolveSources(map, mapUrl, read, options, callback) {
- if (typeof options === "function") {
- callback = options
- options = {}
- }
- var pending = map.sources ? map.sources.length : 0
- var result = {
- sourcesResolved: [],
- sourcesContent: []
- }
-
- if (pending === 0) {
- callbackAsync(callback, null, result)
- return
- }
-
- var done = function() {
- pending--
- if (pending === 0) {
- callback(null, result)
- }
- }
-
- resolveSourcesHelper(map, mapUrl, options, function(fullUrl, sourceContent, index) {
- result.sourcesResolved[index] = fullUrl
- if (typeof sourceContent === "string") {
- result.sourcesContent[index] = sourceContent
- callbackAsync(done, null)
- } else {
- var readUrl = fullUrl
- read(readUrl, function(error, source) {
- result.sourcesContent[index] = error ? error : String(source)
- done()
- })
- }
- })
- }
-
- function resolveSourcesSync(map, mapUrl, read, options) {
- var result = {
- sourcesResolved: [],
- sourcesContent: []
- }
-
- if (!map.sources || map.sources.length === 0) {
- return result
- }
-
- resolveSourcesHelper(map, mapUrl, options, function(fullUrl, sourceContent, index) {
- result.sourcesResolved[index] = fullUrl
- if (read !== null) {
- if (typeof sourceContent === "string") {
- result.sourcesContent[index] = sourceContent
- } else {
- var readUrl = fullUrl
- try {
- result.sourcesContent[index] = String(read(readUrl))
- } catch (error) {
- result.sourcesContent[index] = error
- }
- }
- }
- })
-
- return result
- }
-
- var endingSlash = /\/?$/
-
- function resolveSourcesHelper(map, mapUrl, options, fn) {
- options = options || {}
- var fullUrl
- var sourceContent
- var sourceRoot
- for (var index = 0, len = map.sources.length; index < len; index++) {
- sourceRoot = null
- if (typeof options.sourceRoot === "string") {
- sourceRoot = options.sourceRoot
- } else if (typeof map.sourceRoot === "string" && options.sourceRoot !== false) {
- sourceRoot = map.sourceRoot
- }
- // If the sourceRoot is the empty string, it is equivalent to not setting
- // the property at all.
- if (sourceRoot === null || sourceRoot === '') {
- fullUrl = resolveUrl(mapUrl, map.sources[index])
- } else {
- // Make sure that the sourceRoot ends with a slash, so that `/scripts/subdir` becomes
- // `/scripts/subdir/`, not `/scripts/`. Pointing to a file as source root
- // does not make sense.
- fullUrl = resolveUrl(mapUrl, sourceRoot.replace(endingSlash, "/"), map.sources[index])
- }
- sourceContent = (map.sourcesContent || [])[index]
- fn(fullUrl, sourceContent, index)
- }
- }
-
-
-
- function resolve(code, codeUrl, read, options, callback) {
- if (typeof options === "function") {
- callback = options
- options = {}
- }
- if (code === null) {
- var mapUrl = codeUrl
- var data = {
- sourceMappingURL: null,
- url: mapUrl,
- sourcesRelativeTo: mapUrl,
- map: null
- }
- var readUrl = mapUrl
- read(readUrl, function(error, result) {
- if (error) {
- error.sourceMapData = data
- return callback(error)
- }
- data.map = String(result)
- try {
- data.map = parseMapToJSON(data.map, data)
- } catch (error) {
- return callback(error)
- }
- _resolveSources(data)
- })
- } else {
- resolveSourceMap(code, codeUrl, read, function(error, mapData) {
- if (error) {
- return callback(error)
- }
- if (!mapData) {
- return callback(null, null)
- }
- _resolveSources(mapData)
- })
- }
-
- function _resolveSources(mapData) {
- resolveSources(mapData.map, mapData.sourcesRelativeTo, read, options, function(error, result) {
- if (error) {
- return callback(error)
- }
- mapData.sourcesResolved = result.sourcesResolved
- mapData.sourcesContent = result.sourcesContent
- callback(null, mapData)
- })
- }
- }
-
- function resolveSync(code, codeUrl, read, options) {
- var mapData
- if (code === null) {
- var mapUrl = codeUrl
- mapData = {
- sourceMappingURL: null,
- url: mapUrl,
- sourcesRelativeTo: mapUrl,
- map: null
- }
- mapData.map = readSync(read, mapUrl, mapData)
- mapData.map = parseMapToJSON(mapData.map, mapData)
- } else {
- mapData = resolveSourceMapSync(code, codeUrl, read)
- if (!mapData) {
- return null
- }
- }
- var result = resolveSourcesSync(mapData.map, mapData.sourcesRelativeTo, read, options)
- mapData.sourcesResolved = result.sourcesResolved
- mapData.sourcesContent = result.sourcesContent
- return mapData
- }
-
-
-
- return {
- resolveSourceMap: resolveSourceMap,
- resolveSourceMapSync: resolveSourceMapSync,
- resolveSources: resolveSources,
- resolveSourcesSync: resolveSourcesSync,
- resolve: resolve,
- resolveSync: resolveSync,
- parseMapToJSON: parseMapToJSON
- }
-
-}));
diff --git a/node_modules/source-map-url/LICENSE b/node_modules/source-map-url/LICENSE
deleted file mode 100644
index 10052a9..0000000
--- a/node_modules/source-map-url/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014 Simon Lydell
-
-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/source-map-url/changelog.md b/node_modules/source-map-url/changelog.md
deleted file mode 100644
index 61f1c7b..0000000
--- a/node_modules/source-map-url/changelog.md
+++ /dev/null
@@ -1,57 +0,0 @@
-### Version 0.4.1 (2021-02-01) ###
-
-- Improved: The package is now about 50% smaller, by excluding unnecessary
- files. Thanks to Piotr Kuczynski (@pkuczynski)!
-
-### Version 0.4.0 (2015-11-12) ###
-
-- Changed: sourceMappingURL comments used to be matched only when placed at
- the end of the script. However, since several commonly used JavaScript
- libraries do not follow this convention and all popular web browsers accept
- non-trailing comments, this has been revised.
-
- So now non-trailing SourceMappingURL comments are matched as well.
-
-
-### Version 0.3.0 (2014-08-16) ###
-
-- Changed: sourceMappingURL comments used to be matched only if they appeared
- on their own line. However, the spec only says:
-
- > The generated code may include a line at the end of the source, with the following form:
- >
- > //# sourceMappingURL=
-
- So now they are matched also when they appear on the same line as code.
-
-- Removed: The `.set()` method. I couldn’t decide how it should work
- considering the above change. Moreover, it was unnecessarily complex (and
- would have gotten worse) for very little gain. It is much easier to run
- `.remove()` if needed, and then simply `code += "\n//# sourceMappingURL=" +
- url` (using the appropriate comment syntax and newline). KISS.
-
-- Changed: The `.insertBefore()` method now always inserts the string exactly
- before the sourceMappingURL comment; not before the newline before the
- comment (if any). Moreover, it does not ensure that the comment will be on a
- new line anymore. This is up to the caller. KISS.
-
-- Changed: The `.remove()` method no longer removes the newline before the
- sourceMappingURL (if any).
-
-- Changed: Renamed `.get()` to `.getFrom()`.
-- Changed: Renamed `.remove()` to `.removeFrom()`.
-
-- Added: The `.existsIn()` method.
-
-
-### Version 0.2.0 (2014-02-23) ###
-
-- Changed: A space is no longer inserted before the closing comment syntax. If
- such a space is desired, it needs to be put in the closing comment syntax
- itself (such as `["/*", " */"]` instead of `["/*", "*/"]`). (Backwards
- incompatible change.)
-
-
-### Version 0.1.0 (2014-02-22) ###
-
-- Initial release.
diff --git a/node_modules/source-map-url/package.json b/node_modules/source-map-url/package.json
deleted file mode 100644
index 6fd96d3..0000000
--- a/node_modules/source-map-url/package.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "name": "source-map-url",
- "version": "0.4.1",
- "author": "Simon Lydell",
- "license": "MIT",
- "description": "Tools for working with sourceMappingURL comments.",
- "keywords": [
- "source map",
- "sourceMappingURL",
- "comment",
- "annotation"
- ],
- "main": "source-map-url.js",
- "repository": "lydell/source-map-url",
- "scripts": {
- "lint": "jshint source-map-url.js test/ ",
- "unit": "mocha",
- "test": "npm run lint && npm run unit"
- },
- "devDependencies": {
- "mocha": "~1.17.1",
- "expect.js": "~0.3.1",
- "jshint": "~2.4.3"
- },
- "testling": {
- "harness": "mocha",
- "files": "test/*.js",
- "browsers": [
- "ie/8..latest",
- "chrome/latest",
- "firefox/latest",
- "opera/12",
- "opera/latest",
- "safari/5",
- "iphone/6",
- "android-browser/4"
- ]
- }
-}
diff --git a/node_modules/source-map-url/readme.md b/node_modules/source-map-url/readme.md
deleted file mode 100644
index 216de5e..0000000
--- a/node_modules/source-map-url/readme.md
+++ /dev/null
@@ -1,97 +0,0 @@
-Overview [![Build Status](https://travis-ci.org/lydell/source-map-url.png?branch=master)](https://travis-ci.org/lydell/source-map-url)
-========
-
-[![browser support](https://ci.testling.com/lydell/source-map-url.png)](https://ci.testling.com/lydell/source-map-url)
-
-Tools for working with sourceMappingURL comments.
-
-```js
-var sourceMappingURL = require("source-map-url")
-
-var code = [
- "!function(){...}();",
- "/*# sourceMappingURL=foo.js.map */"
-].join("\n")
-
-sourceMappingURL.existsIn(code)
-// true
-
-sourceMappingURL.getFrom(code)
-// foo.js.map
-
-code = sourceMappingURL.insertBefore(code, "// License: MIT\n")
-// !function(){...}();
-// // License: MIT
-// /*# sourceMappingURL=foo.js.map */
-
-code = sourceMappingURL.removeFrom(code)
-// !function(){...}();
-// // License: MIT
-
-sourceMappingURL.existsIn(code)
-// false
-
-sourceMappingURL.getFrom(code)
-// null
-
-code += "//# sourceMappingURL=/other/file.js.map"
-// !function(){...}();
-// // License: MIT
-// //# sourceMappingURL=/other/file.js.map
-```
-
-
-Installation
-============
-
-- `npm install source-map-url`
-- `bower install source-map-url`
-- `component install lydell/source-map-url`
-
-Works with CommonJS, AMD and browser globals, through UMD.
-
-
-Usage
-=====
-
-### `sourceMappingURL.getFrom(code)` ###
-
-Returns the url of the sourceMappingURL comment in `code`. Returns `null` if
-there is no such comment.
-
-### `sourceMappingURL.existsIn(code)` ###
-
-Returns `true` if there is a sourceMappingURL comment in `code`, or `false`
-otherwise.
-
-### `sourceMappingURL.removeFrom(code)` ###
-
-Removes the sourceMappingURL comment in `code`. Does nothing if there is no
-such comment. Returns the updated `code`.
-
-### `sourceMappingURL.insertBefore(code, string)` ###
-
-Inserts `string` before the sourceMappingURL comment in `code`. Appends
-`string` to `code` if there is no such comment.
-
-Lets you append something to a file without worrying about burying the
-sourceMappingURL comment (by keeping it at the end of the file).
-
-### `sourceMappingURL.regex` ###
-
-The regex that is used to match sourceMappingURL comments. It matches both `//`
-and `/**/` comments, thus supporting both JavaScript and CSS.
-
-
-Tests
-=====
-
-Start by running `npm test`, which lints the code and runs the test suite in Node.js.
-
-To run the tests in a browser, run `testling` (`npm install -g testling`) or `testling -u`.
-
-
-License
-=======
-
-[The X11 (“MIT”) License](LICENSE).
diff --git a/node_modules/source-map-url/source-map-url.js b/node_modules/source-map-url/source-map-url.js
deleted file mode 100644
index 1724cb7..0000000
--- a/node_modules/source-map-url/source-map-url.js
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2014 Simon Lydell
-// X11 (“MIT”) Licensed. (See LICENSE.)
-
-void (function(root, factory) {
- if (typeof define === "function" && define.amd) {
- define(factory)
- } else if (typeof exports === "object") {
- module.exports = factory()
- } else {
- root.sourceMappingURL = factory()
- }
-}(this, function() {
-
- var innerRegex = /[#@] sourceMappingURL=([^\s'"]*)/
-
- var regex = RegExp(
- "(?:" +
- "/\\*" +
- "(?:\\s*\r?\n(?://)?)?" +
- "(?:" + innerRegex.source + ")" +
- "\\s*" +
- "\\*/" +
- "|" +
- "//(?:" + innerRegex.source + ")" +
- ")" +
- "\\s*"
- )
-
- return {
-
- regex: regex,
- _innerRegex: innerRegex,
-
- getFrom: function(code) {
- var match = code.match(regex)
- return (match ? match[1] || match[2] || "" : null)
- },
-
- existsIn: function(code) {
- return regex.test(code)
- },
-
- removeFrom: function(code) {
- return code.replace(regex, "")
- },
-
- insertBefore: function(code, string) {
- var match = code.match(regex)
- if (match) {
- return code.slice(0, match.index) + string + code.slice(match.index)
- } else {
- return code + string
- }
- }
- }
-
-}));
diff --git a/node_modules/source-map/CHANGELOG.md b/node_modules/source-map/CHANGELOG.md
deleted file mode 100644
index 3a8c066..0000000
--- a/node_modules/source-map/CHANGELOG.md
+++ /dev/null
@@ -1,301 +0,0 @@
-# Change Log
-
-## 0.5.6
-
-* Fix for regression when people were using numbers as names in source maps. See
- #236.
-
-## 0.5.5
-
-* Fix "regression" of unsupported, implementation behavior that half the world
- happens to have come to depend on. See #235.
-
-* Fix regression involving function hoisting in SpiderMonkey. See #233.
-
-## 0.5.4
-
-* Large performance improvements to source-map serialization. See #228 and #229.
-
-## 0.5.3
-
-* Do not include unnecessary distribution files. See
- commit ef7006f8d1647e0a83fdc60f04f5a7ca54886f86.
-
-## 0.5.2
-
-* Include browser distributions of the library in package.json's `files`. See
- issue #212.
-
-## 0.5.1
-
-* Fix latent bugs in IndexedSourceMapConsumer.prototype._parseMappings. See
- ff05274becc9e6e1295ed60f3ea090d31d843379.
-
-## 0.5.0
-
-* Node 0.8 is no longer supported.
-
-* Use webpack instead of dryice for bundling.
-
-* Big speedups serializing source maps. See pull request #203.
-
-* Fix a bug with `SourceMapConsumer.prototype.sourceContentFor` and sources that
- explicitly start with the source root. See issue #199.
-
-## 0.4.4
-
-* Fix an issue where using a `SourceMapGenerator` after having created a
- `SourceMapConsumer` from it via `SourceMapConsumer.fromSourceMap` failed. See
- issue #191.
-
-* Fix an issue with where `SourceMapGenerator` would mistakenly consider
- different mappings as duplicates of each other and avoid generating them. See
- issue #192.
-
-## 0.4.3
-
-* A very large number of performance improvements, particularly when parsing
- source maps. Collectively about 75% of time shaved off of the source map
- parsing benchmark!
-
-* Fix a bug in `SourceMapConsumer.prototype.allGeneratedPositionsFor` and fuzzy
- searching in the presence of a column option. See issue #177.
-
-* Fix a bug with joining a source and its source root when the source is above
- the root. See issue #182.
-
-* Add the `SourceMapConsumer.prototype.hasContentsOfAllSources` method to
- determine when all sources' contents are inlined into the source map. See
- issue #190.
-
-## 0.4.2
-
-* Add an `.npmignore` file so that the benchmarks aren't pulled down by
- dependent projects. Issue #169.
-
-* Add an optional `column` argument to
- `SourceMapConsumer.prototype.allGeneratedPositionsFor` and better handle lines
- with no mappings. Issues #172 and #173.
-
-## 0.4.1
-
-* Fix accidentally defining a global variable. #170.
-
-## 0.4.0
-
-* The default direction for fuzzy searching was changed back to its original
- direction. See #164.
-
-* There is now a `bias` option you can supply to `SourceMapConsumer` to control
- the fuzzy searching direction. See #167.
-
-* About an 8% speed up in parsing source maps. See #159.
-
-* Added a benchmark for parsing and generating source maps.
-
-## 0.3.0
-
-* Change the default direction that searching for positions fuzzes when there is
- not an exact match. See #154.
-
-* Support for environments using json2.js for JSON serialization. See #156.
-
-## 0.2.0
-
-* Support for consuming "indexed" source maps which do not have any remote
- sections. See pull request #127. This introduces a minor backwards
- incompatibility if you are monkey patching `SourceMapConsumer.prototype`
- methods.
-
-## 0.1.43
-
-* Performance improvements for `SourceMapGenerator` and `SourceNode`. See issue
- #148 for some discussion and issues #150, #151, and #152 for implementations.
-
-## 0.1.42
-
-* Fix an issue where `SourceNode`s from different versions of the source-map
- library couldn't be used in conjunction with each other. See issue #142.
-
-## 0.1.41
-
-* Fix a bug with getting the source content of relative sources with a "./"
- prefix. See issue #145 and [Bug 1090768](bugzil.la/1090768).
-
-* Add the `SourceMapConsumer.prototype.computeColumnSpans` method to compute the
- column span of each mapping.
-
-* Add the `SourceMapConsumer.prototype.allGeneratedPositionsFor` method to find
- all generated positions associated with a given original source and line.
-
-## 0.1.40
-
-* Performance improvements for parsing source maps in SourceMapConsumer.
-
-## 0.1.39
-
-* Fix a bug where setting a source's contents to null before any source content
- had been set before threw a TypeError. See issue #131.
-
-## 0.1.38
-
-* Fix a bug where finding relative paths from an empty path were creating
- absolute paths. See issue #129.
-
-## 0.1.37
-
-* Fix a bug where if the source root was an empty string, relative source paths
- would turn into absolute source paths. Issue #124.
-
-## 0.1.36
-
-* Allow the `names` mapping property to be an empty string. Issue #121.
-
-## 0.1.35
-
-* A third optional parameter was added to `SourceNode.fromStringWithSourceMap`
- to specify a path that relative sources in the second parameter should be
- relative to. Issue #105.
-
-* If no file property is given to a `SourceMapGenerator`, then the resulting
- source map will no longer have a `null` file property. The property will
- simply not exist. Issue #104.
-
-* Fixed a bug where consecutive newlines were ignored in `SourceNode`s.
- Issue #116.
-
-## 0.1.34
-
-* Make `SourceNode` work with windows style ("\r\n") newlines. Issue #103.
-
-* Fix bug involving source contents and the
- `SourceMapGenerator.prototype.applySourceMap`. Issue #100.
-
-## 0.1.33
-
-* Fix some edge cases surrounding path joining and URL resolution.
-
-* Add a third parameter for relative path to
- `SourceMapGenerator.prototype.applySourceMap`.
-
-* Fix issues with mappings and EOLs.
-
-## 0.1.32
-
-* Fixed a bug where SourceMapConsumer couldn't handle negative relative columns
- (issue 92).
-
-* Fixed test runner to actually report number of failed tests as its process
- exit code.
-
-* Fixed a typo when reporting bad mappings (issue 87).
-
-## 0.1.31
-
-* Delay parsing the mappings in SourceMapConsumer until queried for a source
- location.
-
-* Support Sass source maps (which at the time of writing deviate from the spec
- in small ways) in SourceMapConsumer.
-
-## 0.1.30
-
-* Do not join source root with a source, when the source is a data URI.
-
-* Extend the test runner to allow running single specific test files at a time.
-
-* Performance improvements in `SourceNode.prototype.walk` and
- `SourceMapConsumer.prototype.eachMapping`.
-
-* Source map browser builds will now work inside Workers.
-
-* Better error messages when attempting to add an invalid mapping to a
- `SourceMapGenerator`.
-
-## 0.1.29
-
-* Allow duplicate entries in the `names` and `sources` arrays of source maps
- (usually from TypeScript) we are parsing. Fixes github issue 72.
-
-## 0.1.28
-
-* Skip duplicate mappings when creating source maps from SourceNode; github
- issue 75.
-
-## 0.1.27
-
-* Don't throw an error when the `file` property is missing in SourceMapConsumer,
- we don't use it anyway.
-
-## 0.1.26
-
-* Fix SourceNode.fromStringWithSourceMap for empty maps. Fixes github issue 70.
-
-## 0.1.25
-
-* Make compatible with browserify
-
-## 0.1.24
-
-* Fix issue with absolute paths and `file://` URIs. See
- https://bugzilla.mozilla.org/show_bug.cgi?id=885597
-
-## 0.1.23
-
-* Fix issue with absolute paths and sourcesContent, github issue 64.
-
-## 0.1.22
-
-* Ignore duplicate mappings in SourceMapGenerator. Fixes github issue 21.
-
-## 0.1.21
-
-* Fixed handling of sources that start with a slash so that they are relative to
- the source root's host.
-
-## 0.1.20
-
-* Fixed github issue #43: absolute URLs aren't joined with the source root
- anymore.
-
-## 0.1.19
-
-* Using Travis CI to run tests.
-
-## 0.1.18
-
-* Fixed a bug in the handling of sourceRoot.
-
-## 0.1.17
-
-* Added SourceNode.fromStringWithSourceMap.
-
-## 0.1.16
-
-* Added missing documentation.
-
-* Fixed the generating of empty mappings in SourceNode.
-
-## 0.1.15
-
-* Added SourceMapGenerator.applySourceMap.
-
-## 0.1.14
-
-* The sourceRoot is now handled consistently.
-
-## 0.1.13
-
-* Added SourceMapGenerator.fromSourceMap.
-
-## 0.1.12
-
-* SourceNode now generates empty mappings too.
-
-## 0.1.11
-
-* Added name support to SourceNode.
-
-## 0.1.10
-
-* Added sourcesContent support to the customer and generator.
diff --git a/node_modules/source-map/LICENSE b/node_modules/source-map/LICENSE
deleted file mode 100644
index ed1b7cf..0000000
--- a/node_modules/source-map/LICENSE
+++ /dev/null
@@ -1,28 +0,0 @@
-
-Copyright (c) 2009-2011, Mozilla Foundation and contributors
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
-* Neither the names of the Mozilla Foundation nor the names of project
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/node_modules/source-map/README.md b/node_modules/source-map/README.md
deleted file mode 100644
index 3281339..0000000
--- a/node_modules/source-map/README.md
+++ /dev/null
@@ -1,729 +0,0 @@
-# Source Map
-
-[![Build Status](https://travis-ci.org/mozilla/source-map.png?branch=master)](https://travis-ci.org/mozilla/source-map)
-
-[![NPM](https://nodei.co/npm/source-map.png?downloads=true&downloadRank=true)](https://www.npmjs.com/package/source-map)
-
-This is a library to generate and consume the source map format
-[described here][format].
-
-[format]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit
-
-## Use with Node
-
- $ npm install source-map
-
-## Use on the Web
-
-
-
---------------------------------------------------------------------------------
-
-
-
-
-
-## Table of Contents
-
-- [Examples](#examples)
- - [Consuming a source map](#consuming-a-source-map)
- - [Generating a source map](#generating-a-source-map)
- - [With SourceNode (high level API)](#with-sourcenode-high-level-api)
- - [With SourceMapGenerator (low level API)](#with-sourcemapgenerator-low-level-api)
-- [API](#api)
- - [SourceMapConsumer](#sourcemapconsumer)
- - [new SourceMapConsumer(rawSourceMap)](#new-sourcemapconsumerrawsourcemap)
- - [SourceMapConsumer.prototype.computeColumnSpans()](#sourcemapconsumerprototypecomputecolumnspans)
- - [SourceMapConsumer.prototype.originalPositionFor(generatedPosition)](#sourcemapconsumerprototypeoriginalpositionforgeneratedposition)
- - [SourceMapConsumer.prototype.generatedPositionFor(originalPosition)](#sourcemapconsumerprototypegeneratedpositionfororiginalposition)
- - [SourceMapConsumer.prototype.allGeneratedPositionsFor(originalPosition)](#sourcemapconsumerprototypeallgeneratedpositionsfororiginalposition)
- - [SourceMapConsumer.prototype.hasContentsOfAllSources()](#sourcemapconsumerprototypehascontentsofallsources)
- - [SourceMapConsumer.prototype.sourceContentFor(source[, returnNullOnMissing])](#sourcemapconsumerprototypesourcecontentforsource-returnnullonmissing)
- - [SourceMapConsumer.prototype.eachMapping(callback, context, order)](#sourcemapconsumerprototypeeachmappingcallback-context-order)
- - [SourceMapGenerator](#sourcemapgenerator)
- - [new SourceMapGenerator([startOfSourceMap])](#new-sourcemapgeneratorstartofsourcemap)
- - [SourceMapGenerator.fromSourceMap(sourceMapConsumer)](#sourcemapgeneratorfromsourcemapsourcemapconsumer)
- - [SourceMapGenerator.prototype.addMapping(mapping)](#sourcemapgeneratorprototypeaddmappingmapping)
- - [SourceMapGenerator.prototype.setSourceContent(sourceFile, sourceContent)](#sourcemapgeneratorprototypesetsourcecontentsourcefile-sourcecontent)
- - [SourceMapGenerator.prototype.applySourceMap(sourceMapConsumer[, sourceFile[, sourceMapPath]])](#sourcemapgeneratorprototypeapplysourcemapsourcemapconsumer-sourcefile-sourcemappath)
- - [SourceMapGenerator.prototype.toString()](#sourcemapgeneratorprototypetostring)
- - [SourceNode](#sourcenode)
- - [new SourceNode([line, column, source[, chunk[, name]]])](#new-sourcenodeline-column-source-chunk-name)
- - [SourceNode.fromStringWithSourceMap(code, sourceMapConsumer[, relativePath])](#sourcenodefromstringwithsourcemapcode-sourcemapconsumer-relativepath)
- - [SourceNode.prototype.add(chunk)](#sourcenodeprototypeaddchunk)
- - [SourceNode.prototype.prepend(chunk)](#sourcenodeprototypeprependchunk)
- - [SourceNode.prototype.setSourceContent(sourceFile, sourceContent)](#sourcenodeprototypesetsourcecontentsourcefile-sourcecontent)
- - [SourceNode.prototype.walk(fn)](#sourcenodeprototypewalkfn)
- - [SourceNode.prototype.walkSourceContents(fn)](#sourcenodeprototypewalksourcecontentsfn)
- - [SourceNode.prototype.join(sep)](#sourcenodeprototypejoinsep)
- - [SourceNode.prototype.replaceRight(pattern, replacement)](#sourcenodeprototypereplacerightpattern-replacement)
- - [SourceNode.prototype.toString()](#sourcenodeprototypetostring)
- - [SourceNode.prototype.toStringWithSourceMap([startOfSourceMap])](#sourcenodeprototypetostringwithsourcemapstartofsourcemap)
-
-
-
-## Examples
-
-### Consuming a source map
-
-```js
-var rawSourceMap = {
- version: 3,
- file: 'min.js',
- names: ['bar', 'baz', 'n'],
- sources: ['one.js', 'two.js'],
- sourceRoot: 'http://example.com/www/js/',
- mappings: 'CAAC,IAAI,IAAM,SAAUA,GAClB,OAAOC,IAAID;CCDb,IAAI,IAAM,SAAUE,GAClB,OAAOA'
-};
-
-var smc = new SourceMapConsumer(rawSourceMap);
-
-console.log(smc.sources);
-// [ 'http://example.com/www/js/one.js',
-// 'http://example.com/www/js/two.js' ]
-
-console.log(smc.originalPositionFor({
- line: 2,
- column: 28
-}));
-// { source: 'http://example.com/www/js/two.js',
-// line: 2,
-// column: 10,
-// name: 'n' }
-
-console.log(smc.generatedPositionFor({
- source: 'http://example.com/www/js/two.js',
- line: 2,
- column: 10
-}));
-// { line: 2, column: 28 }
-
-smc.eachMapping(function (m) {
- // ...
-});
-```
-
-### Generating a source map
-
-In depth guide:
-[**Compiling to JavaScript, and Debugging with Source Maps**](https://hacks.mozilla.org/2013/05/compiling-to-javascript-and-debugging-with-source-maps/)
-
-#### With SourceNode (high level API)
-
-```js
-function compile(ast) {
- switch (ast.type) {
- case 'BinaryExpression':
- return new SourceNode(
- ast.location.line,
- ast.location.column,
- ast.location.source,
- [compile(ast.left), " + ", compile(ast.right)]
- );
- case 'Literal':
- return new SourceNode(
- ast.location.line,
- ast.location.column,
- ast.location.source,
- String(ast.value)
- );
- // ...
- default:
- throw new Error("Bad AST");
- }
-}
-
-var ast = parse("40 + 2", "add.js");
-console.log(compile(ast).toStringWithSourceMap({
- file: 'add.js'
-}));
-// { code: '40 + 2',
-// map: [object SourceMapGenerator] }
-```
-
-#### With SourceMapGenerator (low level API)
-
-```js
-var map = new SourceMapGenerator({
- file: "source-mapped.js"
-});
-
-map.addMapping({
- generated: {
- line: 10,
- column: 35
- },
- source: "foo.js",
- original: {
- line: 33,
- column: 2
- },
- name: "christopher"
-});
-
-console.log(map.toString());
-// '{"version":3,"file":"source-mapped.js","sources":["foo.js"],"names":["christopher"],"mappings":";;;;;;;;;mCAgCEA"}'
-```
-
-## API
-
-Get a reference to the module:
-
-```js
-// Node.js
-var sourceMap = require('source-map');
-
-// Browser builds
-var sourceMap = window.sourceMap;
-
-// Inside Firefox
-const sourceMap = require("devtools/toolkit/sourcemap/source-map.js");
-```
-
-### SourceMapConsumer
-
-A SourceMapConsumer instance represents a parsed source map which we can query
-for information about the original file positions by giving it a file position
-in the generated source.
-
-#### new SourceMapConsumer(rawSourceMap)
-
-The only parameter is the raw source map (either as a string which can be
-`JSON.parse`'d, or an object). According to the spec, source maps have the
-following attributes:
-
-* `version`: Which version of the source map spec this map is following.
-
-* `sources`: An array of URLs to the original source files.
-
-* `names`: An array of identifiers which can be referenced by individual
- mappings.
-
-* `sourceRoot`: Optional. The URL root from which all sources are relative.
-
-* `sourcesContent`: Optional. An array of contents of the original source files.
-
-* `mappings`: A string of base64 VLQs which contain the actual mappings.
-
-* `file`: Optional. The generated filename this source map is associated with.
-
-```js
-var consumer = new sourceMap.SourceMapConsumer(rawSourceMapJsonData);
-```
-
-#### SourceMapConsumer.prototype.computeColumnSpans()
-
-Compute the last column for each generated mapping. The last column is
-inclusive.
-
-```js
-// Before:
-consumer.allGeneratedPositionsFor({ line: 2, source: "foo.coffee" })
-// [ { line: 2,
-// column: 1 },
-// { line: 2,
-// column: 10 },
-// { line: 2,
-// column: 20 } ]
-
-consumer.computeColumnSpans();
-
-// After:
-consumer.allGeneratedPositionsFor({ line: 2, source: "foo.coffee" })
-// [ { line: 2,
-// column: 1,
-// lastColumn: 9 },
-// { line: 2,
-// column: 10,
-// lastColumn: 19 },
-// { line: 2,
-// column: 20,
-// lastColumn: Infinity } ]
-
-```
-
-#### SourceMapConsumer.prototype.originalPositionFor(generatedPosition)
-
-Returns the original source, line, and column information for the generated
-source's line and column positions provided. The only argument is an object with
-the following properties:
-
-* `line`: The line number in the generated source.
-
-* `column`: The column number in the generated source.
-
-* `bias`: Either `SourceMapConsumer.GREATEST_LOWER_BOUND` or
- `SourceMapConsumer.LEAST_UPPER_BOUND`. Specifies whether to return the closest
- element that is smaller than or greater than the one we are searching for,
- respectively, if the exact element cannot be found. Defaults to
- `SourceMapConsumer.GREATEST_LOWER_BOUND`.
-
-and an object is returned with the following properties:
-
-* `source`: The original source file, or null if this information is not
- available.
-
-* `line`: The line number in the original source, or null if this information is
- not available.
-
-* `column`: The column number in the original source, or null if this
- information is not available.
-
-* `name`: The original identifier, or null if this information is not available.
-
-```js
-consumer.originalPositionFor({ line: 2, column: 10 })
-// { source: 'foo.coffee',
-// line: 2,
-// column: 2,
-// name: null }
-
-consumer.originalPositionFor({ line: 99999999999999999, column: 999999999999999 })
-// { source: null,
-// line: null,
-// column: null,
-// name: null }
-```
-
-#### SourceMapConsumer.prototype.generatedPositionFor(originalPosition)
-
-Returns the generated line and column information for the original source,
-line, and column positions provided. The only argument is an object with
-the following properties:
-
-* `source`: The filename of the original source.
-
-* `line`: The line number in the original source.
-
-* `column`: The column number in the original source.
-
-and an object is returned with the following properties:
-
-* `line`: The line number in the generated source, or null.
-
-* `column`: The column number in the generated source, or null.
-
-```js
-consumer.generatedPositionFor({ source: "example.js", line: 2, column: 10 })
-// { line: 1,
-// column: 56 }
-```
-
-#### SourceMapConsumer.prototype.allGeneratedPositionsFor(originalPosition)
-
-Returns all generated line and column information for the original source, line,
-and column provided. If no column is provided, returns all mappings
-corresponding to a either the line we are searching for or the next closest line
-that has any mappings. Otherwise, returns all mappings corresponding to the
-given line and either the column we are searching for or the next closest column
-that has any offsets.
-
-The only argument is an object with the following properties:
-
-* `source`: The filename of the original source.
-
-* `line`: The line number in the original source.
-
-* `column`: Optional. The column number in the original source.
-
-and an array of objects is returned, each with the following properties:
-
-* `line`: The line number in the generated source, or null.
-
-* `column`: The column number in the generated source, or null.
-
-```js
-consumer.allGeneratedpositionsfor({ line: 2, source: "foo.coffee" })
-// [ { line: 2,
-// column: 1 },
-// { line: 2,
-// column: 10 },
-// { line: 2,
-// column: 20 } ]
-```
-
-#### SourceMapConsumer.prototype.hasContentsOfAllSources()
-
-Return true if we have the embedded source content for every source listed in
-the source map, false otherwise.
-
-In other words, if this method returns `true`, then
-`consumer.sourceContentFor(s)` will succeed for every source `s` in
-`consumer.sources`.
-
-```js
-// ...
-if (consumer.hasContentsOfAllSources()) {
- consumerReadyCallback(consumer);
-} else {
- fetchSources(consumer, consumerReadyCallback);
-}
-// ...
-```
-
-#### SourceMapConsumer.prototype.sourceContentFor(source[, returnNullOnMissing])
-
-Returns the original source content for the source provided. The only
-argument is the URL of the original source file.
-
-If the source content for the given source is not found, then an error is
-thrown. Optionally, pass `true` as the second param to have `null` returned
-instead.
-
-```js
-consumer.sources
-// [ "my-cool-lib.clj" ]
-
-consumer.sourceContentFor("my-cool-lib.clj")
-// "..."
-
-consumer.sourceContentFor("this is not in the source map");
-// Error: "this is not in the source map" is not in the source map
-
-consumer.sourceContentFor("this is not in the source map", true);
-// null
-```
-
-#### SourceMapConsumer.prototype.eachMapping(callback, context, order)
-
-Iterate over each mapping between an original source/line/column and a
-generated line/column in this source map.
-
-* `callback`: The function that is called with each mapping. Mappings have the
- form `{ source, generatedLine, generatedColumn, originalLine, originalColumn,
- name }`
-
-* `context`: Optional. If specified, this object will be the value of `this`
- every time that `callback` is called.
-
-* `order`: Either `SourceMapConsumer.GENERATED_ORDER` or
- `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to iterate over
- the mappings sorted by the generated file's line/column order or the
- original's source/line/column order, respectively. Defaults to
- `SourceMapConsumer.GENERATED_ORDER`.
-
-```js
-consumer.eachMapping(function (m) { console.log(m); })
-// ...
-// { source: 'illmatic.js',
-// generatedLine: 1,
-// generatedColumn: 0,
-// originalLine: 1,
-// originalColumn: 0,
-// name: null }
-// { source: 'illmatic.js',
-// generatedLine: 2,
-// generatedColumn: 0,
-// originalLine: 2,
-// originalColumn: 0,
-// name: null }
-// ...
-```
-### SourceMapGenerator
-
-An instance of the SourceMapGenerator represents a source map which is being
-built incrementally.
-
-#### new SourceMapGenerator([startOfSourceMap])
-
-You may pass an object with the following properties:
-
-* `file`: The filename of the generated source that this source map is
- associated with.
-
-* `sourceRoot`: A root for all relative URLs in this source map.
-
-* `skipValidation`: Optional. When `true`, disables validation of mappings as
- they are added. This can improve performance but should be used with
- discretion, as a last resort. Even then, one should avoid using this flag when
- running tests, if possible.
-
-```js
-var generator = new sourceMap.SourceMapGenerator({
- file: "my-generated-javascript-file.js",
- sourceRoot: "http://example.com/app/js/"
-});
-```
-
-#### SourceMapGenerator.fromSourceMap(sourceMapConsumer)
-
-Creates a new `SourceMapGenerator` from an existing `SourceMapConsumer` instance.
-
-* `sourceMapConsumer` The SourceMap.
-
-```js
-var generator = sourceMap.SourceMapGenerator.fromSourceMap(consumer);
-```
-
-#### SourceMapGenerator.prototype.addMapping(mapping)
-
-Add a single mapping from original source line and column to the generated
-source's line and column for this source map being created. The mapping object
-should have the following properties:
-
-* `generated`: An object with the generated line and column positions.
-
-* `original`: An object with the original line and column positions.
-
-* `source`: The original source file (relative to the sourceRoot).
-
-* `name`: An optional original token name for this mapping.
-
-```js
-generator.addMapping({
- source: "module-one.scm",
- original: { line: 128, column: 0 },
- generated: { line: 3, column: 456 }
-})
-```
-
-#### SourceMapGenerator.prototype.setSourceContent(sourceFile, sourceContent)
-
-Set the source content for an original source file.
-
-* `sourceFile` the URL of the original source file.
-
-* `sourceContent` the content of the source file.
-
-```js
-generator.setSourceContent("module-one.scm",
- fs.readFileSync("path/to/module-one.scm"))
-```
-
-#### SourceMapGenerator.prototype.applySourceMap(sourceMapConsumer[, sourceFile[, sourceMapPath]])
-
-Applies a SourceMap for a source file to the SourceMap.
-Each mapping to the supplied source file is rewritten using the
-supplied SourceMap. Note: The resolution for the resulting mappings
-is the minimum of this map and the supplied map.
-
-* `sourceMapConsumer`: The SourceMap to be applied.
-
-* `sourceFile`: Optional. The filename of the source file.
- If omitted, sourceMapConsumer.file will be used, if it exists.
- Otherwise an error will be thrown.
-
-* `sourceMapPath`: Optional. The dirname of the path to the SourceMap
- to be applied. If relative, it is relative to the SourceMap.
-
- This parameter is needed when the two SourceMaps aren't in the same
- directory, and the SourceMap to be applied contains relative source
- paths. If so, those relative source paths need to be rewritten
- relative to the SourceMap.
-
- If omitted, it is assumed that both SourceMaps are in the same directory,
- thus not needing any rewriting. (Supplying `'.'` has the same effect.)
-
-#### SourceMapGenerator.prototype.toString()
-
-Renders the source map being generated to a string.
-
-```js
-generator.toString()
-// '{"version":3,"sources":["module-one.scm"],"names":[],"mappings":"...snip...","file":"my-generated-javascript-file.js","sourceRoot":"http://example.com/app/js/"}'
-```
-
-### SourceNode
-
-SourceNodes provide a way to abstract over interpolating and/or concatenating
-snippets of generated JavaScript source code, while maintaining the line and
-column information associated between those snippets and the original source
-code. This is useful as the final intermediate representation a compiler might
-use before outputting the generated JS and source map.
-
-#### new SourceNode([line, column, source[, chunk[, name]]])
-
-* `line`: The original line number associated with this source node, or null if
- it isn't associated with an original line.
-
-* `column`: The original column number associated with this source node, or null
- if it isn't associated with an original column.
-
-* `source`: The original source's filename; null if no filename is provided.
-
-* `chunk`: Optional. Is immediately passed to `SourceNode.prototype.add`, see
- below.
-
-* `name`: Optional. The original identifier.
-
-```js
-var node = new SourceNode(1, 2, "a.cpp", [
- new SourceNode(3, 4, "b.cpp", "extern int status;\n"),
- new SourceNode(5, 6, "c.cpp", "std::string* make_string(size_t n);\n"),
- new SourceNode(7, 8, "d.cpp", "int main(int argc, char** argv) {}\n"),
-]);
-```
-
-#### SourceNode.fromStringWithSourceMap(code, sourceMapConsumer[, relativePath])
-
-Creates a SourceNode from generated code and a SourceMapConsumer.
-
-* `code`: The generated code
-
-* `sourceMapConsumer` The SourceMap for the generated code
-
-* `relativePath` The optional path that relative sources in `sourceMapConsumer`
- should be relative to.
-
-```js
-var consumer = new SourceMapConsumer(fs.readFileSync("path/to/my-file.js.map", "utf8"));
-var node = SourceNode.fromStringWithSourceMap(fs.readFileSync("path/to/my-file.js"),
- consumer);
-```
-
-#### SourceNode.prototype.add(chunk)
-
-Add a chunk of generated JS to this source node.
-
-* `chunk`: A string snippet of generated JS code, another instance of
- `SourceNode`, or an array where each member is one of those things.
-
-```js
-node.add(" + ");
-node.add(otherNode);
-node.add([leftHandOperandNode, " + ", rightHandOperandNode]);
-```
-
-#### SourceNode.prototype.prepend(chunk)
-
-Prepend a chunk of generated JS to this source node.
-
-* `chunk`: A string snippet of generated JS code, another instance of
- `SourceNode`, or an array where each member is one of those things.
-
-```js
-node.prepend("/** Build Id: f783haef86324gf **/\n\n");
-```
-
-#### SourceNode.prototype.setSourceContent(sourceFile, sourceContent)
-
-Set the source content for a source file. This will be added to the
-`SourceMap` in the `sourcesContent` field.
-
-* `sourceFile`: The filename of the source file
-
-* `sourceContent`: The content of the source file
-
-```js
-node.setSourceContent("module-one.scm",
- fs.readFileSync("path/to/module-one.scm"))
-```
-
-#### SourceNode.prototype.walk(fn)
-
-Walk over the tree of JS snippets in this node and its children. The walking
-function is called once for each snippet of JS and is passed that snippet and
-the its original associated source's line/column location.
-
-* `fn`: The traversal function.
-
-```js
-var node = new SourceNode(1, 2, "a.js", [
- new SourceNode(3, 4, "b.js", "uno"),
- "dos",
- [
- "tres",
- new SourceNode(5, 6, "c.js", "quatro")
- ]
-]);
-
-node.walk(function (code, loc) { console.log("WALK:", code, loc); })
-// WALK: uno { source: 'b.js', line: 3, column: 4, name: null }
-// WALK: dos { source: 'a.js', line: 1, column: 2, name: null }
-// WALK: tres { source: 'a.js', line: 1, column: 2, name: null }
-// WALK: quatro { source: 'c.js', line: 5, column: 6, name: null }
-```
-
-#### SourceNode.prototype.walkSourceContents(fn)
-
-Walk over the tree of SourceNodes. The walking function is called for each
-source file content and is passed the filename and source content.
-
-* `fn`: The traversal function.
-
-```js
-var a = new SourceNode(1, 2, "a.js", "generated from a");
-a.setSourceContent("a.js", "original a");
-var b = new SourceNode(1, 2, "b.js", "generated from b");
-b.setSourceContent("b.js", "original b");
-var c = new SourceNode(1, 2, "c.js", "generated from c");
-c.setSourceContent("c.js", "original c");
-
-var node = new SourceNode(null, null, null, [a, b, c]);
-node.walkSourceContents(function (source, contents) { console.log("WALK:", source, ":", contents); })
-// WALK: a.js : original a
-// WALK: b.js : original b
-// WALK: c.js : original c
-```
-
-#### SourceNode.prototype.join(sep)
-
-Like `Array.prototype.join` except for SourceNodes. Inserts the separator
-between each of this source node's children.
-
-* `sep`: The separator.
-
-```js
-var lhs = new SourceNode(1, 2, "a.rs", "my_copy");
-var operand = new SourceNode(3, 4, "a.rs", "=");
-var rhs = new SourceNode(5, 6, "a.rs", "orig.clone()");
-
-var node = new SourceNode(null, null, null, [ lhs, operand, rhs ]);
-var joinedNode = node.join(" ");
-```
-
-#### SourceNode.prototype.replaceRight(pattern, replacement)
-
-Call `String.prototype.replace` on the very right-most source snippet. Useful
-for trimming white space from the end of a source node, etc.
-
-* `pattern`: The pattern to replace.
-
-* `replacement`: The thing to replace the pattern with.
-
-```js
-// Trim trailing white space.
-node.replaceRight(/\s*$/, "");
-```
-
-#### SourceNode.prototype.toString()
-
-Return the string representation of this source node. Walks over the tree and
-concatenates all the various snippets together to one string.
-
-```js
-var node = new SourceNode(1, 2, "a.js", [
- new SourceNode(3, 4, "b.js", "uno"),
- "dos",
- [
- "tres",
- new SourceNode(5, 6, "c.js", "quatro")
- ]
-]);
-
-node.toString()
-// 'unodostresquatro'
-```
-
-#### SourceNode.prototype.toStringWithSourceMap([startOfSourceMap])
-
-Returns the string representation of this tree of source nodes, plus a
-SourceMapGenerator which contains all the mappings between the generated and
-original sources.
-
-The arguments are the same as those to `new SourceMapGenerator`.
-
-```js
-var node = new SourceNode(1, 2, "a.js", [
- new SourceNode(3, 4, "b.js", "uno"),
- "dos",
- [
- "tres",
- new SourceNode(5, 6, "c.js", "quatro")
- ]
-]);
-
-node.toStringWithSourceMap({ file: "my-output-file.js" })
-// { code: 'unodostresquatro',
-// map: [object SourceMapGenerator] }
-```
diff --git a/node_modules/source-map/dist/source-map.debug.js b/node_modules/source-map/dist/source-map.debug.js
deleted file mode 100644
index b5ab638..0000000
--- a/node_modules/source-map/dist/source-map.debug.js
+++ /dev/null
@@ -1,3091 +0,0 @@
-(function webpackUniversalModuleDefinition(root, factory) {
- if(typeof exports === 'object' && typeof module === 'object')
- module.exports = factory();
- else if(typeof define === 'function' && define.amd)
- define([], factory);
- else if(typeof exports === 'object')
- exports["sourceMap"] = factory();
- else
- root["sourceMap"] = factory();
-})(this, function() {
-return /******/ (function(modules) { // webpackBootstrap
-/******/ // The module cache
-/******/ var installedModules = {};
-/******/
-/******/ // The require function
-/******/ function __webpack_require__(moduleId) {
-/******/
-/******/ // Check if module is in cache
-/******/ if(installedModules[moduleId])
-/******/ return installedModules[moduleId].exports;
-/******/
-/******/ // Create a new module (and put it into the cache)
-/******/ var module = installedModules[moduleId] = {
-/******/ exports: {},
-/******/ id: moduleId,
-/******/ loaded: false
-/******/ };
-/******/
-/******/ // Execute the module function
-/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ // Flag the module as loaded
-/******/ module.loaded = true;
-/******/
-/******/ // Return the exports of the module
-/******/ return module.exports;
-/******/ }
-/******/
-/******/
-/******/ // expose the modules object (__webpack_modules__)
-/******/ __webpack_require__.m = modules;
-/******/
-/******/ // expose the module cache
-/******/ __webpack_require__.c = installedModules;
-/******/
-/******/ // __webpack_public_path__
-/******/ __webpack_require__.p = "";
-/******/
-/******/ // Load entry module and return exports
-/******/ return __webpack_require__(0);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ (function(module, exports, __webpack_require__) {
-
- /*
- * Copyright 2009-2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE.txt or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
- exports.SourceMapGenerator = __webpack_require__(1).SourceMapGenerator;
- exports.SourceMapConsumer = __webpack_require__(7).SourceMapConsumer;
- exports.SourceNode = __webpack_require__(10).SourceNode;
-
-
-/***/ }),
-/* 1 */
-/***/ (function(module, exports, __webpack_require__) {
-
- /* -*- Mode: js; js-indent-level: 2; -*- */
- /*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
- var base64VLQ = __webpack_require__(2);
- var util = __webpack_require__(4);
- var ArraySet = __webpack_require__(5).ArraySet;
- var MappingList = __webpack_require__(6).MappingList;
-
- /**
- * An instance of the SourceMapGenerator represents a source map which is
- * being built incrementally. You may pass an object with the following
- * properties:
- *
- * - file: The filename of the generated source.
- * - sourceRoot: A root for all relative URLs in this source map.
- */
- function SourceMapGenerator(aArgs) {
- if (!aArgs) {
- aArgs = {};
- }
- this._file = util.getArg(aArgs, 'file', null);
- this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);
- this._skipValidation = util.getArg(aArgs, 'skipValidation', false);
- this._sources = new ArraySet();
- this._names = new ArraySet();
- this._mappings = new MappingList();
- this._sourcesContents = null;
- }
-
- SourceMapGenerator.prototype._version = 3;
-
- /**
- * Creates a new SourceMapGenerator based on a SourceMapConsumer
- *
- * @param aSourceMapConsumer The SourceMap.
- */
- SourceMapGenerator.fromSourceMap =
- function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {
- var sourceRoot = aSourceMapConsumer.sourceRoot;
- var generator = new SourceMapGenerator({
- file: aSourceMapConsumer.file,
- sourceRoot: sourceRoot
- });
- aSourceMapConsumer.eachMapping(function (mapping) {
- var newMapping = {
- generated: {
- line: mapping.generatedLine,
- column: mapping.generatedColumn
- }
- };
-
- if (mapping.source != null) {
- newMapping.source = mapping.source;
- if (sourceRoot != null) {
- newMapping.source = util.relative(sourceRoot, newMapping.source);
- }
-
- newMapping.original = {
- line: mapping.originalLine,
- column: mapping.originalColumn
- };
-
- if (mapping.name != null) {
- newMapping.name = mapping.name;
- }
- }
-
- generator.addMapping(newMapping);
- });
- aSourceMapConsumer.sources.forEach(function (sourceFile) {
- var content = aSourceMapConsumer.sourceContentFor(sourceFile);
- if (content != null) {
- generator.setSourceContent(sourceFile, content);
- }
- });
- return generator;
- };
-
- /**
- * Add a single mapping from original source line and column to the generated
- * source's line and column for this source map being created. The mapping
- * object should have the following properties:
- *
- * - generated: An object with the generated line and column positions.
- * - original: An object with the original line and column positions.
- * - source: The original source file (relative to the sourceRoot).
- * - name: An optional original token name for this mapping.
- */
- SourceMapGenerator.prototype.addMapping =
- function SourceMapGenerator_addMapping(aArgs) {
- var generated = util.getArg(aArgs, 'generated');
- var original = util.getArg(aArgs, 'original', null);
- var source = util.getArg(aArgs, 'source', null);
- var name = util.getArg(aArgs, 'name', null);
-
- if (!this._skipValidation) {
- this._validateMapping(generated, original, source, name);
- }
-
- if (source != null) {
- source = String(source);
- if (!this._sources.has(source)) {
- this._sources.add(source);
- }
- }
-
- if (name != null) {
- name = String(name);
- if (!this._names.has(name)) {
- this._names.add(name);
- }
- }
-
- this._mappings.add({
- generatedLine: generated.line,
- generatedColumn: generated.column,
- originalLine: original != null && original.line,
- originalColumn: original != null && original.column,
- source: source,
- name: name
- });
- };
-
- /**
- * Set the source content for a source file.
- */
- SourceMapGenerator.prototype.setSourceContent =
- function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {
- var source = aSourceFile;
- if (this._sourceRoot != null) {
- source = util.relative(this._sourceRoot, source);
- }
-
- if (aSourceContent != null) {
- // Add the source content to the _sourcesContents map.
- // Create a new _sourcesContents map if the property is null.
- if (!this._sourcesContents) {
- this._sourcesContents = Object.create(null);
- }
- this._sourcesContents[util.toSetString(source)] = aSourceContent;
- } else if (this._sourcesContents) {
- // Remove the source file from the _sourcesContents map.
- // If the _sourcesContents map is empty, set the property to null.
- delete this._sourcesContents[util.toSetString(source)];
- if (Object.keys(this._sourcesContents).length === 0) {
- this._sourcesContents = null;
- }
- }
- };
-
- /**
- * Applies the mappings of a sub-source-map for a specific source file to the
- * source map being generated. Each mapping to the supplied source file is
- * rewritten using the supplied source map. Note: The resolution for the
- * resulting mappings is the minimium of this map and the supplied map.
- *
- * @param aSourceMapConsumer The source map to be applied.
- * @param aSourceFile Optional. The filename of the source file.
- * If omitted, SourceMapConsumer's file property will be used.
- * @param aSourceMapPath Optional. The dirname of the path to the source map
- * to be applied. If relative, it is relative to the SourceMapConsumer.
- * This parameter is needed when the two source maps aren't in the same
- * directory, and the source map to be applied contains relative source
- * paths. If so, those relative source paths need to be rewritten
- * relative to the SourceMapGenerator.
- */
- SourceMapGenerator.prototype.applySourceMap =
- function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {
- var sourceFile = aSourceFile;
- // If aSourceFile is omitted, we will use the file property of the SourceMap
- if (aSourceFile == null) {
- if (aSourceMapConsumer.file == null) {
- throw new Error(
- 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +
- 'or the source map\'s "file" property. Both were omitted.'
- );
- }
- sourceFile = aSourceMapConsumer.file;
- }
- var sourceRoot = this._sourceRoot;
- // Make "sourceFile" relative if an absolute Url is passed.
- if (sourceRoot != null) {
- sourceFile = util.relative(sourceRoot, sourceFile);
- }
- // Applying the SourceMap can add and remove items from the sources and
- // the names array.
- var newSources = new ArraySet();
- var newNames = new ArraySet();
-
- // Find mappings for the "sourceFile"
- this._mappings.unsortedForEach(function (mapping) {
- if (mapping.source === sourceFile && mapping.originalLine != null) {
- // Check if it can be mapped by the source map, then update the mapping.
- var original = aSourceMapConsumer.originalPositionFor({
- line: mapping.originalLine,
- column: mapping.originalColumn
- });
- if (original.source != null) {
- // Copy mapping
- mapping.source = original.source;
- if (aSourceMapPath != null) {
- mapping.source = util.join(aSourceMapPath, mapping.source)
- }
- if (sourceRoot != null) {
- mapping.source = util.relative(sourceRoot, mapping.source);
- }
- mapping.originalLine = original.line;
- mapping.originalColumn = original.column;
- if (original.name != null) {
- mapping.name = original.name;
- }
- }
- }
-
- var source = mapping.source;
- if (source != null && !newSources.has(source)) {
- newSources.add(source);
- }
-
- var name = mapping.name;
- if (name != null && !newNames.has(name)) {
- newNames.add(name);
- }
-
- }, this);
- this._sources = newSources;
- this._names = newNames;
-
- // Copy sourcesContents of applied map.
- aSourceMapConsumer.sources.forEach(function (sourceFile) {
- var content = aSourceMapConsumer.sourceContentFor(sourceFile);
- if (content != null) {
- if (aSourceMapPath != null) {
- sourceFile = util.join(aSourceMapPath, sourceFile);
- }
- if (sourceRoot != null) {
- sourceFile = util.relative(sourceRoot, sourceFile);
- }
- this.setSourceContent(sourceFile, content);
- }
- }, this);
- };
-
- /**
- * A mapping can have one of the three levels of data:
- *
- * 1. Just the generated position.
- * 2. The Generated position, original position, and original source.
- * 3. Generated and original position, original source, as well as a name
- * token.
- *
- * To maintain consistency, we validate that any new mapping being added falls
- * in to one of these categories.
- */
- SourceMapGenerator.prototype._validateMapping =
- function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,
- aName) {
- // When aOriginal is truthy but has empty values for .line and .column,
- // it is most likely a programmer error. In this case we throw a very
- // specific error message to try to guide them the right way.
- // For example: https://github.com/Polymer/polymer-bundler/pull/519
- if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {
- throw new Error(
- 'original.line and original.column are not numbers -- you probably meant to omit ' +
- 'the original mapping entirely and only map the generated position. If so, pass ' +
- 'null for the original mapping instead of an object with empty or null values.'
- );
- }
-
- if (aGenerated && 'line' in aGenerated && 'column' in aGenerated
- && aGenerated.line > 0 && aGenerated.column >= 0
- && !aOriginal && !aSource && !aName) {
- // Case 1.
- return;
- }
- else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated
- && aOriginal && 'line' in aOriginal && 'column' in aOriginal
- && aGenerated.line > 0 && aGenerated.column >= 0
- && aOriginal.line > 0 && aOriginal.column >= 0
- && aSource) {
- // Cases 2 and 3.
- return;
- }
- else {
- throw new Error('Invalid mapping: ' + JSON.stringify({
- generated: aGenerated,
- source: aSource,
- original: aOriginal,
- name: aName
- }));
- }
- };
-
- /**
- * Serialize the accumulated mappings in to the stream of base 64 VLQs
- * specified by the source map format.
- */
- SourceMapGenerator.prototype._serializeMappings =
- function SourceMapGenerator_serializeMappings() {
- var previousGeneratedColumn = 0;
- var previousGeneratedLine = 1;
- var previousOriginalColumn = 0;
- var previousOriginalLine = 0;
- var previousName = 0;
- var previousSource = 0;
- var result = '';
- var next;
- var mapping;
- var nameIdx;
- var sourceIdx;
-
- var mappings = this._mappings.toArray();
- for (var i = 0, len = mappings.length; i < len; i++) {
- mapping = mappings[i];
- next = ''
-
- if (mapping.generatedLine !== previousGeneratedLine) {
- previousGeneratedColumn = 0;
- while (mapping.generatedLine !== previousGeneratedLine) {
- next += ';';
- previousGeneratedLine++;
- }
- }
- else {
- if (i > 0) {
- if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {
- continue;
- }
- next += ',';
- }
- }
-
- next += base64VLQ.encode(mapping.generatedColumn
- - previousGeneratedColumn);
- previousGeneratedColumn = mapping.generatedColumn;
-
- if (mapping.source != null) {
- sourceIdx = this._sources.indexOf(mapping.source);
- next += base64VLQ.encode(sourceIdx - previousSource);
- previousSource = sourceIdx;
-
- // lines are stored 0-based in SourceMap spec version 3
- next += base64VLQ.encode(mapping.originalLine - 1
- - previousOriginalLine);
- previousOriginalLine = mapping.originalLine - 1;
-
- next += base64VLQ.encode(mapping.originalColumn
- - previousOriginalColumn);
- previousOriginalColumn = mapping.originalColumn;
-
- if (mapping.name != null) {
- nameIdx = this._names.indexOf(mapping.name);
- next += base64VLQ.encode(nameIdx - previousName);
- previousName = nameIdx;
- }
- }
-
- result += next;
- }
-
- return result;
- };
-
- SourceMapGenerator.prototype._generateSourcesContent =
- function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {
- return aSources.map(function (source) {
- if (!this._sourcesContents) {
- return null;
- }
- if (aSourceRoot != null) {
- source = util.relative(aSourceRoot, source);
- }
- var key = util.toSetString(source);
- return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)
- ? this._sourcesContents[key]
- : null;
- }, this);
- };
-
- /**
- * Externalize the source map.
- */
- SourceMapGenerator.prototype.toJSON =
- function SourceMapGenerator_toJSON() {
- var map = {
- version: this._version,
- sources: this._sources.toArray(),
- names: this._names.toArray(),
- mappings: this._serializeMappings()
- };
- if (this._file != null) {
- map.file = this._file;
- }
- if (this._sourceRoot != null) {
- map.sourceRoot = this._sourceRoot;
- }
- if (this._sourcesContents) {
- map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);
- }
-
- return map;
- };
-
- /**
- * Render the source map being generated to a string.
- */
- SourceMapGenerator.prototype.toString =
- function SourceMapGenerator_toString() {
- return JSON.stringify(this.toJSON());
- };
-
- exports.SourceMapGenerator = SourceMapGenerator;
-
-
-/***/ }),
-/* 2 */
-/***/ (function(module, exports, __webpack_require__) {
-
- /* -*- Mode: js; js-indent-level: 2; -*- */
- /*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- *
- * Based on the Base 64 VLQ implementation in Closure Compiler:
- * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java
- *
- * Copyright 2011 The Closure Compiler Authors. All rights reserved.
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided
- * with the distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
- var base64 = __webpack_require__(3);
-
- // A single base 64 digit can contain 6 bits of data. For the base 64 variable
- // length quantities we use in the source map spec, the first bit is the sign,
- // the next four bits are the actual value, and the 6th bit is the
- // continuation bit. The continuation bit tells us whether there are more
- // digits in this value following this digit.
- //
- // Continuation
- // | Sign
- // | |
- // V V
- // 101011
-
- var VLQ_BASE_SHIFT = 5;
-
- // binary: 100000
- var VLQ_BASE = 1 << VLQ_BASE_SHIFT;
-
- // binary: 011111
- var VLQ_BASE_MASK = VLQ_BASE - 1;
-
- // binary: 100000
- var VLQ_CONTINUATION_BIT = VLQ_BASE;
-
- /**
- * Converts from a two-complement value to a value where the sign bit is
- * placed in the least significant bit. For example, as decimals:
- * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary)
- * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary)
- */
- function toVLQSigned(aValue) {
- return aValue < 0
- ? ((-aValue) << 1) + 1
- : (aValue << 1) + 0;
- }
-
- /**
- * Converts to a two-complement value from a value where the sign bit is
- * placed in the least significant bit. For example, as decimals:
- * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1
- * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2
- */
- function fromVLQSigned(aValue) {
- var isNegative = (aValue & 1) === 1;
- var shifted = aValue >> 1;
- return isNegative
- ? -shifted
- : shifted;
- }
-
- /**
- * Returns the base 64 VLQ encoded value.
- */
- exports.encode = function base64VLQ_encode(aValue) {
- var encoded = "";
- var digit;
-
- var vlq = toVLQSigned(aValue);
-
- do {
- digit = vlq & VLQ_BASE_MASK;
- vlq >>>= VLQ_BASE_SHIFT;
- if (vlq > 0) {
- // There are still more digits in this value, so we must make sure the
- // continuation bit is marked.
- digit |= VLQ_CONTINUATION_BIT;
- }
- encoded += base64.encode(digit);
- } while (vlq > 0);
-
- return encoded;
- };
-
- /**
- * Decodes the next base 64 VLQ value from the given string and returns the
- * value and the rest of the string via the out parameter.
- */
- exports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {
- var strLen = aStr.length;
- var result = 0;
- var shift = 0;
- var continuation, digit;
-
- do {
- if (aIndex >= strLen) {
- throw new Error("Expected more digits in base 64 VLQ value.");
- }
-
- digit = base64.decode(aStr.charCodeAt(aIndex++));
- if (digit === -1) {
- throw new Error("Invalid base64 digit: " + aStr.charAt(aIndex - 1));
- }
-
- continuation = !!(digit & VLQ_CONTINUATION_BIT);
- digit &= VLQ_BASE_MASK;
- result = result + (digit << shift);
- shift += VLQ_BASE_SHIFT;
- } while (continuation);
-
- aOutParam.value = fromVLQSigned(result);
- aOutParam.rest = aIndex;
- };
-
-
-/***/ }),
-/* 3 */
-/***/ (function(module, exports) {
-
- /* -*- Mode: js; js-indent-level: 2; -*- */
- /*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
- var intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');
-
- /**
- * Encode an integer in the range of 0 to 63 to a single base 64 digit.
- */
- exports.encode = function (number) {
- if (0 <= number && number < intToCharMap.length) {
- return intToCharMap[number];
- }
- throw new TypeError("Must be between 0 and 63: " + number);
- };
-
- /**
- * Decode a single base 64 character code digit to an integer. Returns -1 on
- * failure.
- */
- exports.decode = function (charCode) {
- var bigA = 65; // 'A'
- var bigZ = 90; // 'Z'
-
- var littleA = 97; // 'a'
- var littleZ = 122; // 'z'
-
- var zero = 48; // '0'
- var nine = 57; // '9'
-
- var plus = 43; // '+'
- var slash = 47; // '/'
-
- var littleOffset = 26;
- var numberOffset = 52;
-
- // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ
- if (bigA <= charCode && charCode <= bigZ) {
- return (charCode - bigA);
- }
-
- // 26 - 51: abcdefghijklmnopqrstuvwxyz
- if (littleA <= charCode && charCode <= littleZ) {
- return (charCode - littleA + littleOffset);
- }
-
- // 52 - 61: 0123456789
- if (zero <= charCode && charCode <= nine) {
- return (charCode - zero + numberOffset);
- }
-
- // 62: +
- if (charCode == plus) {
- return 62;
- }
-
- // 63: /
- if (charCode == slash) {
- return 63;
- }
-
- // Invalid base64 digit.
- return -1;
- };
-
-
-/***/ }),
-/* 4 */
-/***/ (function(module, exports) {
-
- /* -*- Mode: js; js-indent-level: 2; -*- */
- /*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
- /**
- * This is a helper function for getting values from parameter/options
- * objects.
- *
- * @param args The object we are extracting values from
- * @param name The name of the property we are getting.
- * @param defaultValue An optional value to return if the property is missing
- * from the object. If this is not specified and the property is missing, an
- * error will be thrown.
- */
- function getArg(aArgs, aName, aDefaultValue) {
- if (aName in aArgs) {
- return aArgs[aName];
- } else if (arguments.length === 3) {
- return aDefaultValue;
- } else {
- throw new Error('"' + aName + '" is a required argument.');
- }
- }
- exports.getArg = getArg;
-
- var urlRegexp = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/;
- var dataUrlRegexp = /^data:.+\,.+$/;
-
- function urlParse(aUrl) {
- var match = aUrl.match(urlRegexp);
- if (!match) {
- return null;
- }
- return {
- scheme: match[1],
- auth: match[2],
- host: match[3],
- port: match[4],
- path: match[5]
- };
- }
- exports.urlParse = urlParse;
-
- function urlGenerate(aParsedUrl) {
- var url = '';
- if (aParsedUrl.scheme) {
- url += aParsedUrl.scheme + ':';
- }
- url += '//';
- if (aParsedUrl.auth) {
- url += aParsedUrl.auth + '@';
- }
- if (aParsedUrl.host) {
- url += aParsedUrl.host;
- }
- if (aParsedUrl.port) {
- url += ":" + aParsedUrl.port
- }
- if (aParsedUrl.path) {
- url += aParsedUrl.path;
- }
- return url;
- }
- exports.urlGenerate = urlGenerate;
-
- /**
- * Normalizes a path, or the path portion of a URL:
- *
- * - Replaces consecutive slashes with one slash.
- * - Removes unnecessary '.' parts.
- * - Removes unnecessary '/..' parts.
- *
- * Based on code in the Node.js 'path' core module.
- *
- * @param aPath The path or url to normalize.
- */
- function normalize(aPath) {
- var path = aPath;
- var url = urlParse(aPath);
- if (url) {
- if (!url.path) {
- return aPath;
- }
- path = url.path;
- }
- var isAbsolute = exports.isAbsolute(path);
-
- var parts = path.split(/\/+/);
- for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {
- part = parts[i];
- if (part === '.') {
- parts.splice(i, 1);
- } else if (part === '..') {
- up++;
- } else if (up > 0) {
- if (part === '') {
- // The first part is blank if the path is absolute. Trying to go
- // above the root is a no-op. Therefore we can remove all '..' parts
- // directly after the root.
- parts.splice(i + 1, up);
- up = 0;
- } else {
- parts.splice(i, 2);
- up--;
- }
- }
- }
- path = parts.join('/');
-
- if (path === '') {
- path = isAbsolute ? '/' : '.';
- }
-
- if (url) {
- url.path = path;
- return urlGenerate(url);
- }
- return path;
- }
- exports.normalize = normalize;
-
- /**
- * Joins two paths/URLs.
- *
- * @param aRoot The root path or URL.
- * @param aPath The path or URL to be joined with the root.
- *
- * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a
- * scheme-relative URL: Then the scheme of aRoot, if any, is prepended
- * first.
- * - Otherwise aPath is a path. If aRoot is a URL, then its path portion
- * is updated with the result and aRoot is returned. Otherwise the result
- * is returned.
- * - If aPath is absolute, the result is aPath.
- * - Otherwise the two paths are joined with a slash.
- * - Joining for example 'http://' and 'www.example.com' is also supported.
- */
- function join(aRoot, aPath) {
- if (aRoot === "") {
- aRoot = ".";
- }
- if (aPath === "") {
- aPath = ".";
- }
- var aPathUrl = urlParse(aPath);
- var aRootUrl = urlParse(aRoot);
- if (aRootUrl) {
- aRoot = aRootUrl.path || '/';
- }
-
- // `join(foo, '//www.example.org')`
- if (aPathUrl && !aPathUrl.scheme) {
- if (aRootUrl) {
- aPathUrl.scheme = aRootUrl.scheme;
- }
- return urlGenerate(aPathUrl);
- }
-
- if (aPathUrl || aPath.match(dataUrlRegexp)) {
- return aPath;
- }
-
- // `join('http://', 'www.example.com')`
- if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {
- aRootUrl.host = aPath;
- return urlGenerate(aRootUrl);
- }
-
- var joined = aPath.charAt(0) === '/'
- ? aPath
- : normalize(aRoot.replace(/\/+$/, '') + '/' + aPath);
-
- if (aRootUrl) {
- aRootUrl.path = joined;
- return urlGenerate(aRootUrl);
- }
- return joined;
- }
- exports.join = join;
-
- exports.isAbsolute = function (aPath) {
- return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp);
- };
-
- /**
- * Make a path relative to a URL or another path.
- *
- * @param aRoot The root path or URL.
- * @param aPath The path or URL to be made relative to aRoot.
- */
- function relative(aRoot, aPath) {
- if (aRoot === "") {
- aRoot = ".";
- }
-
- aRoot = aRoot.replace(/\/$/, '');
-
- // It is possible for the path to be above the root. In this case, simply
- // checking whether the root is a prefix of the path won't work. Instead, we
- // need to remove components from the root one by one, until either we find
- // a prefix that fits, or we run out of components to remove.
- var level = 0;
- while (aPath.indexOf(aRoot + '/') !== 0) {
- var index = aRoot.lastIndexOf("/");
- if (index < 0) {
- return aPath;
- }
-
- // If the only part of the root that is left is the scheme (i.e. http://,
- // file:///, etc.), one or more slashes (/), or simply nothing at all, we
- // have exhausted all components, so the path is not relative to the root.
- aRoot = aRoot.slice(0, index);
- if (aRoot.match(/^([^\/]+:\/)?\/*$/)) {
- return aPath;
- }
-
- ++level;
- }
-
- // Make sure we add a "../" for each component we removed from the root.
- return Array(level + 1).join("../") + aPath.substr(aRoot.length + 1);
- }
- exports.relative = relative;
-
- var supportsNullProto = (function () {
- var obj = Object.create(null);
- return !('__proto__' in obj);
- }());
-
- function identity (s) {
- return s;
- }
-
- /**
- * Because behavior goes wacky when you set `__proto__` on objects, we
- * have to prefix all the strings in our set with an arbitrary character.
- *
- * See https://github.com/mozilla/source-map/pull/31 and
- * https://github.com/mozilla/source-map/issues/30
- *
- * @param String aStr
- */
- function toSetString(aStr) {
- if (isProtoString(aStr)) {
- return '$' + aStr;
- }
-
- return aStr;
- }
- exports.toSetString = supportsNullProto ? identity : toSetString;
-
- function fromSetString(aStr) {
- if (isProtoString(aStr)) {
- return aStr.slice(1);
- }
-
- return aStr;
- }
- exports.fromSetString = supportsNullProto ? identity : fromSetString;
-
- function isProtoString(s) {
- if (!s) {
- return false;
- }
-
- var length = s.length;
-
- if (length < 9 /* "__proto__".length */) {
- return false;
- }
-
- if (s.charCodeAt(length - 1) !== 95 /* '_' */ ||
- s.charCodeAt(length - 2) !== 95 /* '_' */ ||
- s.charCodeAt(length - 3) !== 111 /* 'o' */ ||
- s.charCodeAt(length - 4) !== 116 /* 't' */ ||
- s.charCodeAt(length - 5) !== 111 /* 'o' */ ||
- s.charCodeAt(length - 6) !== 114 /* 'r' */ ||
- s.charCodeAt(length - 7) !== 112 /* 'p' */ ||
- s.charCodeAt(length - 8) !== 95 /* '_' */ ||
- s.charCodeAt(length - 9) !== 95 /* '_' */) {
- return false;
- }
-
- for (var i = length - 10; i >= 0; i--) {
- if (s.charCodeAt(i) !== 36 /* '$' */) {
- return false;
- }
- }
-
- return true;
- }
-
- /**
- * Comparator between two mappings where the original positions are compared.
- *
- * Optionally pass in `true` as `onlyCompareGenerated` to consider two
- * mappings with the same original source/line/column, but different generated
- * line and column the same. Useful when searching for a mapping with a
- * stubbed out mapping.
- */
- function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {
- var cmp = mappingA.source - mappingB.source;
- if (cmp !== 0) {
- return cmp;
- }
-
- cmp = mappingA.originalLine - mappingB.originalLine;
- if (cmp !== 0) {
- return cmp;
- }
-
- cmp = mappingA.originalColumn - mappingB.originalColumn;
- if (cmp !== 0 || onlyCompareOriginal) {
- return cmp;
- }
-
- cmp = mappingA.generatedColumn - mappingB.generatedColumn;
- if (cmp !== 0) {
- return cmp;
- }
-
- cmp = mappingA.generatedLine - mappingB.generatedLine;
- if (cmp !== 0) {
- return cmp;
- }
-
- return mappingA.name - mappingB.name;
- }
- exports.compareByOriginalPositions = compareByOriginalPositions;
-
- /**
- * Comparator between two mappings with deflated source and name indices where
- * the generated positions are compared.
- *
- * Optionally pass in `true` as `onlyCompareGenerated` to consider two
- * mappings with the same generated line and column, but different
- * source/name/original line and column the same. Useful when searching for a
- * mapping with a stubbed out mapping.
- */
- function compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {
- var cmp = mappingA.generatedLine - mappingB.generatedLine;
- if (cmp !== 0) {
- return cmp;
- }
-
- cmp = mappingA.generatedColumn - mappingB.generatedColumn;
- if (cmp !== 0 || onlyCompareGenerated) {
- return cmp;
- }
-
- cmp = mappingA.source - mappingB.source;
- if (cmp !== 0) {
- return cmp;
- }
-
- cmp = mappingA.originalLine - mappingB.originalLine;
- if (cmp !== 0) {
- return cmp;
- }
-
- cmp = mappingA.originalColumn - mappingB.originalColumn;
- if (cmp !== 0) {
- return cmp;
- }
-
- return mappingA.name - mappingB.name;
- }
- exports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;
-
- function strcmp(aStr1, aStr2) {
- if (aStr1 === aStr2) {
- return 0;
- }
-
- if (aStr1 > aStr2) {
- return 1;
- }
-
- return -1;
- }
-
- /**
- * Comparator between two mappings with inflated source and name strings where
- * the generated positions are compared.
- */
- function compareByGeneratedPositionsInflated(mappingA, mappingB) {
- var cmp = mappingA.generatedLine - mappingB.generatedLine;
- if (cmp !== 0) {
- return cmp;
- }
-
- cmp = mappingA.generatedColumn - mappingB.generatedColumn;
- if (cmp !== 0) {
- return cmp;
- }
-
- cmp = strcmp(mappingA.source, mappingB.source);
- if (cmp !== 0) {
- return cmp;
- }
-
- cmp = mappingA.originalLine - mappingB.originalLine;
- if (cmp !== 0) {
- return cmp;
- }
-
- cmp = mappingA.originalColumn - mappingB.originalColumn;
- if (cmp !== 0) {
- return cmp;
- }
-
- return strcmp(mappingA.name, mappingB.name);
- }
- exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;
-
-
-/***/ }),
-/* 5 */
-/***/ (function(module, exports, __webpack_require__) {
-
- /* -*- Mode: js; js-indent-level: 2; -*- */
- /*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
- var util = __webpack_require__(4);
- var has = Object.prototype.hasOwnProperty;
- var hasNativeMap = typeof Map !== "undefined";
-
- /**
- * A data structure which is a combination of an array and a set. Adding a new
- * member is O(1), testing for membership is O(1), and finding the index of an
- * element is O(1). Removing elements from the set is not supported. Only
- * strings are supported for membership.
- */
- function ArraySet() {
- this._array = [];
- this._set = hasNativeMap ? new Map() : Object.create(null);
- }
-
- /**
- * Static method for creating ArraySet instances from an existing array.
- */
- ArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {
- var set = new ArraySet();
- for (var i = 0, len = aArray.length; i < len; i++) {
- set.add(aArray[i], aAllowDuplicates);
- }
- return set;
- };
-
- /**
- * Return how many unique items are in this ArraySet. If duplicates have been
- * added, than those do not count towards the size.
- *
- * @returns Number
- */
- ArraySet.prototype.size = function ArraySet_size() {
- return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;
- };
-
- /**
- * Add the given string to this set.
- *
- * @param String aStr
- */
- ArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {
- var sStr = hasNativeMap ? aStr : util.toSetString(aStr);
- var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);
- var idx = this._array.length;
- if (!isDuplicate || aAllowDuplicates) {
- this._array.push(aStr);
- }
- if (!isDuplicate) {
- if (hasNativeMap) {
- this._set.set(aStr, idx);
- } else {
- this._set[sStr] = idx;
- }
- }
- };
-
- /**
- * Is the given string a member of this set?
- *
- * @param String aStr
- */
- ArraySet.prototype.has = function ArraySet_has(aStr) {
- if (hasNativeMap) {
- return this._set.has(aStr);
- } else {
- var sStr = util.toSetString(aStr);
- return has.call(this._set, sStr);
- }
- };
-
- /**
- * What is the index of the given string in the array?
- *
- * @param String aStr
- */
- ArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {
- if (hasNativeMap) {
- var idx = this._set.get(aStr);
- if (idx >= 0) {
- return idx;
- }
- } else {
- var sStr = util.toSetString(aStr);
- if (has.call(this._set, sStr)) {
- return this._set[sStr];
- }
- }
-
- throw new Error('"' + aStr + '" is not in the set.');
- };
-
- /**
- * What is the element at the given index?
- *
- * @param Number aIdx
- */
- ArraySet.prototype.at = function ArraySet_at(aIdx) {
- if (aIdx >= 0 && aIdx < this._array.length) {
- return this._array[aIdx];
- }
- throw new Error('No element indexed by ' + aIdx);
- };
-
- /**
- * Returns the array representation of this set (which has the proper indices
- * indicated by indexOf). Note that this is a copy of the internal array used
- * for storing the members so that no one can mess with internal state.
- */
- ArraySet.prototype.toArray = function ArraySet_toArray() {
- return this._array.slice();
- };
-
- exports.ArraySet = ArraySet;
-
-
-/***/ }),
-/* 6 */
-/***/ (function(module, exports, __webpack_require__) {
-
- /* -*- Mode: js; js-indent-level: 2; -*- */
- /*
- * Copyright 2014 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
- var util = __webpack_require__(4);
-
- /**
- * Determine whether mappingB is after mappingA with respect to generated
- * position.
- */
- function generatedPositionAfter(mappingA, mappingB) {
- // Optimized for most common case
- var lineA = mappingA.generatedLine;
- var lineB = mappingB.generatedLine;
- var columnA = mappingA.generatedColumn;
- var columnB = mappingB.generatedColumn;
- return lineB > lineA || lineB == lineA && columnB >= columnA ||
- util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;
- }
-
- /**
- * A data structure to provide a sorted view of accumulated mappings in a
- * performance conscious manner. It trades a neglibable overhead in general
- * case for a large speedup in case of mappings being added in order.
- */
- function MappingList() {
- this._array = [];
- this._sorted = true;
- // Serves as infimum
- this._last = {generatedLine: -1, generatedColumn: 0};
- }
-
- /**
- * Iterate through internal items. This method takes the same arguments that
- * `Array.prototype.forEach` takes.
- *
- * NOTE: The order of the mappings is NOT guaranteed.
- */
- MappingList.prototype.unsortedForEach =
- function MappingList_forEach(aCallback, aThisArg) {
- this._array.forEach(aCallback, aThisArg);
- };
-
- /**
- * Add the given source mapping.
- *
- * @param Object aMapping
- */
- MappingList.prototype.add = function MappingList_add(aMapping) {
- if (generatedPositionAfter(this._last, aMapping)) {
- this._last = aMapping;
- this._array.push(aMapping);
- } else {
- this._sorted = false;
- this._array.push(aMapping);
- }
- };
-
- /**
- * Returns the flat, sorted array of mappings. The mappings are sorted by
- * generated position.
- *
- * WARNING: This method returns internal data without copying, for
- * performance. The return value must NOT be mutated, and should be treated as
- * an immutable borrow. If you want to take ownership, you must make your own
- * copy.
- */
- MappingList.prototype.toArray = function MappingList_toArray() {
- if (!this._sorted) {
- this._array.sort(util.compareByGeneratedPositionsInflated);
- this._sorted = true;
- }
- return this._array;
- };
-
- exports.MappingList = MappingList;
-
-
-/***/ }),
-/* 7 */
-/***/ (function(module, exports, __webpack_require__) {
-
- /* -*- Mode: js; js-indent-level: 2; -*- */
- /*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
- var util = __webpack_require__(4);
- var binarySearch = __webpack_require__(8);
- var ArraySet = __webpack_require__(5).ArraySet;
- var base64VLQ = __webpack_require__(2);
- var quickSort = __webpack_require__(9).quickSort;
-
- function SourceMapConsumer(aSourceMap) {
- var sourceMap = aSourceMap;
- if (typeof aSourceMap === 'string') {
- sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, ''));
- }
-
- return sourceMap.sections != null
- ? new IndexedSourceMapConsumer(sourceMap)
- : new BasicSourceMapConsumer(sourceMap);
- }
-
- SourceMapConsumer.fromSourceMap = function(aSourceMap) {
- return BasicSourceMapConsumer.fromSourceMap(aSourceMap);
- }
-
- /**
- * The version of the source mapping spec that we are consuming.
- */
- SourceMapConsumer.prototype._version = 3;
-
- // `__generatedMappings` and `__originalMappings` are arrays that hold the
- // parsed mapping coordinates from the source map's "mappings" attribute. They
- // are lazily instantiated, accessed via the `_generatedMappings` and
- // `_originalMappings` getters respectively, and we only parse the mappings
- // and create these arrays once queried for a source location. We jump through
- // these hoops because there can be many thousands of mappings, and parsing
- // them is expensive, so we only want to do it if we must.
- //
- // Each object in the arrays is of the form:
- //
- // {
- // generatedLine: The line number in the generated code,
- // generatedColumn: The column number in the generated code,
- // source: The path to the original source file that generated this
- // chunk of code,
- // originalLine: The line number in the original source that
- // corresponds to this chunk of generated code,
- // originalColumn: The column number in the original source that
- // corresponds to this chunk of generated code,
- // name: The name of the original symbol which generated this chunk of
- // code.
- // }
- //
- // All properties except for `generatedLine` and `generatedColumn` can be
- // `null`.
- //
- // `_generatedMappings` is ordered by the generated positions.
- //
- // `_originalMappings` is ordered by the original positions.
-
- SourceMapConsumer.prototype.__generatedMappings = null;
- Object.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {
- get: function () {
- if (!this.__generatedMappings) {
- this._parseMappings(this._mappings, this.sourceRoot);
- }
-
- return this.__generatedMappings;
- }
- });
-
- SourceMapConsumer.prototype.__originalMappings = null;
- Object.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {
- get: function () {
- if (!this.__originalMappings) {
- this._parseMappings(this._mappings, this.sourceRoot);
- }
-
- return this.__originalMappings;
- }
- });
-
- SourceMapConsumer.prototype._charIsMappingSeparator =
- function SourceMapConsumer_charIsMappingSeparator(aStr, index) {
- var c = aStr.charAt(index);
- return c === ";" || c === ",";
- };
-
- /**
- * Parse the mappings in a string in to a data structure which we can easily
- * query (the ordered arrays in the `this.__generatedMappings` and
- * `this.__originalMappings` properties).
- */
- SourceMapConsumer.prototype._parseMappings =
- function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {
- throw new Error("Subclasses must implement _parseMappings");
- };
-
- SourceMapConsumer.GENERATED_ORDER = 1;
- SourceMapConsumer.ORIGINAL_ORDER = 2;
-
- SourceMapConsumer.GREATEST_LOWER_BOUND = 1;
- SourceMapConsumer.LEAST_UPPER_BOUND = 2;
-
- /**
- * Iterate over each mapping between an original source/line/column and a
- * generated line/column in this source map.
- *
- * @param Function aCallback
- * The function that is called with each mapping.
- * @param Object aContext
- * Optional. If specified, this object will be the value of `this` every
- * time that `aCallback` is called.
- * @param aOrder
- * Either `SourceMapConsumer.GENERATED_ORDER` or
- * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to
- * iterate over the mappings sorted by the generated file's line/column
- * order or the original's source/line/column order, respectively. Defaults to
- * `SourceMapConsumer.GENERATED_ORDER`.
- */
- SourceMapConsumer.prototype.eachMapping =
- function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {
- var context = aContext || null;
- var order = aOrder || SourceMapConsumer.GENERATED_ORDER;
-
- var mappings;
- switch (order) {
- case SourceMapConsumer.GENERATED_ORDER:
- mappings = this._generatedMappings;
- break;
- case SourceMapConsumer.ORIGINAL_ORDER:
- mappings = this._originalMappings;
- break;
- default:
- throw new Error("Unknown order of iteration.");
- }
-
- var sourceRoot = this.sourceRoot;
- mappings.map(function (mapping) {
- var source = mapping.source === null ? null : this._sources.at(mapping.source);
- if (source != null && sourceRoot != null) {
- source = util.join(sourceRoot, source);
- }
- return {
- source: source,
- generatedLine: mapping.generatedLine,
- generatedColumn: mapping.generatedColumn,
- originalLine: mapping.originalLine,
- originalColumn: mapping.originalColumn,
- name: mapping.name === null ? null : this._names.at(mapping.name)
- };
- }, this).forEach(aCallback, context);
- };
-
- /**
- * Returns all generated line and column information for the original source,
- * line, and column provided. If no column is provided, returns all mappings
- * corresponding to a either the line we are searching for or the next
- * closest line that has any mappings. Otherwise, returns all mappings
- * corresponding to the given line and either the column we are searching for
- * or the next closest column that has any offsets.
- *
- * The only argument is an object with the following properties:
- *
- * - source: The filename of the original source.
- * - line: The line number in the original source.
- * - column: Optional. the column number in the original source.
- *
- * and an array of objects is returned, each with the following properties:
- *
- * - line: The line number in the generated source, or null.
- * - column: The column number in the generated source, or null.
- */
- SourceMapConsumer.prototype.allGeneratedPositionsFor =
- function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {
- var line = util.getArg(aArgs, 'line');
-
- // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping
- // returns the index of the closest mapping less than the needle. By
- // setting needle.originalColumn to 0, we thus find the last mapping for
- // the given line, provided such a mapping exists.
- var needle = {
- source: util.getArg(aArgs, 'source'),
- originalLine: line,
- originalColumn: util.getArg(aArgs, 'column', 0)
- };
-
- if (this.sourceRoot != null) {
- needle.source = util.relative(this.sourceRoot, needle.source);
- }
- if (!this._sources.has(needle.source)) {
- return [];
- }
- needle.source = this._sources.indexOf(needle.source);
-
- var mappings = [];
-
- var index = this._findMapping(needle,
- this._originalMappings,
- "originalLine",
- "originalColumn",
- util.compareByOriginalPositions,
- binarySearch.LEAST_UPPER_BOUND);
- if (index >= 0) {
- var mapping = this._originalMappings[index];
-
- if (aArgs.column === undefined) {
- var originalLine = mapping.originalLine;
-
- // Iterate until either we run out of mappings, or we run into
- // a mapping for a different line than the one we found. Since
- // mappings are sorted, this is guaranteed to find all mappings for
- // the line we found.
- while (mapping && mapping.originalLine === originalLine) {
- mappings.push({
- line: util.getArg(mapping, 'generatedLine', null),
- column: util.getArg(mapping, 'generatedColumn', null),
- lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)
- });
-
- mapping = this._originalMappings[++index];
- }
- } else {
- var originalColumn = mapping.originalColumn;
-
- // Iterate until either we run out of mappings, or we run into
- // a mapping for a different line than the one we were searching for.
- // Since mappings are sorted, this is guaranteed to find all mappings for
- // the line we are searching for.
- while (mapping &&
- mapping.originalLine === line &&
- mapping.originalColumn == originalColumn) {
- mappings.push({
- line: util.getArg(mapping, 'generatedLine', null),
- column: util.getArg(mapping, 'generatedColumn', null),
- lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)
- });
-
- mapping = this._originalMappings[++index];
- }
- }
- }
-
- return mappings;
- };
-
- exports.SourceMapConsumer = SourceMapConsumer;
-
- /**
- * A BasicSourceMapConsumer instance represents a parsed source map which we can
- * query for information about the original file positions by giving it a file
- * position in the generated source.
- *
- * The only parameter is the raw source map (either as a JSON string, or
- * already parsed to an object). According to the spec, source maps have the
- * following attributes:
- *
- * - version: Which version of the source map spec this map is following.
- * - sources: An array of URLs to the original source files.
- * - names: An array of identifiers which can be referrenced by individual mappings.
- * - sourceRoot: Optional. The URL root from which all sources are relative.
- * - sourcesContent: Optional. An array of contents of the original source files.
- * - mappings: A string of base64 VLQs which contain the actual mappings.
- * - file: Optional. The generated file this source map is associated with.
- *
- * Here is an example source map, taken from the source map spec[0]:
- *
- * {
- * version : 3,
- * file: "out.js",
- * sourceRoot : "",
- * sources: ["foo.js", "bar.js"],
- * names: ["src", "maps", "are", "fun"],
- * mappings: "AA,AB;;ABCDE;"
- * }
- *
- * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#
- */
- function BasicSourceMapConsumer(aSourceMap) {
- var sourceMap = aSourceMap;
- if (typeof aSourceMap === 'string') {
- sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, ''));
- }
-
- var version = util.getArg(sourceMap, 'version');
- var sources = util.getArg(sourceMap, 'sources');
- // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which
- // requires the array) to play nice here.
- var names = util.getArg(sourceMap, 'names', []);
- var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);
- var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);
- var mappings = util.getArg(sourceMap, 'mappings');
- var file = util.getArg(sourceMap, 'file', null);
-
- // Once again, Sass deviates from the spec and supplies the version as a
- // string rather than a number, so we use loose equality checking here.
- if (version != this._version) {
- throw new Error('Unsupported version: ' + version);
- }
-
- sources = sources
- .map(String)
- // Some source maps produce relative source paths like "./foo.js" instead of
- // "foo.js". Normalize these first so that future comparisons will succeed.
- // See bugzil.la/1090768.
- .map(util.normalize)
- // Always ensure that absolute sources are internally stored relative to
- // the source root, if the source root is absolute. Not doing this would
- // be particularly problematic when the source root is a prefix of the
- // source (valid, but why??). See github issue #199 and bugzil.la/1188982.
- .map(function (source) {
- return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)
- ? util.relative(sourceRoot, source)
- : source;
- });
-
- // Pass `true` below to allow duplicate names and sources. While source maps
- // are intended to be compressed and deduplicated, the TypeScript compiler
- // sometimes generates source maps with duplicates in them. See Github issue
- // #72 and bugzil.la/889492.
- this._names = ArraySet.fromArray(names.map(String), true);
- this._sources = ArraySet.fromArray(sources, true);
-
- this.sourceRoot = sourceRoot;
- this.sourcesContent = sourcesContent;
- this._mappings = mappings;
- this.file = file;
- }
-
- BasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);
- BasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;
-
- /**
- * Create a BasicSourceMapConsumer from a SourceMapGenerator.
- *
- * @param SourceMapGenerator aSourceMap
- * The source map that will be consumed.
- * @returns BasicSourceMapConsumer
- */
- BasicSourceMapConsumer.fromSourceMap =
- function SourceMapConsumer_fromSourceMap(aSourceMap) {
- var smc = Object.create(BasicSourceMapConsumer.prototype);
-
- var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);
- var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);
- smc.sourceRoot = aSourceMap._sourceRoot;
- smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),
- smc.sourceRoot);
- smc.file = aSourceMap._file;
-
- // Because we are modifying the entries (by converting string sources and
- // names to indices into the sources and names ArraySets), we have to make
- // a copy of the entry or else bad things happen. Shared mutable state
- // strikes again! See github issue #191.
-
- var generatedMappings = aSourceMap._mappings.toArray().slice();
- var destGeneratedMappings = smc.__generatedMappings = [];
- var destOriginalMappings = smc.__originalMappings = [];
-
- for (var i = 0, length = generatedMappings.length; i < length; i++) {
- var srcMapping = generatedMappings[i];
- var destMapping = new Mapping;
- destMapping.generatedLine = srcMapping.generatedLine;
- destMapping.generatedColumn = srcMapping.generatedColumn;
-
- if (srcMapping.source) {
- destMapping.source = sources.indexOf(srcMapping.source);
- destMapping.originalLine = srcMapping.originalLine;
- destMapping.originalColumn = srcMapping.originalColumn;
-
- if (srcMapping.name) {
- destMapping.name = names.indexOf(srcMapping.name);
- }
-
- destOriginalMappings.push(destMapping);
- }
-
- destGeneratedMappings.push(destMapping);
- }
-
- quickSort(smc.__originalMappings, util.compareByOriginalPositions);
-
- return smc;
- };
-
- /**
- * The version of the source mapping spec that we are consuming.
- */
- BasicSourceMapConsumer.prototype._version = 3;
-
- /**
- * The list of original sources.
- */
- Object.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {
- get: function () {
- return this._sources.toArray().map(function (s) {
- return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;
- }, this);
- }
- });
-
- /**
- * Provide the JIT with a nice shape / hidden class.
- */
- function Mapping() {
- this.generatedLine = 0;
- this.generatedColumn = 0;
- this.source = null;
- this.originalLine = null;
- this.originalColumn = null;
- this.name = null;
- }
-
- /**
- * Parse the mappings in a string in to a data structure which we can easily
- * query (the ordered arrays in the `this.__generatedMappings` and
- * `this.__originalMappings` properties).
- */
- BasicSourceMapConsumer.prototype._parseMappings =
- function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {
- var generatedLine = 1;
- var previousGeneratedColumn = 0;
- var previousOriginalLine = 0;
- var previousOriginalColumn = 0;
- var previousSource = 0;
- var previousName = 0;
- var length = aStr.length;
- var index = 0;
- var cachedSegments = {};
- var temp = {};
- var originalMappings = [];
- var generatedMappings = [];
- var mapping, str, segment, end, value;
-
- while (index < length) {
- if (aStr.charAt(index) === ';') {
- generatedLine++;
- index++;
- previousGeneratedColumn = 0;
- }
- else if (aStr.charAt(index) === ',') {
- index++;
- }
- else {
- mapping = new Mapping();
- mapping.generatedLine = generatedLine;
-
- // Because each offset is encoded relative to the previous one,
- // many segments often have the same encoding. We can exploit this
- // fact by caching the parsed variable length fields of each segment,
- // allowing us to avoid a second parse if we encounter the same
- // segment again.
- for (end = index; end < length; end++) {
- if (this._charIsMappingSeparator(aStr, end)) {
- break;
- }
- }
- str = aStr.slice(index, end);
-
- segment = cachedSegments[str];
- if (segment) {
- index += str.length;
- } else {
- segment = [];
- while (index < end) {
- base64VLQ.decode(aStr, index, temp);
- value = temp.value;
- index = temp.rest;
- segment.push(value);
- }
-
- if (segment.length === 2) {
- throw new Error('Found a source, but no line and column');
- }
-
- if (segment.length === 3) {
- throw new Error('Found a source and line, but no column');
- }
-
- cachedSegments[str] = segment;
- }
-
- // Generated column.
- mapping.generatedColumn = previousGeneratedColumn + segment[0];
- previousGeneratedColumn = mapping.generatedColumn;
-
- if (segment.length > 1) {
- // Original source.
- mapping.source = previousSource + segment[1];
- previousSource += segment[1];
-
- // Original line.
- mapping.originalLine = previousOriginalLine + segment[2];
- previousOriginalLine = mapping.originalLine;
- // Lines are stored 0-based
- mapping.originalLine += 1;
-
- // Original column.
- mapping.originalColumn = previousOriginalColumn + segment[3];
- previousOriginalColumn = mapping.originalColumn;
-
- if (segment.length > 4) {
- // Original name.
- mapping.name = previousName + segment[4];
- previousName += segment[4];
- }
- }
-
- generatedMappings.push(mapping);
- if (typeof mapping.originalLine === 'number') {
- originalMappings.push(mapping);
- }
- }
- }
-
- quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);
- this.__generatedMappings = generatedMappings;
-
- quickSort(originalMappings, util.compareByOriginalPositions);
- this.__originalMappings = originalMappings;
- };
-
- /**
- * Find the mapping that best matches the hypothetical "needle" mapping that
- * we are searching for in the given "haystack" of mappings.
- */
- BasicSourceMapConsumer.prototype._findMapping =
- function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,
- aColumnName, aComparator, aBias) {
- // To return the position we are searching for, we must first find the
- // mapping for the given position and then return the opposite position it
- // points to. Because the mappings are sorted, we can use binary search to
- // find the best mapping.
-
- if (aNeedle[aLineName] <= 0) {
- throw new TypeError('Line must be greater than or equal to 1, got '
- + aNeedle[aLineName]);
- }
- if (aNeedle[aColumnName] < 0) {
- throw new TypeError('Column must be greater than or equal to 0, got '
- + aNeedle[aColumnName]);
- }
-
- return binarySearch.search(aNeedle, aMappings, aComparator, aBias);
- };
-
- /**
- * Compute the last column for each generated mapping. The last column is
- * inclusive.
- */
- BasicSourceMapConsumer.prototype.computeColumnSpans =
- function SourceMapConsumer_computeColumnSpans() {
- for (var index = 0; index < this._generatedMappings.length; ++index) {
- var mapping = this._generatedMappings[index];
-
- // Mappings do not contain a field for the last generated columnt. We
- // can come up with an optimistic estimate, however, by assuming that
- // mappings are contiguous (i.e. given two consecutive mappings, the
- // first mapping ends where the second one starts).
- if (index + 1 < this._generatedMappings.length) {
- var nextMapping = this._generatedMappings[index + 1];
-
- if (mapping.generatedLine === nextMapping.generatedLine) {
- mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;
- continue;
- }
- }
-
- // The last mapping for each line spans the entire line.
- mapping.lastGeneratedColumn = Infinity;
- }
- };
-
- /**
- * Returns the original source, line, and column information for the generated
- * source's line and column positions provided. The only argument is an object
- * with the following properties:
- *
- * - line: The line number in the generated source.
- * - column: The column number in the generated source.
- * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or
- * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the
- * closest element that is smaller than or greater than the one we are
- * searching for, respectively, if the exact element cannot be found.
- * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.
- *
- * and an object is returned with the following properties:
- *
- * - source: The original source file, or null.
- * - line: The line number in the original source, or null.
- * - column: The column number in the original source, or null.
- * - name: The original identifier, or null.
- */
- BasicSourceMapConsumer.prototype.originalPositionFor =
- function SourceMapConsumer_originalPositionFor(aArgs) {
- var needle = {
- generatedLine: util.getArg(aArgs, 'line'),
- generatedColumn: util.getArg(aArgs, 'column')
- };
-
- var index = this._findMapping(
- needle,
- this._generatedMappings,
- "generatedLine",
- "generatedColumn",
- util.compareByGeneratedPositionsDeflated,
- util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)
- );
-
- if (index >= 0) {
- var mapping = this._generatedMappings[index];
-
- if (mapping.generatedLine === needle.generatedLine) {
- var source = util.getArg(mapping, 'source', null);
- if (source !== null) {
- source = this._sources.at(source);
- if (this.sourceRoot != null) {
- source = util.join(this.sourceRoot, source);
- }
- }
- var name = util.getArg(mapping, 'name', null);
- if (name !== null) {
- name = this._names.at(name);
- }
- return {
- source: source,
- line: util.getArg(mapping, 'originalLine', null),
- column: util.getArg(mapping, 'originalColumn', null),
- name: name
- };
- }
- }
-
- return {
- source: null,
- line: null,
- column: null,
- name: null
- };
- };
-
- /**
- * Return true if we have the source content for every source in the source
- * map, false otherwise.
- */
- BasicSourceMapConsumer.prototype.hasContentsOfAllSources =
- function BasicSourceMapConsumer_hasContentsOfAllSources() {
- if (!this.sourcesContent) {
- return false;
- }
- return this.sourcesContent.length >= this._sources.size() &&
- !this.sourcesContent.some(function (sc) { return sc == null; });
- };
-
- /**
- * Returns the original source content. The only argument is the url of the
- * original source file. Returns null if no original source content is
- * available.
- */
- BasicSourceMapConsumer.prototype.sourceContentFor =
- function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {
- if (!this.sourcesContent) {
- return null;
- }
-
- if (this.sourceRoot != null) {
- aSource = util.relative(this.sourceRoot, aSource);
- }
-
- if (this._sources.has(aSource)) {
- return this.sourcesContent[this._sources.indexOf(aSource)];
- }
-
- var url;
- if (this.sourceRoot != null
- && (url = util.urlParse(this.sourceRoot))) {
- // XXX: file:// URIs and absolute paths lead to unexpected behavior for
- // many users. We can help them out when they expect file:// URIs to
- // behave like it would if they were running a local HTTP server. See
- // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.
- var fileUriAbsPath = aSource.replace(/^file:\/\//, "");
- if (url.scheme == "file"
- && this._sources.has(fileUriAbsPath)) {
- return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]
- }
-
- if ((!url.path || url.path == "/")
- && this._sources.has("/" + aSource)) {
- return this.sourcesContent[this._sources.indexOf("/" + aSource)];
- }
- }
-
- // This function is used recursively from
- // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we
- // don't want to throw if we can't find the source - we just want to
- // return null, so we provide a flag to exit gracefully.
- if (nullOnMissing) {
- return null;
- }
- else {
- throw new Error('"' + aSource + '" is not in the SourceMap.');
- }
- };
-
- /**
- * Returns the generated line and column information for the original source,
- * line, and column positions provided. The only argument is an object with
- * the following properties:
- *
- * - source: The filename of the original source.
- * - line: The line number in the original source.
- * - column: The column number in the original source.
- * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or
- * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the
- * closest element that is smaller than or greater than the one we are
- * searching for, respectively, if the exact element cannot be found.
- * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.
- *
- * and an object is returned with the following properties:
- *
- * - line: The line number in the generated source, or null.
- * - column: The column number in the generated source, or null.
- */
- BasicSourceMapConsumer.prototype.generatedPositionFor =
- function SourceMapConsumer_generatedPositionFor(aArgs) {
- var source = util.getArg(aArgs, 'source');
- if (this.sourceRoot != null) {
- source = util.relative(this.sourceRoot, source);
- }
- if (!this._sources.has(source)) {
- return {
- line: null,
- column: null,
- lastColumn: null
- };
- }
- source = this._sources.indexOf(source);
-
- var needle = {
- source: source,
- originalLine: util.getArg(aArgs, 'line'),
- originalColumn: util.getArg(aArgs, 'column')
- };
-
- var index = this._findMapping(
- needle,
- this._originalMappings,
- "originalLine",
- "originalColumn",
- util.compareByOriginalPositions,
- util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)
- );
-
- if (index >= 0) {
- var mapping = this._originalMappings[index];
-
- if (mapping.source === needle.source) {
- return {
- line: util.getArg(mapping, 'generatedLine', null),
- column: util.getArg(mapping, 'generatedColumn', null),
- lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)
- };
- }
- }
-
- return {
- line: null,
- column: null,
- lastColumn: null
- };
- };
-
- exports.BasicSourceMapConsumer = BasicSourceMapConsumer;
-
- /**
- * An IndexedSourceMapConsumer instance represents a parsed source map which
- * we can query for information. It differs from BasicSourceMapConsumer in
- * that it takes "indexed" source maps (i.e. ones with a "sections" field) as
- * input.
- *
- * The only parameter is a raw source map (either as a JSON string, or already
- * parsed to an object). According to the spec for indexed source maps, they
- * have the following attributes:
- *
- * - version: Which version of the source map spec this map is following.
- * - file: Optional. The generated file this source map is associated with.
- * - sections: A list of section definitions.
- *
- * Each value under the "sections" field has two fields:
- * - offset: The offset into the original specified at which this section
- * begins to apply, defined as an object with a "line" and "column"
- * field.
- * - map: A source map definition. This source map could also be indexed,
- * but doesn't have to be.
- *
- * Instead of the "map" field, it's also possible to have a "url" field
- * specifying a URL to retrieve a source map from, but that's currently
- * unsupported.
- *
- * Here's an example source map, taken from the source map spec[0], but
- * modified to omit a section which uses the "url" field.
- *
- * {
- * version : 3,
- * file: "app.js",
- * sections: [{
- * offset: {line:100, column:10},
- * map: {
- * version : 3,
- * file: "section.js",
- * sources: ["foo.js", "bar.js"],
- * names: ["src", "maps", "are", "fun"],
- * mappings: "AAAA,E;;ABCDE;"
- * }
- * }],
- * }
- *
- * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt
- */
- function IndexedSourceMapConsumer(aSourceMap) {
- var sourceMap = aSourceMap;
- if (typeof aSourceMap === 'string') {
- sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, ''));
- }
-
- var version = util.getArg(sourceMap, 'version');
- var sections = util.getArg(sourceMap, 'sections');
-
- if (version != this._version) {
- throw new Error('Unsupported version: ' + version);
- }
-
- this._sources = new ArraySet();
- this._names = new ArraySet();
-
- var lastOffset = {
- line: -1,
- column: 0
- };
- this._sections = sections.map(function (s) {
- if (s.url) {
- // The url field will require support for asynchronicity.
- // See https://github.com/mozilla/source-map/issues/16
- throw new Error('Support for url field in sections not implemented.');
- }
- var offset = util.getArg(s, 'offset');
- var offsetLine = util.getArg(offset, 'line');
- var offsetColumn = util.getArg(offset, 'column');
-
- if (offsetLine < lastOffset.line ||
- (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {
- throw new Error('Section offsets must be ordered and non-overlapping.');
- }
- lastOffset = offset;
-
- return {
- generatedOffset: {
- // The offset fields are 0-based, but we use 1-based indices when
- // encoding/decoding from VLQ.
- generatedLine: offsetLine + 1,
- generatedColumn: offsetColumn + 1
- },
- consumer: new SourceMapConsumer(util.getArg(s, 'map'))
- }
- });
- }
-
- IndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);
- IndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;
-
- /**
- * The version of the source mapping spec that we are consuming.
- */
- IndexedSourceMapConsumer.prototype._version = 3;
-
- /**
- * The list of original sources.
- */
- Object.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {
- get: function () {
- var sources = [];
- for (var i = 0; i < this._sections.length; i++) {
- for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {
- sources.push(this._sections[i].consumer.sources[j]);
- }
- }
- return sources;
- }
- });
-
- /**
- * Returns the original source, line, and column information for the generated
- * source's line and column positions provided. The only argument is an object
- * with the following properties:
- *
- * - line: The line number in the generated source.
- * - column: The column number in the generated source.
- *
- * and an object is returned with the following properties:
- *
- * - source: The original source file, or null.
- * - line: The line number in the original source, or null.
- * - column: The column number in the original source, or null.
- * - name: The original identifier, or null.
- */
- IndexedSourceMapConsumer.prototype.originalPositionFor =
- function IndexedSourceMapConsumer_originalPositionFor(aArgs) {
- var needle = {
- generatedLine: util.getArg(aArgs, 'line'),
- generatedColumn: util.getArg(aArgs, 'column')
- };
-
- // Find the section containing the generated position we're trying to map
- // to an original position.
- var sectionIndex = binarySearch.search(needle, this._sections,
- function(needle, section) {
- var cmp = needle.generatedLine - section.generatedOffset.generatedLine;
- if (cmp) {
- return cmp;
- }
-
- return (needle.generatedColumn -
- section.generatedOffset.generatedColumn);
- });
- var section = this._sections[sectionIndex];
-
- if (!section) {
- return {
- source: null,
- line: null,
- column: null,
- name: null
- };
- }
-
- return section.consumer.originalPositionFor({
- line: needle.generatedLine -
- (section.generatedOffset.generatedLine - 1),
- column: needle.generatedColumn -
- (section.generatedOffset.generatedLine === needle.generatedLine
- ? section.generatedOffset.generatedColumn - 1
- : 0),
- bias: aArgs.bias
- });
- };
-
- /**
- * Return true if we have the source content for every source in the source
- * map, false otherwise.
- */
- IndexedSourceMapConsumer.prototype.hasContentsOfAllSources =
- function IndexedSourceMapConsumer_hasContentsOfAllSources() {
- return this._sections.every(function (s) {
- return s.consumer.hasContentsOfAllSources();
- });
- };
-
- /**
- * Returns the original source content. The only argument is the url of the
- * original source file. Returns null if no original source content is
- * available.
- */
- IndexedSourceMapConsumer.prototype.sourceContentFor =
- function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {
- for (var i = 0; i < this._sections.length; i++) {
- var section = this._sections[i];
-
- var content = section.consumer.sourceContentFor(aSource, true);
- if (content) {
- return content;
- }
- }
- if (nullOnMissing) {
- return null;
- }
- else {
- throw new Error('"' + aSource + '" is not in the SourceMap.');
- }
- };
-
- /**
- * Returns the generated line and column information for the original source,
- * line, and column positions provided. The only argument is an object with
- * the following properties:
- *
- * - source: The filename of the original source.
- * - line: The line number in the original source.
- * - column: The column number in the original source.
- *
- * and an object is returned with the following properties:
- *
- * - line: The line number in the generated source, or null.
- * - column: The column number in the generated source, or null.
- */
- IndexedSourceMapConsumer.prototype.generatedPositionFor =
- function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {
- for (var i = 0; i < this._sections.length; i++) {
- var section = this._sections[i];
-
- // Only consider this section if the requested source is in the list of
- // sources of the consumer.
- if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) {
- continue;
- }
- var generatedPosition = section.consumer.generatedPositionFor(aArgs);
- if (generatedPosition) {
- var ret = {
- line: generatedPosition.line +
- (section.generatedOffset.generatedLine - 1),
- column: generatedPosition.column +
- (section.generatedOffset.generatedLine === generatedPosition.line
- ? section.generatedOffset.generatedColumn - 1
- : 0)
- };
- return ret;
- }
- }
-
- return {
- line: null,
- column: null
- };
- };
-
- /**
- * Parse the mappings in a string in to a data structure which we can easily
- * query (the ordered arrays in the `this.__generatedMappings` and
- * `this.__originalMappings` properties).
- */
- IndexedSourceMapConsumer.prototype._parseMappings =
- function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {
- this.__generatedMappings = [];
- this.__originalMappings = [];
- for (var i = 0; i < this._sections.length; i++) {
- var section = this._sections[i];
- var sectionMappings = section.consumer._generatedMappings;
- for (var j = 0; j < sectionMappings.length; j++) {
- var mapping = sectionMappings[j];
-
- var source = section.consumer._sources.at(mapping.source);
- if (section.consumer.sourceRoot !== null) {
- source = util.join(section.consumer.sourceRoot, source);
- }
- this._sources.add(source);
- source = this._sources.indexOf(source);
-
- var name = section.consumer._names.at(mapping.name);
- this._names.add(name);
- name = this._names.indexOf(name);
-
- // The mappings coming from the consumer for the section have
- // generated positions relative to the start of the section, so we
- // need to offset them to be relative to the start of the concatenated
- // generated file.
- var adjustedMapping = {
- source: source,
- generatedLine: mapping.generatedLine +
- (section.generatedOffset.generatedLine - 1),
- generatedColumn: mapping.generatedColumn +
- (section.generatedOffset.generatedLine === mapping.generatedLine
- ? section.generatedOffset.generatedColumn - 1
- : 0),
- originalLine: mapping.originalLine,
- originalColumn: mapping.originalColumn,
- name: name
- };
-
- this.__generatedMappings.push(adjustedMapping);
- if (typeof adjustedMapping.originalLine === 'number') {
- this.__originalMappings.push(adjustedMapping);
- }
- }
- }
-
- quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);
- quickSort(this.__originalMappings, util.compareByOriginalPositions);
- };
-
- exports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;
-
-
-/***/ }),
-/* 8 */
-/***/ (function(module, exports) {
-
- /* -*- Mode: js; js-indent-level: 2; -*- */
- /*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
- exports.GREATEST_LOWER_BOUND = 1;
- exports.LEAST_UPPER_BOUND = 2;
-
- /**
- * Recursive implementation of binary search.
- *
- * @param aLow Indices here and lower do not contain the needle.
- * @param aHigh Indices here and higher do not contain the needle.
- * @param aNeedle The element being searched for.
- * @param aHaystack The non-empty array being searched.
- * @param aCompare Function which takes two elements and returns -1, 0, or 1.
- * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or
- * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the
- * closest element that is smaller than or greater than the one we are
- * searching for, respectively, if the exact element cannot be found.
- */
- function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {
- // This function terminates when one of the following is true:
- //
- // 1. We find the exact element we are looking for.
- //
- // 2. We did not find the exact element, but we can return the index of
- // the next-closest element.
- //
- // 3. We did not find the exact element, and there is no next-closest
- // element than the one we are searching for, so we return -1.
- var mid = Math.floor((aHigh - aLow) / 2) + aLow;
- var cmp = aCompare(aNeedle, aHaystack[mid], true);
- if (cmp === 0) {
- // Found the element we are looking for.
- return mid;
- }
- else if (cmp > 0) {
- // Our needle is greater than aHaystack[mid].
- if (aHigh - mid > 1) {
- // The element is in the upper half.
- return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);
- }
-
- // The exact needle element was not found in this haystack. Determine if
- // we are in termination case (3) or (2) and return the appropriate thing.
- if (aBias == exports.LEAST_UPPER_BOUND) {
- return aHigh < aHaystack.length ? aHigh : -1;
- } else {
- return mid;
- }
- }
- else {
- // Our needle is less than aHaystack[mid].
- if (mid - aLow > 1) {
- // The element is in the lower half.
- return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);
- }
-
- // we are in termination case (3) or (2) and return the appropriate thing.
- if (aBias == exports.LEAST_UPPER_BOUND) {
- return mid;
- } else {
- return aLow < 0 ? -1 : aLow;
- }
- }
- }
-
- /**
- * This is an implementation of binary search which will always try and return
- * the index of the closest element if there is no exact hit. This is because
- * mappings between original and generated line/col pairs are single points,
- * and there is an implicit region between each of them, so a miss just means
- * that you aren't on the very start of a region.
- *
- * @param aNeedle The element you are looking for.
- * @param aHaystack The array that is being searched.
- * @param aCompare A function which takes the needle and an element in the
- * array and returns -1, 0, or 1 depending on whether the needle is less
- * than, equal to, or greater than the element, respectively.
- * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or
- * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the
- * closest element that is smaller than or greater than the one we are
- * searching for, respectively, if the exact element cannot be found.
- * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.
- */
- exports.search = function search(aNeedle, aHaystack, aCompare, aBias) {
- if (aHaystack.length === 0) {
- return -1;
- }
-
- var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,
- aCompare, aBias || exports.GREATEST_LOWER_BOUND);
- if (index < 0) {
- return -1;
- }
-
- // We have found either the exact element, or the next-closest element than
- // the one we are searching for. However, there may be more than one such
- // element. Make sure we always return the smallest of these.
- while (index - 1 >= 0) {
- if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {
- break;
- }
- --index;
- }
-
- return index;
- };
-
-
-/***/ }),
-/* 9 */
-/***/ (function(module, exports) {
-
- /* -*- Mode: js; js-indent-level: 2; -*- */
- /*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
- // It turns out that some (most?) JavaScript engines don't self-host
- // `Array.prototype.sort`. This makes sense because C++ will likely remain
- // faster than JS when doing raw CPU-intensive sorting. However, when using a
- // custom comparator function, calling back and forth between the VM's C++ and
- // JIT'd JS is rather slow *and* loses JIT type information, resulting in
- // worse generated code for the comparator function than would be optimal. In
- // fact, when sorting with a comparator, these costs outweigh the benefits of
- // sorting in C++. By using our own JS-implemented Quick Sort (below), we get
- // a ~3500ms mean speed-up in `bench/bench.html`.
-
- /**
- * Swap the elements indexed by `x` and `y` in the array `ary`.
- *
- * @param {Array} ary
- * The array.
- * @param {Number} x
- * The index of the first item.
- * @param {Number} y
- * The index of the second item.
- */
- function swap(ary, x, y) {
- var temp = ary[x];
- ary[x] = ary[y];
- ary[y] = temp;
- }
-
- /**
- * Returns a random integer within the range `low .. high` inclusive.
- *
- * @param {Number} low
- * The lower bound on the range.
- * @param {Number} high
- * The upper bound on the range.
- */
- function randomIntInRange(low, high) {
- return Math.round(low + (Math.random() * (high - low)));
- }
-
- /**
- * The Quick Sort algorithm.
- *
- * @param {Array} ary
- * An array to sort.
- * @param {function} comparator
- * Function to use to compare two items.
- * @param {Number} p
- * Start index of the array
- * @param {Number} r
- * End index of the array
- */
- function doQuickSort(ary, comparator, p, r) {
- // If our lower bound is less than our upper bound, we (1) partition the
- // array into two pieces and (2) recurse on each half. If it is not, this is
- // the empty array and our base case.
-
- if (p < r) {
- // (1) Partitioning.
- //
- // The partitioning chooses a pivot between `p` and `r` and moves all
- // elements that are less than or equal to the pivot to the before it, and
- // all the elements that are greater than it after it. The effect is that
- // once partition is done, the pivot is in the exact place it will be when
- // the array is put in sorted order, and it will not need to be moved
- // again. This runs in O(n) time.
-
- // Always choose a random pivot so that an input array which is reverse
- // sorted does not cause O(n^2) running time.
- var pivotIndex = randomIntInRange(p, r);
- var i = p - 1;
-
- swap(ary, pivotIndex, r);
- var pivot = ary[r];
-
- // Immediately after `j` is incremented in this loop, the following hold
- // true:
- //
- // * Every element in `ary[p .. i]` is less than or equal to the pivot.
- //
- // * Every element in `ary[i+1 .. j-1]` is greater than the pivot.
- for (var j = p; j < r; j++) {
- if (comparator(ary[j], pivot) <= 0) {
- i += 1;
- swap(ary, i, j);
- }
- }
-
- swap(ary, i + 1, j);
- var q = i + 1;
-
- // (2) Recurse on each half.
-
- doQuickSort(ary, comparator, p, q - 1);
- doQuickSort(ary, comparator, q + 1, r);
- }
- }
-
- /**
- * Sort the given array in-place with the given comparator function.
- *
- * @param {Array} ary
- * An array to sort.
- * @param {function} comparator
- * Function to use to compare two items.
- */
- exports.quickSort = function (ary, comparator) {
- doQuickSort(ary, comparator, 0, ary.length - 1);
- };
-
-
-/***/ }),
-/* 10 */
-/***/ (function(module, exports, __webpack_require__) {
-
- /* -*- Mode: js; js-indent-level: 2; -*- */
- /*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
- var SourceMapGenerator = __webpack_require__(1).SourceMapGenerator;
- var util = __webpack_require__(4);
-
- // Matches a Windows-style `\r\n` newline or a `\n` newline used by all other
- // operating systems these days (capturing the result).
- var REGEX_NEWLINE = /(\r?\n)/;
-
- // Newline character code for charCodeAt() comparisons
- var NEWLINE_CODE = 10;
-
- // Private symbol for identifying `SourceNode`s when multiple versions of
- // the source-map library are loaded. This MUST NOT CHANGE across
- // versions!
- var isSourceNode = "$$$isSourceNode$$$";
-
- /**
- * SourceNodes provide a way to abstract over interpolating/concatenating
- * snippets of generated JavaScript source code while maintaining the line and
- * column information associated with the original source code.
- *
- * @param aLine The original line number.
- * @param aColumn The original column number.
- * @param aSource The original source's filename.
- * @param aChunks Optional. An array of strings which are snippets of
- * generated JS, or other SourceNodes.
- * @param aName The original identifier.
- */
- function SourceNode(aLine, aColumn, aSource, aChunks, aName) {
- this.children = [];
- this.sourceContents = {};
- this.line = aLine == null ? null : aLine;
- this.column = aColumn == null ? null : aColumn;
- this.source = aSource == null ? null : aSource;
- this.name = aName == null ? null : aName;
- this[isSourceNode] = true;
- if (aChunks != null) this.add(aChunks);
- }
-
- /**
- * Creates a SourceNode from generated code and a SourceMapConsumer.
- *
- * @param aGeneratedCode The generated code
- * @param aSourceMapConsumer The SourceMap for the generated code
- * @param aRelativePath Optional. The path that relative sources in the
- * SourceMapConsumer should be relative to.
- */
- SourceNode.fromStringWithSourceMap =
- function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {
- // The SourceNode we want to fill with the generated code
- // and the SourceMap
- var node = new SourceNode();
-
- // All even indices of this array are one line of the generated code,
- // while all odd indices are the newlines between two adjacent lines
- // (since `REGEX_NEWLINE` captures its match).
- // Processed fragments are accessed by calling `shiftNextLine`.
- var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);
- var remainingLinesIndex = 0;
- var shiftNextLine = function() {
- var lineContents = getNextLine();
- // The last line of a file might not have a newline.
- var newLine = getNextLine() || "";
- return lineContents + newLine;
-
- function getNextLine() {
- return remainingLinesIndex < remainingLines.length ?
- remainingLines[remainingLinesIndex++] : undefined;
- }
- };
-
- // We need to remember the position of "remainingLines"
- var lastGeneratedLine = 1, lastGeneratedColumn = 0;
-
- // The generate SourceNodes we need a code range.
- // To extract it current and last mapping is used.
- // Here we store the last mapping.
- var lastMapping = null;
-
- aSourceMapConsumer.eachMapping(function (mapping) {
- if (lastMapping !== null) {
- // We add the code from "lastMapping" to "mapping":
- // First check if there is a new line in between.
- if (lastGeneratedLine < mapping.generatedLine) {
- // Associate first line with "lastMapping"
- addMappingWithCode(lastMapping, shiftNextLine());
- lastGeneratedLine++;
- lastGeneratedColumn = 0;
- // The remaining code is added without mapping
- } else {
- // There is no new line in between.
- // Associate the code between "lastGeneratedColumn" and
- // "mapping.generatedColumn" with "lastMapping"
- var nextLine = remainingLines[remainingLinesIndex];
- var code = nextLine.substr(0, mapping.generatedColumn -
- lastGeneratedColumn);
- remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -
- lastGeneratedColumn);
- lastGeneratedColumn = mapping.generatedColumn;
- addMappingWithCode(lastMapping, code);
- // No more remaining code, continue
- lastMapping = mapping;
- return;
- }
- }
- // We add the generated code until the first mapping
- // to the SourceNode without any mapping.
- // Each line is added as separate string.
- while (lastGeneratedLine < mapping.generatedLine) {
- node.add(shiftNextLine());
- lastGeneratedLine++;
- }
- if (lastGeneratedColumn < mapping.generatedColumn) {
- var nextLine = remainingLines[remainingLinesIndex];
- node.add(nextLine.substr(0, mapping.generatedColumn));
- remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);
- lastGeneratedColumn = mapping.generatedColumn;
- }
- lastMapping = mapping;
- }, this);
- // We have processed all mappings.
- if (remainingLinesIndex < remainingLines.length) {
- if (lastMapping) {
- // Associate the remaining code in the current line with "lastMapping"
- addMappingWithCode(lastMapping, shiftNextLine());
- }
- // and add the remaining lines without any mapping
- node.add(remainingLines.splice(remainingLinesIndex).join(""));
- }
-
- // Copy sourcesContent into SourceNode
- aSourceMapConsumer.sources.forEach(function (sourceFile) {
- var content = aSourceMapConsumer.sourceContentFor(sourceFile);
- if (content != null) {
- if (aRelativePath != null) {
- sourceFile = util.join(aRelativePath, sourceFile);
- }
- node.setSourceContent(sourceFile, content);
- }
- });
-
- return node;
-
- function addMappingWithCode(mapping, code) {
- if (mapping === null || mapping.source === undefined) {
- node.add(code);
- } else {
- var source = aRelativePath
- ? util.join(aRelativePath, mapping.source)
- : mapping.source;
- node.add(new SourceNode(mapping.originalLine,
- mapping.originalColumn,
- source,
- code,
- mapping.name));
- }
- }
- };
-
- /**
- * Add a chunk of generated JS to this source node.
- *
- * @param aChunk A string snippet of generated JS code, another instance of
- * SourceNode, or an array where each member is one of those things.
- */
- SourceNode.prototype.add = function SourceNode_add(aChunk) {
- if (Array.isArray(aChunk)) {
- aChunk.forEach(function (chunk) {
- this.add(chunk);
- }, this);
- }
- else if (aChunk[isSourceNode] || typeof aChunk === "string") {
- if (aChunk) {
- this.children.push(aChunk);
- }
- }
- else {
- throw new TypeError(
- "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk
- );
- }
- return this;
- };
-
- /**
- * Add a chunk of generated JS to the beginning of this source node.
- *
- * @param aChunk A string snippet of generated JS code, another instance of
- * SourceNode, or an array where each member is one of those things.
- */
- SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {
- if (Array.isArray(aChunk)) {
- for (var i = aChunk.length-1; i >= 0; i--) {
- this.prepend(aChunk[i]);
- }
- }
- else if (aChunk[isSourceNode] || typeof aChunk === "string") {
- this.children.unshift(aChunk);
- }
- else {
- throw new TypeError(
- "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk
- );
- }
- return this;
- };
-
- /**
- * Walk over the tree of JS snippets in this node and its children. The
- * walking function is called once for each snippet of JS and is passed that
- * snippet and the its original associated source's line/column location.
- *
- * @param aFn The traversal function.
- */
- SourceNode.prototype.walk = function SourceNode_walk(aFn) {
- var chunk;
- for (var i = 0, len = this.children.length; i < len; i++) {
- chunk = this.children[i];
- if (chunk[isSourceNode]) {
- chunk.walk(aFn);
- }
- else {
- if (chunk !== '') {
- aFn(chunk, { source: this.source,
- line: this.line,
- column: this.column,
- name: this.name });
- }
- }
- }
- };
-
- /**
- * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between
- * each of `this.children`.
- *
- * @param aSep The separator.
- */
- SourceNode.prototype.join = function SourceNode_join(aSep) {
- var newChildren;
- var i;
- var len = this.children.length;
- if (len > 0) {
- newChildren = [];
- for (i = 0; i < len-1; i++) {
- newChildren.push(this.children[i]);
- newChildren.push(aSep);
- }
- newChildren.push(this.children[i]);
- this.children = newChildren;
- }
- return this;
- };
-
- /**
- * Call String.prototype.replace on the very right-most source snippet. Useful
- * for trimming whitespace from the end of a source node, etc.
- *
- * @param aPattern The pattern to replace.
- * @param aReplacement The thing to replace the pattern with.
- */
- SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {
- var lastChild = this.children[this.children.length - 1];
- if (lastChild[isSourceNode]) {
- lastChild.replaceRight(aPattern, aReplacement);
- }
- else if (typeof lastChild === 'string') {
- this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);
- }
- else {
- this.children.push(''.replace(aPattern, aReplacement));
- }
- return this;
- };
-
- /**
- * Set the source content for a source file. This will be added to the SourceMapGenerator
- * in the sourcesContent field.
- *
- * @param aSourceFile The filename of the source file
- * @param aSourceContent The content of the source file
- */
- SourceNode.prototype.setSourceContent =
- function SourceNode_setSourceContent(aSourceFile, aSourceContent) {
- this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;
- };
-
- /**
- * Walk over the tree of SourceNodes. The walking function is called for each
- * source file content and is passed the filename and source content.
- *
- * @param aFn The traversal function.
- */
- SourceNode.prototype.walkSourceContents =
- function SourceNode_walkSourceContents(aFn) {
- for (var i = 0, len = this.children.length; i < len; i++) {
- if (this.children[i][isSourceNode]) {
- this.children[i].walkSourceContents(aFn);
- }
- }
-
- var sources = Object.keys(this.sourceContents);
- for (var i = 0, len = sources.length; i < len; i++) {
- aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);
- }
- };
-
- /**
- * Return the string representation of this source node. Walks over the tree
- * and concatenates all the various snippets together to one string.
- */
- SourceNode.prototype.toString = function SourceNode_toString() {
- var str = "";
- this.walk(function (chunk) {
- str += chunk;
- });
- return str;
- };
-
- /**
- * Returns the string representation of this source node along with a source
- * map.
- */
- SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {
- var generated = {
- code: "",
- line: 1,
- column: 0
- };
- var map = new SourceMapGenerator(aArgs);
- var sourceMappingActive = false;
- var lastOriginalSource = null;
- var lastOriginalLine = null;
- var lastOriginalColumn = null;
- var lastOriginalName = null;
- this.walk(function (chunk, original) {
- generated.code += chunk;
- if (original.source !== null
- && original.line !== null
- && original.column !== null) {
- if(lastOriginalSource !== original.source
- || lastOriginalLine !== original.line
- || lastOriginalColumn !== original.column
- || lastOriginalName !== original.name) {
- map.addMapping({
- source: original.source,
- original: {
- line: original.line,
- column: original.column
- },
- generated: {
- line: generated.line,
- column: generated.column
- },
- name: original.name
- });
- }
- lastOriginalSource = original.source;
- lastOriginalLine = original.line;
- lastOriginalColumn = original.column;
- lastOriginalName = original.name;
- sourceMappingActive = true;
- } else if (sourceMappingActive) {
- map.addMapping({
- generated: {
- line: generated.line,
- column: generated.column
- }
- });
- lastOriginalSource = null;
- sourceMappingActive = false;
- }
- for (var idx = 0, length = chunk.length; idx < length; idx++) {
- if (chunk.charCodeAt(idx) === NEWLINE_CODE) {
- generated.line++;
- generated.column = 0;
- // Mappings end at eol
- if (idx + 1 === length) {
- lastOriginalSource = null;
- sourceMappingActive = false;
- } else if (sourceMappingActive) {
- map.addMapping({
- source: original.source,
- original: {
- line: original.line,
- column: original.column
- },
- generated: {
- line: generated.line,
- column: generated.column
- },
- name: original.name
- });
- }
- } else {
- generated.column++;
- }
- }
- });
- this.walkSourceContents(function (sourceFile, sourceContent) {
- map.setSourceContent(sourceFile, sourceContent);
- });
-
- return { code: generated.code, map: map };
- };
-
- exports.SourceNode = SourceNode;
-
-
-/***/ })
-/******/ ])
-});
-;
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIiwid2VicGFjazovLy93ZWJwYWNrL2Jvb3RzdHJhcCBlNDczOGZjNzJhN2IyMzAzOTg4OSIsIndlYnBhY2s6Ly8vLi9zb3VyY2UtbWFwLmpzIiwid2VicGFjazovLy8uL2xpYi9zb3VyY2UtbWFwLWdlbmVyYXRvci5qcyIsIndlYnBhY2s6Ly8vLi9saWIvYmFzZTY0LXZscS5qcyIsIndlYnBhY2s6Ly8vLi9saWIvYmFzZTY0LmpzIiwid2VicGFjazovLy8uL2xpYi91dGlsLmpzIiwid2VicGFjazovLy8uL2xpYi9hcnJheS1zZXQuanMiLCJ3ZWJwYWNrOi8vLy4vbGliL21hcHBpbmctbGlzdC5qcyIsIndlYnBhY2s6Ly8vLi9saWIvc291cmNlLW1hcC1jb25zdW1lci5qcyIsIndlYnBhY2s6Ly8vLi9saWIvYmluYXJ5LXNlYXJjaC5qcyIsIndlYnBhY2s6Ly8vLi9saWIvcXVpY2stc29ydC5qcyIsIndlYnBhY2s6Ly8vLi9saWIvc291cmNlLW5vZGUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELE87QUNWQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSx1QkFBZTtBQUNmO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOzs7Ozs7O0FDdENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7QUNQQSxpQkFBZ0Isb0JBQW9CO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxNQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsTUFBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFPO0FBQ1A7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsMkNBQTBDLFNBQVM7QUFDbkQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxxQkFBb0I7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOzs7Ozs7O0FDL1pBLGlCQUFnQixvQkFBb0I7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDREQUEyRDtBQUMzRCxxQkFBb0I7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFHOztBQUVIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBRzs7QUFFSDtBQUNBO0FBQ0E7Ozs7Ozs7QUMzSUEsaUJBQWdCLG9CQUFvQjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWdCO0FBQ2hCLGlCQUFnQjs7QUFFaEIsb0JBQW1CO0FBQ25CLHFCQUFvQjs7QUFFcEIsaUJBQWdCO0FBQ2hCLGlCQUFnQjs7QUFFaEIsaUJBQWdCO0FBQ2hCLGtCQUFpQjs7QUFFakI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7Ozs7Ozs7QUNsRUEsaUJBQWdCLG9CQUFvQjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBRztBQUNIO0FBQ0EsSUFBRztBQUNIO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsK0NBQThDLFFBQVE7QUFDdEQ7QUFDQTtBQUNBO0FBQ0EsTUFBSztBQUNMO0FBQ0EsTUFBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxFQUFDOztBQUVEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLDRCQUEyQixRQUFRO0FBQ25DO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7Ozs7Ozs7QUNoYUEsaUJBQWdCLG9CQUFvQjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUNBQXNDLFNBQVM7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBRztBQUNIO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7Ozs7OztBQ3hIQSxpQkFBZ0Isb0JBQW9CO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWdCO0FBQ2hCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7Ozs7OztBQzlFQSxpQkFBZ0Isb0JBQW9CO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSx1REFBc0Q7QUFDdEQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxFQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsRUFBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQSxvQkFBbUI7QUFDbkI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVc7O0FBRVg7QUFDQTtBQUNBLFFBQU87QUFDUDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBVzs7QUFFWDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTJCLE1BQU07QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1REFBc0Q7QUFDdEQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLHVEQUFzRCxZQUFZO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQUs7QUFDTDtBQUNBLEVBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0Esb0NBQW1DO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBeUIsY0FBYztBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXVCLHdDQUF3QztBQUMvRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0RBQStDLG1CQUFtQixFQUFFO0FBQ3BFOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFpQixvQkFBb0I7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE2QixNQUFNO0FBQ25DO0FBQ0EsUUFBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdURBQXNEO0FBQ3REOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFPO0FBQ1A7QUFDQTtBQUNBLElBQUc7QUFDSDs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFtQiwyQkFBMkI7QUFDOUMsc0JBQXFCLCtDQUErQztBQUNwRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBTztBQUNQOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW1CLDJCQUEyQjtBQUM5Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBbUIsMkJBQTJCO0FBQzlDOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFtQiwyQkFBMkI7QUFDOUM7QUFDQTtBQUNBLHNCQUFxQiw0QkFBNEI7QUFDakQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOzs7Ozs7O0FDempDQSxpQkFBZ0Isb0JBQW9CO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7Ozs7OztBQzlHQSxpQkFBZ0Isb0JBQW9CO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFlBQVcsTUFBTTtBQUNqQjtBQUNBLFlBQVcsT0FBTztBQUNsQjtBQUNBLFlBQVcsT0FBTztBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxZQUFXLE9BQU87QUFDbEI7QUFDQSxZQUFXLE9BQU87QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxZQUFXLE1BQU07QUFDakI7QUFDQSxZQUFXLFNBQVM7QUFDcEI7QUFDQSxZQUFXLE9BQU87QUFDbEI7QUFDQSxZQUFXLE9BQU87QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFtQixPQUFPO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxZQUFXLE1BQU07QUFDakI7QUFDQSxZQUFXLFNBQVM7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7OztBQ2pIQSxpQkFBZ0Isb0JBQW9CO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFLOztBQUVMOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBaUMsUUFBUTtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBNkMsU0FBUztBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBb0I7QUFDcEI7QUFDQTtBQUNBLHVDQUFzQztBQUN0QztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZSxXQUFXO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnREFBK0MsU0FBUztBQUN4RDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDBDQUF5QyxTQUFTO0FBQ2xEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBRztBQUNIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBVztBQUNYO0FBQ0E7QUFDQTtBQUNBLFlBQVc7QUFDWDtBQUNBLFVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSw2Q0FBNEMsY0FBYztBQUMxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGNBQWE7QUFDYjtBQUNBLFlBQVc7QUFDWDtBQUNBLFFBQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSxJQUFHO0FBQ0g7QUFDQTtBQUNBLElBQUc7O0FBRUgsV0FBVTtBQUNWOztBQUVBIiwiZmlsZSI6InNvdXJjZS1tYXAuZGVidWcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCk7XG5cdGVsc2UgaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKVxuXHRcdGRlZmluZShbXSwgZmFjdG9yeSk7XG5cdGVsc2UgaWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnKVxuXHRcdGV4cG9ydHNbXCJzb3VyY2VNYXBcIl0gPSBmYWN0b3J5KCk7XG5cdGVsc2Vcblx0XHRyb290W1wic291cmNlTWFwXCJdID0gZmFjdG9yeSgpO1xufSkodGhpcywgZnVuY3Rpb24oKSB7XG5yZXR1cm4gXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHdlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKVxuIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuXG4gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbiBcdFx0XHRleHBvcnRzOiB7fSxcbiBcdFx0XHRpZDogbW9kdWxlSWQsXG4gXHRcdFx0bG9hZGVkOiBmYWxzZVxuIFx0XHR9O1xuXG4gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sb2FkZWQgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIlwiO1xuXG4gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbiBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKDApO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHdlYnBhY2svYm9vdHN0cmFwIGU0NzM4ZmM3MmE3YjIzMDM5ODg5IiwiLypcbiAqIENvcHlyaWdodCAyMDA5LTIwMTEgTW96aWxsYSBGb3VuZGF0aW9uIGFuZCBjb250cmlidXRvcnNcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBOZXcgQlNEIGxpY2Vuc2UuIFNlZSBMSUNFTlNFLnR4dCBvcjpcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2VcbiAqL1xuZXhwb3J0cy5Tb3VyY2VNYXBHZW5lcmF0b3IgPSByZXF1aXJlKCcuL2xpYi9zb3VyY2UtbWFwLWdlbmVyYXRvcicpLlNvdXJjZU1hcEdlbmVyYXRvcjtcbmV4cG9ydHMuU291cmNlTWFwQ29uc3VtZXIgPSByZXF1aXJlKCcuL2xpYi9zb3VyY2UtbWFwLWNvbnN1bWVyJykuU291cmNlTWFwQ29uc3VtZXI7XG5leHBvcnRzLlNvdXJjZU5vZGUgPSByZXF1aXJlKCcuL2xpYi9zb3VyY2Utbm9kZScpLlNvdXJjZU5vZGU7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3NvdXJjZS1tYXAuanNcbi8vIG1vZHVsZSBpZCA9IDBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiLyogLSotIE1vZGU6IGpzOyBqcy1pbmRlbnQtbGV2ZWw6IDI7IC0qLSAqL1xuLypcbiAqIENvcHlyaWdodCAyMDExIE1vemlsbGEgRm91bmRhdGlvbiBhbmQgY29udHJpYnV0b3JzXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTmV3IEJTRCBsaWNlbnNlLiBTZWUgTElDRU5TRSBvcjpcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2VcbiAqL1xuXG52YXIgYmFzZTY0VkxRID0gcmVxdWlyZSgnLi9iYXNlNjQtdmxxJyk7XG52YXIgdXRpbCA9IHJlcXVpcmUoJy4vdXRpbCcpO1xudmFyIEFycmF5U2V0ID0gcmVxdWlyZSgnLi9hcnJheS1zZXQnKS5BcnJheVNldDtcbnZhciBNYXBwaW5nTGlzdCA9IHJlcXVpcmUoJy4vbWFwcGluZy1saXN0JykuTWFwcGluZ0xpc3Q7XG5cbi8qKlxuICogQW4gaW5zdGFuY2Ugb2YgdGhlIFNvdXJjZU1hcEdlbmVyYXRvciByZXByZXNlbnRzIGEgc291cmNlIG1hcCB3aGljaCBpc1xuICogYmVpbmcgYnVpbHQgaW5jcmVtZW50YWxseS4gWW91IG1heSBwYXNzIGFuIG9iamVjdCB3aXRoIHRoZSBmb2xsb3dpbmdcbiAqIHByb3BlcnRpZXM6XG4gKlxuICogICAtIGZpbGU6IFRoZSBmaWxlbmFtZSBvZiB0aGUgZ2VuZXJhdGVkIHNvdXJjZS5cbiAqICAgLSBzb3VyY2VSb290OiBBIHJvb3QgZm9yIGFsbCByZWxhdGl2ZSBVUkxzIGluIHRoaXMgc291cmNlIG1hcC5cbiAqL1xuZnVuY3Rpb24gU291cmNlTWFwR2VuZXJhdG9yKGFBcmdzKSB7XG4gIGlmICghYUFyZ3MpIHtcbiAgICBhQXJncyA9IHt9O1xuICB9XG4gIHRoaXMuX2ZpbGUgPSB1dGlsLmdldEFyZyhhQXJncywgJ2ZpbGUnLCBudWxsKTtcbiAgdGhpcy5fc291cmNlUm9vdCA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAnc291cmNlUm9vdCcsIG51bGwpO1xuICB0aGlzLl9za2lwVmFsaWRhdGlvbiA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAnc2tpcFZhbGlkYXRpb24nLCBmYWxzZSk7XG4gIHRoaXMuX3NvdXJjZXMgPSBuZXcgQXJyYXlTZXQoKTtcbiAgdGhpcy5fbmFtZXMgPSBuZXcgQXJyYXlTZXQoKTtcbiAgdGhpcy5fbWFwcGluZ3MgPSBuZXcgTWFwcGluZ0xpc3QoKTtcbiAgdGhpcy5fc291cmNlc0NvbnRlbnRzID0gbnVsbDtcbn1cblxuU291cmNlTWFwR2VuZXJhdG9yLnByb3RvdHlwZS5fdmVyc2lvbiA9IDM7XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBTb3VyY2VNYXBHZW5lcmF0b3IgYmFzZWQgb24gYSBTb3VyY2VNYXBDb25zdW1lclxuICpcbiAqIEBwYXJhbSBhU291cmNlTWFwQ29uc3VtZXIgVGhlIFNvdXJjZU1hcC5cbiAqL1xuU291cmNlTWFwR2VuZXJhdG9yLmZyb21Tb3VyY2VNYXAgPVxuICBmdW5jdGlvbiBTb3VyY2VNYXBHZW5lcmF0b3JfZnJvbVNvdXJjZU1hcChhU291cmNlTWFwQ29uc3VtZXIpIHtcbiAgICB2YXIgc291cmNlUm9vdCA9IGFTb3VyY2VNYXBDb25zdW1lci5zb3VyY2VSb290O1xuICAgIHZhciBnZW5lcmF0b3IgPSBuZXcgU291cmNlTWFwR2VuZXJhdG9yKHtcbiAgICAgIGZpbGU6IGFTb3VyY2VNYXBDb25zdW1lci5maWxlLFxuICAgICAgc291cmNlUm9vdDogc291cmNlUm9vdFxuICAgIH0pO1xuICAgIGFTb3VyY2VNYXBDb25zdW1lci5lYWNoTWFwcGluZyhmdW5jdGlvbiAobWFwcGluZykge1xuICAgICAgdmFyIG5ld01hcHBpbmcgPSB7XG4gICAgICAgIGdlbmVyYXRlZDoge1xuICAgICAgICAgIGxpbmU6IG1hcHBpbmcuZ2VuZXJhdGVkTGluZSxcbiAgICAgICAgICBjb2x1bW46IG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uXG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGlmIChtYXBwaW5nLnNvdXJjZSAhPSBudWxsKSB7XG4gICAgICAgIG5ld01hcHBpbmcuc291cmNlID0gbWFwcGluZy5zb3VyY2U7XG4gICAgICAgIGlmIChzb3VyY2VSb290ICE9IG51bGwpIHtcbiAgICAgICAgICBuZXdNYXBwaW5nLnNvdXJjZSA9IHV0aWwucmVsYXRpdmUoc291cmNlUm9vdCwgbmV3TWFwcGluZy5zb3VyY2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgbmV3TWFwcGluZy5vcmlnaW5hbCA9IHtcbiAgICAgICAgICBsaW5lOiBtYXBwaW5nLm9yaWdpbmFsTGluZSxcbiAgICAgICAgICBjb2x1bW46IG1hcHBpbmcub3JpZ2luYWxDb2x1bW5cbiAgICAgICAgfTtcblxuICAgICAgICBpZiAobWFwcGluZy5uYW1lICE9IG51bGwpIHtcbiAgICAgICAgICBuZXdNYXBwaW5nLm5hbWUgPSBtYXBwaW5nLm5hbWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZ2VuZXJhdG9yLmFkZE1hcHBpbmcobmV3TWFwcGluZyk7XG4gICAgfSk7XG4gICAgYVNvdXJjZU1hcENvbnN1bWVyLnNvdXJjZXMuZm9yRWFjaChmdW5jdGlvbiAoc291cmNlRmlsZSkge1xuICAgICAgdmFyIGNvbnRlbnQgPSBhU291cmNlTWFwQ29uc3VtZXIuc291cmNlQ29udGVudEZvcihzb3VyY2VGaWxlKTtcbiAgICAgIGlmIChjb250ZW50ICE9IG51bGwpIHtcbiAgICAgICAgZ2VuZXJhdG9yLnNldFNvdXJjZUNvbnRlbnQoc291cmNlRmlsZSwgY29udGVudCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGdlbmVyYXRvcjtcbiAgfTtcblxuLyoqXG4gKiBBZGQgYSBzaW5nbGUgbWFwcGluZyBmcm9tIG9yaWdpbmFsIHNvdXJjZSBsaW5lIGFuZCBjb2x1bW4gdG8gdGhlIGdlbmVyYXRlZFxuICogc291cmNlJ3MgbGluZSBhbmQgY29sdW1uIGZvciB0aGlzIHNvdXJjZSBtYXAgYmVpbmcgY3JlYXRlZC4gVGhlIG1hcHBpbmdcbiAqIG9iamVjdCBzaG91bGQgaGF2ZSB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gKlxuICogICAtIGdlbmVyYXRlZDogQW4gb2JqZWN0IHdpdGggdGhlIGdlbmVyYXRlZCBsaW5lIGFuZCBjb2x1bW4gcG9zaXRpb25zLlxuICogICAtIG9yaWdpbmFsOiBBbiBvYmplY3Qgd2l0aCB0aGUgb3JpZ2luYWwgbGluZSBhbmQgY29sdW1uIHBvc2l0aW9ucy5cbiAqICAgLSBzb3VyY2U6IFRoZSBvcmlnaW5hbCBzb3VyY2UgZmlsZSAocmVsYXRpdmUgdG8gdGhlIHNvdXJjZVJvb3QpLlxuICogICAtIG5hbWU6IEFuIG9wdGlvbmFsIG9yaWdpbmFsIHRva2VuIG5hbWUgZm9yIHRoaXMgbWFwcGluZy5cbiAqL1xuU291cmNlTWFwR2VuZXJhdG9yLnByb3RvdHlwZS5hZGRNYXBwaW5nID1cbiAgZnVuY3Rpb24gU291cmNlTWFwR2VuZXJhdG9yX2FkZE1hcHBpbmcoYUFyZ3MpIHtcbiAgICB2YXIgZ2VuZXJhdGVkID0gdXRpbC5nZXRBcmcoYUFyZ3MsICdnZW5lcmF0ZWQnKTtcbiAgICB2YXIgb3JpZ2luYWwgPSB1dGlsLmdldEFyZyhhQXJncywgJ29yaWdpbmFsJywgbnVsbCk7XG4gICAgdmFyIHNvdXJjZSA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAnc291cmNlJywgbnVsbCk7XG4gICAgdmFyIG5hbWUgPSB1dGlsLmdldEFyZyhhQXJncywgJ25hbWUnLCBudWxsKTtcblxuICAgIGlmICghdGhpcy5fc2tpcFZhbGlkYXRpb24pIHtcbiAgICAgIHRoaXMuX3ZhbGlkYXRlTWFwcGluZyhnZW5lcmF0ZWQsIG9yaWdpbmFsLCBzb3VyY2UsIG5hbWUpO1xuICAgIH1cblxuICAgIGlmIChzb3VyY2UgIT0gbnVsbCkge1xuICAgICAgc291cmNlID0gU3RyaW5nKHNvdXJjZSk7XG4gICAgICBpZiAoIXRoaXMuX3NvdXJjZXMuaGFzKHNvdXJjZSkpIHtcbiAgICAgICAgdGhpcy5fc291cmNlcy5hZGQoc291cmNlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobmFtZSAhPSBudWxsKSB7XG4gICAgICBuYW1lID0gU3RyaW5nKG5hbWUpO1xuICAgICAgaWYgKCF0aGlzLl9uYW1lcy5oYXMobmFtZSkpIHtcbiAgICAgICAgdGhpcy5fbmFtZXMuYWRkKG5hbWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuX21hcHBpbmdzLmFkZCh7XG4gICAgICBnZW5lcmF0ZWRMaW5lOiBnZW5lcmF0ZWQubGluZSxcbiAgICAgIGdlbmVyYXRlZENvbHVtbjogZ2VuZXJhdGVkLmNvbHVtbixcbiAgICAgIG9yaWdpbmFsTGluZTogb3JpZ2luYWwgIT0gbnVsbCAmJiBvcmlnaW5hbC5saW5lLFxuICAgICAgb3JpZ2luYWxDb2x1bW46IG9yaWdpbmFsICE9IG51bGwgJiYgb3JpZ2luYWwuY29sdW1uLFxuICAgICAgc291cmNlOiBzb3VyY2UsXG4gICAgICBuYW1lOiBuYW1lXG4gICAgfSk7XG4gIH07XG5cbi8qKlxuICogU2V0IHRoZSBzb3VyY2UgY29udGVudCBmb3IgYSBzb3VyY2UgZmlsZS5cbiAqL1xuU291cmNlTWFwR2VuZXJhdG9yLnByb3RvdHlwZS5zZXRTb3VyY2VDb250ZW50ID1cbiAgZnVuY3Rpb24gU291cmNlTWFwR2VuZXJhdG9yX3NldFNvdXJjZUNvbnRlbnQoYVNvdXJjZUZpbGUsIGFTb3VyY2VDb250ZW50KSB7XG4gICAgdmFyIHNvdXJjZSA9IGFTb3VyY2VGaWxlO1xuICAgIGlmICh0aGlzLl9zb3VyY2VSb290ICE9IG51bGwpIHtcbiAgICAgIHNvdXJjZSA9IHV0aWwucmVsYXRpdmUodGhpcy5fc291cmNlUm9vdCwgc291cmNlKTtcbiAgICB9XG5cbiAgICBpZiAoYVNvdXJjZUNvbnRlbnQgIT0gbnVsbCkge1xuICAgICAgLy8gQWRkIHRoZSBzb3VyY2UgY29udGVudCB0byB0aGUgX3NvdXJjZXNDb250ZW50cyBtYXAuXG4gICAgICAvLyBDcmVhdGUgYSBuZXcgX3NvdXJjZXNDb250ZW50cyBtYXAgaWYgdGhlIHByb3BlcnR5IGlzIG51bGwuXG4gICAgICBpZiAoIXRoaXMuX3NvdXJjZXNDb250ZW50cykge1xuICAgICAgICB0aGlzLl9zb3VyY2VzQ29udGVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgfVxuICAgICAgdGhpcy5fc291cmNlc0NvbnRlbnRzW3V0aWwudG9TZXRTdHJpbmcoc291cmNlKV0gPSBhU291cmNlQ29udGVudDtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX3NvdXJjZXNDb250ZW50cykge1xuICAgICAgLy8gUmVtb3ZlIHRoZSBzb3VyY2UgZmlsZSBmcm9tIHRoZSBfc291cmNlc0NvbnRlbnRzIG1hcC5cbiAgICAgIC8vIElmIHRoZSBfc291cmNlc0NvbnRlbnRzIG1hcCBpcyBlbXB0eSwgc2V0IHRoZSBwcm9wZXJ0eSB0byBudWxsLlxuICAgICAgZGVsZXRlIHRoaXMuX3NvdXJjZXNDb250ZW50c1t1dGlsLnRvU2V0U3RyaW5nKHNvdXJjZSldO1xuICAgICAgaWYgKE9iamVjdC5rZXlzKHRoaXMuX3NvdXJjZXNDb250ZW50cykubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRoaXMuX3NvdXJjZXNDb250ZW50cyA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4vKipcbiAqIEFwcGxpZXMgdGhlIG1hcHBpbmdzIG9mIGEgc3ViLXNvdXJjZS1tYXAgZm9yIGEgc3BlY2lmaWMgc291cmNlIGZpbGUgdG8gdGhlXG4gKiBzb3VyY2UgbWFwIGJlaW5nIGdlbmVyYXRlZC4gRWFjaCBtYXBwaW5nIHRvIHRoZSBzdXBwbGllZCBzb3VyY2UgZmlsZSBpc1xuICogcmV3cml0dGVuIHVzaW5nIHRoZSBzdXBwbGllZCBzb3VyY2UgbWFwLiBOb3RlOiBUaGUgcmVzb2x1dGlvbiBmb3IgdGhlXG4gKiByZXN1bHRpbmcgbWFwcGluZ3MgaXMgdGhlIG1pbmltaXVtIG9mIHRoaXMgbWFwIGFuZCB0aGUgc3VwcGxpZWQgbWFwLlxuICpcbiAqIEBwYXJhbSBhU291cmNlTWFwQ29uc3VtZXIgVGhlIHNvdXJjZSBtYXAgdG8gYmUgYXBwbGllZC5cbiAqIEBwYXJhbSBhU291cmNlRmlsZSBPcHRpb25hbC4gVGhlIGZpbGVuYW1lIG9mIHRoZSBzb3VyY2UgZmlsZS5cbiAqICAgICAgICBJZiBvbWl0dGVkLCBTb3VyY2VNYXBDb25zdW1lcidzIGZpbGUgcHJvcGVydHkgd2lsbCBiZSB1c2VkLlxuICogQHBhcmFtIGFTb3VyY2VNYXBQYXRoIE9wdGlvbmFsLiBUaGUgZGlybmFtZSBvZiB0aGUgcGF0aCB0byB0aGUgc291cmNlIG1hcFxuICogICAgICAgIHRvIGJlIGFwcGxpZWQuIElmIHJlbGF0aXZlLCBpdCBpcyByZWxhdGl2ZSB0byB0aGUgU291cmNlTWFwQ29uc3VtZXIuXG4gKiAgICAgICAgVGhpcyBwYXJhbWV0ZXIgaXMgbmVlZGVkIHdoZW4gdGhlIHR3byBzb3VyY2UgbWFwcyBhcmVuJ3QgaW4gdGhlIHNhbWVcbiAqICAgICAgICBkaXJlY3RvcnksIGFuZCB0aGUgc291cmNlIG1hcCB0byBiZSBhcHBsaWVkIGNvbnRhaW5zIHJlbGF0aXZlIHNvdXJjZVxuICogICAgICAgIHBhdGhzLiBJZiBzbywgdGhvc2UgcmVsYXRpdmUgc291cmNlIHBhdGhzIG5lZWQgdG8gYmUgcmV3cml0dGVuXG4gKiAgICAgICAgcmVsYXRpdmUgdG8gdGhlIFNvdXJjZU1hcEdlbmVyYXRvci5cbiAqL1xuU291cmNlTWFwR2VuZXJhdG9yLnByb3RvdHlwZS5hcHBseVNvdXJjZU1hcCA9XG4gIGZ1bmN0aW9uIFNvdXJjZU1hcEdlbmVyYXRvcl9hcHBseVNvdXJjZU1hcChhU291cmNlTWFwQ29uc3VtZXIsIGFTb3VyY2VGaWxlLCBhU291cmNlTWFwUGF0aCkge1xuICAgIHZhciBzb3VyY2VGaWxlID0gYVNvdXJjZUZpbGU7XG4gICAgLy8gSWYgYVNvdXJjZUZpbGUgaXMgb21pdHRlZCwgd2Ugd2lsbCB1c2UgdGhlIGZpbGUgcHJvcGVydHkgb2YgdGhlIFNvdXJjZU1hcFxuICAgIGlmIChhU291cmNlRmlsZSA9PSBudWxsKSB7XG4gICAgICBpZiAoYVNvdXJjZU1hcENvbnN1bWVyLmZpbGUgPT0gbnVsbCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgJ1NvdXJjZU1hcEdlbmVyYXRvci5wcm90b3R5cGUuYXBwbHlTb3VyY2VNYXAgcmVxdWlyZXMgZWl0aGVyIGFuIGV4cGxpY2l0IHNvdXJjZSBmaWxlLCAnICtcbiAgICAgICAgICAnb3IgdGhlIHNvdXJjZSBtYXBcXCdzIFwiZmlsZVwiIHByb3BlcnR5LiBCb3RoIHdlcmUgb21pdHRlZC4nXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBzb3VyY2VGaWxlID0gYVNvdXJjZU1hcENvbnN1bWVyLmZpbGU7XG4gICAgfVxuICAgIHZhciBzb3VyY2VSb290ID0gdGhpcy5fc291cmNlUm9vdDtcbiAgICAvLyBNYWtlIFwic291cmNlRmlsZVwiIHJlbGF0aXZlIGlmIGFuIGFic29sdXRlIFVybCBpcyBwYXNzZWQuXG4gICAgaWYgKHNvdXJjZVJvb3QgIT0gbnVsbCkge1xuICAgICAgc291cmNlRmlsZSA9IHV0aWwucmVsYXRpdmUoc291cmNlUm9vdCwgc291cmNlRmlsZSk7XG4gICAgfVxuICAgIC8vIEFwcGx5aW5nIHRoZSBTb3VyY2VNYXAgY2FuIGFkZCBhbmQgcmVtb3ZlIGl0ZW1zIGZyb20gdGhlIHNvdXJjZXMgYW5kXG4gICAgLy8gdGhlIG5hbWVzIGFycmF5LlxuICAgIHZhciBuZXdTb3VyY2VzID0gbmV3IEFycmF5U2V0KCk7XG4gICAgdmFyIG5ld05hbWVzID0gbmV3IEFycmF5U2V0KCk7XG5cbiAgICAvLyBGaW5kIG1hcHBpbmdzIGZvciB0aGUgXCJzb3VyY2VGaWxlXCJcbiAgICB0aGlzLl9tYXBwaW5ncy51bnNvcnRlZEZvckVhY2goZnVuY3Rpb24gKG1hcHBpbmcpIHtcbiAgICAgIGlmIChtYXBwaW5nLnNvdXJjZSA9PT0gc291cmNlRmlsZSAmJiBtYXBwaW5nLm9yaWdpbmFsTGluZSAhPSBudWxsKSB7XG4gICAgICAgIC8vIENoZWNrIGlmIGl0IGNhbiBiZSBtYXBwZWQgYnkgdGhlIHNvdXJjZSBtYXAsIHRoZW4gdXBkYXRlIHRoZSBtYXBwaW5nLlxuICAgICAgICB2YXIgb3JpZ2luYWwgPSBhU291cmNlTWFwQ29uc3VtZXIub3JpZ2luYWxQb3NpdGlvbkZvcih7XG4gICAgICAgICAgbGluZTogbWFwcGluZy5vcmlnaW5hbExpbmUsXG4gICAgICAgICAgY29sdW1uOiBtYXBwaW5nLm9yaWdpbmFsQ29sdW1uXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAob3JpZ2luYWwuc291cmNlICE9IG51bGwpIHtcbiAgICAgICAgICAvLyBDb3B5IG1hcHBpbmdcbiAgICAgICAgICBtYXBwaW5nLnNvdXJjZSA9IG9yaWdpbmFsLnNvdXJjZTtcbiAgICAgICAgICBpZiAoYVNvdXJjZU1hcFBhdGggIT0gbnVsbCkge1xuICAgICAgICAgICAgbWFwcGluZy5zb3VyY2UgPSB1dGlsLmpvaW4oYVNvdXJjZU1hcFBhdGgsIG1hcHBpbmcuc291cmNlKVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoc291cmNlUm9vdCAhPSBudWxsKSB7XG4gICAgICAgICAgICBtYXBwaW5nLnNvdXJjZSA9IHV0aWwucmVsYXRpdmUoc291cmNlUm9vdCwgbWFwcGluZy5zb3VyY2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBtYXBwaW5nLm9yaWdpbmFsTGluZSA9IG9yaWdpbmFsLmxpbmU7XG4gICAgICAgICAgbWFwcGluZy5vcmlnaW5hbENvbHVtbiA9IG9yaWdpbmFsLmNvbHVtbjtcbiAgICAgICAgICBpZiAob3JpZ2luYWwubmFtZSAhPSBudWxsKSB7XG4gICAgICAgICAgICBtYXBwaW5nLm5hbWUgPSBvcmlnaW5hbC5uYW1lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB2YXIgc291cmNlID0gbWFwcGluZy5zb3VyY2U7XG4gICAgICBpZiAoc291cmNlICE9IG51bGwgJiYgIW5ld1NvdXJjZXMuaGFzKHNvdXJjZSkpIHtcbiAgICAgICAgbmV3U291cmNlcy5hZGQoc291cmNlKTtcbiAgICAgIH1cblxuICAgICAgdmFyIG5hbWUgPSBtYXBwaW5nLm5hbWU7XG4gICAgICBpZiAobmFtZSAhPSBudWxsICYmICFuZXdOYW1lcy5oYXMobmFtZSkpIHtcbiAgICAgICAgbmV3TmFtZXMuYWRkKG5hbWUpO1xuICAgICAgfVxuXG4gICAgfSwgdGhpcyk7XG4gICAgdGhpcy5fc291cmNlcyA9IG5ld1NvdXJjZXM7XG4gICAgdGhpcy5fbmFtZXMgPSBuZXdOYW1lcztcblxuICAgIC8vIENvcHkgc291cmNlc0NvbnRlbnRzIG9mIGFwcGxpZWQgbWFwLlxuICAgIGFTb3VyY2VNYXBDb25zdW1lci5zb3VyY2VzLmZvckVhY2goZnVuY3Rpb24gKHNvdXJjZUZpbGUpIHtcbiAgICAgIHZhciBjb250ZW50ID0gYVNvdXJjZU1hcENvbnN1bWVyLnNvdXJjZUNvbnRlbnRGb3Ioc291cmNlRmlsZSk7XG4gICAgICBpZiAoY29udGVudCAhPSBudWxsKSB7XG4gICAgICAgIGlmIChhU291cmNlTWFwUGF0aCAhPSBudWxsKSB7XG4gICAgICAgICAgc291cmNlRmlsZSA9IHV0aWwuam9pbihhU291cmNlTWFwUGF0aCwgc291cmNlRmlsZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNvdXJjZVJvb3QgIT0gbnVsbCkge1xuICAgICAgICAgIHNvdXJjZUZpbGUgPSB1dGlsLnJlbGF0aXZlKHNvdXJjZVJvb3QsIHNvdXJjZUZpbGUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0U291cmNlQ29udGVudChzb3VyY2VGaWxlLCBjb250ZW50KTtcbiAgICAgIH1cbiAgICB9LCB0aGlzKTtcbiAgfTtcblxuLyoqXG4gKiBBIG1hcHBpbmcgY2FuIGhhdmUgb25lIG9mIHRoZSB0aHJlZSBsZXZlbHMgb2YgZGF0YTpcbiAqXG4gKiAgIDEuIEp1c3QgdGhlIGdlbmVyYXRlZCBwb3NpdGlvbi5cbiAqICAgMi4gVGhlIEdlbmVyYXRlZCBwb3NpdGlvbiwgb3JpZ2luYWwgcG9zaXRpb24sIGFuZCBvcmlnaW5hbCBzb3VyY2UuXG4gKiAgIDMuIEdlbmVyYXRlZCBhbmQgb3JpZ2luYWwgcG9zaXRpb24sIG9yaWdpbmFsIHNvdXJjZSwgYXMgd2VsbCBhcyBhIG5hbWVcbiAqICAgICAgdG9rZW4uXG4gKlxuICogVG8gbWFpbnRhaW4gY29uc2lzdGVuY3ksIHdlIHZhbGlkYXRlIHRoYXQgYW55IG5ldyBtYXBwaW5nIGJlaW5nIGFkZGVkIGZhbGxzXG4gKiBpbiB0byBvbmUgb2YgdGhlc2UgY2F0ZWdvcmllcy5cbiAqL1xuU291cmNlTWFwR2VuZXJhdG9yLnByb3RvdHlwZS5fdmFsaWRhdGVNYXBwaW5nID1cbiAgZnVuY3Rpb24gU291cmNlTWFwR2VuZXJhdG9yX3ZhbGlkYXRlTWFwcGluZyhhR2VuZXJhdGVkLCBhT3JpZ2luYWwsIGFTb3VyY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYU5hbWUpIHtcbiAgICAvLyBXaGVuIGFPcmlnaW5hbCBpcyB0cnV0aHkgYnV0IGhhcyBlbXB0eSB2YWx1ZXMgZm9yIC5saW5lIGFuZCAuY29sdW1uLFxuICAgIC8vIGl0IGlzIG1vc3QgbGlrZWx5IGEgcHJvZ3JhbW1lciBlcnJvci4gSW4gdGhpcyBjYXNlIHdlIHRocm93IGEgdmVyeVxuICAgIC8vIHNwZWNpZmljIGVycm9yIG1lc3NhZ2UgdG8gdHJ5IHRvIGd1aWRlIHRoZW0gdGhlIHJpZ2h0IHdheS5cbiAgICAvLyBGb3IgZXhhbXBsZTogaHR0cHM6Ly9naXRodWIuY29tL1BvbHltZXIvcG9seW1lci1idW5kbGVyL3B1bGwvNTE5XG4gICAgaWYgKGFPcmlnaW5hbCAmJiB0eXBlb2YgYU9yaWdpbmFsLmxpbmUgIT09ICdudW1iZXInICYmIHR5cGVvZiBhT3JpZ2luYWwuY29sdW1uICE9PSAnbnVtYmVyJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAnb3JpZ2luYWwubGluZSBhbmQgb3JpZ2luYWwuY29sdW1uIGFyZSBub3QgbnVtYmVycyAtLSB5b3UgcHJvYmFibHkgbWVhbnQgdG8gb21pdCAnICtcbiAgICAgICAgICAgICd0aGUgb3JpZ2luYWwgbWFwcGluZyBlbnRpcmVseSBhbmQgb25seSBtYXAgdGhlIGdlbmVyYXRlZCBwb3NpdGlvbi4gSWYgc28sIHBhc3MgJyArXG4gICAgICAgICAgICAnbnVsbCBmb3IgdGhlIG9yaWdpbmFsIG1hcHBpbmcgaW5zdGVhZCBvZiBhbiBvYmplY3Qgd2l0aCBlbXB0eSBvciBudWxsIHZhbHVlcy4nXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGFHZW5lcmF0ZWQgJiYgJ2xpbmUnIGluIGFHZW5lcmF0ZWQgJiYgJ2NvbHVtbicgaW4gYUdlbmVyYXRlZFxuICAgICAgICAmJiBhR2VuZXJhdGVkLmxpbmUgPiAwICYmIGFHZW5lcmF0ZWQuY29sdW1uID49IDBcbiAgICAgICAgJiYgIWFPcmlnaW5hbCAmJiAhYVNvdXJjZSAmJiAhYU5hbWUpIHtcbiAgICAgIC8vIENhc2UgMS5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZWxzZSBpZiAoYUdlbmVyYXRlZCAmJiAnbGluZScgaW4gYUdlbmVyYXRlZCAmJiAnY29sdW1uJyBpbiBhR2VuZXJhdGVkXG4gICAgICAgICAgICAgJiYgYU9yaWdpbmFsICYmICdsaW5lJyBpbiBhT3JpZ2luYWwgJiYgJ2NvbHVtbicgaW4gYU9yaWdpbmFsXG4gICAgICAgICAgICAgJiYgYUdlbmVyYXRlZC5saW5lID4gMCAmJiBhR2VuZXJhdGVkLmNvbHVtbiA+PSAwXG4gICAgICAgICAgICAgJiYgYU9yaWdpbmFsLmxpbmUgPiAwICYmIGFPcmlnaW5hbC5jb2x1bW4gPj0gMFxuICAgICAgICAgICAgICYmIGFTb3VyY2UpIHtcbiAgICAgIC8vIENhc2VzIDIgYW5kIDMuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIG1hcHBpbmc6ICcgKyBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIGdlbmVyYXRlZDogYUdlbmVyYXRlZCxcbiAgICAgICAgc291cmNlOiBhU291cmNlLFxuICAgICAgICBvcmlnaW5hbDogYU9yaWdpbmFsLFxuICAgICAgICBuYW1lOiBhTmFtZVxuICAgICAgfSkpO1xuICAgIH1cbiAgfTtcblxuLyoqXG4gKiBTZXJpYWxpemUgdGhlIGFjY3VtdWxhdGVkIG1hcHBpbmdzIGluIHRvIHRoZSBzdHJlYW0gb2YgYmFzZSA2NCBWTFFzXG4gKiBzcGVjaWZpZWQgYnkgdGhlIHNvdXJjZSBtYXAgZm9ybWF0LlxuICovXG5Tb3VyY2VNYXBHZW5lcmF0b3IucHJvdG90eXBlLl9zZXJpYWxpemVNYXBwaW5ncyA9XG4gIGZ1bmN0aW9uIFNvdXJjZU1hcEdlbmVyYXRvcl9zZXJpYWxpemVNYXBwaW5ncygpIHtcbiAgICB2YXIgcHJldmlvdXNHZW5lcmF0ZWRDb2x1bW4gPSAwO1xuICAgIHZhciBwcmV2aW91c0dlbmVyYXRlZExpbmUgPSAxO1xuICAgIHZhciBwcmV2aW91c09yaWdpbmFsQ29sdW1uID0gMDtcbiAgICB2YXIgcHJldmlvdXNPcmlnaW5hbExpbmUgPSAwO1xuICAgIHZhciBwcmV2aW91c05hbWUgPSAwO1xuICAgIHZhciBwcmV2aW91c1NvdXJjZSA9IDA7XG4gICAgdmFyIHJlc3VsdCA9ICcnO1xuICAgIHZhciBuZXh0O1xuICAgIHZhciBtYXBwaW5nO1xuICAgIHZhciBuYW1lSWR4O1xuICAgIHZhciBzb3VyY2VJZHg7XG5cbiAgICB2YXIgbWFwcGluZ3MgPSB0aGlzLl9tYXBwaW5ncy50b0FycmF5KCk7XG4gICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IG1hcHBpbmdzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICBtYXBwaW5nID0gbWFwcGluZ3NbaV07XG4gICAgICBuZXh0ID0gJydcblxuICAgICAgaWYgKG1hcHBpbmcuZ2VuZXJhdGVkTGluZSAhPT0gcHJldmlvdXNHZW5lcmF0ZWRMaW5lKSB7XG4gICAgICAgIHByZXZpb3VzR2VuZXJhdGVkQ29sdW1uID0gMDtcbiAgICAgICAgd2hpbGUgKG1hcHBpbmcuZ2VuZXJhdGVkTGluZSAhPT0gcHJldmlvdXNHZW5lcmF0ZWRMaW5lKSB7XG4gICAgICAgICAgbmV4dCArPSAnOyc7XG4gICAgICAgICAgcHJldmlvdXNHZW5lcmF0ZWRMaW5lKys7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICBpZiAoaSA+IDApIHtcbiAgICAgICAgICBpZiAoIXV0aWwuY29tcGFyZUJ5R2VuZXJhdGVkUG9zaXRpb25zSW5mbGF0ZWQobWFwcGluZywgbWFwcGluZ3NbaSAtIDFdKSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIG5leHQgKz0gJywnO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG5leHQgKz0gYmFzZTY0VkxRLmVuY29kZShtYXBwaW5nLmdlbmVyYXRlZENvbHVtblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBwcmV2aW91c0dlbmVyYXRlZENvbHVtbik7XG4gICAgICBwcmV2aW91c0dlbmVyYXRlZENvbHVtbiA9IG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uO1xuXG4gICAgICBpZiAobWFwcGluZy5zb3VyY2UgIT0gbnVsbCkge1xuICAgICAgICBzb3VyY2VJZHggPSB0aGlzLl9zb3VyY2VzLmluZGV4T2YobWFwcGluZy5zb3VyY2UpO1xuICAgICAgICBuZXh0ICs9IGJhc2U2NFZMUS5lbmNvZGUoc291cmNlSWR4IC0gcHJldmlvdXNTb3VyY2UpO1xuICAgICAgICBwcmV2aW91c1NvdXJjZSA9IHNvdXJjZUlkeDtcblxuICAgICAgICAvLyBsaW5lcyBhcmUgc3RvcmVkIDAtYmFzZWQgaW4gU291cmNlTWFwIHNwZWMgdmVyc2lvbiAzXG4gICAgICAgIG5leHQgKz0gYmFzZTY0VkxRLmVuY29kZShtYXBwaW5nLm9yaWdpbmFsTGluZSAtIDFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBwcmV2aW91c09yaWdpbmFsTGluZSk7XG4gICAgICAgIHByZXZpb3VzT3JpZ2luYWxMaW5lID0gbWFwcGluZy5vcmlnaW5hbExpbmUgLSAxO1xuXG4gICAgICAgIG5leHQgKz0gYmFzZTY0VkxRLmVuY29kZShtYXBwaW5nLm9yaWdpbmFsQ29sdW1uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gcHJldmlvdXNPcmlnaW5hbENvbHVtbik7XG4gICAgICAgIHByZXZpb3VzT3JpZ2luYWxDb2x1bW4gPSBtYXBwaW5nLm9yaWdpbmFsQ29sdW1uO1xuXG4gICAgICAgIGlmIChtYXBwaW5nLm5hbWUgIT0gbnVsbCkge1xuICAgICAgICAgIG5hbWVJZHggPSB0aGlzLl9uYW1lcy5pbmRleE9mKG1hcHBpbmcubmFtZSk7XG4gICAgICAgICAgbmV4dCArPSBiYXNlNjRWTFEuZW5jb2RlKG5hbWVJZHggLSBwcmV2aW91c05hbWUpO1xuICAgICAgICAgIHByZXZpb3VzTmFtZSA9IG5hbWVJZHg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmVzdWx0ICs9IG5leHQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcblxuU291cmNlTWFwR2VuZXJhdG9yLnByb3RvdHlwZS5fZ2VuZXJhdGVTb3VyY2VzQ29udGVudCA9XG4gIGZ1bmN0aW9uIFNvdXJjZU1hcEdlbmVyYXRvcl9nZW5lcmF0ZVNvdXJjZXNDb250ZW50KGFTb3VyY2VzLCBhU291cmNlUm9vdCkge1xuICAgIHJldHVybiBhU291cmNlcy5tYXAoZnVuY3Rpb24gKHNvdXJjZSkge1xuICAgICAgaWYgKCF0aGlzLl9zb3VyY2VzQ29udGVudHMpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBpZiAoYVNvdXJjZVJvb3QgIT0gbnVsbCkge1xuICAgICAgICBzb3VyY2UgPSB1dGlsLnJlbGF0aXZlKGFTb3VyY2VSb290LCBzb3VyY2UpO1xuICAgICAgfVxuICAgICAgdmFyIGtleSA9IHV0aWwudG9TZXRTdHJpbmcoc291cmNlKTtcbiAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5fc291cmNlc0NvbnRlbnRzLCBrZXkpXG4gICAgICAgID8gdGhpcy5fc291cmNlc0NvbnRlbnRzW2tleV1cbiAgICAgICAgOiBudWxsO1xuICAgIH0sIHRoaXMpO1xuICB9O1xuXG4vKipcbiAqIEV4dGVybmFsaXplIHRoZSBzb3VyY2UgbWFwLlxuICovXG5Tb3VyY2VNYXBHZW5lcmF0b3IucHJvdG90eXBlLnRvSlNPTiA9XG4gIGZ1bmN0aW9uIFNvdXJjZU1hcEdlbmVyYXRvcl90b0pTT04oKSB7XG4gICAgdmFyIG1hcCA9IHtcbiAgICAgIHZlcnNpb246IHRoaXMuX3ZlcnNpb24sXG4gICAgICBzb3VyY2VzOiB0aGlzLl9zb3VyY2VzLnRvQXJyYXkoKSxcbiAgICAgIG5hbWVzOiB0aGlzLl9uYW1lcy50b0FycmF5KCksXG4gICAgICBtYXBwaW5nczogdGhpcy5fc2VyaWFsaXplTWFwcGluZ3MoKVxuICAgIH07XG4gICAgaWYgKHRoaXMuX2ZpbGUgIT0gbnVsbCkge1xuICAgICAgbWFwLmZpbGUgPSB0aGlzLl9maWxlO1xuICAgIH1cbiAgICBpZiAodGhpcy5fc291cmNlUm9vdCAhPSBudWxsKSB7XG4gICAgICBtYXAuc291cmNlUm9vdCA9IHRoaXMuX3NvdXJjZVJvb3Q7XG4gICAgfVxuICAgIGlmICh0aGlzLl9zb3VyY2VzQ29udGVudHMpIHtcbiAgICAgIG1hcC5zb3VyY2VzQ29udGVudCA9IHRoaXMuX2dlbmVyYXRlU291cmNlc0NvbnRlbnQobWFwLnNvdXJjZXMsIG1hcC5zb3VyY2VSb290KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWFwO1xuICB9O1xuXG4vKipcbiAqIFJlbmRlciB0aGUgc291cmNlIG1hcCBiZWluZyBnZW5lcmF0ZWQgdG8gYSBzdHJpbmcuXG4gKi9cblNvdXJjZU1hcEdlbmVyYXRvci5wcm90b3R5cGUudG9TdHJpbmcgPVxuICBmdW5jdGlvbiBTb3VyY2VNYXBHZW5lcmF0b3JfdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMudG9KU09OKCkpO1xuICB9O1xuXG5leHBvcnRzLlNvdXJjZU1hcEdlbmVyYXRvciA9IFNvdXJjZU1hcEdlbmVyYXRvcjtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbGliL3NvdXJjZS1tYXAtZ2VuZXJhdG9yLmpzXG4vLyBtb2R1bGUgaWQgPSAxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8qIC0qLSBNb2RlOiBqczsganMtaW5kZW50LWxldmVsOiAyOyAtKi0gKi9cbi8qXG4gKiBDb3B5cmlnaHQgMjAxMSBNb3ppbGxhIEZvdW5kYXRpb24gYW5kIGNvbnRyaWJ1dG9yc1xuICogTGljZW5zZWQgdW5kZXIgdGhlIE5ldyBCU0QgbGljZW5zZS4gU2VlIExJQ0VOU0Ugb3I6XG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQlNELTMtQ2xhdXNlXG4gKlxuICogQmFzZWQgb24gdGhlIEJhc2UgNjQgVkxRIGltcGxlbWVudGF0aW9uIGluIENsb3N1cmUgQ29tcGlsZXI6XG4gKiBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nsb3N1cmUtY29tcGlsZXIvc291cmNlL2Jyb3dzZS90cnVuay9zcmMvY29tL2dvb2dsZS9kZWJ1Z2dpbmcvc291cmNlbWFwL0Jhc2U2NFZMUS5qYXZhXG4gKlxuICogQ29weXJpZ2h0IDIwMTEgVGhlIENsb3N1cmUgQ29tcGlsZXIgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dFxuICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZVxuICogbWV0OlxuICpcbiAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0XG4gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuXG4gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlXG4gKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZ1xuICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkXG4gKiAgICB3aXRoIHRoZSBkaXN0cmlidXRpb24uXG4gKiAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzXG4gKiAgICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWRcbiAqICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi5cbiAqXG4gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTXG4gKiBcIkFTIElTXCIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UXG4gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1JcbiAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUXG4gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCxcbiAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1RcbiAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLFxuICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZXG4gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUXG4gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0VcbiAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuXG4gKi9cblxudmFyIGJhc2U2NCA9IHJlcXVpcmUoJy4vYmFzZTY0Jyk7XG5cbi8vIEEgc2luZ2xlIGJhc2UgNjQgZGlnaXQgY2FuIGNvbnRhaW4gNiBiaXRzIG9mIGRhdGEuIEZvciB0aGUgYmFzZSA2NCB2YXJpYWJsZVxuLy8gbGVuZ3RoIHF1YW50aXRpZXMgd2UgdXNlIGluIHRoZSBzb3VyY2UgbWFwIHNwZWMsIHRoZSBmaXJzdCBiaXQgaXMgdGhlIHNpZ24sXG4vLyB0aGUgbmV4dCBmb3VyIGJpdHMgYXJlIHRoZSBhY3R1YWwgdmFsdWUsIGFuZCB0aGUgNnRoIGJpdCBpcyB0aGVcbi8vIGNvbnRpbnVhdGlvbiBiaXQuIFRoZSBjb250aW51YXRpb24gYml0IHRlbGxzIHVzIHdoZXRoZXIgdGhlcmUgYXJlIG1vcmVcbi8vIGRpZ2l0cyBpbiB0aGlzIHZhbHVlIGZvbGxvd2luZyB0aGlzIGRpZ2l0LlxuLy9cbi8vICAgQ29udGludWF0aW9uXG4vLyAgIHwgICAgU2lnblxuLy8gICB8ICAgIHxcbi8vICAgViAgICBWXG4vLyAgIDEwMTAxMVxuXG52YXIgVkxRX0JBU0VfU0hJRlQgPSA1O1xuXG4vLyBiaW5hcnk6IDEwMDAwMFxudmFyIFZMUV9CQVNFID0gMSA8PCBWTFFfQkFTRV9TSElGVDtcblxuLy8gYmluYXJ5OiAwMTExMTFcbnZhciBWTFFfQkFTRV9NQVNLID0gVkxRX0JBU0UgLSAxO1xuXG4vLyBiaW5hcnk6IDEwMDAwMFxudmFyIFZMUV9DT05USU5VQVRJT05fQklUID0gVkxRX0JBU0U7XG5cbi8qKlxuICogQ29udmVydHMgZnJvbSBhIHR3by1jb21wbGVtZW50IHZhbHVlIHRvIGEgdmFsdWUgd2hlcmUgdGhlIHNpZ24gYml0IGlzXG4gKiBwbGFjZWQgaW4gdGhlIGxlYXN0IHNpZ25pZmljYW50IGJpdC4gIEZvciBleGFtcGxlLCBhcyBkZWNpbWFsczpcbiAqICAgMSBiZWNvbWVzIDIgKDEwIGJpbmFyeSksIC0xIGJlY29tZXMgMyAoMTEgYmluYXJ5KVxuICogICAyIGJlY29tZXMgNCAoMTAwIGJpbmFyeSksIC0yIGJlY29tZXMgNSAoMTAxIGJpbmFyeSlcbiAqL1xuZnVuY3Rpb24gdG9WTFFTaWduZWQoYVZhbHVlKSB7XG4gIHJldHVybiBhVmFsdWUgPCAwXG4gICAgPyAoKC1hVmFsdWUpIDw8IDEpICsgMVxuICAgIDogKGFWYWx1ZSA8PCAxKSArIDA7XG59XG5cbi8qKlxuICogQ29udmVydHMgdG8gYSB0d28tY29tcGxlbWVudCB2YWx1ZSBmcm9tIGEgdmFsdWUgd2hlcmUgdGhlIHNpZ24gYml0IGlzXG4gKiBwbGFjZWQgaW4gdGhlIGxlYXN0IHNpZ25pZmljYW50IGJpdC4gIEZvciBleGFtcGxlLCBhcyBkZWNpbWFsczpcbiAqICAgMiAoMTAgYmluYXJ5KSBiZWNvbWVzIDEsIDMgKDExIGJpbmFyeSkgYmVjb21lcyAtMVxuICogICA0ICgxMDAgYmluYXJ5KSBiZWNvbWVzIDIsIDUgKDEwMSBiaW5hcnkpIGJlY29tZXMgLTJcbiAqL1xuZnVuY3Rpb24gZnJvbVZMUVNpZ25lZChhVmFsdWUpIHtcbiAgdmFyIGlzTmVnYXRpdmUgPSAoYVZhbHVlICYgMSkgPT09IDE7XG4gIHZhciBzaGlmdGVkID0gYVZhbHVlID4+IDE7XG4gIHJldHVybiBpc05lZ2F0aXZlXG4gICAgPyAtc2hpZnRlZFxuICAgIDogc2hpZnRlZDtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBiYXNlIDY0IFZMUSBlbmNvZGVkIHZhbHVlLlxuICovXG5leHBvcnRzLmVuY29kZSA9IGZ1bmN0aW9uIGJhc2U2NFZMUV9lbmNvZGUoYVZhbHVlKSB7XG4gIHZhciBlbmNvZGVkID0gXCJcIjtcbiAgdmFyIGRpZ2l0O1xuXG4gIHZhciB2bHEgPSB0b1ZMUVNpZ25lZChhVmFsdWUpO1xuXG4gIGRvIHtcbiAgICBkaWdpdCA9IHZscSAmIFZMUV9CQVNFX01BU0s7XG4gICAgdmxxID4+Pj0gVkxRX0JBU0VfU0hJRlQ7XG4gICAgaWYgKHZscSA+IDApIHtcbiAgICAgIC8vIFRoZXJlIGFyZSBzdGlsbCBtb3JlIGRpZ2l0cyBpbiB0aGlzIHZhbHVlLCBzbyB3ZSBtdXN0IG1ha2Ugc3VyZSB0aGVcbiAgICAgIC8vIGNvbnRpbnVhdGlvbiBiaXQgaXMgbWFya2VkLlxuICAgICAgZGlnaXQgfD0gVkxRX0NPTlRJTlVBVElPTl9CSVQ7XG4gICAgfVxuICAgIGVuY29kZWQgKz0gYmFzZTY0LmVuY29kZShkaWdpdCk7XG4gIH0gd2hpbGUgKHZscSA+IDApO1xuXG4gIHJldHVybiBlbmNvZGVkO1xufTtcblxuLyoqXG4gKiBEZWNvZGVzIHRoZSBuZXh0IGJhc2UgNjQgVkxRIHZhbHVlIGZyb20gdGhlIGdpdmVuIHN0cmluZyBhbmQgcmV0dXJucyB0aGVcbiAqIHZhbHVlIGFuZCB0aGUgcmVzdCBvZiB0aGUgc3RyaW5nIHZpYSB0aGUgb3V0IHBhcmFtZXRlci5cbiAqL1xuZXhwb3J0cy5kZWNvZGUgPSBmdW5jdGlvbiBiYXNlNjRWTFFfZGVjb2RlKGFTdHIsIGFJbmRleCwgYU91dFBhcmFtKSB7XG4gIHZhciBzdHJMZW4gPSBhU3RyLmxlbmd0aDtcbiAgdmFyIHJlc3VsdCA9IDA7XG4gIHZhciBzaGlmdCA9IDA7XG4gIHZhciBjb250aW51YXRpb24sIGRpZ2l0O1xuXG4gIGRvIHtcbiAgICBpZiAoYUluZGV4ID49IHN0ckxlbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgbW9yZSBkaWdpdHMgaW4gYmFzZSA2NCBWTFEgdmFsdWUuXCIpO1xuICAgIH1cblxuICAgIGRpZ2l0ID0gYmFzZTY0LmRlY29kZShhU3RyLmNoYXJDb2RlQXQoYUluZGV4KyspKTtcbiAgICBpZiAoZGlnaXQgPT09IC0xKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGJhc2U2NCBkaWdpdDogXCIgKyBhU3RyLmNoYXJBdChhSW5kZXggLSAxKSk7XG4gICAgfVxuXG4gICAgY29udGludWF0aW9uID0gISEoZGlnaXQgJiBWTFFfQ09OVElOVUFUSU9OX0JJVCk7XG4gICAgZGlnaXQgJj0gVkxRX0JBU0VfTUFTSztcbiAgICByZXN1bHQgPSByZXN1bHQgKyAoZGlnaXQgPDwgc2hpZnQpO1xuICAgIHNoaWZ0ICs9IFZMUV9CQVNFX1NISUZUO1xuICB9IHdoaWxlIChjb250aW51YXRpb24pO1xuXG4gIGFPdXRQYXJhbS52YWx1ZSA9IGZyb21WTFFTaWduZWQocmVzdWx0KTtcbiAgYU91dFBhcmFtLnJlc3QgPSBhSW5kZXg7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9saWIvYmFzZTY0LXZscS5qc1xuLy8gbW9kdWxlIGlkID0gMlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvKiAtKi0gTW9kZToganM7IGpzLWluZGVudC1sZXZlbDogMjsgLSotICovXG4vKlxuICogQ29weXJpZ2h0IDIwMTEgTW96aWxsYSBGb3VuZGF0aW9uIGFuZCBjb250cmlidXRvcnNcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBOZXcgQlNEIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIG9yOlxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZVxuICovXG5cbnZhciBpbnRUb0NoYXJNYXAgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLycuc3BsaXQoJycpO1xuXG4vKipcbiAqIEVuY29kZSBhbiBpbnRlZ2VyIGluIHRoZSByYW5nZSBvZiAwIHRvIDYzIHRvIGEgc2luZ2xlIGJhc2UgNjQgZGlnaXQuXG4gKi9cbmV4cG9ydHMuZW5jb2RlID0gZnVuY3Rpb24gKG51bWJlcikge1xuICBpZiAoMCA8PSBudW1iZXIgJiYgbnVtYmVyIDwgaW50VG9DaGFyTWFwLmxlbmd0aCkge1xuICAgIHJldHVybiBpbnRUb0NoYXJNYXBbbnVtYmVyXTtcbiAgfVxuICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiTXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDYzOiBcIiArIG51bWJlcik7XG59O1xuXG4vKipcbiAqIERlY29kZSBhIHNpbmdsZSBiYXNlIDY0IGNoYXJhY3RlciBjb2RlIGRpZ2l0IHRvIGFuIGludGVnZXIuIFJldHVybnMgLTEgb25cbiAqIGZhaWx1cmUuXG4gKi9cbmV4cG9ydHMuZGVjb2RlID0gZnVuY3Rpb24gKGNoYXJDb2RlKSB7XG4gIHZhciBiaWdBID0gNjU7ICAgICAvLyAnQSdcbiAgdmFyIGJpZ1ogPSA5MDsgICAgIC8vICdaJ1xuXG4gIHZhciBsaXR0bGVBID0gOTc7ICAvLyAnYSdcbiAgdmFyIGxpdHRsZVogPSAxMjI7IC8vICd6J1xuXG4gIHZhciB6ZXJvID0gNDg7ICAgICAvLyAnMCdcbiAgdmFyIG5pbmUgPSA1NzsgICAgIC8vICc5J1xuXG4gIHZhciBwbHVzID0gNDM7ICAgICAvLyAnKydcbiAgdmFyIHNsYXNoID0gNDc7ICAgIC8vICcvJ1xuXG4gIHZhciBsaXR0bGVPZmZzZXQgPSAyNjtcbiAgdmFyIG51bWJlck9mZnNldCA9IDUyO1xuXG4gIC8vIDAgLSAyNTogQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpcbiAgaWYgKGJpZ0EgPD0gY2hhckNvZGUgJiYgY2hhckNvZGUgPD0gYmlnWikge1xuICAgIHJldHVybiAoY2hhckNvZGUgLSBiaWdBKTtcbiAgfVxuXG4gIC8vIDI2IC0gNTE6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6XG4gIGlmIChsaXR0bGVBIDw9IGNoYXJDb2RlICYmIGNoYXJDb2RlIDw9IGxpdHRsZVopIHtcbiAgICByZXR1cm4gKGNoYXJDb2RlIC0gbGl0dGxlQSArIGxpdHRsZU9mZnNldCk7XG4gIH1cblxuICAvLyA1MiAtIDYxOiAwMTIzNDU2Nzg5XG4gIGlmICh6ZXJvIDw9IGNoYXJDb2RlICYmIGNoYXJDb2RlIDw9IG5pbmUpIHtcbiAgICByZXR1cm4gKGNoYXJDb2RlIC0gemVybyArIG51bWJlck9mZnNldCk7XG4gIH1cblxuICAvLyA2MjogK1xuICBpZiAoY2hhckNvZGUgPT0gcGx1cykge1xuICAgIHJldHVybiA2MjtcbiAgfVxuXG4gIC8vIDYzOiAvXG4gIGlmIChjaGFyQ29kZSA9PSBzbGFzaCkge1xuICAgIHJldHVybiA2MztcbiAgfVxuXG4gIC8vIEludmFsaWQgYmFzZTY0IGRpZ2l0LlxuICByZXR1cm4gLTE7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9saWIvYmFzZTY0LmpzXG4vLyBtb2R1bGUgaWQgPSAzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8qIC0qLSBNb2RlOiBqczsganMtaW5kZW50LWxldmVsOiAyOyAtKi0gKi9cbi8qXG4gKiBDb3B5cmlnaHQgMjAxMSBNb3ppbGxhIEZvdW5kYXRpb24gYW5kIGNvbnRyaWJ1dG9yc1xuICogTGljZW5zZWQgdW5kZXIgdGhlIE5ldyBCU0QgbGljZW5zZS4gU2VlIExJQ0VOU0Ugb3I6XG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQlNELTMtQ2xhdXNlXG4gKi9cblxuLyoqXG4gKiBUaGlzIGlzIGEgaGVscGVyIGZ1bmN0aW9uIGZvciBnZXR0aW5nIHZhbHVlcyBmcm9tIHBhcmFtZXRlci9vcHRpb25zXG4gKiBvYmplY3RzLlxuICpcbiAqIEBwYXJhbSBhcmdzIFRoZSBvYmplY3Qgd2UgYXJlIGV4dHJhY3RpbmcgdmFsdWVzIGZyb21cbiAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB3ZSBhcmUgZ2V0dGluZy5cbiAqIEBwYXJhbSBkZWZhdWx0VmFsdWUgQW4gb3B0aW9uYWwgdmFsdWUgdG8gcmV0dXJuIGlmIHRoZSBwcm9wZXJ0eSBpcyBtaXNzaW5nXG4gKiBmcm9tIHRoZSBvYmplY3QuIElmIHRoaXMgaXMgbm90IHNwZWNpZmllZCBhbmQgdGhlIHByb3BlcnR5IGlzIG1pc3NpbmcsIGFuXG4gKiBlcnJvciB3aWxsIGJlIHRocm93bi5cbiAqL1xuZnVuY3Rpb24gZ2V0QXJnKGFBcmdzLCBhTmFtZSwgYURlZmF1bHRWYWx1ZSkge1xuICBpZiAoYU5hbWUgaW4gYUFyZ3MpIHtcbiAgICByZXR1cm4gYUFyZ3NbYU5hbWVdO1xuICB9IGVsc2UgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDMpIHtcbiAgICByZXR1cm4gYURlZmF1bHRWYWx1ZTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1wiJyArIGFOYW1lICsgJ1wiIGlzIGEgcmVxdWlyZWQgYXJndW1lbnQuJyk7XG4gIH1cbn1cbmV4cG9ydHMuZ2V0QXJnID0gZ2V0QXJnO1xuXG52YXIgdXJsUmVnZXhwID0gL14oPzooW1xcdytcXC0uXSspOik/XFwvXFwvKD86KFxcdys6XFx3KylAKT8oW1xcdy5dKikoPzo6KFxcZCspKT8oXFxTKikkLztcbnZhciBkYXRhVXJsUmVnZXhwID0gL15kYXRhOi4rXFwsLiskLztcblxuZnVuY3Rpb24gdXJsUGFyc2UoYVVybCkge1xuICB2YXIgbWF0Y2ggPSBhVXJsLm1hdGNoKHVybFJlZ2V4cCk7XG4gIGlmICghbWF0Y2gpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICByZXR1cm4ge1xuICAgIHNjaGVtZTogbWF0Y2hbMV0sXG4gICAgYXV0aDogbWF0Y2hbMl0sXG4gICAgaG9zdDogbWF0Y2hbM10sXG4gICAgcG9ydDogbWF0Y2hbNF0sXG4gICAgcGF0aDogbWF0Y2hbNV1cbiAgfTtcbn1cbmV4cG9ydHMudXJsUGFyc2UgPSB1cmxQYXJzZTtcblxuZnVuY3Rpb24gdXJsR2VuZXJhdGUoYVBhcnNlZFVybCkge1xuICB2YXIgdXJsID0gJyc7XG4gIGlmIChhUGFyc2VkVXJsLnNjaGVtZSkge1xuICAgIHVybCArPSBhUGFyc2VkVXJsLnNjaGVtZSArICc6JztcbiAgfVxuICB1cmwgKz0gJy8vJztcbiAgaWYgKGFQYXJzZWRVcmwuYXV0aCkge1xuICAgIHVybCArPSBhUGFyc2VkVXJsLmF1dGggKyAnQCc7XG4gIH1cbiAgaWYgKGFQYXJzZWRVcmwuaG9zdCkge1xuICAgIHVybCArPSBhUGFyc2VkVXJsLmhvc3Q7XG4gIH1cbiAgaWYgKGFQYXJzZWRVcmwucG9ydCkge1xuICAgIHVybCArPSBcIjpcIiArIGFQYXJzZWRVcmwucG9ydFxuICB9XG4gIGlmIChhUGFyc2VkVXJsLnBhdGgpIHtcbiAgICB1cmwgKz0gYVBhcnNlZFVybC5wYXRoO1xuICB9XG4gIHJldHVybiB1cmw7XG59XG5leHBvcnRzLnVybEdlbmVyYXRlID0gdXJsR2VuZXJhdGU7XG5cbi8qKlxuICogTm9ybWFsaXplcyBhIHBhdGgsIG9yIHRoZSBwYXRoIHBvcnRpb24gb2YgYSBVUkw6XG4gKlxuICogLSBSZXBsYWNlcyBjb25zZWN1dGl2ZSBzbGFzaGVzIHdpdGggb25lIHNsYXNoLlxuICogLSBSZW1vdmVzIHVubmVjZXNzYXJ5ICcuJyBwYXJ0cy5cbiAqIC0gUmVtb3ZlcyB1bm5lY2Vzc2FyeSAnPGRpcj4vLi4nIHBhcnRzLlxuICpcbiAqIEJhc2VkIG9uIGNvZGUgaW4gdGhlIE5vZGUuanMgJ3BhdGgnIGNvcmUgbW9kdWxlLlxuICpcbiAqIEBwYXJhbSBhUGF0aCBUaGUgcGF0aCBvciB1cmwgdG8gbm9ybWFsaXplLlxuICovXG5mdW5jdGlvbiBub3JtYWxpemUoYVBhdGgpIHtcbiAgdmFyIHBhdGggPSBhUGF0aDtcbiAgdmFyIHVybCA9IHVybFBhcnNlKGFQYXRoKTtcbiAgaWYgKHVybCkge1xuICAgIGlmICghdXJsLnBhdGgpIHtcbiAgICAgIHJldHVybiBhUGF0aDtcbiAgICB9XG4gICAgcGF0aCA9IHVybC5wYXRoO1xuICB9XG4gIHZhciBpc0Fic29sdXRlID0gZXhwb3J0cy5pc0Fic29sdXRlKHBhdGgpO1xuXG4gIHZhciBwYXJ0cyA9IHBhdGguc3BsaXQoL1xcLysvKTtcbiAgZm9yICh2YXIgcGFydCwgdXAgPSAwLCBpID0gcGFydHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICBwYXJ0ID0gcGFydHNbaV07XG4gICAgaWYgKHBhcnQgPT09ICcuJykge1xuICAgICAgcGFydHMuc3BsaWNlKGksIDEpO1xuICAgIH0gZWxzZSBpZiAocGFydCA9PT0gJy4uJykge1xuICAgICAgdXArKztcbiAgICB9IGVsc2UgaWYgKHVwID4gMCkge1xuICAgICAgaWYgKHBhcnQgPT09ICcnKSB7XG4gICAgICAgIC8vIFRoZSBmaXJzdCBwYXJ0IGlzIGJsYW5rIGlmIHRoZSBwYXRoIGlzIGFic29sdXRlLiBUcnlpbmcgdG8gZ29cbiAgICAgICAgLy8gYWJvdmUgdGhlIHJvb3QgaXMgYSBuby1vcC4gVGhlcmVmb3JlIHdlIGNhbiByZW1vdmUgYWxsICcuLicgcGFydHNcbiAgICAgICAgLy8gZGlyZWN0bHkgYWZ0ZXIgdGhlIHJvb3QuXG4gICAgICAgIHBhcnRzLnNwbGljZShpICsgMSwgdXApO1xuICAgICAgICB1cCA9IDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYXJ0cy5zcGxpY2UoaSwgMik7XG4gICAgICAgIHVwLS07XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHBhdGggPSBwYXJ0cy5qb2luKCcvJyk7XG5cbiAgaWYgKHBhdGggPT09ICcnKSB7XG4gICAgcGF0aCA9IGlzQWJzb2x1dGUgPyAnLycgOiAnLic7XG4gIH1cblxuICBpZiAodXJsKSB7XG4gICAgdXJsLnBhdGggPSBwYXRoO1xuICAgIHJldHVybiB1cmxHZW5lcmF0ZSh1cmwpO1xuICB9XG4gIHJldHVybiBwYXRoO1xufVxuZXhwb3J0cy5ub3JtYWxpemUgPSBub3JtYWxpemU7XG5cbi8qKlxuICogSm9pbnMgdHdvIHBhdGhzL1VSTHMuXG4gKlxuICogQHBhcmFtIGFSb290IFRoZSByb290IHBhdGggb3IgVVJMLlxuICogQHBhcmFtIGFQYXRoIFRoZSBwYXRoIG9yIFVSTCB0byBiZSBqb2luZWQgd2l0aCB0aGUgcm9vdC5cbiAqXG4gKiAtIElmIGFQYXRoIGlzIGEgVVJMIG9yIGEgZGF0YSBVUkksIGFQYXRoIGlzIHJldHVybmVkLCB1bmxlc3MgYVBhdGggaXMgYVxuICogICBzY2hlbWUtcmVsYXRpdmUgVVJMOiBUaGVuIHRoZSBzY2hlbWUgb2YgYVJvb3QsIGlmIGFueSwgaXMgcHJlcGVuZGVkXG4gKiAgIGZpcnN0LlxuICogLSBPdGhlcndpc2UgYVBhdGggaXMgYSBwYXRoLiBJZiBhUm9vdCBpcyBhIFVSTCwgdGhlbiBpdHMgcGF0aCBwb3J0aW9uXG4gKiAgIGlzIHVwZGF0ZWQgd2l0aCB0aGUgcmVzdWx0IGFuZCBhUm9vdCBpcyByZXR1cm5lZC4gT3RoZXJ3aXNlIHRoZSByZXN1bHRcbiAqICAgaXMgcmV0dXJuZWQuXG4gKiAgIC0gSWYgYVBhdGggaXMgYWJzb2x1dGUsIHRoZSByZXN1bHQgaXMgYVBhdGguXG4gKiAgIC0gT3RoZXJ3aXNlIHRoZSB0d28gcGF0aHMgYXJlIGpvaW5lZCB3aXRoIGEgc2xhc2guXG4gKiAtIEpvaW5pbmcgZm9yIGV4YW1wbGUgJ2h0dHA6Ly8nIGFuZCAnd3d3LmV4YW1wbGUuY29tJyBpcyBhbHNvIHN1cHBvcnRlZC5cbiAqL1xuZnVuY3Rpb24gam9pbihhUm9vdCwgYVBhdGgpIHtcbiAgaWYgKGFSb290ID09PSBcIlwiKSB7XG4gICAgYVJvb3QgPSBcIi5cIjtcbiAgfVxuICBpZiAoYVBhdGggPT09IFwiXCIpIHtcbiAgICBhUGF0aCA9IFwiLlwiO1xuICB9XG4gIHZhciBhUGF0aFVybCA9IHVybFBhcnNlKGFQYXRoKTtcbiAgdmFyIGFSb290VXJsID0gdXJsUGFyc2UoYVJvb3QpO1xuICBpZiAoYVJvb3RVcmwpIHtcbiAgICBhUm9vdCA9IGFSb290VXJsLnBhdGggfHwgJy8nO1xuICB9XG5cbiAgLy8gYGpvaW4oZm9vLCAnLy93d3cuZXhhbXBsZS5vcmcnKWBcbiAgaWYgKGFQYXRoVXJsICYmICFhUGF0aFVybC5zY2hlbWUpIHtcbiAgICBpZiAoYVJvb3RVcmwpIHtcbiAgICAgIGFQYXRoVXJsLnNjaGVtZSA9IGFSb290VXJsLnNjaGVtZTtcbiAgICB9XG4gICAgcmV0dXJuIHVybEdlbmVyYXRlKGFQYXRoVXJsKTtcbiAgfVxuXG4gIGlmIChhUGF0aFVybCB8fCBhUGF0aC5tYXRjaChkYXRhVXJsUmVnZXhwKSkge1xuICAgIHJldHVybiBhUGF0aDtcbiAgfVxuXG4gIC8vIGBqb2luKCdodHRwOi8vJywgJ3d3dy5leGFtcGxlLmNvbScpYFxuICBpZiAoYVJvb3RVcmwgJiYgIWFSb290VXJsLmhvc3QgJiYgIWFSb290VXJsLnBhdGgpIHtcbiAgICBhUm9vdFVybC5ob3N0ID0gYVBhdGg7XG4gICAgcmV0dXJuIHVybEdlbmVyYXRlKGFSb290VXJsKTtcbiAgfVxuXG4gIHZhciBqb2luZWQgPSBhUGF0aC5jaGFyQXQoMCkgPT09ICcvJ1xuICAgID8gYVBhdGhcbiAgICA6IG5vcm1hbGl6ZShhUm9vdC5yZXBsYWNlKC9cXC8rJC8sICcnKSArICcvJyArIGFQYXRoKTtcblxuICBpZiAoYVJvb3RVcmwpIHtcbiAgICBhUm9vdFVybC5wYXRoID0gam9pbmVkO1xuICAgIHJldHVybiB1cmxHZW5lcmF0ZShhUm9vdFVybCk7XG4gIH1cbiAgcmV0dXJuIGpvaW5lZDtcbn1cbmV4cG9ydHMuam9pbiA9IGpvaW47XG5cbmV4cG9ydHMuaXNBYnNvbHV0ZSA9IGZ1bmN0aW9uIChhUGF0aCkge1xuICByZXR1cm4gYVBhdGguY2hhckF0KDApID09PSAnLycgfHwgISFhUGF0aC5tYXRjaCh1cmxSZWdleHApO1xufTtcblxuLyoqXG4gKiBNYWtlIGEgcGF0aCByZWxhdGl2ZSB0byBhIFVSTCBvciBhbm90aGVyIHBhdGguXG4gKlxuICogQHBhcmFtIGFSb290IFRoZSByb290IHBhdGggb3IgVVJMLlxuICogQHBhcmFtIGFQYXRoIFRoZSBwYXRoIG9yIFVSTCB0byBiZSBtYWRlIHJlbGF0aXZlIHRvIGFSb290LlxuICovXG5mdW5jdGlvbiByZWxhdGl2ZShhUm9vdCwgYVBhdGgpIHtcbiAgaWYgKGFSb290ID09PSBcIlwiKSB7XG4gICAgYVJvb3QgPSBcIi5cIjtcbiAgfVxuXG4gIGFSb290ID0gYVJvb3QucmVwbGFjZSgvXFwvJC8sICcnKTtcblxuICAvLyBJdCBpcyBwb3NzaWJsZSBmb3IgdGhlIHBhdGggdG8gYmUgYWJvdmUgdGhlIHJvb3QuIEluIHRoaXMgY2FzZSwgc2ltcGx5XG4gIC8vIGNoZWNraW5nIHdoZXRoZXIgdGhlIHJvb3QgaXMgYSBwcmVmaXggb2YgdGhlIHBhdGggd29uJ3Qgd29yay4gSW5zdGVhZCwgd2VcbiAgLy8gbmVlZCB0byByZW1vdmUgY29tcG9uZW50cyBmcm9tIHRoZSByb290IG9uZSBieSBvbmUsIHVudGlsIGVpdGhlciB3ZSBmaW5kXG4gIC8vIGEgcHJlZml4IHRoYXQgZml0cywgb3Igd2UgcnVuIG91dCBvZiBjb21wb25lbnRzIHRvIHJlbW92ZS5cbiAgdmFyIGxldmVsID0gMDtcbiAgd2hpbGUgKGFQYXRoLmluZGV4T2YoYVJvb3QgKyAnLycpICE9PSAwKSB7XG4gICAgdmFyIGluZGV4ID0gYVJvb3QubGFzdEluZGV4T2YoXCIvXCIpO1xuICAgIGlmIChpbmRleCA8IDApIHtcbiAgICAgIHJldHVybiBhUGF0aDtcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgb25seSBwYXJ0IG9mIHRoZSByb290IHRoYXQgaXMgbGVmdCBpcyB0aGUgc2NoZW1lIChpLmUuIGh0dHA6Ly8sXG4gICAgLy8gZmlsZTovLy8sIGV0Yy4pLCBvbmUgb3IgbW9yZSBzbGFzaGVzICgvKSwgb3Igc2ltcGx5IG5vdGhpbmcgYXQgYWxsLCB3ZVxuICAgIC8vIGhhdmUgZXhoYXVzdGVkIGFsbCBjb21wb25lbnRzLCBzbyB0aGUgcGF0aCBpcyBub3QgcmVsYXRpdmUgdG8gdGhlIHJvb3QuXG4gICAgYVJvb3QgPSBhUm9vdC5zbGljZSgwLCBpbmRleCk7XG4gICAgaWYgKGFSb290Lm1hdGNoKC9eKFteXFwvXSs6XFwvKT9cXC8qJC8pKSB7XG4gICAgICByZXR1cm4gYVBhdGg7XG4gICAgfVxuXG4gICAgKytsZXZlbDtcbiAgfVxuXG4gIC8vIE1ha2Ugc3VyZSB3ZSBhZGQgYSBcIi4uL1wiIGZvciBlYWNoIGNvbXBvbmVudCB3ZSByZW1vdmVkIGZyb20gdGhlIHJvb3QuXG4gIHJldHVybiBBcnJheShsZXZlbCArIDEpLmpvaW4oXCIuLi9cIikgKyBhUGF0aC5zdWJzdHIoYVJvb3QubGVuZ3RoICsgMSk7XG59XG5leHBvcnRzLnJlbGF0aXZlID0gcmVsYXRpdmU7XG5cbnZhciBzdXBwb3J0c051bGxQcm90byA9IChmdW5jdGlvbiAoKSB7XG4gIHZhciBvYmogPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICByZXR1cm4gISgnX19wcm90b19fJyBpbiBvYmopO1xufSgpKTtcblxuZnVuY3Rpb24gaWRlbnRpdHkgKHMpIHtcbiAgcmV0dXJuIHM7XG59XG5cbi8qKlxuICogQmVjYXVzZSBiZWhhdmlvciBnb2VzIHdhY2t5IHdoZW4geW91IHNldCBgX19wcm90b19fYCBvbiBvYmplY3RzLCB3ZVxuICogaGF2ZSB0byBwcmVmaXggYWxsIHRoZSBzdHJpbmdzIGluIG91ciBzZXQgd2l0aCBhbiBhcmJpdHJhcnkgY2hhcmFjdGVyLlxuICpcbiAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9zb3VyY2UtbWFwL3B1bGwvMzEgYW5kXG4gKiBodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9zb3VyY2UtbWFwL2lzc3Vlcy8zMFxuICpcbiAqIEBwYXJhbSBTdHJpbmcgYVN0clxuICovXG5mdW5jdGlvbiB0b1NldFN0cmluZyhhU3RyKSB7XG4gIGlmIChpc1Byb3RvU3RyaW5nKGFTdHIpKSB7XG4gICAgcmV0dXJuICckJyArIGFTdHI7XG4gIH1cblxuICByZXR1cm4gYVN0cjtcbn1cbmV4cG9ydHMudG9TZXRTdHJpbmcgPSBzdXBwb3J0c051bGxQcm90byA/IGlkZW50aXR5IDogdG9TZXRTdHJpbmc7XG5cbmZ1bmN0aW9uIGZyb21TZXRTdHJpbmcoYVN0cikge1xuICBpZiAoaXNQcm90b1N0cmluZyhhU3RyKSkge1xuICAgIHJldHVybiBhU3RyLnNsaWNlKDEpO1xuICB9XG5cbiAgcmV0dXJuIGFTdHI7XG59XG5leHBvcnRzLmZyb21TZXRTdHJpbmcgPSBzdXBwb3J0c051bGxQcm90byA/IGlkZW50aXR5IDogZnJvbVNldFN0cmluZztcblxuZnVuY3Rpb24gaXNQcm90b1N0cmluZyhzKSB7XG4gIGlmICghcykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZhciBsZW5ndGggPSBzLmxlbmd0aDtcblxuICBpZiAobGVuZ3RoIDwgOSAvKiBcIl9fcHJvdG9fX1wiLmxlbmd0aCAqLykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChzLmNoYXJDb2RlQXQobGVuZ3RoIC0gMSkgIT09IDk1ICAvKiAnXycgKi8gfHxcbiAgICAgIHMuY2hhckNvZGVBdChsZW5ndGggLSAyKSAhPT0gOTUgIC8qICdfJyAqLyB8fFxuICAgICAgcy5jaGFyQ29kZUF0KGxlbmd0aCAtIDMpICE9PSAxMTEgLyogJ28nICovIHx8XG4gICAgICBzLmNoYXJDb2RlQXQobGVuZ3RoIC0gNCkgIT09IDExNiAvKiAndCcgKi8gfHxcbiAgICAgIHMuY2hhckNvZGVBdChsZW5ndGggLSA1KSAhPT0gMTExIC8qICdvJyAqLyB8fFxuICAgICAgcy5jaGFyQ29kZUF0KGxlbmd0aCAtIDYpICE9PSAxMTQgLyogJ3InICovIHx8XG4gICAgICBzLmNoYXJDb2RlQXQobGVuZ3RoIC0gNykgIT09IDExMiAvKiAncCcgKi8gfHxcbiAgICAgIHMuY2hhckNvZGVBdChsZW5ndGggLSA4KSAhPT0gOTUgIC8qICdfJyAqLyB8fFxuICAgICAgcy5jaGFyQ29kZUF0KGxlbmd0aCAtIDkpICE9PSA5NSAgLyogJ18nICovKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZm9yICh2YXIgaSA9IGxlbmd0aCAtIDEwOyBpID49IDA7IGktLSkge1xuICAgIGlmIChzLmNoYXJDb2RlQXQoaSkgIT09IDM2IC8qICckJyAqLykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIENvbXBhcmF0b3IgYmV0d2VlbiB0d28gbWFwcGluZ3Mgd2hlcmUgdGhlIG9yaWdpbmFsIHBvc2l0aW9ucyBhcmUgY29tcGFyZWQuXG4gKlxuICogT3B0aW9uYWxseSBwYXNzIGluIGB0cnVlYCBhcyBgb25seUNvbXBhcmVHZW5lcmF0ZWRgIHRvIGNvbnNpZGVyIHR3b1xuICogbWFwcGluZ3Mgd2l0aCB0aGUgc2FtZSBvcmlnaW5hbCBzb3VyY2UvbGluZS9jb2x1bW4sIGJ1dCBkaWZmZXJlbnQgZ2VuZXJhdGVkXG4gKiBsaW5lIGFuZCBjb2x1bW4gdGhlIHNhbWUuIFVzZWZ1bCB3aGVuIHNlYXJjaGluZyBmb3IgYSBtYXBwaW5nIHdpdGggYVxuICogc3R1YmJlZCBvdXQgbWFwcGluZy5cbiAqL1xuZnVuY3Rpb24gY29tcGFyZUJ5T3JpZ2luYWxQb3NpdGlvbnMobWFwcGluZ0EsIG1hcHBpbmdCLCBvbmx5Q29tcGFyZU9yaWdpbmFsKSB7XG4gIHZhciBjbXAgPSBtYXBwaW5nQS5zb3VyY2UgLSBtYXBwaW5nQi5zb3VyY2U7XG4gIGlmIChjbXAgIT09IDApIHtcbiAgICByZXR1cm4gY21wO1xuICB9XG5cbiAgY21wID0gbWFwcGluZ0Eub3JpZ2luYWxMaW5lIC0gbWFwcGluZ0Iub3JpZ2luYWxMaW5lO1xuICBpZiAoY21wICE9PSAwKSB7XG4gICAgcmV0dXJuIGNtcDtcbiAgfVxuXG4gIGNtcCA9IG1hcHBpbmdBLm9yaWdpbmFsQ29sdW1uIC0gbWFwcGluZ0Iub3JpZ2luYWxDb2x1bW47XG4gIGlmIChjbXAgIT09IDAgfHwgb25seUNvbXBhcmVPcmlnaW5hbCkge1xuICAgIHJldHVybiBjbXA7XG4gIH1cblxuICBjbXAgPSBtYXBwaW5nQS5nZW5lcmF0ZWRDb2x1bW4gLSBtYXBwaW5nQi5nZW5lcmF0ZWRDb2x1bW47XG4gIGlmIChjbXAgIT09IDApIHtcbiAgICByZXR1cm4gY21wO1xuICB9XG5cbiAgY21wID0gbWFwcGluZ0EuZ2VuZXJhdGVkTGluZSAtIG1hcHBpbmdCLmdlbmVyYXRlZExpbmU7XG4gIGlmIChjbXAgIT09IDApIHtcbiAgICByZXR1cm4gY21wO1xuICB9XG5cbiAgcmV0dXJuIG1hcHBpbmdBLm5hbWUgLSBtYXBwaW5nQi5uYW1lO1xufVxuZXhwb3J0cy5jb21wYXJlQnlPcmlnaW5hbFBvc2l0aW9ucyA9IGNvbXBhcmVCeU9yaWdpbmFsUG9zaXRpb25zO1xuXG4vKipcbiAqIENvbXBhcmF0b3IgYmV0d2VlbiB0d28gbWFwcGluZ3Mgd2l0aCBkZWZsYXRlZCBzb3VyY2UgYW5kIG5hbWUgaW5kaWNlcyB3aGVyZVxuICogdGhlIGdlbmVyYXRlZCBwb3NpdGlvbnMgYXJlIGNvbXBhcmVkLlxuICpcbiAqIE9wdGlvbmFsbHkgcGFzcyBpbiBgdHJ1ZWAgYXMgYG9ubHlDb21wYXJlR2VuZXJhdGVkYCB0byBjb25zaWRlciB0d29cbiAqIG1hcHBpbmdzIHdpdGggdGhlIHNhbWUgZ2VuZXJhdGVkIGxpbmUgYW5kIGNvbHVtbiwgYnV0IGRpZmZlcmVudFxuICogc291cmNlL25hbWUvb3JpZ2luYWwgbGluZSBhbmQgY29sdW1uIHRoZSBzYW1lLiBVc2VmdWwgd2hlbiBzZWFyY2hpbmcgZm9yIGFcbiAqIG1hcHBpbmcgd2l0aCBhIHN0dWJiZWQgb3V0IG1hcHBpbmcuXG4gKi9cbmZ1bmN0aW9uIGNvbXBhcmVCeUdlbmVyYXRlZFBvc2l0aW9uc0RlZmxhdGVkKG1hcHBpbmdBLCBtYXBwaW5nQiwgb25seUNvbXBhcmVHZW5lcmF0ZWQpIHtcbiAgdmFyIGNtcCA9IG1hcHBpbmdBLmdlbmVyYXRlZExpbmUgLSBtYXBwaW5nQi5nZW5lcmF0ZWRMaW5lO1xuICBpZiAoY21wICE9PSAwKSB7XG4gICAgcmV0dXJuIGNtcDtcbiAgfVxuXG4gIGNtcCA9IG1hcHBpbmdBLmdlbmVyYXRlZENvbHVtbiAtIG1hcHBpbmdCLmdlbmVyYXRlZENvbHVtbjtcbiAgaWYgKGNtcCAhPT0gMCB8fCBvbmx5Q29tcGFyZUdlbmVyYXRlZCkge1xuICAgIHJldHVybiBjbXA7XG4gIH1cblxuICBjbXAgPSBtYXBwaW5nQS5zb3VyY2UgLSBtYXBwaW5nQi5zb3VyY2U7XG4gIGlmIChjbXAgIT09IDApIHtcbiAgICByZXR1cm4gY21wO1xuICB9XG5cbiAgY21wID0gbWFwcGluZ0Eub3JpZ2luYWxMaW5lIC0gbWFwcGluZ0Iub3JpZ2luYWxMaW5lO1xuICBpZiAoY21wICE9PSAwKSB7XG4gICAgcmV0dXJuIGNtcDtcbiAgfVxuXG4gIGNtcCA9IG1hcHBpbmdBLm9yaWdpbmFsQ29sdW1uIC0gbWFwcGluZ0Iub3JpZ2luYWxDb2x1bW47XG4gIGlmIChjbXAgIT09IDApIHtcbiAgICByZXR1cm4gY21wO1xuICB9XG5cbiAgcmV0dXJuIG1hcHBpbmdBLm5hbWUgLSBtYXBwaW5nQi5uYW1lO1xufVxuZXhwb3J0cy5jb21wYXJlQnlHZW5lcmF0ZWRQb3NpdGlvbnNEZWZsYXRlZCA9IGNvbXBhcmVCeUdlbmVyYXRlZFBvc2l0aW9uc0RlZmxhdGVkO1xuXG5mdW5jdGlvbiBzdHJjbXAoYVN0cjEsIGFTdHIyKSB7XG4gIGlmIChhU3RyMSA9PT0gYVN0cjIpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIGlmIChhU3RyMSA+IGFTdHIyKSB7XG4gICAgcmV0dXJuIDE7XG4gIH1cblxuICByZXR1cm4gLTE7XG59XG5cbi8qKlxuICogQ29tcGFyYXRvciBiZXR3ZWVuIHR3byBtYXBwaW5ncyB3aXRoIGluZmxhdGVkIHNvdXJjZSBhbmQgbmFtZSBzdHJpbmdzIHdoZXJlXG4gKiB0aGUgZ2VuZXJhdGVkIHBvc2l0aW9ucyBhcmUgY29tcGFyZWQuXG4gKi9cbmZ1bmN0aW9uIGNvbXBhcmVCeUdlbmVyYXRlZFBvc2l0aW9uc0luZmxhdGVkKG1hcHBpbmdBLCBtYXBwaW5nQikge1xuICB2YXIgY21wID0gbWFwcGluZ0EuZ2VuZXJhdGVkTGluZSAtIG1hcHBpbmdCLmdlbmVyYXRlZExpbmU7XG4gIGlmIChjbXAgIT09IDApIHtcbiAgICByZXR1cm4gY21wO1xuICB9XG5cbiAgY21wID0gbWFwcGluZ0EuZ2VuZXJhdGVkQ29sdW1uIC0gbWFwcGluZ0IuZ2VuZXJhdGVkQ29sdW1uO1xuICBpZiAoY21wICE9PSAwKSB7XG4gICAgcmV0dXJuIGNtcDtcbiAgfVxuXG4gIGNtcCA9IHN0cmNtcChtYXBwaW5nQS5zb3VyY2UsIG1hcHBpbmdCLnNvdXJjZSk7XG4gIGlmIChjbXAgIT09IDApIHtcbiAgICByZXR1cm4gY21wO1xuICB9XG5cbiAgY21wID0gbWFwcGluZ0Eub3JpZ2luYWxMaW5lIC0gbWFwcGluZ0Iub3JpZ2luYWxMaW5lO1xuICBpZiAoY21wICE9PSAwKSB7XG4gICAgcmV0dXJuIGNtcDtcbiAgfVxuXG4gIGNtcCA9IG1hcHBpbmdBLm9yaWdpbmFsQ29sdW1uIC0gbWFwcGluZ0Iub3JpZ2luYWxDb2x1bW47XG4gIGlmIChjbXAgIT09IDApIHtcbiAgICByZXR1cm4gY21wO1xuICB9XG5cbiAgcmV0dXJuIHN0cmNtcChtYXBwaW5nQS5uYW1lLCBtYXBwaW5nQi5uYW1lKTtcbn1cbmV4cG9ydHMuY29tcGFyZUJ5R2VuZXJhdGVkUG9zaXRpb25zSW5mbGF0ZWQgPSBjb21wYXJlQnlHZW5lcmF0ZWRQb3NpdGlvbnNJbmZsYXRlZDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbGliL3V0aWwuanNcbi8vIG1vZHVsZSBpZCA9IDRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiLyogLSotIE1vZGU6IGpzOyBqcy1pbmRlbnQtbGV2ZWw6IDI7IC0qLSAqL1xuLypcbiAqIENvcHlyaWdodCAyMDExIE1vemlsbGEgRm91bmRhdGlvbiBhbmQgY29udHJpYnV0b3JzXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTmV3IEJTRCBsaWNlbnNlLiBTZWUgTElDRU5TRSBvcjpcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2VcbiAqL1xuXG52YXIgdXRpbCA9IHJlcXVpcmUoJy4vdXRpbCcpO1xudmFyIGhhcyA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgaGFzTmF0aXZlTWFwID0gdHlwZW9mIE1hcCAhPT0gXCJ1bmRlZmluZWRcIjtcblxuLyoqXG4gKiBBIGRhdGEgc3RydWN0dXJlIHdoaWNoIGlzIGEgY29tYmluYXRpb24gb2YgYW4gYXJyYXkgYW5kIGEgc2V0LiBBZGRpbmcgYSBuZXdcbiAqIG1lbWJlciBpcyBPKDEpLCB0ZXN0aW5nIGZvciBtZW1iZXJzaGlwIGlzIE8oMSksIGFuZCBmaW5kaW5nIHRoZSBpbmRleCBvZiBhblxuICogZWxlbWVudCBpcyBPKDEpLiBSZW1vdmluZyBlbGVtZW50cyBmcm9tIHRoZSBzZXQgaXMgbm90IHN1cHBvcnRlZC4gT25seVxuICogc3RyaW5ncyBhcmUgc3VwcG9ydGVkIGZvciBtZW1iZXJzaGlwLlxuICovXG5mdW5jdGlvbiBBcnJheVNldCgpIHtcbiAgdGhpcy5fYXJyYXkgPSBbXTtcbiAgdGhpcy5fc2V0ID0gaGFzTmF0aXZlTWFwID8gbmV3IE1hcCgpIDogT2JqZWN0LmNyZWF0ZShudWxsKTtcbn1cblxuLyoqXG4gKiBTdGF0aWMgbWV0aG9kIGZvciBjcmVhdGluZyBBcnJheVNldCBpbnN0YW5jZXMgZnJvbSBhbiBleGlzdGluZyBhcnJheS5cbiAqL1xuQXJyYXlTZXQuZnJvbUFycmF5ID0gZnVuY3Rpb24gQXJyYXlTZXRfZnJvbUFycmF5KGFBcnJheSwgYUFsbG93RHVwbGljYXRlcykge1xuICB2YXIgc2V0ID0gbmV3IEFycmF5U2V0KCk7XG4gIGZvciAodmFyIGkgPSAwLCBsZW4gPSBhQXJyYXkubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBzZXQuYWRkKGFBcnJheVtpXSwgYUFsbG93RHVwbGljYXRlcyk7XG4gIH1cbiAgcmV0dXJuIHNldDtcbn07XG5cbi8qKlxuICogUmV0dXJuIGhvdyBtYW55IHVuaXF1ZSBpdGVtcyBhcmUgaW4gdGhpcyBBcnJheVNldC4gSWYgZHVwbGljYXRlcyBoYXZlIGJlZW5cbiAqIGFkZGVkLCB0aGFuIHRob3NlIGRvIG5vdCBjb3VudCB0b3dhcmRzIHRoZSBzaXplLlxuICpcbiAqIEByZXR1cm5zIE51bWJlclxuICovXG5BcnJheVNldC5wcm90b3R5cGUuc2l6ZSA9IGZ1bmN0aW9uIEFycmF5U2V0X3NpemUoKSB7XG4gIHJldHVybiBoYXNOYXRpdmVNYXAgPyB0aGlzLl9zZXQuc2l6ZSA6IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXMuX3NldCkubGVuZ3RoO1xufTtcblxuLyoqXG4gKiBBZGQgdGhlIGdpdmVuIHN0cmluZyB0byB0aGlzIHNldC5cbiAqXG4gKiBAcGFyYW0gU3RyaW5nIGFTdHJcbiAqL1xuQXJyYXlTZXQucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uIEFycmF5U2V0X2FkZChhU3RyLCBhQWxsb3dEdXBsaWNhdGVzKSB7XG4gIHZhciBzU3RyID0gaGFzTmF0aXZlTWFwID8gYVN0ciA6IHV0aWwudG9TZXRTdHJpbmcoYVN0cik7XG4gIHZhciBpc0R1cGxpY2F0ZSA9IGhhc05hdGl2ZU1hcCA/IHRoaXMuaGFzKGFTdHIpIDogaGFzLmNhbGwodGhpcy5fc2V0LCBzU3RyKTtcbiAgdmFyIGlkeCA9IHRoaXMuX2FycmF5Lmxlbmd0aDtcbiAgaWYgKCFpc0R1cGxpY2F0ZSB8fCBhQWxsb3dEdXBsaWNhdGVzKSB7XG4gICAgdGhpcy5fYXJyYXkucHVzaChhU3RyKTtcbiAgfVxuICBpZiAoIWlzRHVwbGljYXRlKSB7XG4gICAgaWYgKGhhc05hdGl2ZU1hcCkge1xuICAgICAgdGhpcy5fc2V0LnNldChhU3RyLCBpZHgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9zZXRbc1N0cl0gPSBpZHg7XG4gICAgfVxuICB9XG59O1xuXG4vKipcbiAqIElzIHRoZSBnaXZlbiBzdHJpbmcgYSBtZW1iZXIgb2YgdGhpcyBzZXQ/XG4gKlxuICogQHBhcmFtIFN0cmluZyBhU3RyXG4gKi9cbkFycmF5U2V0LnByb3RvdHlwZS5oYXMgPSBmdW5jdGlvbiBBcnJheVNldF9oYXMoYVN0cikge1xuICBpZiAoaGFzTmF0aXZlTWFwKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NldC5oYXMoYVN0cik7XG4gIH0gZWxzZSB7XG4gICAgdmFyIHNTdHIgPSB1dGlsLnRvU2V0U3RyaW5nKGFTdHIpO1xuICAgIHJldHVybiBoYXMuY2FsbCh0aGlzLl9zZXQsIHNTdHIpO1xuICB9XG59O1xuXG4vKipcbiAqIFdoYXQgaXMgdGhlIGluZGV4IG9mIHRoZSBnaXZlbiBzdHJpbmcgaW4gdGhlIGFycmF5P1xuICpcbiAqIEBwYXJhbSBTdHJpbmcgYVN0clxuICovXG5BcnJheVNldC5wcm90b3R5cGUuaW5kZXhPZiA9IGZ1bmN0aW9uIEFycmF5U2V0X2luZGV4T2YoYVN0cikge1xuICBpZiAoaGFzTmF0aXZlTWFwKSB7XG4gICAgdmFyIGlkeCA9IHRoaXMuX3NldC5nZXQoYVN0cik7XG4gICAgaWYgKGlkeCA+PSAwKSB7XG4gICAgICAgIHJldHVybiBpZHg7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHZhciBzU3RyID0gdXRpbC50b1NldFN0cmluZyhhU3RyKTtcbiAgICBpZiAoaGFzLmNhbGwodGhpcy5fc2V0LCBzU3RyKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3NldFtzU3RyXTtcbiAgICB9XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoJ1wiJyArIGFTdHIgKyAnXCIgaXMgbm90IGluIHRoZSBzZXQuJyk7XG59O1xuXG4vKipcbiAqIFdoYXQgaXMgdGhlIGVsZW1lbnQgYXQgdGhlIGdpdmVuIGluZGV4P1xuICpcbiAqIEBwYXJhbSBOdW1iZXIgYUlkeFxuICovXG5BcnJheVNldC5wcm90b3R5cGUuYXQgPSBmdW5jdGlvbiBBcnJheVNldF9hdChhSWR4KSB7XG4gIGlmIChhSWR4ID49IDAgJiYgYUlkeCA8IHRoaXMuX2FycmF5Lmxlbmd0aCkge1xuICAgIHJldHVybiB0aGlzLl9hcnJheVthSWR4XTtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoJ05vIGVsZW1lbnQgaW5kZXhlZCBieSAnICsgYUlkeCk7XG59O1xuXG4vKipcbiAqIFJldHVybnMgdGhlIGFycmF5IHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgc2V0ICh3aGljaCBoYXMgdGhlIHByb3BlciBpbmRpY2VzXG4gKiBpbmRpY2F0ZWQgYnkgaW5kZXhPZikuIE5vdGUgdGhhdCB0aGlzIGlzIGEgY29weSBvZiB0aGUgaW50ZXJuYWwgYXJyYXkgdXNlZFxuICogZm9yIHN0b3JpbmcgdGhlIG1lbWJlcnMgc28gdGhhdCBubyBvbmUgY2FuIG1lc3Mgd2l0aCBpbnRlcm5hbCBzdGF0ZS5cbiAqL1xuQXJyYXlTZXQucHJvdG90eXBlLnRvQXJyYXkgPSBmdW5jdGlvbiBBcnJheVNldF90b0FycmF5KCkge1xuICByZXR1cm4gdGhpcy5fYXJyYXkuc2xpY2UoKTtcbn07XG5cbmV4cG9ydHMuQXJyYXlTZXQgPSBBcnJheVNldDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbGliL2FycmF5LXNldC5qc1xuLy8gbW9kdWxlIGlkID0gNVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvKiAtKi0gTW9kZToganM7IGpzLWluZGVudC1sZXZlbDogMjsgLSotICovXG4vKlxuICogQ29weXJpZ2h0IDIwMTQgTW96aWxsYSBGb3VuZGF0aW9uIGFuZCBjb250cmlidXRvcnNcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBOZXcgQlNEIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIG9yOlxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZVxuICovXG5cbnZhciB1dGlsID0gcmVxdWlyZSgnLi91dGlsJyk7XG5cbi8qKlxuICogRGV0ZXJtaW5lIHdoZXRoZXIgbWFwcGluZ0IgaXMgYWZ0ZXIgbWFwcGluZ0Egd2l0aCByZXNwZWN0IHRvIGdlbmVyYXRlZFxuICogcG9zaXRpb24uXG4gKi9cbmZ1bmN0aW9uIGdlbmVyYXRlZFBvc2l0aW9uQWZ0ZXIobWFwcGluZ0EsIG1hcHBpbmdCKSB7XG4gIC8vIE9wdGltaXplZCBmb3IgbW9zdCBjb21tb24gY2FzZVxuICB2YXIgbGluZUEgPSBtYXBwaW5nQS5nZW5lcmF0ZWRMaW5lO1xuICB2YXIgbGluZUIgPSBtYXBwaW5nQi5nZW5lcmF0ZWRMaW5lO1xuICB2YXIgY29sdW1uQSA9IG1hcHBpbmdBLmdlbmVyYXRlZENvbHVtbjtcbiAgdmFyIGNvbHVtbkIgPSBtYXBwaW5nQi5nZW5lcmF0ZWRDb2x1bW47XG4gIHJldHVybiBsaW5lQiA+IGxpbmVBIHx8IGxpbmVCID09IGxpbmVBICYmIGNvbHVtbkIgPj0gY29sdW1uQSB8fFxuICAgICAgICAgdXRpbC5jb21wYXJlQnlHZW5lcmF0ZWRQb3NpdGlvbnNJbmZsYXRlZChtYXBwaW5nQSwgbWFwcGluZ0IpIDw9IDA7XG59XG5cbi8qKlxuICogQSBkYXRhIHN0cnVjdHVyZSB0byBwcm92aWRlIGEgc29ydGVkIHZpZXcgb2YgYWNjdW11bGF0ZWQgbWFwcGluZ3MgaW4gYVxuICogcGVyZm9ybWFuY2UgY29uc2Npb3VzIG1hbm5lci4gSXQgdHJhZGVzIGEgbmVnbGliYWJsZSBvdmVyaGVhZCBpbiBnZW5lcmFsXG4gKiBjYXNlIGZvciBhIGxhcmdlIHNwZWVkdXAgaW4gY2FzZSBvZiBtYXBwaW5ncyBiZWluZyBhZGRlZCBpbiBvcmRlci5cbiAqL1xuZnVuY3Rpb24gTWFwcGluZ0xpc3QoKSB7XG4gIHRoaXMuX2FycmF5ID0gW107XG4gIHRoaXMuX3NvcnRlZCA9IHRydWU7XG4gIC8vIFNlcnZlcyBhcyBpbmZpbXVtXG4gIHRoaXMuX2xhc3QgPSB7Z2VuZXJhdGVkTGluZTogLTEsIGdlbmVyYXRlZENvbHVtbjogMH07XG59XG5cbi8qKlxuICogSXRlcmF0ZSB0aHJvdWdoIGludGVybmFsIGl0ZW1zLiBUaGlzIG1ldGhvZCB0YWtlcyB0aGUgc2FtZSBhcmd1bWVudHMgdGhhdFxuICogYEFycmF5LnByb3RvdHlwZS5mb3JFYWNoYCB0YWtlcy5cbiAqXG4gKiBOT1RFOiBUaGUgb3JkZXIgb2YgdGhlIG1hcHBpbmdzIGlzIE5PVCBndWFyYW50ZWVkLlxuICovXG5NYXBwaW5nTGlzdC5wcm90b3R5cGUudW5zb3J0ZWRGb3JFYWNoID1cbiAgZnVuY3Rpb24gTWFwcGluZ0xpc3RfZm9yRWFjaChhQ2FsbGJhY2ssIGFUaGlzQXJnKSB7XG4gICAgdGhpcy5fYXJyYXkuZm9yRWFjaChhQ2FsbGJhY2ssIGFUaGlzQXJnKTtcbiAgfTtcblxuLyoqXG4gKiBBZGQgdGhlIGdpdmVuIHNvdXJjZSBtYXBwaW5nLlxuICpcbiAqIEBwYXJhbSBPYmplY3QgYU1hcHBpbmdcbiAqL1xuTWFwcGluZ0xpc3QucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uIE1hcHBpbmdMaXN0X2FkZChhTWFwcGluZykge1xuICBpZiAoZ2VuZXJhdGVkUG9zaXRpb25BZnRlcih0aGlzLl9sYXN0LCBhTWFwcGluZykpIHtcbiAgICB0aGlzLl9sYXN0ID0gYU1hcHBpbmc7XG4gICAgdGhpcy5fYXJyYXkucHVzaChhTWFwcGluZyk7XG4gIH0gZWxzZSB7XG4gICAgdGhpcy5fc29ydGVkID0gZmFsc2U7XG4gICAgdGhpcy5fYXJyYXkucHVzaChhTWFwcGluZyk7XG4gIH1cbn07XG5cbi8qKlxuICogUmV0dXJucyB0aGUgZmxhdCwgc29ydGVkIGFycmF5IG9mIG1hcHBpbmdzLiBUaGUgbWFwcGluZ3MgYXJlIHNvcnRlZCBieVxuICogZ2VuZXJhdGVkIHBvc2l0aW9uLlxuICpcbiAqIFdBUk5JTkc6IFRoaXMgbWV0aG9kIHJldHVybnMgaW50ZXJuYWwgZGF0YSB3aXRob3V0IGNvcHlpbmcsIGZvclxuICogcGVyZm9ybWFuY2UuIFRoZSByZXR1cm4gdmFsdWUgbXVzdCBOT1QgYmUgbXV0YXRlZCwgYW5kIHNob3VsZCBiZSB0cmVhdGVkIGFzXG4gKiBhbiBpbW11dGFibGUgYm9ycm93LiBJZiB5b3Ugd2FudCB0byB0YWtlIG93bmVyc2hpcCwgeW91IG11c3QgbWFrZSB5b3VyIG93blxuICogY29weS5cbiAqL1xuTWFwcGluZ0xpc3QucHJvdG90eXBlLnRvQXJyYXkgPSBmdW5jdGlvbiBNYXBwaW5nTGlzdF90b0FycmF5KCkge1xuICBpZiAoIXRoaXMuX3NvcnRlZCkge1xuICAgIHRoaXMuX2FycmF5LnNvcnQodXRpbC5jb21wYXJlQnlHZW5lcmF0ZWRQb3NpdGlvbnNJbmZsYXRlZCk7XG4gICAgdGhpcy5fc29ydGVkID0gdHJ1ZTtcbiAgfVxuICByZXR1cm4gdGhpcy5fYXJyYXk7XG59O1xuXG5leHBvcnRzLk1hcHBpbmdMaXN0ID0gTWFwcGluZ0xpc3Q7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL2xpYi9tYXBwaW5nLWxpc3QuanNcbi8vIG1vZHVsZSBpZCA9IDZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiLyogLSotIE1vZGU6IGpzOyBqcy1pbmRlbnQtbGV2ZWw6IDI7IC0qLSAqL1xuLypcbiAqIENvcHlyaWdodCAyMDExIE1vemlsbGEgRm91bmRhdGlvbiBhbmQgY29udHJpYnV0b3JzXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTmV3IEJTRCBsaWNlbnNlLiBTZWUgTElDRU5TRSBvcjpcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2VcbiAqL1xuXG52YXIgdXRpbCA9IHJlcXVpcmUoJy4vdXRpbCcpO1xudmFyIGJpbmFyeVNlYXJjaCA9IHJlcXVpcmUoJy4vYmluYXJ5LXNlYXJjaCcpO1xudmFyIEFycmF5U2V0ID0gcmVxdWlyZSgnLi9hcnJheS1zZXQnKS5BcnJheVNldDtcbnZhciBiYXNlNjRWTFEgPSByZXF1aXJlKCcuL2Jhc2U2NC12bHEnKTtcbnZhciBxdWlja1NvcnQgPSByZXF1aXJlKCcuL3F1aWNrLXNvcnQnKS5xdWlja1NvcnQ7XG5cbmZ1bmN0aW9uIFNvdXJjZU1hcENvbnN1bWVyKGFTb3VyY2VNYXApIHtcbiAgdmFyIHNvdXJjZU1hcCA9IGFTb3VyY2VNYXA7XG4gIGlmICh0eXBlb2YgYVNvdXJjZU1hcCA9PT0gJ3N0cmluZycpIHtcbiAgICBzb3VyY2VNYXAgPSBKU09OLnBhcnNlKGFTb3VyY2VNYXAucmVwbGFjZSgvXlxcKVxcXVxcfScvLCAnJykpO1xuICB9XG5cbiAgcmV0dXJuIHNvdXJjZU1hcC5zZWN0aW9ucyAhPSBudWxsXG4gICAgPyBuZXcgSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyKHNvdXJjZU1hcClcbiAgICA6IG5ldyBCYXNpY1NvdXJjZU1hcENvbnN1bWVyKHNvdXJjZU1hcCk7XG59XG5cblNvdXJjZU1hcENvbnN1bWVyLmZyb21Tb3VyY2VNYXAgPSBmdW5jdGlvbihhU291cmNlTWFwKSB7XG4gIHJldHVybiBCYXNpY1NvdXJjZU1hcENvbnN1bWVyLmZyb21Tb3VyY2VNYXAoYVNvdXJjZU1hcCk7XG59XG5cbi8qKlxuICogVGhlIHZlcnNpb24gb2YgdGhlIHNvdXJjZSBtYXBwaW5nIHNwZWMgdGhhdCB3ZSBhcmUgY29uc3VtaW5nLlxuICovXG5Tb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUuX3ZlcnNpb24gPSAzO1xuXG4vLyBgX19nZW5lcmF0ZWRNYXBwaW5nc2AgYW5kIGBfX29yaWdpbmFsTWFwcGluZ3NgIGFyZSBhcnJheXMgdGhhdCBob2xkIHRoZVxuLy8gcGFyc2VkIG1hcHBpbmcgY29vcmRpbmF0ZXMgZnJvbSB0aGUgc291cmNlIG1hcCdzIFwibWFwcGluZ3NcIiBhdHRyaWJ1dGUuIFRoZXlcbi8vIGFyZSBsYXppbHkgaW5zdGFudGlhdGVkLCBhY2Nlc3NlZCB2aWEgdGhlIGBfZ2VuZXJhdGVkTWFwcGluZ3NgIGFuZFxuLy8gYF9vcmlnaW5hbE1hcHBpbmdzYCBnZXR0ZXJzIHJlc3BlY3RpdmVseSwgYW5kIHdlIG9ubHkgcGFyc2UgdGhlIG1hcHBpbmdzXG4vLyBhbmQgY3JlYXRlIHRoZXNlIGFycmF5cyBvbmNlIHF1ZXJpZWQgZm9yIGEgc291cmNlIGxvY2F0aW9uLiBXZSBqdW1wIHRocm91Z2hcbi8vIHRoZXNlIGhvb3BzIGJlY2F1c2UgdGhlcmUgY2FuIGJlIG1hbnkgdGhvdXNhbmRzIG9mIG1hcHBpbmdzLCBhbmQgcGFyc2luZ1xuLy8gdGhlbSBpcyBleHBlbnNpdmUsIHNvIHdlIG9ubHkgd2FudCB0byBkbyBpdCBpZiB3ZSBtdXN0LlxuLy9cbi8vIEVhY2ggb2JqZWN0IGluIHRoZSBhcnJheXMgaXMgb2YgdGhlIGZvcm06XG4vL1xuLy8gICAgIHtcbi8vICAgICAgIGdlbmVyYXRlZExpbmU6IFRoZSBsaW5lIG51bWJlciBpbiB0aGUgZ2VuZXJhdGVkIGNvZGUsXG4vLyAgICAgICBnZW5lcmF0ZWRDb2x1bW46IFRoZSBjb2x1bW4gbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgY29kZSxcbi8vICAgICAgIHNvdXJjZTogVGhlIHBhdGggdG8gdGhlIG9yaWdpbmFsIHNvdXJjZSBmaWxlIHRoYXQgZ2VuZXJhdGVkIHRoaXNcbi8vICAgICAgICAgICAgICAgY2h1bmsgb2YgY29kZSxcbi8vICAgICAgIG9yaWdpbmFsTGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBvcmlnaW5hbCBzb3VyY2UgdGhhdFxuLy8gICAgICAgICAgICAgICAgICAgICBjb3JyZXNwb25kcyB0byB0aGlzIGNodW5rIG9mIGdlbmVyYXRlZCBjb2RlLFxuLy8gICAgICAgb3JpZ2luYWxDb2x1bW46IFRoZSBjb2x1bW4gbnVtYmVyIGluIHRoZSBvcmlnaW5hbCBzb3VyY2UgdGhhdFxuLy8gICAgICAgICAgICAgICAgICAgICAgIGNvcnJlc3BvbmRzIHRvIHRoaXMgY2h1bmsgb2YgZ2VuZXJhdGVkIGNvZGUsXG4vLyAgICAgICBuYW1lOiBUaGUgbmFtZSBvZiB0aGUgb3JpZ2luYWwgc3ltYm9sIHdoaWNoIGdlbmVyYXRlZCB0aGlzIGNodW5rIG9mXG4vLyAgICAgICAgICAgICBjb2RlLlxuLy8gICAgIH1cbi8vXG4vLyBBbGwgcHJvcGVydGllcyBleGNlcHQgZm9yIGBnZW5lcmF0ZWRMaW5lYCBhbmQgYGdlbmVyYXRlZENvbHVtbmAgY2FuIGJlXG4vLyBgbnVsbGAuXG4vL1xuLy8gYF9nZW5lcmF0ZWRNYXBwaW5nc2AgaXMgb3JkZXJlZCBieSB0aGUgZ2VuZXJhdGVkIHBvc2l0aW9ucy5cbi8vXG4vLyBgX29yaWdpbmFsTWFwcGluZ3NgIGlzIG9yZGVyZWQgYnkgdGhlIG9yaWdpbmFsIHBvc2l0aW9ucy5cblxuU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLl9fZ2VuZXJhdGVkTWFwcGluZ3MgPSBudWxsO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KFNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZSwgJ19nZW5lcmF0ZWRNYXBwaW5ncycsIHtcbiAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKCF0aGlzLl9fZ2VuZXJhdGVkTWFwcGluZ3MpIHtcbiAgICAgIHRoaXMuX3BhcnNlTWFwcGluZ3ModGhpcy5fbWFwcGluZ3MsIHRoaXMuc291cmNlUm9vdCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX19nZW5lcmF0ZWRNYXBwaW5ncztcbiAgfVxufSk7XG5cblNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5fX29yaWdpbmFsTWFwcGluZ3MgPSBudWxsO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KFNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZSwgJ19vcmlnaW5hbE1hcHBpbmdzJywge1xuICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoIXRoaXMuX19vcmlnaW5hbE1hcHBpbmdzKSB7XG4gICAgICB0aGlzLl9wYXJzZU1hcHBpbmdzKHRoaXMuX21hcHBpbmdzLCB0aGlzLnNvdXJjZVJvb3QpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9fb3JpZ2luYWxNYXBwaW5ncztcbiAgfVxufSk7XG5cblNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5fY2hhcklzTWFwcGluZ1NlcGFyYXRvciA9XG4gIGZ1bmN0aW9uIFNvdXJjZU1hcENvbnN1bWVyX2NoYXJJc01hcHBpbmdTZXBhcmF0b3IoYVN0ciwgaW5kZXgpIHtcbiAgICB2YXIgYyA9IGFTdHIuY2hhckF0KGluZGV4KTtcbiAgICByZXR1cm4gYyA9PT0gXCI7XCIgfHwgYyA9PT0gXCIsXCI7XG4gIH07XG5cbi8qKlxuICogUGFyc2UgdGhlIG1hcHBpbmdzIGluIGEgc3RyaW5nIGluIHRvIGEgZGF0YSBzdHJ1Y3R1cmUgd2hpY2ggd2UgY2FuIGVhc2lseVxuICogcXVlcnkgKHRoZSBvcmRlcmVkIGFycmF5cyBpbiB0aGUgYHRoaXMuX19nZW5lcmF0ZWRNYXBwaW5nc2AgYW5kXG4gKiBgdGhpcy5fX29yaWdpbmFsTWFwcGluZ3NgIHByb3BlcnRpZXMpLlxuICovXG5Tb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUuX3BhcnNlTWFwcGluZ3MgPVxuICBmdW5jdGlvbiBTb3VyY2VNYXBDb25zdW1lcl9wYXJzZU1hcHBpbmdzKGFTdHIsIGFTb3VyY2VSb290KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiU3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudCBfcGFyc2VNYXBwaW5nc1wiKTtcbiAgfTtcblxuU291cmNlTWFwQ29uc3VtZXIuR0VORVJBVEVEX09SREVSID0gMTtcblNvdXJjZU1hcENvbnN1bWVyLk9SSUdJTkFMX09SREVSID0gMjtcblxuU291cmNlTWFwQ29uc3VtZXIuR1JFQVRFU1RfTE9XRVJfQk9VTkQgPSAxO1xuU291cmNlTWFwQ29uc3VtZXIuTEVBU1RfVVBQRVJfQk9VTkQgPSAyO1xuXG4vKipcbiAqIEl0ZXJhdGUgb3ZlciBlYWNoIG1hcHBpbmcgYmV0d2VlbiBhbiBvcmlnaW5hbCBzb3VyY2UvbGluZS9jb2x1bW4gYW5kIGFcbiAqIGdlbmVyYXRlZCBsaW5lL2NvbHVtbiBpbiB0aGlzIHNvdXJjZSBtYXAuXG4gKlxuICogQHBhcmFtIEZ1bmN0aW9uIGFDYWxsYmFja1xuICogICAgICAgIFRoZSBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCB3aXRoIGVhY2ggbWFwcGluZy5cbiAqIEBwYXJhbSBPYmplY3QgYUNvbnRleHRcbiAqICAgICAgICBPcHRpb25hbC4gSWYgc3BlY2lmaWVkLCB0aGlzIG9iamVjdCB3aWxsIGJlIHRoZSB2YWx1ZSBvZiBgdGhpc2AgZXZlcnlcbiAqICAgICAgICB0aW1lIHRoYXQgYGFDYWxsYmFja2AgaXMgY2FsbGVkLlxuICogQHBhcmFtIGFPcmRlclxuICogICAgICAgIEVpdGhlciBgU291cmNlTWFwQ29uc3VtZXIuR0VORVJBVEVEX09SREVSYCBvclxuICogICAgICAgIGBTb3VyY2VNYXBDb25zdW1lci5PUklHSU5BTF9PUkRFUmAuIFNwZWNpZmllcyB3aGV0aGVyIHlvdSB3YW50IHRvXG4gKiAgICAgICAgaXRlcmF0ZSBvdmVyIHRoZSBtYXBwaW5ncyBzb3J0ZWQgYnkgdGhlIGdlbmVyYXRlZCBmaWxlJ3MgbGluZS9jb2x1bW5cbiAqICAgICAgICBvcmRlciBvciB0aGUgb3JpZ2luYWwncyBzb3VyY2UvbGluZS9jb2x1bW4gb3JkZXIsIHJlc3BlY3RpdmVseS4gRGVmYXVsdHMgdG9cbiAqICAgICAgICBgU291cmNlTWFwQ29uc3VtZXIuR0VORVJBVEVEX09SREVSYC5cbiAqL1xuU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLmVhY2hNYXBwaW5nID1cbiAgZnVuY3Rpb24gU291cmNlTWFwQ29uc3VtZXJfZWFjaE1hcHBpbmcoYUNhbGxiYWNrLCBhQ29udGV4dCwgYU9yZGVyKSB7XG4gICAgdmFyIGNvbnRleHQgPSBhQ29udGV4dCB8fCBudWxsO1xuICAgIHZhciBvcmRlciA9IGFPcmRlciB8fCBTb3VyY2VNYXBDb25zdW1lci5HRU5FUkFURURfT1JERVI7XG5cbiAgICB2YXIgbWFwcGluZ3M7XG4gICAgc3dpdGNoIChvcmRlcikge1xuICAgIGNhc2UgU291cmNlTWFwQ29uc3VtZXIuR0VORVJBVEVEX09SREVSOlxuICAgICAgbWFwcGluZ3MgPSB0aGlzLl9nZW5lcmF0ZWRNYXBwaW5ncztcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgU291cmNlTWFwQ29uc3VtZXIuT1JJR0lOQUxfT1JERVI6XG4gICAgICBtYXBwaW5ncyA9IHRoaXMuX29yaWdpbmFsTWFwcGluZ3M7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5rbm93biBvcmRlciBvZiBpdGVyYXRpb24uXCIpO1xuICAgIH1cblxuICAgIHZhciBzb3VyY2VSb290ID0gdGhpcy5zb3VyY2VSb290O1xuICAgIG1hcHBpbmdzLm1hcChmdW5jdGlvbiAobWFwcGluZykge1xuICAgICAgdmFyIHNvdXJjZSA9IG1hcHBpbmcuc291cmNlID09PSBudWxsID8gbnVsbCA6IHRoaXMuX3NvdXJjZXMuYXQobWFwcGluZy5zb3VyY2UpO1xuICAgICAgaWYgKHNvdXJjZSAhPSBudWxsICYmIHNvdXJjZVJvb3QgIT0gbnVsbCkge1xuICAgICAgICBzb3VyY2UgPSB1dGlsLmpvaW4oc291cmNlUm9vdCwgc291cmNlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNvdXJjZTogc291cmNlLFxuICAgICAgICBnZW5lcmF0ZWRMaW5lOiBtYXBwaW5nLmdlbmVyYXRlZExpbmUsXG4gICAgICAgIGdlbmVyYXRlZENvbHVtbjogbWFwcGluZy5nZW5lcmF0ZWRDb2x1bW4sXG4gICAgICAgIG9yaWdpbmFsTGluZTogbWFwcGluZy5vcmlnaW5hbExpbmUsXG4gICAgICAgIG9yaWdpbmFsQ29sdW1uOiBtYXBwaW5nLm9yaWdpbmFsQ29sdW1uLFxuICAgICAgICBuYW1lOiBtYXBwaW5nLm5hbWUgPT09IG51bGwgPyBudWxsIDogdGhpcy5fbmFtZXMuYXQobWFwcGluZy5uYW1lKVxuICAgICAgfTtcbiAgICB9LCB0aGlzKS5mb3JFYWNoKGFDYWxsYmFjaywgY29udGV4dCk7XG4gIH07XG5cbi8qKlxuICogUmV0dXJucyBhbGwgZ2VuZXJhdGVkIGxpbmUgYW5kIGNvbHVtbiBpbmZvcm1hdGlvbiBmb3IgdGhlIG9yaWdpbmFsIHNvdXJjZSxcbiAqIGxpbmUsIGFuZCBjb2x1bW4gcHJvdmlkZWQuIElmIG5vIGNvbHVtbiBpcyBwcm92aWRlZCwgcmV0dXJucyBhbGwgbWFwcGluZ3NcbiAqIGNvcnJlc3BvbmRpbmcgdG8gYSBlaXRoZXIgdGhlIGxpbmUgd2UgYXJlIHNlYXJjaGluZyBmb3Igb3IgdGhlIG5leHRcbiAqIGNsb3Nlc3QgbGluZSB0aGF0IGhhcyBhbnkgbWFwcGluZ3MuIE90aGVyd2lzZSwgcmV0dXJucyBhbGwgbWFwcGluZ3NcbiAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIGxpbmUgYW5kIGVpdGhlciB0aGUgY29sdW1uIHdlIGFyZSBzZWFyY2hpbmcgZm9yXG4gKiBvciB0aGUgbmV4dCBjbG9zZXN0IGNvbHVtbiB0aGF0IGhhcyBhbnkgb2Zmc2V0cy5cbiAqXG4gKiBUaGUgb25seSBhcmd1bWVudCBpcyBhbiBvYmplY3Qgd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gKlxuICogICAtIHNvdXJjZTogVGhlIGZpbGVuYW1lIG9mIHRoZSBvcmlnaW5hbCBzb3VyY2UuXG4gKiAgIC0gbGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBvcmlnaW5hbCBzb3VyY2UuXG4gKiAgIC0gY29sdW1uOiBPcHRpb25hbC4gdGhlIGNvbHVtbiBudW1iZXIgaW4gdGhlIG9yaWdpbmFsIHNvdXJjZS5cbiAqXG4gKiBhbmQgYW4gYXJyYXkgb2Ygb2JqZWN0cyBpcyByZXR1cm5lZCwgZWFjaCB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcbiAqXG4gKiAgIC0gbGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgc291cmNlLCBvciBudWxsLlxuICogICAtIGNvbHVtbjogVGhlIGNvbHVtbiBudW1iZXIgaW4gdGhlIGdlbmVyYXRlZCBzb3VyY2UsIG9yIG51bGwuXG4gKi9cblNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5hbGxHZW5lcmF0ZWRQb3NpdGlvbnNGb3IgPVxuICBmdW5jdGlvbiBTb3VyY2VNYXBDb25zdW1lcl9hbGxHZW5lcmF0ZWRQb3NpdGlvbnNGb3IoYUFyZ3MpIHtcbiAgICB2YXIgbGluZSA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAnbGluZScpO1xuXG4gICAgLy8gV2hlbiB0aGVyZSBpcyBubyBleGFjdCBtYXRjaCwgQmFzaWNTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUuX2ZpbmRNYXBwaW5nXG4gICAgLy8gcmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGNsb3Nlc3QgbWFwcGluZyBsZXNzIHRoYW4gdGhlIG5lZWRsZS4gQnlcbiAgICAvLyBzZXR0aW5nIG5lZWRsZS5vcmlnaW5hbENvbHVtbiB0byAwLCB3ZSB0aHVzIGZpbmQgdGhlIGxhc3QgbWFwcGluZyBmb3JcbiAgICAvLyB0aGUgZ2l2ZW4gbGluZSwgcHJvdmlkZWQgc3VjaCBhIG1hcHBpbmcgZXhpc3RzLlxuICAgIHZhciBuZWVkbGUgPSB7XG4gICAgICBzb3VyY2U6IHV0aWwuZ2V0QXJnKGFBcmdzLCAnc291cmNlJyksXG4gICAgICBvcmlnaW5hbExpbmU6IGxpbmUsXG4gICAgICBvcmlnaW5hbENvbHVtbjogdXRpbC5nZXRBcmcoYUFyZ3MsICdjb2x1bW4nLCAwKVxuICAgIH07XG5cbiAgICBpZiAodGhpcy5zb3VyY2VSb290ICE9IG51bGwpIHtcbiAgICAgIG5lZWRsZS5zb3VyY2UgPSB1dGlsLnJlbGF0aXZlKHRoaXMuc291cmNlUm9vdCwgbmVlZGxlLnNvdXJjZSk7XG4gICAgfVxuICAgIGlmICghdGhpcy5fc291cmNlcy5oYXMobmVlZGxlLnNvdXJjZSkpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgbmVlZGxlLnNvdXJjZSA9IHRoaXMuX3NvdXJjZXMuaW5kZXhPZihuZWVkbGUuc291cmNlKTtcblxuICAgIHZhciBtYXBwaW5ncyA9IFtdO1xuXG4gICAgdmFyIGluZGV4ID0gdGhpcy5fZmluZE1hcHBpbmcobmVlZGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX29yaWdpbmFsTWFwcGluZ3MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvcmlnaW5hbExpbmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm9yaWdpbmFsQ29sdW1uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbC5jb21wYXJlQnlPcmlnaW5hbFBvc2l0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5hcnlTZWFyY2guTEVBU1RfVVBQRVJfQk9VTkQpO1xuICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICB2YXIgbWFwcGluZyA9IHRoaXMuX29yaWdpbmFsTWFwcGluZ3NbaW5kZXhdO1xuXG4gICAgICBpZiAoYUFyZ3MuY29sdW1uID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdmFyIG9yaWdpbmFsTGluZSA9IG1hcHBpbmcub3JpZ2luYWxMaW5lO1xuXG4gICAgICAgIC8vIEl0ZXJhdGUgdW50aWwgZWl0aGVyIHdlIHJ1biBvdXQgb2YgbWFwcGluZ3MsIG9yIHdlIHJ1biBpbnRvXG4gICAgICAgIC8vIGEgbWFwcGluZyBmb3IgYSBkaWZmZXJlbnQgbGluZSB0aGFuIHRoZSBvbmUgd2UgZm91bmQuIFNpbmNlXG4gICAgICAgIC8vIG1hcHBpbmdzIGFyZSBzb3J0ZWQsIHRoaXMgaXMgZ3VhcmFudGVlZCB0byBmaW5kIGFsbCBtYXBwaW5ncyBmb3JcbiAgICAgICAgLy8gdGhlIGxpbmUgd2UgZm91bmQuXG4gICAgICAgIHdoaWxlIChtYXBwaW5nICYmIG1hcHBpbmcub3JpZ2luYWxMaW5lID09PSBvcmlnaW5hbExpbmUpIHtcbiAgICAgICAgICBtYXBwaW5ncy5wdXNoKHtcbiAgICAgICAgICAgIGxpbmU6IHV0aWwuZ2V0QXJnKG1hcHBpbmcsICdnZW5lcmF0ZWRMaW5lJywgbnVsbCksXG4gICAgICAgICAgICBjb2x1bW46IHV0aWwuZ2V0QXJnKG1hcHBpbmcsICdnZW5lcmF0ZWRDb2x1bW4nLCBudWxsKSxcbiAgICAgICAgICAgIGxhc3RDb2x1bW46IHV0aWwuZ2V0QXJnKG1hcHBpbmcsICdsYXN0R2VuZXJhdGVkQ29sdW1uJywgbnVsbClcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIG1hcHBpbmcgPSB0aGlzLl9vcmlnaW5hbE1hcHBpbmdzWysraW5kZXhdO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgb3JpZ2luYWxDb2x1bW4gPSBtYXBwaW5nLm9yaWdpbmFsQ29sdW1uO1xuXG4gICAgICAgIC8vIEl0ZXJhdGUgdW50aWwgZWl0aGVyIHdlIHJ1biBvdXQgb2YgbWFwcGluZ3MsIG9yIHdlIHJ1biBpbnRvXG4gICAgICAgIC8vIGEgbWFwcGluZyBmb3IgYSBkaWZmZXJlbnQgbGluZSB0aGFuIHRoZSBvbmUgd2Ugd2VyZSBzZWFyY2hpbmcgZm9yLlxuICAgICAgICAvLyBTaW5jZSBtYXBwaW5ncyBhcmUgc29ydGVkLCB0aGlzIGlzIGd1YXJhbnRlZWQgdG8gZmluZCBhbGwgbWFwcGluZ3MgZm9yXG4gICAgICAgIC8vIHRoZSBsaW5lIHdlIGFyZSBzZWFyY2hpbmcgZm9yLlxuICAgICAgICB3aGlsZSAobWFwcGluZyAmJlxuICAgICAgICAgICAgICAgbWFwcGluZy5vcmlnaW5hbExpbmUgPT09IGxpbmUgJiZcbiAgICAgICAgICAgICAgIG1hcHBpbmcub3JpZ2luYWxDb2x1bW4gPT0gb3JpZ2luYWxDb2x1bW4pIHtcbiAgICAgICAgICBtYXBwaW5ncy5wdXNoKHtcbiAgICAgICAgICAgIGxpbmU6IHV0aWwuZ2V0QXJnKG1hcHBpbmcsICdnZW5lcmF0ZWRMaW5lJywgbnVsbCksXG4gICAgICAgICAgICBjb2x1bW46IHV0aWwuZ2V0QXJnKG1hcHBpbmcsICdnZW5lcmF0ZWRDb2x1bW4nLCBudWxsKSxcbiAgICAgICAgICAgIGxhc3RDb2x1bW46IHV0aWwuZ2V0QXJnKG1hcHBpbmcsICdsYXN0R2VuZXJhdGVkQ29sdW1uJywgbnVsbClcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIG1hcHBpbmcgPSB0aGlzLl9vcmlnaW5hbE1hcHBpbmdzWysraW5kZXhdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG1hcHBpbmdzO1xuICB9O1xuXG5leHBvcnRzLlNvdXJjZU1hcENvbnN1bWVyID0gU291cmNlTWFwQ29uc3VtZXI7XG5cbi8qKlxuICogQSBCYXNpY1NvdXJjZU1hcENvbnN1bWVyIGluc3RhbmNlIHJlcHJlc2VudHMgYSBwYXJzZWQgc291cmNlIG1hcCB3aGljaCB3ZSBjYW5cbiAqIHF1ZXJ5IGZvciBpbmZvcm1hdGlvbiBhYm91dCB0aGUgb3JpZ2luYWwgZmlsZSBwb3NpdGlvbnMgYnkgZ2l2aW5nIGl0IGEgZmlsZVxuICogcG9zaXRpb24gaW4gdGhlIGdlbmVyYXRlZCBzb3VyY2UuXG4gKlxuICogVGhlIG9ubHkgcGFyYW1ldGVyIGlzIHRoZSByYXcgc291cmNlIG1hcCAoZWl0aGVyIGFzIGEgSlNPTiBzdHJpbmcsIG9yXG4gKiBhbHJlYWR5IHBhcnNlZCB0byBhbiBvYmplY3QpLiBBY2NvcmRpbmcgdG8gdGhlIHNwZWMsIHNvdXJjZSBtYXBzIGhhdmUgdGhlXG4gKiBmb2xsb3dpbmcgYXR0cmlidXRlczpcbiAqXG4gKiAgIC0gdmVyc2lvbjogV2hpY2ggdmVyc2lvbiBvZiB0aGUgc291cmNlIG1hcCBzcGVjIHRoaXMgbWFwIGlzIGZvbGxvd2luZy5cbiAqICAgLSBzb3VyY2VzOiBBbiBhcnJheSBvZiBVUkxzIHRvIHRoZSBvcmlnaW5hbCBzb3VyY2UgZmlsZXMuXG4gKiAgIC0gbmFtZXM6IEFuIGFycmF5IG9mIGlkZW50aWZpZXJzIHdoaWNoIGNhbiBiZSByZWZlcnJlbmNlZCBieSBpbmRpdmlkdWFsIG1hcHBpbmdzLlxuICogICAtIHNvdXJjZVJvb3Q6IE9wdGlvbmFsLiBUaGUgVVJMIHJvb3QgZnJvbSB3aGljaCBhbGwgc291cmNlcyBhcmUgcmVsYXRpdmUuXG4gKiAgIC0gc291cmNlc0NvbnRlbnQ6IE9wdGlvbmFsLiBBbiBhcnJheSBvZiBjb250ZW50cyBvZiB0aGUgb3JpZ2luYWwgc291cmNlIGZpbGVzLlxuICogICAtIG1hcHBpbmdzOiBBIHN0cmluZyBvZiBiYXNlNjQgVkxRcyB3aGljaCBjb250YWluIHRoZSBhY3R1YWwgbWFwcGluZ3MuXG4gKiAgIC0gZmlsZTogT3B0aW9uYWwuIFRoZSBnZW5lcmF0ZWQgZmlsZSB0aGlzIHNvdXJjZSBtYXAgaXMgYXNzb2NpYXRlZCB3aXRoLlxuICpcbiAqIEhlcmUgaXMgYW4gZXhhbXBsZSBzb3VyY2UgbWFwLCB0YWtlbiBmcm9tIHRoZSBzb3VyY2UgbWFwIHNwZWNbMF06XG4gKlxuICogICAgIHtcbiAqICAgICAgIHZlcnNpb24gOiAzLFxuICogICAgICAgZmlsZTogXCJvdXQuanNcIixcbiAqICAgICAgIHNvdXJjZVJvb3QgOiBcIlwiLFxuICogICAgICAgc291cmNlczogW1wiZm9vLmpzXCIsIFwiYmFyLmpzXCJdLFxuICogICAgICAgbmFtZXM6IFtcInNyY1wiLCBcIm1hcHNcIiwgXCJhcmVcIiwgXCJmdW5cIl0sXG4gKiAgICAgICBtYXBwaW5nczogXCJBQSxBQjs7QUJDREU7XCJcbiAqICAgICB9XG4gKlxuICogWzBdOiBodHRwczovL2RvY3MuZ29vZ2xlLmNvbS9kb2N1bWVudC9kLzFVMVJHQWVoUXdSeXBVVG92RjFLUmxwaU9GemUwYi1fMmdjNmZBSDBLWTBrL2VkaXQ/cGxpPTEjXG4gKi9cbmZ1bmN0aW9uIEJhc2ljU291cmNlTWFwQ29uc3VtZXIoYVNvdXJjZU1hcCkge1xuICB2YXIgc291cmNlTWFwID0gYVNvdXJjZU1hcDtcbiAgaWYgKHR5cGVvZiBhU291cmNlTWFwID09PSAnc3RyaW5nJykge1xuICAgIHNvdXJjZU1hcCA9IEpTT04ucGFyc2UoYVNvdXJjZU1hcC5yZXBsYWNlKC9eXFwpXFxdXFx9Jy8sICcnKSk7XG4gIH1cblxuICB2YXIgdmVyc2lvbiA9IHV0aWwuZ2V0QXJnKHNvdXJjZU1hcCwgJ3ZlcnNpb24nKTtcbiAgdmFyIHNvdXJjZXMgPSB1dGlsLmdldEFyZyhzb3VyY2VNYXAsICdzb3VyY2VzJyk7XG4gIC8vIFNhc3MgMy4zIGxlYXZlcyBvdXQgdGhlICduYW1lcycgYXJyYXksIHNvIHdlIGRldmlhdGUgZnJvbSB0aGUgc3BlYyAod2hpY2hcbiAgLy8gcmVxdWlyZXMgdGhlIGFycmF5KSB0byBwbGF5IG5pY2UgaGVyZS5cbiAgdmFyIG5hbWVzID0gdXRpbC5nZXRBcmcoc291cmNlTWFwLCAnbmFtZXMnLCBbXSk7XG4gIHZhciBzb3VyY2VSb290ID0gdXRpbC5nZXRBcmcoc291cmNlTWFwLCAnc291cmNlUm9vdCcsIG51bGwpO1xuICB2YXIgc291cmNlc0NvbnRlbnQgPSB1dGlsLmdldEFyZyhzb3VyY2VNYXAsICdzb3VyY2VzQ29udGVudCcsIG51bGwpO1xuICB2YXIgbWFwcGluZ3MgPSB1dGlsLmdldEFyZyhzb3VyY2VNYXAsICdtYXBwaW5ncycpO1xuICB2YXIgZmlsZSA9IHV0aWwuZ2V0QXJnKHNvdXJjZU1hcCwgJ2ZpbGUnLCBudWxsKTtcblxuICAvLyBPbmNlIGFnYWluLCBTYXNzIGRldmlhdGVzIGZyb20gdGhlIHNwZWMgYW5kIHN1cHBsaWVzIHRoZSB2ZXJzaW9uIGFzIGFcbiAgLy8gc3RyaW5nIHJhdGhlciB0aGFuIGEgbnVtYmVyLCBzbyB3ZSB1c2UgbG9vc2UgZXF1YWxpdHkgY2hlY2tpbmcgaGVyZS5cbiAgaWYgKHZlcnNpb24gIT0gdGhpcy5fdmVyc2lvbikge1xuICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgdmVyc2lvbjogJyArIHZlcnNpb24pO1xuICB9XG5cbiAgc291cmNlcyA9IHNvdXJjZXNcbiAgICAubWFwKFN0cmluZylcbiAgICAvLyBTb21lIHNvdXJjZSBtYXBzIHByb2R1Y2UgcmVsYXRpdmUgc291cmNlIHBhdGhzIGxpa2UgXCIuL2Zvby5qc1wiIGluc3RlYWQgb2ZcbiAgICAvLyBcImZvby5qc1wiLiAgTm9ybWFsaXplIHRoZXNlIGZpcnN0IHNvIHRoYXQgZnV0dXJlIGNvbXBhcmlzb25zIHdpbGwgc3VjY2VlZC5cbiAgICAvLyBTZWUgYnVnemlsLmxhLzEwOTA3NjguXG4gICAgLm1hcCh1dGlsLm5vcm1hbGl6ZSlcbiAgICAvLyBBbHdheXMgZW5zdXJlIHRoYXQgYWJzb2x1dGUgc291cmNlcyBhcmUgaW50ZXJuYWxseSBzdG9yZWQgcmVsYXRpdmUgdG9cbiAgICAvLyB0aGUgc291cmNlIHJvb3QsIGlmIHRoZSBzb3VyY2Ugcm9vdCBpcyBhYnNvbHV0ZS4gTm90IGRvaW5nIHRoaXMgd291bGRcbiAgICAvLyBiZSBwYXJ0aWN1bGFybHkgcHJvYmxlbWF0aWMgd2hlbiB0aGUgc291cmNlIHJvb3QgaXMgYSBwcmVmaXggb2YgdGhlXG4gICAgLy8gc291cmNlICh2YWxpZCwgYnV0IHdoeT8/KS4gU2VlIGdpdGh1YiBpc3N1ZSAjMTk5IGFuZCBidWd6aWwubGEvMTE4ODk4Mi5cbiAgICAubWFwKGZ1bmN0aW9uIChzb3VyY2UpIHtcbiAgICAgIHJldHVybiBzb3VyY2VSb290ICYmIHV0aWwuaXNBYnNvbHV0ZShzb3VyY2VSb290KSAmJiB1dGlsLmlzQWJzb2x1dGUoc291cmNlKVxuICAgICAgICA/IHV0aWwucmVsYXRpdmUoc291cmNlUm9vdCwgc291cmNlKVxuICAgICAgICA6IHNvdXJjZTtcbiAgICB9KTtcblxuICAvLyBQYXNzIGB0cnVlYCBiZWxvdyB0byBhbGxvdyBkdXBsaWNhdGUgbmFtZXMgYW5kIHNvdXJjZXMuIFdoaWxlIHNvdXJjZSBtYXBzXG4gIC8vIGFyZSBpbnRlbmRlZCB0byBiZSBjb21wcmVzc2VkIGFuZCBkZWR1cGxpY2F0ZWQsIHRoZSBUeXBlU2NyaXB0IGNvbXBpbGVyXG4gIC8vIHNvbWV0aW1lcyBnZW5lcmF0ZXMgc291cmNlIG1hcHMgd2l0aCBkdXBsaWNhdGVzIGluIHRoZW0uIFNlZSBHaXRodWIgaXNzdWVcbiAgLy8gIzcyIGFuZCBidWd6aWwubGEvODg5NDkyLlxuICB0aGlzLl9uYW1lcyA9IEFycmF5U2V0LmZyb21BcnJheShuYW1lcy5tYXAoU3RyaW5nKSwgdHJ1ZSk7XG4gIHRoaXMuX3NvdXJjZXMgPSBBcnJheVNldC5mcm9tQXJyYXkoc291cmNlcywgdHJ1ZSk7XG5cbiAgdGhpcy5zb3VyY2VSb290ID0gc291cmNlUm9vdDtcbiAgdGhpcy5zb3VyY2VzQ29udGVudCA9IHNvdXJjZXNDb250ZW50O1xuICB0aGlzLl9tYXBwaW5ncyA9IG1hcHBpbmdzO1xuICB0aGlzLmZpbGUgPSBmaWxlO1xufVxuXG5CYXNpY1NvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlKTtcbkJhc2ljU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLmNvbnN1bWVyID0gU291cmNlTWFwQ29uc3VtZXI7XG5cbi8qKlxuICogQ3JlYXRlIGEgQmFzaWNTb3VyY2VNYXBDb25zdW1lciBmcm9tIGEgU291cmNlTWFwR2VuZXJhdG9yLlxuICpcbiAqIEBwYXJhbSBTb3VyY2VNYXBHZW5lcmF0b3IgYVNvdXJjZU1hcFxuICogICAgICAgIFRoZSBzb3VyY2UgbWFwIHRoYXQgd2lsbCBiZSBjb25zdW1lZC5cbiAqIEByZXR1cm5zIEJhc2ljU291cmNlTWFwQ29uc3VtZXJcbiAqL1xuQmFzaWNTb3VyY2VNYXBDb25zdW1lci5mcm9tU291cmNlTWFwID1cbiAgZnVuY3Rpb24gU291cmNlTWFwQ29uc3VtZXJfZnJvbVNvdXJjZU1hcChhU291cmNlTWFwKSB7XG4gICAgdmFyIHNtYyA9IE9iamVjdC5jcmVhdGUoQmFzaWNTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUpO1xuXG4gICAgdmFyIG5hbWVzID0gc21jLl9uYW1lcyA9IEFycmF5U2V0LmZyb21BcnJheShhU291cmNlTWFwLl9uYW1lcy50b0FycmF5KCksIHRydWUpO1xuICAgIHZhciBzb3VyY2VzID0gc21jLl9zb3VyY2VzID0gQXJyYXlTZXQuZnJvbUFycmF5KGFTb3VyY2VNYXAuX3NvdXJjZXMudG9BcnJheSgpLCB0cnVlKTtcbiAgICBzbWMuc291cmNlUm9vdCA9IGFTb3VyY2VNYXAuX3NvdXJjZVJvb3Q7XG4gICAgc21jLnNvdXJjZXNDb250ZW50ID0gYVNvdXJjZU1hcC5fZ2VuZXJhdGVTb3VyY2VzQ29udGVudChzbWMuX3NvdXJjZXMudG9BcnJheSgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc21jLnNvdXJjZVJvb3QpO1xuICAgIHNtYy5maWxlID0gYVNvdXJjZU1hcC5fZmlsZTtcblxuICAgIC8vIEJlY2F1c2Ugd2UgYXJlIG1vZGlmeWluZyB0aGUgZW50cmllcyAoYnkgY29udmVydGluZyBzdHJpbmcgc291cmNlcyBhbmRcbiAgICAvLyBuYW1lcyB0byBpbmRpY2VzIGludG8gdGhlIHNvdXJjZXMgYW5kIG5hbWVzIEFycmF5U2V0cyksIHdlIGhhdmUgdG8gbWFrZVxuICAgIC8vIGEgY29weSBvZiB0aGUgZW50cnkgb3IgZWxzZSBiYWQgdGhpbmdzIGhhcHBlbi4gU2hhcmVkIG11dGFibGUgc3RhdGVcbiAgICAvLyBzdHJpa2VzIGFnYWluISBTZWUgZ2l0aHViIGlzc3VlICMxOTEuXG5cbiAgICB2YXIgZ2VuZXJhdGVkTWFwcGluZ3MgPSBhU291cmNlTWFwLl9tYXBwaW5ncy50b0FycmF5KCkuc2xpY2UoKTtcbiAgICB2YXIgZGVzdEdlbmVyYXRlZE1hcHBpbmdzID0gc21jLl9fZ2VuZXJhdGVkTWFwcGluZ3MgPSBbXTtcbiAgICB2YXIgZGVzdE9yaWdpbmFsTWFwcGluZ3MgPSBzbWMuX19vcmlnaW5hbE1hcHBpbmdzID0gW107XG5cbiAgICBmb3IgKHZhciBpID0gMCwgbGVuZ3RoID0gZ2VuZXJhdGVkTWFwcGluZ3MubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBzcmNNYXBwaW5nID0gZ2VuZXJhdGVkTWFwcGluZ3NbaV07XG4gICAgICB2YXIgZGVzdE1hcHBpbmcgPSBuZXcgTWFwcGluZztcbiAgICAgIGRlc3RNYXBwaW5nLmdlbmVyYXRlZExpbmUgPSBzcmNNYXBwaW5nLmdlbmVyYXRlZExpbmU7XG4gICAgICBkZXN0TWFwcGluZy5nZW5lcmF0ZWRDb2x1bW4gPSBzcmNNYXBwaW5nLmdlbmVyYXRlZENvbHVtbjtcblxuICAgICAgaWYgKHNyY01hcHBpbmcuc291cmNlKSB7XG4gICAgICAgIGRlc3RNYXBwaW5nLnNvdXJjZSA9IHNvdXJjZXMuaW5kZXhPZihzcmNNYXBwaW5nLnNvdXJjZSk7XG4gICAgICAgIGRlc3RNYXBwaW5nLm9yaWdpbmFsTGluZSA9IHNyY01hcHBpbmcub3JpZ2luYWxMaW5lO1xuICAgICAgICBkZXN0TWFwcGluZy5vcmlnaW5hbENvbHVtbiA9IHNyY01hcHBpbmcub3JpZ2luYWxDb2x1bW47XG5cbiAgICAgICAgaWYgKHNyY01hcHBpbmcubmFtZSkge1xuICAgICAgICAgIGRlc3RNYXBwaW5nLm5hbWUgPSBuYW1lcy5pbmRleE9mKHNyY01hcHBpbmcubmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICBkZXN0T3JpZ2luYWxNYXBwaW5ncy5wdXNoKGRlc3RNYXBwaW5nKTtcbiAgICAgIH1cblxuICAgICAgZGVzdEdlbmVyYXRlZE1hcHBpbmdzLnB1c2goZGVzdE1hcHBpbmcpO1xuICAgIH1cblxuICAgIHF1aWNrU29ydChzbWMuX19vcmlnaW5hbE1hcHBpbmdzLCB1dGlsLmNvbXBhcmVCeU9yaWdpbmFsUG9zaXRpb25zKTtcblxuICAgIHJldHVybiBzbWM7XG4gIH07XG5cbi8qKlxuICogVGhlIHZlcnNpb24gb2YgdGhlIHNvdXJjZSBtYXBwaW5nIHNwZWMgdGhhdCB3ZSBhcmUgY29uc3VtaW5nLlxuICovXG5CYXNpY1NvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5fdmVyc2lvbiA9IDM7XG5cbi8qKlxuICogVGhlIGxpc3Qgb2Ygb3JpZ2luYWwgc291cmNlcy5cbiAqL1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KEJhc2ljU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLCAnc291cmNlcycsIHtcbiAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NvdXJjZXMudG9BcnJheSgpLm1hcChmdW5jdGlvbiAocykge1xuICAgICAgcmV0dXJuIHRoaXMuc291cmNlUm9vdCAhPSBudWxsID8gdXRpbC5qb2luKHRoaXMuc291cmNlUm9vdCwgcykgOiBzO1xuICAgIH0sIHRoaXMpO1xuICB9XG59KTtcblxuLyoqXG4gKiBQcm92aWRlIHRoZSBKSVQgd2l0aCBhIG5pY2Ugc2hhcGUgLyBoaWRkZW4gY2xhc3MuXG4gKi9cbmZ1bmN0aW9uIE1hcHBpbmcoKSB7XG4gIHRoaXMuZ2VuZXJhdGVkTGluZSA9IDA7XG4gIHRoaXMuZ2VuZXJhdGVkQ29sdW1uID0gMDtcbiAgdGhpcy5zb3VyY2UgPSBudWxsO1xuICB0aGlzLm9yaWdpbmFsTGluZSA9IG51bGw7XG4gIHRoaXMub3JpZ2luYWxDb2x1bW4gPSBudWxsO1xuICB0aGlzLm5hbWUgPSBudWxsO1xufVxuXG4vKipcbiAqIFBhcnNlIHRoZSBtYXBwaW5ncyBpbiBhIHN0cmluZyBpbiB0byBhIGRhdGEgc3RydWN0dXJlIHdoaWNoIHdlIGNhbiBlYXNpbHlcbiAqIHF1ZXJ5ICh0aGUgb3JkZXJlZCBhcnJheXMgaW4gdGhlIGB0aGlzLl9fZ2VuZXJhdGVkTWFwcGluZ3NgIGFuZFxuICogYHRoaXMuX19vcmlnaW5hbE1hcHBpbmdzYCBwcm9wZXJ0aWVzKS5cbiAqL1xuQmFzaWNTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUuX3BhcnNlTWFwcGluZ3MgPVxuICBmdW5jdGlvbiBTb3VyY2VNYXBDb25zdW1lcl9wYXJzZU1hcHBpbmdzKGFTdHIsIGFTb3VyY2VSb290KSB7XG4gICAgdmFyIGdlbmVyYXRlZExpbmUgPSAxO1xuICAgIHZhciBwcmV2aW91c0dlbmVyYXRlZENvbHVtbiA9IDA7XG4gICAgdmFyIHByZXZpb3VzT3JpZ2luYWxMaW5lID0gMDtcbiAgICB2YXIgcHJldmlvdXNPcmlnaW5hbENvbHVtbiA9IDA7XG4gICAgdmFyIHByZXZpb3VzU291cmNlID0gMDtcbiAgICB2YXIgcHJldmlvdXNOYW1lID0gMDtcbiAgICB2YXIgbGVuZ3RoID0gYVN0ci5sZW5ndGg7XG4gICAgdmFyIGluZGV4ID0gMDtcbiAgICB2YXIgY2FjaGVkU2VnbWVudHMgPSB7fTtcbiAgICB2YXIgdGVtcCA9IHt9O1xuICAgIHZhciBvcmlnaW5hbE1hcHBpbmdzID0gW107XG4gICAgdmFyIGdlbmVyYXRlZE1hcHBpbmdzID0gW107XG4gICAgdmFyIG1hcHBpbmcsIHN0ciwgc2VnbWVudCwgZW5kLCB2YWx1ZTtcblxuICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgICAgaWYgKGFTdHIuY2hhckF0KGluZGV4KSA9PT0gJzsnKSB7XG4gICAgICAgIGdlbmVyYXRlZExpbmUrKztcbiAgICAgICAgaW5kZXgrKztcbiAgICAgICAgcHJldmlvdXNHZW5lcmF0ZWRDb2x1bW4gPSAwO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAoYVN0ci5jaGFyQXQoaW5kZXgpID09PSAnLCcpIHtcbiAgICAgICAgaW5kZXgrKztcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICBtYXBwaW5nID0gbmV3IE1hcHBpbmcoKTtcbiAgICAgICAgbWFwcGluZy5nZW5lcmF0ZWRMaW5lID0gZ2VuZXJhdGVkTGluZTtcblxuICAgICAgICAvLyBCZWNhdXNlIGVhY2ggb2Zmc2V0IGlzIGVuY29kZWQgcmVsYXRpdmUgdG8gdGhlIHByZXZpb3VzIG9uZSxcbiAgICAgICAgLy8gbWFueSBzZWdtZW50cyBvZnRlbiBoYXZlIHRoZSBzYW1lIGVuY29kaW5nLiBXZSBjYW4gZXhwbG9pdCB0aGlzXG4gICAgICAgIC8vIGZhY3QgYnkgY2FjaGluZyB0aGUgcGFyc2VkIHZhcmlhYmxlIGxlbmd0aCBmaWVsZHMgb2YgZWFjaCBzZWdtZW50LFxuICAgICAgICAvLyBhbGxvd2luZyB1cyB0byBhdm9pZCBhIHNlY29uZCBwYXJzZSBpZiB3ZSBlbmNvdW50ZXIgdGhlIHNhbWVcbiAgICAgICAgLy8gc2VnbWVudCBhZ2Fpbi5cbiAgICAgICAgZm9yIChlbmQgPSBpbmRleDsgZW5kIDwgbGVuZ3RoOyBlbmQrKykge1xuICAgICAgICAgIGlmICh0aGlzLl9jaGFySXNNYXBwaW5nU2VwYXJhdG9yKGFTdHIsIGVuZCkpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBzdHIgPSBhU3RyLnNsaWNlKGluZGV4LCBlbmQpO1xuXG4gICAgICAgIHNlZ21lbnQgPSBjYWNoZWRTZWdtZW50c1tzdHJdO1xuICAgICAgICBpZiAoc2VnbWVudCkge1xuICAgICAgICAgIGluZGV4ICs9IHN0ci5sZW5ndGg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2VnbWVudCA9IFtdO1xuICAgICAgICAgIHdoaWxlIChpbmRleCA8IGVuZCkge1xuICAgICAgICAgICAgYmFzZTY0VkxRLmRlY29kZShhU3RyLCBpbmRleCwgdGVtcCk7XG4gICAgICAgICAgICB2YWx1ZSA9IHRlbXAudmFsdWU7XG4gICAgICAgICAgICBpbmRleCA9IHRlbXAucmVzdDtcbiAgICAgICAgICAgIHNlZ21lbnQucHVzaCh2YWx1ZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHNlZ21lbnQubGVuZ3RoID09PSAyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZvdW5kIGEgc291cmNlLCBidXQgbm8gbGluZSBhbmQgY29sdW1uJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHNlZ21lbnQubGVuZ3RoID09PSAzKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZvdW5kIGEgc291cmNlIGFuZCBsaW5lLCBidXQgbm8gY29sdW1uJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY2FjaGVkU2VnbWVudHNbc3RyXSA9IHNlZ21lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBHZW5lcmF0ZWQgY29sdW1uLlxuICAgICAgICBtYXBwaW5nLmdlbmVyYXRlZENvbHVtbiA9IHByZXZpb3VzR2VuZXJhdGVkQ29sdW1uICsgc2VnbWVudFswXTtcbiAgICAgICAgcHJldmlvdXNHZW5lcmF0ZWRDb2x1bW4gPSBtYXBwaW5nLmdlbmVyYXRlZENvbHVtbjtcblxuICAgICAgICBpZiAoc2VnbWVudC5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgLy8gT3JpZ2luYWwgc291cmNlLlxuICAgICAgICAgIG1hcHBpbmcuc291cmNlID0gcHJldmlvdXNTb3VyY2UgKyBzZWdtZW50WzFdO1xuICAgICAgICAgIHByZXZpb3VzU291cmNlICs9IHNlZ21lbnRbMV07XG5cbiAgICAgICAgICAvLyBPcmlnaW5hbCBsaW5lLlxuICAgICAgICAgIG1hcHBpbmcub3JpZ2luYWxMaW5lID0gcHJldmlvdXNPcmlnaW5hbExpbmUgKyBzZWdtZW50WzJdO1xuICAgICAgICAgIHByZXZpb3VzT3JpZ2luYWxMaW5lID0gbWFwcGluZy5vcmlnaW5hbExpbmU7XG4gICAgICAgICAgLy8gTGluZXMgYXJlIHN0b3JlZCAwLWJhc2VkXG4gICAgICAgICAgbWFwcGluZy5vcmlnaW5hbExpbmUgKz0gMTtcblxuICAgICAgICAgIC8vIE9yaWdpbmFsIGNvbHVtbi5cbiAgICAgICAgICBtYXBwaW5nLm9yaWdpbmFsQ29sdW1uID0gcHJldmlvdXNPcmlnaW5hbENvbHVtbiArIHNlZ21lbnRbM107XG4gICAgICAgICAgcHJldmlvdXNPcmlnaW5hbENvbHVtbiA9IG1hcHBpbmcub3JpZ2luYWxDb2x1bW47XG5cbiAgICAgICAgICBpZiAoc2VnbWVudC5sZW5ndGggPiA0KSB7XG4gICAgICAgICAgICAvLyBPcmlnaW5hbCBuYW1lLlxuICAgICAgICAgICAgbWFwcGluZy5uYW1lID0gcHJldmlvdXNOYW1lICsgc2VnbWVudFs0XTtcbiAgICAgICAgICAgIHByZXZpb3VzTmFtZSArPSBzZWdtZW50WzRdO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGdlbmVyYXRlZE1hcHBpbmdzLnB1c2gobWFwcGluZyk7XG4gICAgICAgIGlmICh0eXBlb2YgbWFwcGluZy5vcmlnaW5hbExpbmUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgb3JpZ2luYWxNYXBwaW5ncy5wdXNoKG1hcHBpbmcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcXVpY2tTb3J0KGdlbmVyYXRlZE1hcHBpbmdzLCB1dGlsLmNvbXBhcmVCeUdlbmVyYXRlZFBvc2l0aW9uc0RlZmxhdGVkKTtcbiAgICB0aGlzLl9fZ2VuZXJhdGVkTWFwcGluZ3MgPSBnZW5lcmF0ZWRNYXBwaW5ncztcblxuICAgIHF1aWNrU29ydChvcmlnaW5hbE1hcHBpbmdzLCB1dGlsLmNvbXBhcmVCeU9yaWdpbmFsUG9zaXRpb25zKTtcbiAgICB0aGlzLl9fb3JpZ2luYWxNYXBwaW5ncyA9IG9yaWdpbmFsTWFwcGluZ3M7XG4gIH07XG5cbi8qKlxuICogRmluZCB0aGUgbWFwcGluZyB0aGF0IGJlc3QgbWF0Y2hlcyB0aGUgaHlwb3RoZXRpY2FsIFwibmVlZGxlXCIgbWFwcGluZyB0aGF0XG4gKiB3ZSBhcmUgc2VhcmNoaW5nIGZvciBpbiB0aGUgZ2l2ZW4gXCJoYXlzdGFja1wiIG9mIG1hcHBpbmdzLlxuICovXG5CYXNpY1NvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5fZmluZE1hcHBpbmcgPVxuICBmdW5jdGlvbiBTb3VyY2VNYXBDb25zdW1lcl9maW5kTWFwcGluZyhhTmVlZGxlLCBhTWFwcGluZ3MsIGFMaW5lTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYUNvbHVtbk5hbWUsIGFDb21wYXJhdG9yLCBhQmlhcykge1xuICAgIC8vIFRvIHJldHVybiB0aGUgcG9zaXRpb24gd2UgYXJlIHNlYXJjaGluZyBmb3IsIHdlIG11c3QgZmlyc3QgZmluZCB0aGVcbiAgICAvLyBtYXBwaW5nIGZvciB0aGUgZ2l2ZW4gcG9zaXRpb24gYW5kIHRoZW4gcmV0dXJuIHRoZSBvcHBvc2l0ZSBwb3NpdGlvbiBpdFxuICAgIC8vIHBvaW50cyB0by4gQmVjYXVzZSB0aGUgbWFwcGluZ3MgYXJlIHNvcnRlZCwgd2UgY2FuIHVzZSBiaW5hcnkgc2VhcmNoIHRvXG4gICAgLy8gZmluZCB0aGUgYmVzdCBtYXBwaW5nLlxuXG4gICAgaWYgKGFOZWVkbGVbYUxpbmVOYW1lXSA8PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdMaW5lIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDEsIGdvdCAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICsgYU5lZWRsZVthTGluZU5hbWVdKTtcbiAgICB9XG4gICAgaWYgKGFOZWVkbGVbYUNvbHVtbk5hbWVdIDwgMCkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQ29sdW1uIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDAsIGdvdCAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICsgYU5lZWRsZVthQ29sdW1uTmFtZV0pO1xuICAgIH1cblxuICAgIHJldHVybiBiaW5hcnlTZWFyY2guc2VhcmNoKGFOZWVkbGUsIGFNYXBwaW5ncywgYUNvbXBhcmF0b3IsIGFCaWFzKTtcbiAgfTtcblxuLyoqXG4gKiBDb21wdXRlIHRoZSBsYXN0IGNvbHVtbiBmb3IgZWFjaCBnZW5lcmF0ZWQgbWFwcGluZy4gVGhlIGxhc3QgY29sdW1uIGlzXG4gKiBpbmNsdXNpdmUuXG4gKi9cbkJhc2ljU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLmNvbXB1dGVDb2x1bW5TcGFucyA9XG4gIGZ1bmN0aW9uIFNvdXJjZU1hcENvbnN1bWVyX2NvbXB1dGVDb2x1bW5TcGFucygpIHtcbiAgICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5fZ2VuZXJhdGVkTWFwcGluZ3MubGVuZ3RoOyArK2luZGV4KSB7XG4gICAgICB2YXIgbWFwcGluZyA9IHRoaXMuX2dlbmVyYXRlZE1hcHBpbmdzW2luZGV4XTtcblxuICAgICAgLy8gTWFwcGluZ3MgZG8gbm90IGNvbnRhaW4gYSBmaWVsZCBmb3IgdGhlIGxhc3QgZ2VuZXJhdGVkIGNvbHVtbnQuIFdlXG4gICAgICAvLyBjYW4gY29tZSB1cCB3aXRoIGFuIG9wdGltaXN0aWMgZXN0aW1hdGUsIGhvd2V2ZXIsIGJ5IGFzc3VtaW5nIHRoYXRcbiAgICAgIC8vIG1hcHBpbmdzIGFyZSBjb250aWd1b3VzIChpLmUuIGdpdmVuIHR3byBjb25zZWN1dGl2ZSBtYXBwaW5ncywgdGhlXG4gICAgICAvLyBmaXJzdCBtYXBwaW5nIGVuZHMgd2hlcmUgdGhlIHNlY29uZCBvbmUgc3RhcnRzKS5cbiAgICAgIGlmIChpbmRleCArIDEgPCB0aGlzLl9nZW5lcmF0ZWRNYXBwaW5ncy5sZW5ndGgpIHtcbiAgICAgICAgdmFyIG5leHRNYXBwaW5nID0gdGhpcy5fZ2VuZXJhdGVkTWFwcGluZ3NbaW5kZXggKyAxXTtcblxuICAgICAgICBpZiAobWFwcGluZy5nZW5lcmF0ZWRMaW5lID09PSBuZXh0TWFwcGluZy5nZW5lcmF0ZWRMaW5lKSB7XG4gICAgICAgICAgbWFwcGluZy5sYXN0R2VuZXJhdGVkQ29sdW1uID0gbmV4dE1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uIC0gMTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBUaGUgbGFzdCBtYXBwaW5nIGZvciBlYWNoIGxpbmUgc3BhbnMgdGhlIGVudGlyZSBsaW5lLlxuICAgICAgbWFwcGluZy5sYXN0R2VuZXJhdGVkQ29sdW1uID0gSW5maW5pdHk7XG4gICAgfVxuICB9O1xuXG4vKipcbiAqIFJldHVybnMgdGhlIG9yaWdpbmFsIHNvdXJjZSwgbGluZSwgYW5kIGNvbHVtbiBpbmZvcm1hdGlvbiBmb3IgdGhlIGdlbmVyYXRlZFxuICogc291cmNlJ3MgbGluZSBhbmQgY29sdW1uIHBvc2l0aW9ucyBwcm92aWRlZC4gVGhlIG9ubHkgYXJndW1lbnQgaXMgYW4gb2JqZWN0XG4gKiB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcbiAqXG4gKiAgIC0gbGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgc291cmNlLlxuICogICAtIGNvbHVtbjogVGhlIGNvbHVtbiBudW1iZXIgaW4gdGhlIGdlbmVyYXRlZCBzb3VyY2UuXG4gKiAgIC0gYmlhczogRWl0aGVyICdTb3VyY2VNYXBDb25zdW1lci5HUkVBVEVTVF9MT1dFUl9CT1VORCcgb3JcbiAqICAgICAnU291cmNlTWFwQ29uc3VtZXIuTEVBU1RfVVBQRVJfQk9VTkQnLiBTcGVjaWZpZXMgd2hldGhlciB0byByZXR1cm4gdGhlXG4gKiAgICAgY2xvc2VzdCBlbGVtZW50IHRoYXQgaXMgc21hbGxlciB0aGFuIG9yIGdyZWF0ZXIgdGhhbiB0aGUgb25lIHdlIGFyZVxuICogICAgIHNlYXJjaGluZyBmb3IsIHJlc3BlY3RpdmVseSwgaWYgdGhlIGV4YWN0IGVsZW1lbnQgY2Fubm90IGJlIGZvdW5kLlxuICogICAgIERlZmF1bHRzIHRvICdTb3VyY2VNYXBDb25zdW1lci5HUkVBVEVTVF9MT1dFUl9CT1VORCcuXG4gKlxuICogYW5kIGFuIG9iamVjdCBpcyByZXR1cm5lZCB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcbiAqXG4gKiAgIC0gc291cmNlOiBUaGUgb3JpZ2luYWwgc291cmNlIGZpbGUsIG9yIG51bGwuXG4gKiAgIC0gbGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBvcmlnaW5hbCBzb3VyY2UsIG9yIG51bGwuXG4gKiAgIC0gY29sdW1uOiBUaGUgY29sdW1uIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlLCBvciBudWxsLlxuICogICAtIG5hbWU6IFRoZSBvcmlnaW5hbCBpZGVudGlmaWVyLCBvciBudWxsLlxuICovXG5CYXNpY1NvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5vcmlnaW5hbFBvc2l0aW9uRm9yID1cbiAgZnVuY3Rpb24gU291cmNlTWFwQ29uc3VtZXJfb3JpZ2luYWxQb3NpdGlvbkZvcihhQXJncykge1xuICAgIHZhciBuZWVkbGUgPSB7XG4gICAgICBnZW5lcmF0ZWRMaW5lOiB1dGlsLmdldEFyZyhhQXJncywgJ2xpbmUnKSxcbiAgICAgIGdlbmVyYXRlZENvbHVtbjogdXRpbC5nZXRBcmcoYUFyZ3MsICdjb2x1bW4nKVxuICAgIH07XG5cbiAgICB2YXIgaW5kZXggPSB0aGlzLl9maW5kTWFwcGluZyhcbiAgICAgIG5lZWRsZSxcbiAgICAgIHRoaXMuX2dlbmVyYXRlZE1hcHBpbmdzLFxuICAgICAgXCJnZW5lcmF0ZWRMaW5lXCIsXG4gICAgICBcImdlbmVyYXRlZENvbHVtblwiLFxuICAgICAgdXRpbC5jb21wYXJlQnlHZW5lcmF0ZWRQb3NpdGlvbnNEZWZsYXRlZCxcbiAgICAgIHV0aWwuZ2V0QXJnKGFBcmdzLCAnYmlhcycsIFNvdXJjZU1hcENvbnN1bWVyLkdSRUFURVNUX0xPV0VSX0JPVU5EKVxuICAgICk7XG5cbiAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgdmFyIG1hcHBpbmcgPSB0aGlzLl9nZW5lcmF0ZWRNYXBwaW5nc1tpbmRleF07XG5cbiAgICAgIGlmIChtYXBwaW5nLmdlbmVyYXRlZExpbmUgPT09IG5lZWRsZS5nZW5lcmF0ZWRMaW5lKSB7XG4gICAgICAgIHZhciBzb3VyY2UgPSB1dGlsLmdldEFyZyhtYXBwaW5nLCAnc291cmNlJywgbnVsbCk7XG4gICAgICAgIGlmIChzb3VyY2UgIT09IG51bGwpIHtcbiAgICAgICAgICBzb3VyY2UgPSB0aGlzLl9zb3VyY2VzLmF0KHNvdXJjZSk7XG4gICAgICAgICAgaWYgKHRoaXMuc291cmNlUm9vdCAhPSBudWxsKSB7XG4gICAgICAgICAgICBzb3VyY2UgPSB1dGlsLmpvaW4odGhpcy5zb3VyY2VSb290LCBzb3VyY2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB2YXIgbmFtZSA9IHV0aWwuZ2V0QXJnKG1hcHBpbmcsICduYW1lJywgbnVsbCk7XG4gICAgICAgIGlmIChuYW1lICE9PSBudWxsKSB7XG4gICAgICAgICAgbmFtZSA9IHRoaXMuX25hbWVzLmF0KG5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgc291cmNlOiBzb3VyY2UsXG4gICAgICAgICAgbGluZTogdXRpbC5nZXRBcmcobWFwcGluZywgJ29yaWdpbmFsTGluZScsIG51bGwpLFxuICAgICAgICAgIGNvbHVtbjogdXRpbC5nZXRBcmcobWFwcGluZywgJ29yaWdpbmFsQ29sdW1uJywgbnVsbCksXG4gICAgICAgICAgbmFtZTogbmFtZVxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBzb3VyY2U6IG51bGwsXG4gICAgICBsaW5lOiBudWxsLFxuICAgICAgY29sdW1uOiBudWxsLFxuICAgICAgbmFtZTogbnVsbFxuICAgIH07XG4gIH07XG5cbi8qKlxuICogUmV0dXJuIHRydWUgaWYgd2UgaGF2ZSB0aGUgc291cmNlIGNvbnRlbnQgZm9yIGV2ZXJ5IHNvdXJjZSBpbiB0aGUgc291cmNlXG4gKiBtYXAsIGZhbHNlIG90aGVyd2lzZS5cbiAqL1xuQmFzaWNTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUuaGFzQ29udGVudHNPZkFsbFNvdXJjZXMgPVxuICBmdW5jdGlvbiBCYXNpY1NvdXJjZU1hcENvbnN1bWVyX2hhc0NvbnRlbnRzT2ZBbGxTb3VyY2VzKCkge1xuICAgIGlmICghdGhpcy5zb3VyY2VzQ29udGVudCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zb3VyY2VzQ29udGVudC5sZW5ndGggPj0gdGhpcy5fc291cmNlcy5zaXplKCkgJiZcbiAgICAgICF0aGlzLnNvdXJjZXNDb250ZW50LnNvbWUoZnVuY3Rpb24gKHNjKSB7IHJldHVybiBzYyA9PSBudWxsOyB9KTtcbiAgfTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBvcmlnaW5hbCBzb3VyY2UgY29udGVudC4gVGhlIG9ubHkgYXJndW1lbnQgaXMgdGhlIHVybCBvZiB0aGVcbiAqIG9yaWdpbmFsIHNvdXJjZSBmaWxlLiBSZXR1cm5zIG51bGwgaWYgbm8gb3JpZ2luYWwgc291cmNlIGNvbnRlbnQgaXNcbiAqIGF2YWlsYWJsZS5cbiAqL1xuQmFzaWNTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUuc291cmNlQ29udGVudEZvciA9XG4gIGZ1bmN0aW9uIFNvdXJjZU1hcENvbnN1bWVyX3NvdXJjZUNvbnRlbnRGb3IoYVNvdXJjZSwgbnVsbE9uTWlzc2luZykge1xuICAgIGlmICghdGhpcy5zb3VyY2VzQ29udGVudCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc291cmNlUm9vdCAhPSBudWxsKSB7XG4gICAgICBhU291cmNlID0gdXRpbC5yZWxhdGl2ZSh0aGlzLnNvdXJjZVJvb3QsIGFTb3VyY2UpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9zb3VyY2VzLmhhcyhhU291cmNlKSkge1xuICAgICAgcmV0dXJuIHRoaXMuc291cmNlc0NvbnRlbnRbdGhpcy5fc291cmNlcy5pbmRleE9mKGFTb3VyY2UpXTtcbiAgICB9XG5cbiAgICB2YXIgdXJsO1xuICAgIGlmICh0aGlzLnNvdXJjZVJvb3QgIT0gbnVsbFxuICAgICAgICAmJiAodXJsID0gdXRpbC51cmxQYXJzZSh0aGlzLnNvdXJjZVJvb3QpKSkge1xuICAgICAgLy8gWFhYOiBmaWxlOi8vIFVSSXMgYW5kIGFic29sdXRlIHBhdGhzIGxlYWQgdG8gdW5leHBlY3RlZCBiZWhhdmlvciBmb3JcbiAgICAgIC8vIG1hbnkgdXNlcnMuIFdlIGNhbiBoZWxwIHRoZW0gb3V0IHdoZW4gdGhleSBleHBlY3QgZmlsZTovLyBVUklzIHRvXG4gICAgICAvLyBiZWhhdmUgbGlrZSBpdCB3b3VsZCBpZiB0aGV5IHdlcmUgcnVubmluZyBhIGxvY2FsIEhUVFAgc2VydmVyLiBTZWVcbiAgICAgIC8vIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTg4NTU5Ny5cbiAgICAgIHZhciBmaWxlVXJpQWJzUGF0aCA9IGFTb3VyY2UucmVwbGFjZSgvXmZpbGU6XFwvXFwvLywgXCJcIik7XG4gICAgICBpZiAodXJsLnNjaGVtZSA9PSBcImZpbGVcIlxuICAgICAgICAgICYmIHRoaXMuX3NvdXJjZXMuaGFzKGZpbGVVcmlBYnNQYXRoKSkge1xuICAgICAgICByZXR1cm4gdGhpcy5zb3VyY2VzQ29udGVudFt0aGlzLl9zb3VyY2VzLmluZGV4T2YoZmlsZVVyaUFic1BhdGgpXVxuICAgICAgfVxuXG4gICAgICBpZiAoKCF1cmwucGF0aCB8fCB1cmwucGF0aCA9PSBcIi9cIilcbiAgICAgICAgICAmJiB0aGlzLl9zb3VyY2VzLmhhcyhcIi9cIiArIGFTb3VyY2UpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNvdXJjZXNDb250ZW50W3RoaXMuX3NvdXJjZXMuaW5kZXhPZihcIi9cIiArIGFTb3VyY2UpXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgcmVjdXJzaXZlbHkgZnJvbVxuICAgIC8vIEluZGV4ZWRTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUuc291cmNlQ29udGVudEZvci4gSW4gdGhhdCBjYXNlLCB3ZVxuICAgIC8vIGRvbid0IHdhbnQgdG8gdGhyb3cgaWYgd2UgY2FuJ3QgZmluZCB0aGUgc291cmNlIC0gd2UganVzdCB3YW50IHRvXG4gICAgLy8gcmV0dXJuIG51bGwsIHNvIHdlIHByb3ZpZGUgYSBmbGFnIHRvIGV4aXQgZ3JhY2VmdWxseS5cbiAgICBpZiAobnVsbE9uTWlzc2luZykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdcIicgKyBhU291cmNlICsgJ1wiIGlzIG5vdCBpbiB0aGUgU291cmNlTWFwLicpO1xuICAgIH1cbiAgfTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBnZW5lcmF0ZWQgbGluZSBhbmQgY29sdW1uIGluZm9ybWF0aW9uIGZvciB0aGUgb3JpZ2luYWwgc291cmNlLFxuICogbGluZSwgYW5kIGNvbHVtbiBwb3NpdGlvbnMgcHJvdmlkZWQuIFRoZSBvbmx5IGFyZ3VtZW50IGlzIGFuIG9iamVjdCB3aXRoXG4gKiB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gKlxuICogICAtIHNvdXJjZTogVGhlIGZpbGVuYW1lIG9mIHRoZSBvcmlnaW5hbCBzb3VyY2UuXG4gKiAgIC0gbGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBvcmlnaW5hbCBzb3VyY2UuXG4gKiAgIC0gY29sdW1uOiBUaGUgY29sdW1uIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlLlxuICogICAtIGJpYXM6IEVpdGhlciAnU291cmNlTWFwQ29uc3VtZXIuR1JFQVRFU1RfTE9XRVJfQk9VTkQnIG9yXG4gKiAgICAgJ1NvdXJjZU1hcENvbnN1bWVyLkxFQVNUX1VQUEVSX0JPVU5EJy4gU3BlY2lmaWVzIHdoZXRoZXIgdG8gcmV0dXJuIHRoZVxuICogICAgIGNsb3Nlc3QgZWxlbWVudCB0aGF0IGlzIHNtYWxsZXIgdGhhbiBvciBncmVhdGVyIHRoYW4gdGhlIG9uZSB3ZSBhcmVcbiAqICAgICBzZWFyY2hpbmcgZm9yLCByZXNwZWN0aXZlbHksIGlmIHRoZSBleGFjdCBlbGVtZW50IGNhbm5vdCBiZSBmb3VuZC5cbiAqICAgICBEZWZhdWx0cyB0byAnU291cmNlTWFwQ29uc3VtZXIuR1JFQVRFU1RfTE9XRVJfQk9VTkQnLlxuICpcbiAqIGFuZCBhbiBvYmplY3QgaXMgcmV0dXJuZWQgd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gKlxuICogICAtIGxpbmU6IFRoZSBsaW5lIG51bWJlciBpbiB0aGUgZ2VuZXJhdGVkIHNvdXJjZSwgb3IgbnVsbC5cbiAqICAgLSBjb2x1bW46IFRoZSBjb2x1bW4gbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgc291cmNlLCBvciBudWxsLlxuICovXG5CYXNpY1NvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5nZW5lcmF0ZWRQb3NpdGlvbkZvciA9XG4gIGZ1bmN0aW9uIFNvdXJjZU1hcENvbnN1bWVyX2dlbmVyYXRlZFBvc2l0aW9uRm9yKGFBcmdzKSB7XG4gICAgdmFyIHNvdXJjZSA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAnc291cmNlJyk7XG4gICAgaWYgKHRoaXMuc291cmNlUm9vdCAhPSBudWxsKSB7XG4gICAgICBzb3VyY2UgPSB1dGlsLnJlbGF0aXZlKHRoaXMuc291cmNlUm9vdCwgc291cmNlKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLl9zb3VyY2VzLmhhcyhzb3VyY2UpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBsaW5lOiBudWxsLFxuICAgICAgICBjb2x1bW46IG51bGwsXG4gICAgICAgIGxhc3RDb2x1bW46IG51bGxcbiAgICAgIH07XG4gICAgfVxuICAgIHNvdXJjZSA9IHRoaXMuX3NvdXJjZXMuaW5kZXhPZihzb3VyY2UpO1xuXG4gICAgdmFyIG5lZWRsZSA9IHtcbiAgICAgIHNvdXJjZTogc291cmNlLFxuICAgICAgb3JpZ2luYWxMaW5lOiB1dGlsLmdldEFyZyhhQXJncywgJ2xpbmUnKSxcbiAgICAgIG9yaWdpbmFsQ29sdW1uOiB1dGlsLmdldEFyZyhhQXJncywgJ2NvbHVtbicpXG4gICAgfTtcblxuICAgIHZhciBpbmRleCA9IHRoaXMuX2ZpbmRNYXBwaW5nKFxuICAgICAgbmVlZGxlLFxuICAgICAgdGhpcy5fb3JpZ2luYWxNYXBwaW5ncyxcbiAgICAgIFwib3JpZ2luYWxMaW5lXCIsXG4gICAgICBcIm9yaWdpbmFsQ29sdW1uXCIsXG4gICAgICB1dGlsLmNvbXBhcmVCeU9yaWdpbmFsUG9zaXRpb25zLFxuICAgICAgdXRpbC5nZXRBcmcoYUFyZ3MsICdiaWFzJywgU291cmNlTWFwQ29uc3VtZXIuR1JFQVRFU1RfTE9XRVJfQk9VTkQpXG4gICAgKTtcblxuICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICB2YXIgbWFwcGluZyA9IHRoaXMuX29yaWdpbmFsTWFwcGluZ3NbaW5kZXhdO1xuXG4gICAgICBpZiAobWFwcGluZy5zb3VyY2UgPT09IG5lZWRsZS5zb3VyY2UpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBsaW5lOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAnZ2VuZXJhdGVkTGluZScsIG51bGwpLFxuICAgICAgICAgIGNvbHVtbjogdXRpbC5nZXRBcmcobWFwcGluZywgJ2dlbmVyYXRlZENvbHVtbicsIG51bGwpLFxuICAgICAgICAgIGxhc3RDb2x1bW46IHV0aWwuZ2V0QXJnKG1hcHBpbmcsICdsYXN0R2VuZXJhdGVkQ29sdW1uJywgbnVsbClcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgbGluZTogbnVsbCxcbiAgICAgIGNvbHVtbjogbnVsbCxcbiAgICAgIGxhc3RDb2x1bW46IG51bGxcbiAgICB9O1xuICB9O1xuXG5leHBvcnRzLkJhc2ljU291cmNlTWFwQ29uc3VtZXIgPSBCYXNpY1NvdXJjZU1hcENvbnN1bWVyO1xuXG4vKipcbiAqIEFuIEluZGV4ZWRTb3VyY2VNYXBDb25zdW1lciBpbnN0YW5jZSByZXByZXNlbnRzIGEgcGFyc2VkIHNvdXJjZSBtYXAgd2hpY2hcbiAqIHdlIGNhbiBxdWVyeSBmb3IgaW5mb3JtYXRpb24uIEl0IGRpZmZlcnMgZnJvbSBCYXNpY1NvdXJjZU1hcENvbnN1bWVyIGluXG4gKiB0aGF0IGl0IHRha2VzIFwiaW5kZXhlZFwiIHNvdXJjZSBtYXBzIChpLmUuIG9uZXMgd2l0aCBhIFwic2VjdGlvbnNcIiBmaWVsZCkgYXNcbiAqIGlucHV0LlxuICpcbiAqIFRoZSBvbmx5IHBhcmFtZXRlciBpcyBhIHJhdyBzb3VyY2UgbWFwIChlaXRoZXIgYXMgYSBKU09OIHN0cmluZywgb3IgYWxyZWFkeVxuICogcGFyc2VkIHRvIGFuIG9iamVjdCkuIEFjY29yZGluZyB0byB0aGUgc3BlYyBmb3IgaW5kZXhlZCBzb3VyY2UgbWFwcywgdGhleVxuICogaGF2ZSB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6XG4gKlxuICogICAtIHZlcnNpb246IFdoaWNoIHZlcnNpb24gb2YgdGhlIHNvdXJjZSBtYXAgc3BlYyB0aGlzIG1hcCBpcyBmb2xsb3dpbmcuXG4gKiAgIC0gZmlsZTogT3B0aW9uYWwuIFRoZSBnZW5lcmF0ZWQgZmlsZSB0aGlzIHNvdXJjZSBtYXAgaXMgYXNzb2NpYXRlZCB3aXRoLlxuICogICAtIHNlY3Rpb25zOiBBIGxpc3Qgb2Ygc2VjdGlvbiBkZWZpbml0aW9ucy5cbiAqXG4gKiBFYWNoIHZhbHVlIHVuZGVyIHRoZSBcInNlY3Rpb25zXCIgZmllbGQgaGFzIHR3byBmaWVsZHM6XG4gKiAgIC0gb2Zmc2V0OiBUaGUgb2Zmc2V0IGludG8gdGhlIG9yaWdpbmFsIHNwZWNpZmllZCBhdCB3aGljaCB0aGlzIHNlY3Rpb25cbiAqICAgICAgIGJlZ2lucyB0byBhcHBseSwgZGVmaW5lZCBhcyBhbiBvYmplY3Qgd2l0aCBhIFwibGluZVwiIGFuZCBcImNvbHVtblwiXG4gKiAgICAgICBmaWVsZC5cbiAqICAgLSBtYXA6IEEgc291cmNlIG1hcCBkZWZpbml0aW9uLiBUaGlzIHNvdXJjZSBtYXAgY291bGQgYWxzbyBiZSBpbmRleGVkLFxuICogICAgICAgYnV0IGRvZXNuJ3QgaGF2ZSB0byBiZS5cbiAqXG4gKiBJbnN0ZWFkIG9mIHRoZSBcIm1hcFwiIGZpZWxkLCBpdCdzIGFsc28gcG9zc2libGUgdG8gaGF2ZSBhIFwidXJsXCIgZmllbGRcbiAqIHNwZWNpZnlpbmcgYSBVUkwgdG8gcmV0cmlldmUgYSBzb3VyY2UgbWFwIGZyb20sIGJ1dCB0aGF0J3MgY3VycmVudGx5XG4gKiB1bnN1cHBvcnRlZC5cbiAqXG4gKiBIZXJlJ3MgYW4gZXhhbXBsZSBzb3VyY2UgbWFwLCB0YWtlbiBmcm9tIHRoZSBzb3VyY2UgbWFwIHNwZWNbMF0sIGJ1dFxuICogbW9kaWZpZWQgdG8gb21pdCBhIHNlY3Rpb24gd2hpY2ggdXNlcyB0aGUgXCJ1cmxcIiBmaWVsZC5cbiAqXG4gKiAge1xuICogICAgdmVyc2lvbiA6IDMsXG4gKiAgICBmaWxlOiBcImFwcC5qc1wiLFxuICogICAgc2VjdGlvbnM6IFt7XG4gKiAgICAgIG9mZnNldDoge2xpbmU6MTAwLCBjb2x1bW46MTB9LFxuICogICAgICBtYXA6IHtcbiAqICAgICAgICB2ZXJzaW9uIDogMyxcbiAqICAgICAgICBmaWxlOiBcInNlY3Rpb24uanNcIixcbiAqICAgICAgICBzb3VyY2VzOiBbXCJmb28uanNcIiwgXCJiYXIuanNcIl0sXG4gKiAgICAgICAgbmFtZXM6IFtcInNyY1wiLCBcIm1hcHNcIiwgXCJhcmVcIiwgXCJmdW5cIl0sXG4gKiAgICAgICAgbWFwcGluZ3M6IFwiQUFBQSxFOztBQkNERTtcIlxuICogICAgICB9XG4gKiAgICB9XSxcbiAqICB9XG4gKlxuICogWzBdOiBodHRwczovL2RvY3MuZ29vZ2xlLmNvbS9kb2N1bWVudC9kLzFVMVJHQWVoUXdSeXBVVG92RjFLUmxwaU9GemUwYi1fMmdjNmZBSDBLWTBrL2VkaXQjaGVhZGluZz1oLjUzNWVzM3hlcHJndFxuICovXG5mdW5jdGlvbiBJbmRleGVkU291cmNlTWFwQ29uc3VtZXIoYVNvdXJjZU1hcCkge1xuICB2YXIgc291cmNlTWFwID0gYVNvdXJjZU1hcDtcbiAgaWYgKHR5cGVvZiBhU291cmNlTWFwID09PSAnc3RyaW5nJykge1xuICAgIHNvdXJjZU1hcCA9IEpTT04ucGFyc2UoYVNvdXJjZU1hcC5yZXBsYWNlKC9eXFwpXFxdXFx9Jy8sICcnKSk7XG4gIH1cblxuICB2YXIgdmVyc2lvbiA9IHV0aWwuZ2V0QXJnKHNvdXJjZU1hcCwgJ3ZlcnNpb24nKTtcbiAgdmFyIHNlY3Rpb25zID0gdXRpbC5nZXRBcmcoc291cmNlTWFwLCAnc2VjdGlvbnMnKTtcblxuICBpZiAodmVyc2lvbiAhPSB0aGlzLl92ZXJzaW9uKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdVbnN1cHBvcnRlZCB2ZXJzaW9uOiAnICsgdmVyc2lvbik7XG4gIH1cblxuICB0aGlzLl9zb3VyY2VzID0gbmV3IEFycmF5U2V0KCk7XG4gIHRoaXMuX25hbWVzID0gbmV3IEFycmF5U2V0KCk7XG5cbiAgdmFyIGxhc3RPZmZzZXQgPSB7XG4gICAgbGluZTogLTEsXG4gICAgY29sdW1uOiAwXG4gIH07XG4gIHRoaXMuX3NlY3Rpb25zID0gc2VjdGlvbnMubWFwKGZ1bmN0aW9uIChzKSB7XG4gICAgaWYgKHMudXJsKSB7XG4gICAgICAvLyBUaGUgdXJsIGZpZWxkIHdpbGwgcmVxdWlyZSBzdXBwb3J0IGZvciBhc3luY2hyb25pY2l0eS5cbiAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9zb3VyY2UtbWFwL2lzc3Vlcy8xNlxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTdXBwb3J0IGZvciB1cmwgZmllbGQgaW4gc2VjdGlvbnMgbm90IGltcGxlbWVudGVkLicpO1xuICAgIH1cbiAgICB2YXIgb2Zmc2V0ID0gdXRpbC5nZXRBcmcocywgJ29mZnNldCcpO1xuICAgIHZhciBvZmZzZXRMaW5lID0gdXRpbC5nZXRBcmcob2Zmc2V0LCAnbGluZScpO1xuICAgIHZhciBvZmZzZXRDb2x1bW4gPSB1dGlsLmdldEFyZyhvZmZzZXQsICdjb2x1bW4nKTtcblxuICAgIGlmIChvZmZzZXRMaW5lIDwgbGFzdE9mZnNldC5saW5lIHx8XG4gICAgICAgIChvZmZzZXRMaW5lID09PSBsYXN0T2Zmc2V0LmxpbmUgJiYgb2Zmc2V0Q29sdW1uIDwgbGFzdE9mZnNldC5jb2x1bW4pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NlY3Rpb24gb2Zmc2V0cyBtdXN0IGJlIG9yZGVyZWQgYW5kIG5vbi1vdmVybGFwcGluZy4nKTtcbiAgICB9XG4gICAgbGFzdE9mZnNldCA9IG9mZnNldDtcblxuICAgIHJldHVybiB7XG4gICAgICBnZW5lcmF0ZWRPZmZzZXQ6IHtcbiAgICAgICAgLy8gVGhlIG9mZnNldCBmaWVsZHMgYXJlIDAtYmFzZWQsIGJ1dCB3ZSB1c2UgMS1iYXNlZCBpbmRpY2VzIHdoZW5cbiAgICAgICAgLy8gZW5jb2RpbmcvZGVjb2RpbmcgZnJvbSBWTFEuXG4gICAgICAgIGdlbmVyYXRlZExpbmU6IG9mZnNldExpbmUgKyAxLFxuICAgICAgICBnZW5lcmF0ZWRDb2x1bW46IG9mZnNldENvbHVtbiArIDFcbiAgICAgIH0sXG4gICAgICBjb25zdW1lcjogbmV3IFNvdXJjZU1hcENvbnN1bWVyKHV0aWwuZ2V0QXJnKHMsICdtYXAnKSlcbiAgICB9XG4gIH0pO1xufVxuXG5JbmRleGVkU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUpO1xuSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IFNvdXJjZU1hcENvbnN1bWVyO1xuXG4vKipcbiAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBzb3VyY2UgbWFwcGluZyBzcGVjIHRoYXQgd2UgYXJlIGNvbnN1bWluZy5cbiAqL1xuSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5fdmVyc2lvbiA9IDM7XG5cbi8qKlxuICogVGhlIGxpc3Qgb2Ygb3JpZ2luYWwgc291cmNlcy5cbiAqL1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KEluZGV4ZWRTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUsICdzb3VyY2VzJywge1xuICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgc291cmNlcyA9IFtdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fc2VjdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgdGhpcy5fc2VjdGlvbnNbaV0uY29uc3VtZXIuc291cmNlcy5sZW5ndGg7IGorKykge1xuICAgICAgICBzb3VyY2VzLnB1c2godGhpcy5fc2VjdGlvbnNbaV0uY29uc3VtZXIuc291cmNlc1tqXSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzb3VyY2VzO1xuICB9XG59KTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBvcmlnaW5hbCBzb3VyY2UsIGxpbmUsIGFuZCBjb2x1bW4gaW5mb3JtYXRpb24gZm9yIHRoZSBnZW5lcmF0ZWRcbiAqIHNvdXJjZSdzIGxpbmUgYW5kIGNvbHVtbiBwb3NpdGlvbnMgcHJvdmlkZWQuIFRoZSBvbmx5IGFyZ3VtZW50IGlzIGFuIG9iamVjdFxuICogd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gKlxuICogICAtIGxpbmU6IFRoZSBsaW5lIG51bWJlciBpbiB0aGUgZ2VuZXJhdGVkIHNvdXJjZS5cbiAqICAgLSBjb2x1bW46IFRoZSBjb2x1bW4gbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgc291cmNlLlxuICpcbiAqIGFuZCBhbiBvYmplY3QgaXMgcmV0dXJuZWQgd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gKlxuICogICAtIHNvdXJjZTogVGhlIG9yaWdpbmFsIHNvdXJjZSBmaWxlLCBvciBudWxsLlxuICogICAtIGxpbmU6IFRoZSBsaW5lIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlLCBvciBudWxsLlxuICogICAtIGNvbHVtbjogVGhlIGNvbHVtbiBudW1iZXIgaW4gdGhlIG9yaWdpbmFsIHNvdXJjZSwgb3IgbnVsbC5cbiAqICAgLSBuYW1lOiBUaGUgb3JpZ2luYWwgaWRlbnRpZmllciwgb3IgbnVsbC5cbiAqL1xuSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5vcmlnaW5hbFBvc2l0aW9uRm9yID1cbiAgZnVuY3Rpb24gSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyX29yaWdpbmFsUG9zaXRpb25Gb3IoYUFyZ3MpIHtcbiAgICB2YXIgbmVlZGxlID0ge1xuICAgICAgZ2VuZXJhdGVkTGluZTogdXRpbC5nZXRBcmcoYUFyZ3MsICdsaW5lJyksXG4gICAgICBnZW5lcmF0ZWRDb2x1bW46IHV0aWwuZ2V0QXJnKGFBcmdzLCAnY29sdW1uJylcbiAgICB9O1xuXG4gICAgLy8gRmluZCB0aGUgc2VjdGlvbiBjb250YWluaW5nIHRoZSBnZW5lcmF0ZWQgcG9zaXRpb24gd2UncmUgdHJ5aW5nIHRvIG1hcFxuICAgIC8vIHRvIGFuIG9yaWdpbmFsIHBvc2l0aW9uLlxuICAgIHZhciBzZWN0aW9uSW5kZXggPSBiaW5hcnlTZWFyY2guc2VhcmNoKG5lZWRsZSwgdGhpcy5fc2VjdGlvbnMsXG4gICAgICBmdW5jdGlvbihuZWVkbGUsIHNlY3Rpb24pIHtcbiAgICAgICAgdmFyIGNtcCA9IG5lZWRsZS5nZW5lcmF0ZWRMaW5lIC0gc2VjdGlvbi5nZW5lcmF0ZWRPZmZzZXQuZ2VuZXJhdGVkTGluZTtcbiAgICAgICAgaWYgKGNtcCkge1xuICAgICAgICAgIHJldHVybiBjbXA7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKG5lZWRsZS5nZW5lcmF0ZWRDb2x1bW4gLVxuICAgICAgICAgICAgICAgIHNlY3Rpb24uZ2VuZXJhdGVkT2Zmc2V0LmdlbmVyYXRlZENvbHVtbik7XG4gICAgICB9KTtcbiAgICB2YXIgc2VjdGlvbiA9IHRoaXMuX3NlY3Rpb25zW3NlY3Rpb25JbmRleF07XG5cbiAgICBpZiAoIXNlY3Rpb24pIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNvdXJjZTogbnVsbCxcbiAgICAgICAgbGluZTogbnVsbCxcbiAgICAgICAgY29sdW1uOiBudWxsLFxuICAgICAgICBuYW1lOiBudWxsXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBzZWN0aW9uLmNvbnN1bWVyLm9yaWdpbmFsUG9zaXRpb25Gb3Ioe1xuICAgICAgbGluZTogbmVlZGxlLmdlbmVyYXRlZExpbmUgLVxuICAgICAgICAoc2VjdGlvbi5nZW5lcmF0ZWRPZmZzZXQuZ2VuZXJhdGVkTGluZSAtIDEpLFxuICAgICAgY29sdW1uOiBuZWVkbGUuZ2VuZXJhdGVkQ29sdW1uIC1cbiAgICAgICAgKHNlY3Rpb24uZ2VuZXJhdGVkT2Zmc2V0LmdlbmVyYXRlZExpbmUgPT09IG5lZWRsZS5nZW5lcmF0ZWRMaW5lXG4gICAgICAgICA/IHNlY3Rpb24uZ2VuZXJhdGVkT2Zmc2V0LmdlbmVyYXRlZENvbHVtbiAtIDFcbiAgICAgICAgIDogMCksXG4gICAgICBiaWFzOiBhQXJncy5iaWFzXG4gICAgfSk7XG4gIH07XG5cbi8qKlxuICogUmV0dXJuIHRydWUgaWYgd2UgaGF2ZSB0aGUgc291cmNlIGNvbnRlbnQgZm9yIGV2ZXJ5IHNvdXJjZSBpbiB0aGUgc291cmNlXG4gKiBtYXAsIGZhbHNlIG90aGVyd2lzZS5cbiAqL1xuSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5oYXNDb250ZW50c09mQWxsU291cmNlcyA9XG4gIGZ1bmN0aW9uIEluZGV4ZWRTb3VyY2VNYXBDb25zdW1lcl9oYXNDb250ZW50c09mQWxsU291cmNlcygpIHtcbiAgICByZXR1cm4gdGhpcy5fc2VjdGlvbnMuZXZlcnkoZnVuY3Rpb24gKHMpIHtcbiAgICAgIHJldHVybiBzLmNvbnN1bWVyLmhhc0NvbnRlbnRzT2ZBbGxTb3VyY2VzKCk7XG4gICAgfSk7XG4gIH07XG5cbi8qKlxuICogUmV0dXJucyB0aGUgb3JpZ2luYWwgc291cmNlIGNvbnRlbnQuIFRoZSBvbmx5IGFyZ3VtZW50IGlzIHRoZSB1cmwgb2YgdGhlXG4gKiBvcmlnaW5hbCBzb3VyY2UgZmlsZS4gUmV0dXJucyBudWxsIGlmIG5vIG9yaWdpbmFsIHNvdXJjZSBjb250ZW50IGlzXG4gKiBhdmFpbGFibGUuXG4gKi9cbkluZGV4ZWRTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUuc291cmNlQ29udGVudEZvciA9XG4gIGZ1bmN0aW9uIEluZGV4ZWRTb3VyY2VNYXBDb25zdW1lcl9zb3VyY2VDb250ZW50Rm9yKGFTb3VyY2UsIG51bGxPbk1pc3NpbmcpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX3NlY3Rpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgc2VjdGlvbiA9IHRoaXMuX3NlY3Rpb25zW2ldO1xuXG4gICAgICB2YXIgY29udGVudCA9IHNlY3Rpb24uY29uc3VtZXIuc291cmNlQ29udGVudEZvcihhU291cmNlLCB0cnVlKTtcbiAgICAgIGlmIChjb250ZW50KSB7XG4gICAgICAgIHJldHVybiBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAobnVsbE9uTWlzc2luZykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdcIicgKyBhU291cmNlICsgJ1wiIGlzIG5vdCBpbiB0aGUgU291cmNlTWFwLicpO1xuICAgIH1cbiAgfTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBnZW5lcmF0ZWQgbGluZSBhbmQgY29sdW1uIGluZm9ybWF0aW9uIGZvciB0aGUgb3JpZ2luYWwgc291cmNlLFxuICogbGluZSwgYW5kIGNvbHVtbiBwb3NpdGlvbnMgcHJvdmlkZWQuIFRoZSBvbmx5IGFyZ3VtZW50IGlzIGFuIG9iamVjdCB3aXRoXG4gKiB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gKlxuICogICAtIHNvdXJjZTogVGhlIGZpbGVuYW1lIG9mIHRoZSBvcmlnaW5hbCBzb3VyY2UuXG4gKiAgIC0gbGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBvcmlnaW5hbCBzb3VyY2UuXG4gKiAgIC0gY29sdW1uOiBUaGUgY29sdW1uIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlLlxuICpcbiAqIGFuZCBhbiBvYmplY3QgaXMgcmV0dXJuZWQgd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gKlxuICogICAtIGxpbmU6IFRoZSBsaW5lIG51bWJlciBpbiB0aGUgZ2VuZXJhdGVkIHNvdXJjZSwgb3IgbnVsbC5cbiAqICAgLSBjb2x1bW46IFRoZSBjb2x1bW4gbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgc291cmNlLCBvciBudWxsLlxuICovXG5JbmRleGVkU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLmdlbmVyYXRlZFBvc2l0aW9uRm9yID1cbiAgZnVuY3Rpb24gSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyX2dlbmVyYXRlZFBvc2l0aW9uRm9yKGFBcmdzKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9zZWN0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHNlY3Rpb24gPSB0aGlzLl9zZWN0aW9uc1tpXTtcblxuICAgICAgLy8gT25seSBjb25zaWRlciB0aGlzIHNlY3Rpb24gaWYgdGhlIHJlcXVlc3RlZCBzb3VyY2UgaXMgaW4gdGhlIGxpc3Qgb2ZcbiAgICAgIC8vIHNvdXJjZXMgb2YgdGhlIGNvbnN1bWVyLlxuICAgICAgaWYgKHNlY3Rpb24uY29uc3VtZXIuc291cmNlcy5pbmRleE9mKHV0aWwuZ2V0QXJnKGFBcmdzLCAnc291cmNlJykpID09PSAtMSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHZhciBnZW5lcmF0ZWRQb3NpdGlvbiA9IHNlY3Rpb24uY29uc3VtZXIuZ2VuZXJhdGVkUG9zaXRpb25Gb3IoYUFyZ3MpO1xuICAgICAgaWYgKGdlbmVyYXRlZFBvc2l0aW9uKSB7XG4gICAgICAgIHZhciByZXQgPSB7XG4gICAgICAgICAgbGluZTogZ2VuZXJhdGVkUG9zaXRpb24ubGluZSArXG4gICAgICAgICAgICAoc2VjdGlvbi5nZW5lcmF0ZWRPZmZzZXQuZ2VuZXJhdGVkTGluZSAtIDEpLFxuICAgICAgICAgIGNvbHVtbjogZ2VuZXJhdGVkUG9zaXRpb24uY29sdW1uICtcbiAgICAgICAgICAgIChzZWN0aW9uLmdlbmVyYXRlZE9mZnNldC5nZW5lcmF0ZWRMaW5lID09PSBnZW5lcmF0ZWRQb3NpdGlvbi5saW5lXG4gICAgICAgICAgICAgPyBzZWN0aW9uLmdlbmVyYXRlZE9mZnNldC5nZW5lcmF0ZWRDb2x1bW4gLSAxXG4gICAgICAgICAgICAgOiAwKVxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gcmV0O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBsaW5lOiBudWxsLFxuICAgICAgY29sdW1uOiBudWxsXG4gICAgfTtcbiAgfTtcblxuLyoqXG4gKiBQYXJzZSB0aGUgbWFwcGluZ3MgaW4gYSBzdHJpbmcgaW4gdG8gYSBkYXRhIHN0cnVjdHVyZSB3aGljaCB3ZSBjYW4gZWFzaWx5XG4gKiBxdWVyeSAodGhlIG9yZGVyZWQgYXJyYXlzIGluIHRoZSBgdGhpcy5fX2dlbmVyYXRlZE1hcHBpbmdzYCBhbmRcbiAqIGB0aGlzLl9fb3JpZ2luYWxNYXBwaW5nc2AgcHJvcGVydGllcykuXG4gKi9cbkluZGV4ZWRTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUuX3BhcnNlTWFwcGluZ3MgPVxuICBmdW5jdGlvbiBJbmRleGVkU291cmNlTWFwQ29uc3VtZXJfcGFyc2VNYXBwaW5ncyhhU3RyLCBhU291cmNlUm9vdCkge1xuICAgIHRoaXMuX19nZW5lcmF0ZWRNYXBwaW5ncyA9IFtdO1xuICAgIHRoaXMuX19vcmlnaW5hbE1hcHBpbmdzID0gW107XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9zZWN0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHNlY3Rpb24gPSB0aGlzLl9zZWN0aW9uc1tpXTtcbiAgICAgIHZhciBzZWN0aW9uTWFwcGluZ3MgPSBzZWN0aW9uLmNvbnN1bWVyLl9nZW5lcmF0ZWRNYXBwaW5ncztcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgc2VjdGlvbk1hcHBpbmdzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIHZhciBtYXBwaW5nID0gc2VjdGlvbk1hcHBpbmdzW2pdO1xuXG4gICAgICAgIHZhciBzb3VyY2UgPSBzZWN0aW9uLmNvbnN1bWVyLl9zb3VyY2VzLmF0KG1hcHBpbmcuc291cmNlKTtcbiAgICAgICAgaWYgKHNlY3Rpb24uY29uc3VtZXIuc291cmNlUm9vdCAhPT0gbnVsbCkge1xuICAgICAgICAgIHNvdXJjZSA9IHV0aWwuam9pbihzZWN0aW9uLmNvbnN1bWVyLnNvdXJjZVJvb3QsIHNvdXJjZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc291cmNlcy5hZGQoc291cmNlKTtcbiAgICAgICAgc291cmNlID0gdGhpcy5fc291cmNlcy5pbmRleE9mKHNvdXJjZSk7XG5cbiAgICAgICAgdmFyIG5hbWUgPSBzZWN0aW9uLmNvbnN1bWVyLl9uYW1lcy5hdChtYXBwaW5nLm5hbWUpO1xuICAgICAgICB0aGlzLl9uYW1lcy5hZGQobmFtZSk7XG4gICAgICAgIG5hbWUgPSB0aGlzLl9uYW1lcy5pbmRleE9mKG5hbWUpO1xuXG4gICAgICAgIC8vIFRoZSBtYXBwaW5ncyBjb21pbmcgZnJvbSB0aGUgY29uc3VtZXIgZm9yIHRoZSBzZWN0aW9uIGhhdmVcbiAgICAgICAgLy8gZ2VuZXJhdGVkIHBvc2l0aW9ucyByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb2YgdGhlIHNlY3Rpb24sIHNvIHdlXG4gICAgICAgIC8vIG5lZWQgdG8gb2Zmc2V0IHRoZW0gdG8gYmUgcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9mIHRoZSBjb25jYXRlbmF0ZWRcbiAgICAgICAgLy8gZ2VuZXJhdGVkIGZpbGUuXG4gICAgICAgIHZhciBhZGp1c3RlZE1hcHBpbmcgPSB7XG4gICAgICAgICAgc291cmNlOiBzb3VyY2UsXG4gICAgICAgICAgZ2VuZXJhdGVkTGluZTogbWFwcGluZy5nZW5lcmF0ZWRMaW5lICtcbiAgICAgICAgICAgIChzZWN0aW9uLmdlbmVyYXRlZE9mZnNldC5nZW5lcmF0ZWRMaW5lIC0gMSksXG4gICAgICAgICAgZ2VuZXJhdGVkQ29sdW1uOiBtYXBwaW5nLmdlbmVyYXRlZENvbHVtbiArXG4gICAgICAgICAgICAoc2VjdGlvbi5nZW5lcmF0ZWRPZmZzZXQuZ2VuZXJhdGVkTGluZSA9PT0gbWFwcGluZy5nZW5lcmF0ZWRMaW5lXG4gICAgICAgICAgICA/IHNlY3Rpb24uZ2VuZXJhdGVkT2Zmc2V0LmdlbmVyYXRlZENvbHVtbiAtIDFcbiAgICAgICAgICAgIDogMCksXG4gICAgICAgICAgb3JpZ2luYWxMaW5lOiBtYXBwaW5nLm9yaWdpbmFsTGluZSxcbiAgICAgICAgICBvcmlnaW5hbENvbHVtbjogbWFwcGluZy5vcmlnaW5hbENvbHVtbixcbiAgICAgICAgICBuYW1lOiBuYW1lXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5fX2dlbmVyYXRlZE1hcHBpbmdzLnB1c2goYWRqdXN0ZWRNYXBwaW5nKTtcbiAgICAgICAgaWYgKHR5cGVvZiBhZGp1c3RlZE1hcHBpbmcub3JpZ2luYWxMaW5lID09PSAnbnVtYmVyJykge1xuICAgICAgICAgIHRoaXMuX19vcmlnaW5hbE1hcHBpbmdzLnB1c2goYWRqdXN0ZWRNYXBwaW5nKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHF1aWNrU29ydCh0aGlzLl9fZ2VuZXJhdGVkTWFwcGluZ3MsIHV0aWwuY29tcGFyZUJ5R2VuZXJhdGVkUG9zaXRpb25zRGVmbGF0ZWQpO1xuICAgIHF1aWNrU29ydCh0aGlzLl9fb3JpZ2luYWxNYXBwaW5ncywgdXRpbC5jb21wYXJlQnlPcmlnaW5hbFBvc2l0aW9ucyk7XG4gIH07XG5cbmV4cG9ydHMuSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyID0gSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9saWIvc291cmNlLW1hcC1jb25zdW1lci5qc1xuLy8gbW9kdWxlIGlkID0gN1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvKiAtKi0gTW9kZToganM7IGpzLWluZGVudC1sZXZlbDogMjsgLSotICovXG4vKlxuICogQ29weXJpZ2h0IDIwMTEgTW96aWxsYSBGb3VuZGF0aW9uIGFuZCBjb250cmlidXRvcnNcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBOZXcgQlNEIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIG9yOlxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZVxuICovXG5cbmV4cG9ydHMuR1JFQVRFU1RfTE9XRVJfQk9VTkQgPSAxO1xuZXhwb3J0cy5MRUFTVF9VUFBFUl9CT1VORCA9IDI7XG5cbi8qKlxuICogUmVjdXJzaXZlIGltcGxlbWVudGF0aW9uIG9mIGJpbmFyeSBzZWFyY2guXG4gKlxuICogQHBhcmFtIGFMb3cgSW5kaWNlcyBoZXJlIGFuZCBsb3dlciBkbyBub3QgY29udGFpbiB0aGUgbmVlZGxlLlxuICogQHBhcmFtIGFIaWdoIEluZGljZXMgaGVyZSBhbmQgaGlnaGVyIGRvIG5vdCBjb250YWluIHRoZSBuZWVkbGUuXG4gKiBAcGFyYW0gYU5lZWRsZSBUaGUgZWxlbWVudCBiZWluZyBzZWFyY2hlZCBmb3IuXG4gKiBAcGFyYW0gYUhheXN0YWNrIFRoZSBub24tZW1wdHkgYXJyYXkgYmVpbmcgc2VhcmNoZWQuXG4gKiBAcGFyYW0gYUNvbXBhcmUgRnVuY3Rpb24gd2hpY2ggdGFrZXMgdHdvIGVsZW1lbnRzIGFuZCByZXR1cm5zIC0xLCAwLCBvciAxLlxuICogQHBhcmFtIGFCaWFzIEVpdGhlciAnYmluYXJ5U2VhcmNoLkdSRUFURVNUX0xPV0VSX0JPVU5EJyBvclxuICogICAgICdiaW5hcnlTZWFyY2guTEVBU1RfVVBQRVJfQk9VTkQnLiBTcGVjaWZpZXMgd2hldGhlciB0byByZXR1cm4gdGhlXG4gKiAgICAgY2xvc2VzdCBlbGVtZW50IHRoYXQgaXMgc21hbGxlciB0aGFuIG9yIGdyZWF0ZXIgdGhhbiB0aGUgb25lIHdlIGFyZVxuICogICAgIHNlYXJjaGluZyBmb3IsIHJlc3BlY3RpdmVseSwgaWYgdGhlIGV4YWN0IGVsZW1lbnQgY2Fubm90IGJlIGZvdW5kLlxuICovXG5mdW5jdGlvbiByZWN1cnNpdmVTZWFyY2goYUxvdywgYUhpZ2gsIGFOZWVkbGUsIGFIYXlzdGFjaywgYUNvbXBhcmUsIGFCaWFzKSB7XG4gIC8vIFRoaXMgZnVuY3Rpb24gdGVybWluYXRlcyB3aGVuIG9uZSBvZiB0aGUgZm9sbG93aW5nIGlzIHRydWU6XG4gIC8vXG4gIC8vICAgMS4gV2UgZmluZCB0aGUgZXhhY3QgZWxlbWVudCB3ZSBhcmUgbG9va2luZyBmb3IuXG4gIC8vXG4gIC8vICAgMi4gV2UgZGlkIG5vdCBmaW5kIHRoZSBleGFjdCBlbGVtZW50LCBidXQgd2UgY2FuIHJldHVybiB0aGUgaW5kZXggb2ZcbiAgLy8gICAgICB0aGUgbmV4dC1jbG9zZXN0IGVsZW1lbnQuXG4gIC8vXG4gIC8vICAgMy4gV2UgZGlkIG5vdCBmaW5kIHRoZSBleGFjdCBlbGVtZW50LCBhbmQgdGhlcmUgaXMgbm8gbmV4dC1jbG9zZXN0XG4gIC8vICAgICAgZWxlbWVudCB0aGFuIHRoZSBvbmUgd2UgYXJlIHNlYXJjaGluZyBmb3IsIHNvIHdlIHJldHVybiAtMS5cbiAgdmFyIG1pZCA9IE1hdGguZmxvb3IoKGFIaWdoIC0gYUxvdykgLyAyKSArIGFMb3c7XG4gIHZhciBjbXAgPSBhQ29tcGFyZShhTmVlZGxlLCBhSGF5c3RhY2tbbWlkXSwgdHJ1ZSk7XG4gIGlmIChjbXAgPT09IDApIHtcbiAgICAvLyBGb3VuZCB0aGUgZWxlbWVudCB3ZSBhcmUgbG9va2luZyBmb3IuXG4gICAgcmV0dXJuIG1pZDtcbiAgfVxuICBlbHNlIGlmIChjbXAgPiAwKSB7XG4gICAgLy8gT3VyIG5lZWRsZSBpcyBncmVhdGVyIHRoYW4gYUhheXN0YWNrW21pZF0uXG4gICAgaWYgKGFIaWdoIC0gbWlkID4gMSkge1xuICAgICAgLy8gVGhlIGVsZW1lbnQgaXMgaW4gdGhlIHVwcGVyIGhhbGYuXG4gICAgICByZXR1cm4gcmVjdXJzaXZlU2VhcmNoKG1pZCwgYUhpZ2gsIGFOZWVkbGUsIGFIYXlzdGFjaywgYUNvbXBhcmUsIGFCaWFzKTtcbiAgICB9XG5cbiAgICAvLyBUaGUgZXhhY3QgbmVlZGxlIGVsZW1lbnQgd2FzIG5vdCBmb3VuZCBpbiB0aGlzIGhheXN0YWNrLiBEZXRlcm1pbmUgaWZcbiAgICAvLyB3ZSBhcmUgaW4gdGVybWluYXRpb24gY2FzZSAoMykgb3IgKDIpIGFuZCByZXR1cm4gdGhlIGFwcHJvcHJpYXRlIHRoaW5nLlxuICAgIGlmIChhQmlhcyA9PSBleHBvcnRzLkxFQVNUX1VQUEVSX0JPVU5EKSB7XG4gICAgICByZXR1cm4gYUhpZ2ggPCBhSGF5c3RhY2subGVuZ3RoID8gYUhpZ2ggOiAtMTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG1pZDtcbiAgICB9XG4gIH1cbiAgZWxzZSB7XG4gICAgLy8gT3VyIG5lZWRsZSBpcyBsZXNzIHRoYW4gYUhheXN0YWNrW21pZF0uXG4gICAgaWYgKG1pZCAtIGFMb3cgPiAxKSB7XG4gICAgICAvLyBUaGUgZWxlbWVudCBpcyBpbiB0aGUgbG93ZXIgaGFsZi5cbiAgICAgIHJldHVybiByZWN1cnNpdmVTZWFyY2goYUxvdywgbWlkLCBhTmVlZGxlLCBhSGF5c3RhY2ssIGFDb21wYXJlLCBhQmlhcyk7XG4gICAgfVxuXG4gICAgLy8gd2UgYXJlIGluIHRlcm1pbmF0aW9uIGNhc2UgKDMpIG9yICgyKSBhbmQgcmV0dXJuIHRoZSBhcHByb3ByaWF0ZSB0aGluZy5cbiAgICBpZiAoYUJpYXMgPT0gZXhwb3J0cy5MRUFTVF9VUFBFUl9CT1VORCkge1xuICAgICAgcmV0dXJuIG1pZDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGFMb3cgPCAwID8gLTEgOiBhTG93O1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFRoaXMgaXMgYW4gaW1wbGVtZW50YXRpb24gb2YgYmluYXJ5IHNlYXJjaCB3aGljaCB3aWxsIGFsd2F5cyB0cnkgYW5kIHJldHVyblxuICogdGhlIGluZGV4IG9mIHRoZSBjbG9zZXN0IGVsZW1lbnQgaWYgdGhlcmUgaXMgbm8gZXhhY3QgaGl0LiBUaGlzIGlzIGJlY2F1c2VcbiAqIG1hcHBpbmdzIGJldHdlZW4gb3JpZ2luYWwgYW5kIGdlbmVyYXRlZCBsaW5lL2NvbCBwYWlycyBhcmUgc2luZ2xlIHBvaW50cyxcbiAqIGFuZCB0aGVyZSBpcyBhbiBpbXBsaWNpdCByZWdpb24gYmV0d2VlbiBlYWNoIG9mIHRoZW0sIHNvIGEgbWlzcyBqdXN0IG1lYW5zXG4gKiB0aGF0IHlvdSBhcmVuJ3Qgb24gdGhlIHZlcnkgc3RhcnQgb2YgYSByZWdpb24uXG4gKlxuICogQHBhcmFtIGFOZWVkbGUgVGhlIGVsZW1lbnQgeW91IGFyZSBsb29raW5nIGZvci5cbiAqIEBwYXJhbSBhSGF5c3RhY2sgVGhlIGFycmF5IHRoYXQgaXMgYmVpbmcgc2VhcmNoZWQuXG4gKiBAcGFyYW0gYUNvbXBhcmUgQSBmdW5jdGlvbiB3aGljaCB0YWtlcyB0aGUgbmVlZGxlIGFuZCBhbiBlbGVtZW50IGluIHRoZVxuICogICAgIGFycmF5IGFuZCByZXR1cm5zIC0xLCAwLCBvciAxIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBuZWVkbGUgaXMgbGVzc1xuICogICAgIHRoYW4sIGVxdWFsIHRvLCBvciBncmVhdGVyIHRoYW4gdGhlIGVsZW1lbnQsIHJlc3BlY3RpdmVseS5cbiAqIEBwYXJhbSBhQmlhcyBFaXRoZXIgJ2JpbmFyeVNlYXJjaC5HUkVBVEVTVF9MT1dFUl9CT1VORCcgb3JcbiAqICAgICAnYmluYXJ5U2VhcmNoLkxFQVNUX1VQUEVSX0JPVU5EJy4gU3BlY2lmaWVzIHdoZXRoZXIgdG8gcmV0dXJuIHRoZVxuICogICAgIGNsb3Nlc3QgZWxlbWVudCB0aGF0IGlzIHNtYWxsZXIgdGhhbiBvciBncmVhdGVyIHRoYW4gdGhlIG9uZSB3ZSBhcmVcbiAqICAgICBzZWFyY2hpbmcgZm9yLCByZXNwZWN0aXZlbHksIGlmIHRoZSBleGFjdCBlbGVtZW50IGNhbm5vdCBiZSBmb3VuZC5cbiAqICAgICBEZWZhdWx0cyB0byAnYmluYXJ5U2VhcmNoLkdSRUFURVNUX0xPV0VSX0JPVU5EJy5cbiAqL1xuZXhwb3J0cy5zZWFyY2ggPSBmdW5jdGlvbiBzZWFyY2goYU5lZWRsZSwgYUhheXN0YWNrLCBhQ29tcGFyZSwgYUJpYXMpIHtcbiAgaWYgKGFIYXlzdGFjay5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gLTE7XG4gIH1cblxuICB2YXIgaW5kZXggPSByZWN1cnNpdmVTZWFyY2goLTEsIGFIYXlzdGFjay5sZW5ndGgsIGFOZWVkbGUsIGFIYXlzdGFjayxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFDb21wYXJlLCBhQmlhcyB8fCBleHBvcnRzLkdSRUFURVNUX0xPV0VSX0JPVU5EKTtcbiAgaWYgKGluZGV4IDwgMCkge1xuICAgIHJldHVybiAtMTtcbiAgfVxuXG4gIC8vIFdlIGhhdmUgZm91bmQgZWl0aGVyIHRoZSBleGFjdCBlbGVtZW50LCBvciB0aGUgbmV4dC1jbG9zZXN0IGVsZW1lbnQgdGhhblxuICAvLyB0aGUgb25lIHdlIGFyZSBzZWFyY2hpbmcgZm9yLiBIb3dldmVyLCB0aGVyZSBtYXkgYmUgbW9yZSB0aGFuIG9uZSBzdWNoXG4gIC8vIGVsZW1lbnQuIE1ha2Ugc3VyZSB3ZSBhbHdheXMgcmV0dXJuIHRoZSBzbWFsbGVzdCBvZiB0aGVzZS5cbiAgd2hpbGUgKGluZGV4IC0gMSA+PSAwKSB7XG4gICAgaWYgKGFDb21wYXJlKGFIYXlzdGFja1tpbmRleF0sIGFIYXlzdGFja1tpbmRleCAtIDFdLCB0cnVlKSAhPT0gMCkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIC0taW5kZXg7XG4gIH1cblxuICByZXR1cm4gaW5kZXg7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9saWIvYmluYXJ5LXNlYXJjaC5qc1xuLy8gbW9kdWxlIGlkID0gOFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvKiAtKi0gTW9kZToganM7IGpzLWluZGVudC1sZXZlbDogMjsgLSotICovXG4vKlxuICogQ29weXJpZ2h0IDIwMTEgTW96aWxsYSBGb3VuZGF0aW9uIGFuZCBjb250cmlidXRvcnNcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBOZXcgQlNEIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIG9yOlxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZVxuICovXG5cbi8vIEl0IHR1cm5zIG91dCB0aGF0IHNvbWUgKG1vc3Q/KSBKYXZhU2NyaXB0IGVuZ2luZXMgZG9uJ3Qgc2VsZi1ob3N0XG4vLyBgQXJyYXkucHJvdG90eXBlLnNvcnRgLiBUaGlzIG1ha2VzIHNlbnNlIGJlY2F1c2UgQysrIHdpbGwgbGlrZWx5IHJlbWFpblxuLy8gZmFzdGVyIHRoYW4gSlMgd2hlbiBkb2luZyByYXcgQ1BVLWludGVuc2l2ZSBzb3J0aW5nLiBIb3dldmVyLCB3aGVuIHVzaW5nIGFcbi8vIGN1c3RvbSBjb21wYXJhdG9yIGZ1bmN0aW9uLCBjYWxsaW5nIGJhY2sgYW5kIGZvcnRoIGJldHdlZW4gdGhlIFZNJ3MgQysrIGFuZFxuLy8gSklUJ2QgSlMgaXMgcmF0aGVyIHNsb3cgKmFuZCogbG9zZXMgSklUIHR5cGUgaW5mb3JtYXRpb24sIHJlc3VsdGluZyBpblxuLy8gd29yc2UgZ2VuZXJhdGVkIGNvZGUgZm9yIHRoZSBjb21wYXJhdG9yIGZ1bmN0aW9uIHRoYW4gd291bGQgYmUgb3B0aW1hbC4gSW5cbi8vIGZhY3QsIHdoZW4gc29ydGluZyB3aXRoIGEgY29tcGFyYXRvciwgdGhlc2UgY29zdHMgb3V0d2VpZ2ggdGhlIGJlbmVmaXRzIG9mXG4vLyBzb3J0aW5nIGluIEMrKy4gQnkgdXNpbmcgb3VyIG93biBKUy1pbXBsZW1lbnRlZCBRdWljayBTb3J0IChiZWxvdyksIHdlIGdldFxuLy8gYSB+MzUwMG1zIG1lYW4gc3BlZWQtdXAgaW4gYGJlbmNoL2JlbmNoLmh0bWxgLlxuXG4vKipcbiAqIFN3YXAgdGhlIGVsZW1lbnRzIGluZGV4ZWQgYnkgYHhgIGFuZCBgeWAgaW4gdGhlIGFycmF5IGBhcnlgLlxuICpcbiAqIEBwYXJhbSB7QXJyYXl9IGFyeVxuICogICAgICAgIFRoZSBhcnJheS5cbiAqIEBwYXJhbSB7TnVtYmVyfSB4XG4gKiAgICAgICAgVGhlIGluZGV4IG9mIHRoZSBmaXJzdCBpdGVtLlxuICogQHBhcmFtIHtOdW1iZXJ9IHlcbiAqICAgICAgICBUaGUgaW5kZXggb2YgdGhlIHNlY29uZCBpdGVtLlxuICovXG5mdW5jdGlvbiBzd2FwKGFyeSwgeCwgeSkge1xuICB2YXIgdGVtcCA9IGFyeVt4XTtcbiAgYXJ5W3hdID0gYXJ5W3ldO1xuICBhcnlbeV0gPSB0ZW1wO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSByYW5kb20gaW50ZWdlciB3aXRoaW4gdGhlIHJhbmdlIGBsb3cgLi4gaGlnaGAgaW5jbHVzaXZlLlxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSBsb3dcbiAqICAgICAgICBUaGUgbG93ZXIgYm91bmQgb24gdGhlIHJhbmdlLlxuICogQHBhcmFtIHtOdW1iZXJ9IGhpZ2hcbiAqICAgICAgICBUaGUgdXBwZXIgYm91bmQgb24gdGhlIHJhbmdlLlxuICovXG5mdW5jdGlvbiByYW5kb21JbnRJblJhbmdlKGxvdywgaGlnaCkge1xuICByZXR1cm4gTWF0aC5yb3VuZChsb3cgKyAoTWF0aC5yYW5kb20oKSAqIChoaWdoIC0gbG93KSkpO1xufVxuXG4vKipcbiAqIFRoZSBRdWljayBTb3J0IGFsZ29yaXRobS5cbiAqXG4gKiBAcGFyYW0ge0FycmF5fSBhcnlcbiAqICAgICAgICBBbiBhcnJheSB0byBzb3J0LlxuICogQHBhcmFtIHtmdW5jdGlvbn0gY29tcGFyYXRvclxuICogICAgICAgIEZ1bmN0aW9uIHRvIHVzZSB0byBjb21wYXJlIHR3byBpdGVtcy5cbiAqIEBwYXJhbSB7TnVtYmVyfSBwXG4gKiAgICAgICAgU3RhcnQgaW5kZXggb2YgdGhlIGFycmF5XG4gKiBAcGFyYW0ge051bWJlcn0gclxuICogICAgICAgIEVuZCBpbmRleCBvZiB0aGUgYXJyYXlcbiAqL1xuZnVuY3Rpb24gZG9RdWlja1NvcnQoYXJ5LCBjb21wYXJhdG9yLCBwLCByKSB7XG4gIC8vIElmIG91ciBsb3dlciBib3VuZCBpcyBsZXNzIHRoYW4gb3VyIHVwcGVyIGJvdW5kLCB3ZSAoMSkgcGFydGl0aW9uIHRoZVxuICAvLyBhcnJheSBpbnRvIHR3byBwaWVjZXMgYW5kICgyKSByZWN1cnNlIG9uIGVhY2ggaGFsZi4gSWYgaXQgaXMgbm90LCB0aGlzIGlzXG4gIC8vIHRoZSBlbXB0eSBhcnJheSBhbmQgb3VyIGJhc2UgY2FzZS5cblxuICBpZiAocCA8IHIpIHtcbiAgICAvLyAoMSkgUGFydGl0aW9uaW5nLlxuICAgIC8vXG4gICAgLy8gVGhlIHBhcnRpdGlvbmluZyBjaG9vc2VzIGEgcGl2b3QgYmV0d2VlbiBgcGAgYW5kIGByYCBhbmQgbW92ZXMgYWxsXG4gICAgLy8gZWxlbWVudHMgdGhhdCBhcmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBwaXZvdCB0byB0aGUgYmVmb3JlIGl0LCBhbmRcbiAgICAvLyBhbGwgdGhlIGVsZW1lbnRzIHRoYXQgYXJlIGdyZWF0ZXIgdGhhbiBpdCBhZnRlciBpdC4gVGhlIGVmZmVjdCBpcyB0aGF0XG4gICAgLy8gb25jZSBwYXJ0aXRpb24gaXMgZG9uZSwgdGhlIHBpdm90IGlzIGluIHRoZSBleGFjdCBwbGFjZSBpdCB3aWxsIGJlIHdoZW5cbiAgICAvLyB0aGUgYXJyYXkgaXMgcHV0IGluIHNvcnRlZCBvcmRlciwgYW5kIGl0IHdpbGwgbm90IG5lZWQgdG8gYmUgbW92ZWRcbiAgICAvLyBhZ2Fpbi4gVGhpcyBydW5zIGluIE8obikgdGltZS5cblxuICAgIC8vIEFsd2F5cyBjaG9vc2UgYSByYW5kb20gcGl2b3Qgc28gdGhhdCBhbiBpbnB1dCBhcnJheSB3aGljaCBpcyByZXZlcnNlXG4gICAgLy8gc29ydGVkIGRvZXMgbm90IGNhdXNlIE8obl4yKSBydW5uaW5nIHRpbWUuXG4gICAgdmFyIHBpdm90SW5kZXggPSByYW5kb21JbnRJblJhbmdlKHAsIHIpO1xuICAgIHZhciBpID0gcCAtIDE7XG5cbiAgICBzd2FwKGFyeSwgcGl2b3RJbmRleCwgcik7XG4gICAgdmFyIHBpdm90ID0gYXJ5W3JdO1xuXG4gICAgLy8gSW1tZWRpYXRlbHkgYWZ0ZXIgYGpgIGlzIGluY3JlbWVudGVkIGluIHRoaXMgbG9vcCwgdGhlIGZvbGxvd2luZyBob2xkXG4gICAgLy8gdHJ1ZTpcbiAgICAvL1xuICAgIC8vICAgKiBFdmVyeSBlbGVtZW50IGluIGBhcnlbcCAuLiBpXWAgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBwaXZvdC5cbiAgICAvL1xuICAgIC8vICAgKiBFdmVyeSBlbGVtZW50IGluIGBhcnlbaSsxIC4uIGotMV1gIGlzIGdyZWF0ZXIgdGhhbiB0aGUgcGl2b3QuXG4gICAgZm9yICh2YXIgaiA9IHA7IGogPCByOyBqKyspIHtcbiAgICAgIGlmIChjb21wYXJhdG9yKGFyeVtqXSwgcGl2b3QpIDw9IDApIHtcbiAgICAgICAgaSArPSAxO1xuICAgICAgICBzd2FwKGFyeSwgaSwgaik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3dhcChhcnksIGkgKyAxLCBqKTtcbiAgICB2YXIgcSA9IGkgKyAxO1xuXG4gICAgLy8gKDIpIFJlY3Vyc2Ugb24gZWFjaCBoYWxmLlxuXG4gICAgZG9RdWlja1NvcnQoYXJ5LCBjb21wYXJhdG9yLCBwLCBxIC0gMSk7XG4gICAgZG9RdWlja1NvcnQoYXJ5LCBjb21wYXJhdG9yLCBxICsgMSwgcik7XG4gIH1cbn1cblxuLyoqXG4gKiBTb3J0IHRoZSBnaXZlbiBhcnJheSBpbi1wbGFjZSB3aXRoIHRoZSBnaXZlbiBjb21wYXJhdG9yIGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSB7QXJyYXl9IGFyeVxuICogICAgICAgIEFuIGFycmF5IHRvIHNvcnQuXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBjb21wYXJhdG9yXG4gKiAgICAgICAgRnVuY3Rpb24gdG8gdXNlIHRvIGNvbXBhcmUgdHdvIGl0ZW1zLlxuICovXG5leHBvcnRzLnF1aWNrU29ydCA9IGZ1bmN0aW9uIChhcnksIGNvbXBhcmF0b3IpIHtcbiAgZG9RdWlja1NvcnQoYXJ5LCBjb21wYXJhdG9yLCAwLCBhcnkubGVuZ3RoIC0gMSk7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9saWIvcXVpY2stc29ydC5qc1xuLy8gbW9kdWxlIGlkID0gOVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvKiAtKi0gTW9kZToganM7IGpzLWluZGVudC1sZXZlbDogMjsgLSotICovXG4vKlxuICogQ29weXJpZ2h0IDIwMTEgTW96aWxsYSBGb3VuZGF0aW9uIGFuZCBjb250cmlidXRvcnNcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBOZXcgQlNEIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIG9yOlxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZVxuICovXG5cbnZhciBTb3VyY2VNYXBHZW5lcmF0b3IgPSByZXF1aXJlKCcuL3NvdXJjZS1tYXAtZ2VuZXJhdG9yJykuU291cmNlTWFwR2VuZXJhdG9yO1xudmFyIHV0aWwgPSByZXF1aXJlKCcuL3V0aWwnKTtcblxuLy8gTWF0Y2hlcyBhIFdpbmRvd3Mtc3R5bGUgYFxcclxcbmAgbmV3bGluZSBvciBhIGBcXG5gIG5ld2xpbmUgdXNlZCBieSBhbGwgb3RoZXJcbi8vIG9wZXJhdGluZyBzeXN0ZW1zIHRoZXNlIGRheXMgKGNhcHR1cmluZyB0aGUgcmVzdWx0KS5cbnZhciBSRUdFWF9ORVdMSU5FID0gLyhcXHI/XFxuKS87XG5cbi8vIE5ld2xpbmUgY2hhcmFjdGVyIGNvZGUgZm9yIGNoYXJDb2RlQXQoKSBjb21wYXJpc29uc1xudmFyIE5FV0xJTkVfQ09ERSA9IDEwO1xuXG4vLyBQcml2YXRlIHN5bWJvbCBmb3IgaWRlbnRpZnlpbmcgYFNvdXJjZU5vZGVgcyB3aGVuIG11bHRpcGxlIHZlcnNpb25zIG9mXG4vLyB0aGUgc291cmNlLW1hcCBsaWJyYXJ5IGFyZSBsb2FkZWQuIFRoaXMgTVVTVCBOT1QgQ0hBTkdFIGFjcm9zc1xuLy8gdmVyc2lvbnMhXG52YXIgaXNTb3VyY2VOb2RlID0gXCIkJCRpc1NvdXJjZU5vZGUkJCRcIjtcblxuLyoqXG4gKiBTb3VyY2VOb2RlcyBwcm92aWRlIGEgd2F5IHRvIGFic3RyYWN0IG92ZXIgaW50ZXJwb2xhdGluZy9jb25jYXRlbmF0aW5nXG4gKiBzbmlwcGV0cyBvZiBnZW5lcmF0ZWQgSmF2YVNjcmlwdCBzb3VyY2UgY29kZSB3aGlsZSBtYWludGFpbmluZyB0aGUgbGluZSBhbmRcbiAqIGNvbHVtbiBpbmZvcm1hdGlvbiBhc3NvY2lhdGVkIHdpdGggdGhlIG9yaWdpbmFsIHNvdXJjZSBjb2RlLlxuICpcbiAqIEBwYXJhbSBhTGluZSBUaGUgb3JpZ2luYWwgbGluZSBudW1iZXIuXG4gKiBAcGFyYW0gYUNvbHVtbiBUaGUgb3JpZ2luYWwgY29sdW1uIG51bWJlci5cbiAqIEBwYXJhbSBhU291cmNlIFRoZSBvcmlnaW5hbCBzb3VyY2UncyBmaWxlbmFtZS5cbiAqIEBwYXJhbSBhQ2h1bmtzIE9wdGlvbmFsLiBBbiBhcnJheSBvZiBzdHJpbmdzIHdoaWNoIGFyZSBzbmlwcGV0cyBvZlxuICogICAgICAgIGdlbmVyYXRlZCBKUywgb3Igb3RoZXIgU291cmNlTm9kZXMuXG4gKiBAcGFyYW0gYU5hbWUgVGhlIG9yaWdpbmFsIGlkZW50aWZpZXIuXG4gKi9cbmZ1bmN0aW9uIFNvdXJjZU5vZGUoYUxpbmUsIGFDb2x1bW4sIGFTb3VyY2UsIGFDaHVua3MsIGFOYW1lKSB7XG4gIHRoaXMuY2hpbGRyZW4gPSBbXTtcbiAgdGhpcy5zb3VyY2VDb250ZW50cyA9IHt9O1xuICB0aGlzLmxpbmUgPSBhTGluZSA9PSBudWxsID8gbnVsbCA6IGFMaW5lO1xuICB0aGlzLmNvbHVtbiA9IGFDb2x1bW4gPT0gbnVsbCA/IG51bGwgOiBhQ29sdW1uO1xuICB0aGlzLnNvdXJjZSA9IGFTb3VyY2UgPT0gbnVsbCA/IG51bGwgOiBhU291cmNlO1xuICB0aGlzLm5hbWUgPSBhTmFtZSA9PSBudWxsID8gbnVsbCA6IGFOYW1lO1xuICB0aGlzW2lzU291cmNlTm9kZV0gPSB0cnVlO1xuICBpZiAoYUNodW5rcyAhPSBudWxsKSB0aGlzLmFkZChhQ2h1bmtzKTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgU291cmNlTm9kZSBmcm9tIGdlbmVyYXRlZCBjb2RlIGFuZCBhIFNvdXJjZU1hcENvbnN1bWVyLlxuICpcbiAqIEBwYXJhbSBhR2VuZXJhdGVkQ29kZSBUaGUgZ2VuZXJhdGVkIGNvZGVcbiAqIEBwYXJhbSBhU291cmNlTWFwQ29uc3VtZXIgVGhlIFNvdXJjZU1hcCBmb3IgdGhlIGdlbmVyYXRlZCBjb2RlXG4gKiBAcGFyYW0gYVJlbGF0aXZlUGF0aCBPcHRpb25hbC4gVGhlIHBhdGggdGhhdCByZWxhdGl2ZSBzb3VyY2VzIGluIHRoZVxuICogICAgICAgIFNvdXJjZU1hcENvbnN1bWVyIHNob3VsZCBiZSByZWxhdGl2ZSB0by5cbiAqL1xuU291cmNlTm9kZS5mcm9tU3RyaW5nV2l0aFNvdXJjZU1hcCA9XG4gIGZ1bmN0aW9uIFNvdXJjZU5vZGVfZnJvbVN0cmluZ1dpdGhTb3VyY2VNYXAoYUdlbmVyYXRlZENvZGUsIGFTb3VyY2VNYXBDb25zdW1lciwgYVJlbGF0aXZlUGF0aCkge1xuICAgIC8vIFRoZSBTb3VyY2VOb2RlIHdlIHdhbnQgdG8gZmlsbCB3aXRoIHRoZSBnZW5lcmF0ZWQgY29kZVxuICAgIC8vIGFuZCB0aGUgU291cmNlTWFwXG4gICAgdmFyIG5vZGUgPSBuZXcgU291cmNlTm9kZSgpO1xuXG4gICAgLy8gQWxsIGV2ZW4gaW5kaWNlcyBvZiB0aGlzIGFycmF5IGFyZSBvbmUgbGluZSBvZiB0aGUgZ2VuZXJhdGVkIGNvZGUsXG4gICAgLy8gd2hpbGUgYWxsIG9kZCBpbmRpY2VzIGFyZSB0aGUgbmV3bGluZXMgYmV0d2VlbiB0d28gYWRqYWNlbnQgbGluZXNcbiAgICAvLyAoc2luY2UgYFJFR0VYX05FV0xJTkVgIGNhcHR1cmVzIGl0cyBtYXRjaCkuXG4gICAgLy8gUHJvY2Vzc2VkIGZyYWdtZW50cyBhcmUgYWNjZXNzZWQgYnkgY2FsbGluZyBgc2hpZnROZXh0TGluZWAuXG4gICAgdmFyIHJlbWFpbmluZ0xpbmVzID0gYUdlbmVyYXRlZENvZGUuc3BsaXQoUkVHRVhfTkVXTElORSk7XG4gICAgdmFyIHJlbWFpbmluZ0xpbmVzSW5kZXggPSAwO1xuICAgIHZhciBzaGlmdE5leHRMaW5lID0gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgbGluZUNvbnRlbnRzID0gZ2V0TmV4dExpbmUoKTtcbiAgICAgIC8vIFRoZSBsYXN0IGxpbmUgb2YgYSBmaWxlIG1pZ2h0IG5vdCBoYXZlIGEgbmV3bGluZS5cbiAgICAgIHZhciBuZXdMaW5lID0gZ2V0TmV4dExpbmUoKSB8fCBcIlwiO1xuICAgICAgcmV0dXJuIGxpbmVDb250ZW50cyArIG5ld0xpbmU7XG5cbiAgICAgIGZ1bmN0aW9uIGdldE5leHRMaW5lKCkge1xuICAgICAgICByZXR1cm4gcmVtYWluaW5nTGluZXNJbmRleCA8IHJlbWFpbmluZ0xpbmVzLmxlbmd0aCA/XG4gICAgICAgICAgICByZW1haW5pbmdMaW5lc1tyZW1haW5pbmdMaW5lc0luZGV4KytdIDogdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIH07XG5cbiAgICAvLyBXZSBuZWVkIHRvIHJlbWVtYmVyIHRoZSBwb3NpdGlvbiBvZiBcInJlbWFpbmluZ0xpbmVzXCJcbiAgICB2YXIgbGFzdEdlbmVyYXRlZExpbmUgPSAxLCBsYXN0R2VuZXJhdGVkQ29sdW1uID0gMDtcblxuICAgIC8vIFRoZSBnZW5lcmF0ZSBTb3VyY2VOb2RlcyB3ZSBuZWVkIGEgY29kZSByYW5nZS5cbiAgICAvLyBUbyBleHRyYWN0IGl0IGN1cnJlbnQgYW5kIGxhc3QgbWFwcGluZyBpcyB1c2VkLlxuICAgIC8vIEhlcmUgd2Ugc3RvcmUgdGhlIGxhc3QgbWFwcGluZy5cbiAgICB2YXIgbGFzdE1hcHBpbmcgPSBudWxsO1xuXG4gICAgYVNvdXJjZU1hcENvbnN1bWVyLmVhY2hNYXBwaW5nKGZ1bmN0aW9uIChtYXBwaW5nKSB7XG4gICAgICBpZiAobGFzdE1hcHBpbmcgIT09IG51bGwpIHtcbiAgICAgICAgLy8gV2UgYWRkIHRoZSBjb2RlIGZyb20gXCJsYXN0TWFwcGluZ1wiIHRvIFwibWFwcGluZ1wiOlxuICAgICAgICAvLyBGaXJzdCBjaGVjayBpZiB0aGVyZSBpcyBhIG5ldyBsaW5lIGluIGJldHdlZW4uXG4gICAgICAgIGlmIChsYXN0R2VuZXJhdGVkTGluZSA8IG1hcHBpbmcuZ2VuZXJhdGVkTGluZSkge1xuICAgICAgICAgIC8vIEFzc29jaWF0ZSBmaXJzdCBsaW5lIHdpdGggXCJsYXN0TWFwcGluZ1wiXG4gICAgICAgICAgYWRkTWFwcGluZ1dpdGhDb2RlKGxhc3RNYXBwaW5nLCBzaGlmdE5leHRMaW5lKCkpO1xuICAgICAgICAgIGxhc3RHZW5lcmF0ZWRMaW5lKys7XG4gICAgICAgICAgbGFzdEdlbmVyYXRlZENvbHVtbiA9IDA7XG4gICAgICAgICAgLy8gVGhlIHJlbWFpbmluZyBjb2RlIGlzIGFkZGVkIHdpdGhvdXQgbWFwcGluZ1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIFRoZXJlIGlzIG5vIG5ldyBsaW5lIGluIGJldHdlZW4uXG4gICAgICAgICAgLy8gQXNzb2NpYXRlIHRoZSBjb2RlIGJldHdlZW4gXCJsYXN0R2VuZXJhdGVkQ29sdW1uXCIgYW5kXG4gICAgICAgICAgLy8gXCJtYXBwaW5nLmdlbmVyYXRlZENvbHVtblwiIHdpdGggXCJsYXN0TWFwcGluZ1wiXG4gICAgICAgICAgdmFyIG5leHRMaW5lID0gcmVtYWluaW5nTGluZXNbcmVtYWluaW5nTGluZXNJbmRleF07XG4gICAgICAgICAgdmFyIGNvZGUgPSBuZXh0TGluZS5zdWJzdHIoMCwgbWFwcGluZy5nZW5lcmF0ZWRDb2x1bW4gLVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RHZW5lcmF0ZWRDb2x1bW4pO1xuICAgICAgICAgIHJlbWFpbmluZ0xpbmVzW3JlbWFpbmluZ0xpbmVzSW5kZXhdID0gbmV4dExpbmUuc3Vic3RyKG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uIC1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0R2VuZXJhdGVkQ29sdW1uKTtcbiAgICAgICAgICBsYXN0R2VuZXJhdGVkQ29sdW1uID0gbWFwcGluZy5nZW5lcmF0ZWRDb2x1bW47XG4gICAgICAgICAgYWRkTWFwcGluZ1dpdGhDb2RlKGxhc3RNYXBwaW5nLCBjb2RlKTtcbiAgICAgICAgICAvLyBObyBtb3JlIHJlbWFpbmluZyBjb2RlLCBjb250aW51ZVxuICAgICAgICAgIGxhc3RNYXBwaW5nID0gbWFwcGluZztcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIFdlIGFkZCB0aGUgZ2VuZXJhdGVkIGNvZGUgdW50aWwgdGhlIGZpcnN0IG1hcHBpbmdcbiAgICAgIC8vIHRvIHRoZSBTb3VyY2VOb2RlIHdpdGhvdXQgYW55IG1hcHBpbmcuXG4gICAgICAvLyBFYWNoIGxpbmUgaXMgYWRkZWQgYXMgc2VwYXJhdGUgc3RyaW5nLlxuICAgICAgd2hpbGUgKGxhc3RHZW5lcmF0ZWRMaW5lIDwgbWFwcGluZy5nZW5lcmF0ZWRMaW5lKSB7XG4gICAgICAgIG5vZGUuYWRkKHNoaWZ0TmV4dExpbmUoKSk7XG4gICAgICAgIGxhc3RHZW5lcmF0ZWRMaW5lKys7XG4gICAgICB9XG4gICAgICBpZiAobGFzdEdlbmVyYXRlZENvbHVtbiA8IG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uKSB7XG4gICAgICAgIHZhciBuZXh0TGluZSA9IHJlbWFpbmluZ0xpbmVzW3JlbWFpbmluZ0xpbmVzSW5kZXhdO1xuICAgICAgICBub2RlLmFkZChuZXh0TGluZS5zdWJzdHIoMCwgbWFwcGluZy5nZW5lcmF0ZWRDb2x1bW4pKTtcbiAgICAgICAgcmVtYWluaW5nTGluZXNbcmVtYWluaW5nTGluZXNJbmRleF0gPSBuZXh0TGluZS5zdWJzdHIobWFwcGluZy5nZW5lcmF0ZWRDb2x1bW4pO1xuICAgICAgICBsYXN0R2VuZXJhdGVkQ29sdW1uID0gbWFwcGluZy5nZW5lcmF0ZWRDb2x1bW47XG4gICAgICB9XG4gICAgICBsYXN0TWFwcGluZyA9IG1hcHBpbmc7XG4gICAgfSwgdGhpcyk7XG4gICAgLy8gV2UgaGF2ZSBwcm9jZXNzZWQgYWxsIG1hcHBpbmdzLlxuICAgIGlmIChyZW1haW5pbmdMaW5lc0luZGV4IDwgcmVtYWluaW5nTGluZXMubGVuZ3RoKSB7XG4gICAgICBpZiAobGFzdE1hcHBpbmcpIHtcbiAgICAgICAgLy8gQXNzb2NpYXRlIHRoZSByZW1haW5pbmcgY29kZSBpbiB0aGUgY3VycmVudCBsaW5lIHdpdGggXCJsYXN0TWFwcGluZ1wiXG4gICAgICAgIGFkZE1hcHBpbmdXaXRoQ29kZShsYXN0TWFwcGluZywgc2hpZnROZXh0TGluZSgpKTtcbiAgICAgIH1cbiAgICAgIC8vIGFuZCBhZGQgdGhlIHJlbWFpbmluZyBsaW5lcyB3aXRob3V0IGFueSBtYXBwaW5nXG4gICAgICBub2RlLmFkZChyZW1haW5pbmdMaW5lcy5zcGxpY2UocmVtYWluaW5nTGluZXNJbmRleCkuam9pbihcIlwiKSk7XG4gICAgfVxuXG4gICAgLy8gQ29weSBzb3VyY2VzQ29udGVudCBpbnRvIFNvdXJjZU5vZGVcbiAgICBhU291cmNlTWFwQ29uc3VtZXIuc291cmNlcy5mb3JFYWNoKGZ1bmN0aW9uIChzb3VyY2VGaWxlKSB7XG4gICAgICB2YXIgY29udGVudCA9IGFTb3VyY2VNYXBDb25zdW1lci5zb3VyY2VDb250ZW50Rm9yKHNvdXJjZUZpbGUpO1xuICAgICAgaWYgKGNvbnRlbnQgIT0gbnVsbCkge1xuICAgICAgICBpZiAoYVJlbGF0aXZlUGF0aCAhPSBudWxsKSB7XG4gICAgICAgICAgc291cmNlRmlsZSA9IHV0aWwuam9pbihhUmVsYXRpdmVQYXRoLCBzb3VyY2VGaWxlKTtcbiAgICAgICAgfVxuICAgICAgICBub2RlLnNldFNvdXJjZUNvbnRlbnQoc291cmNlRmlsZSwgY29udGVudCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbm9kZTtcblxuICAgIGZ1bmN0aW9uIGFkZE1hcHBpbmdXaXRoQ29kZShtYXBwaW5nLCBjb2RlKSB7XG4gICAgICBpZiAobWFwcGluZyA9PT0gbnVsbCB8fCBtYXBwaW5nLnNvdXJjZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIG5vZGUuYWRkKGNvZGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIHNvdXJjZSA9IGFSZWxhdGl2ZVBhdGhcbiAgICAgICAgICA/IHV0aWwuam9pbihhUmVsYXRpdmVQYXRoLCBtYXBwaW5nLnNvdXJjZSlcbiAgICAgICAgICA6IG1hcHBpbmcuc291cmNlO1xuICAgICAgICBub2RlLmFkZChuZXcgU291cmNlTm9kZShtYXBwaW5nLm9yaWdpbmFsTGluZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwcGluZy5vcmlnaW5hbENvbHVtbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBwaW5nLm5hbWUpKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbi8qKlxuICogQWRkIGEgY2h1bmsgb2YgZ2VuZXJhdGVkIEpTIHRvIHRoaXMgc291cmNlIG5vZGUuXG4gKlxuICogQHBhcmFtIGFDaHVuayBBIHN0cmluZyBzbmlwcGV0IG9mIGdlbmVyYXRlZCBKUyBjb2RlLCBhbm90aGVyIGluc3RhbmNlIG9mXG4gKiAgICAgICAgU291cmNlTm9kZSwgb3IgYW4gYXJyYXkgd2hlcmUgZWFjaCBtZW1iZXIgaXMgb25lIG9mIHRob3NlIHRoaW5ncy5cbiAqL1xuU291cmNlTm9kZS5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24gU291cmNlTm9kZV9hZGQoYUNodW5rKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGFDaHVuaykpIHtcbiAgICBhQ2h1bmsuZm9yRWFjaChmdW5jdGlvbiAoY2h1bmspIHtcbiAgICAgIHRoaXMuYWRkKGNodW5rKTtcbiAgICB9LCB0aGlzKTtcbiAgfVxuICBlbHNlIGlmIChhQ2h1bmtbaXNTb3VyY2VOb2RlXSB8fCB0eXBlb2YgYUNodW5rID09PSBcInN0cmluZ1wiKSB7XG4gICAgaWYgKGFDaHVuaykge1xuICAgICAgdGhpcy5jaGlsZHJlbi5wdXNoKGFDaHVuayk7XG4gICAgfVxuICB9XG4gIGVsc2Uge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgICBcIkV4cGVjdGVkIGEgU291cmNlTm9kZSwgc3RyaW5nLCBvciBhbiBhcnJheSBvZiBTb3VyY2VOb2RlcyBhbmQgc3RyaW5ncy4gR290IFwiICsgYUNodW5rXG4gICAgKTtcbiAgfVxuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogQWRkIGEgY2h1bmsgb2YgZ2VuZXJhdGVkIEpTIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhpcyBzb3VyY2Ugbm9kZS5cbiAqXG4gKiBAcGFyYW0gYUNodW5rIEEgc3RyaW5nIHNuaXBwZXQgb2YgZ2VuZXJhdGVkIEpTIGNvZGUsIGFub3RoZXIgaW5zdGFuY2Ugb2ZcbiAqICAgICAgICBTb3VyY2VOb2RlLCBvciBhbiBhcnJheSB3aGVyZSBlYWNoIG1lbWJlciBpcyBvbmUgb2YgdGhvc2UgdGhpbmdzLlxuICovXG5Tb3VyY2VOb2RlLnByb3RvdHlwZS5wcmVwZW5kID0gZnVuY3Rpb24gU291cmNlTm9kZV9wcmVwZW5kKGFDaHVuaykge1xuICBpZiAoQXJyYXkuaXNBcnJheShhQ2h1bmspKSB7XG4gICAgZm9yICh2YXIgaSA9IGFDaHVuay5sZW5ndGgtMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIHRoaXMucHJlcGVuZChhQ2h1bmtbaV0pO1xuICAgIH1cbiAgfVxuICBlbHNlIGlmIChhQ2h1bmtbaXNTb3VyY2VOb2RlXSB8fCB0eXBlb2YgYUNodW5rID09PSBcInN0cmluZ1wiKSB7XG4gICAgdGhpcy5jaGlsZHJlbi51bnNoaWZ0KGFDaHVuayk7XG4gIH1cbiAgZWxzZSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgIFwiRXhwZWN0ZWQgYSBTb3VyY2VOb2RlLCBzdHJpbmcsIG9yIGFuIGFycmF5IG9mIFNvdXJjZU5vZGVzIGFuZCBzdHJpbmdzLiBHb3QgXCIgKyBhQ2h1bmtcbiAgICApO1xuICB9XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBXYWxrIG92ZXIgdGhlIHRyZWUgb2YgSlMgc25pcHBldHMgaW4gdGhpcyBub2RlIGFuZCBpdHMgY2hpbGRyZW4uIFRoZVxuICogd2Fsa2luZyBmdW5jdGlvbiBpcyBjYWxsZWQgb25jZSBmb3IgZWFjaCBzbmlwcGV0IG9mIEpTIGFuZCBpcyBwYXNzZWQgdGhhdFxuICogc25pcHBldCBhbmQgdGhlIGl0cyBvcmlnaW5hbCBhc3NvY2lhdGVkIHNvdXJjZSdzIGxpbmUvY29sdW1uIGxvY2F0aW9uLlxuICpcbiAqIEBwYXJhbSBhRm4gVGhlIHRyYXZlcnNhbCBmdW5jdGlvbi5cbiAqL1xuU291cmNlTm9kZS5wcm90b3R5cGUud2FsayA9IGZ1bmN0aW9uIFNvdXJjZU5vZGVfd2FsayhhRm4pIHtcbiAgdmFyIGNodW5rO1xuICBmb3IgKHZhciBpID0gMCwgbGVuID0gdGhpcy5jaGlsZHJlbi5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgIGNodW5rID0gdGhpcy5jaGlsZHJlbltpXTtcbiAgICBpZiAoY2h1bmtbaXNTb3VyY2VOb2RlXSkge1xuICAgICAgY2h1bmsud2FsayhhRm4pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGlmIChjaHVuayAhPT0gJycpIHtcbiAgICAgICAgYUZuKGNodW5rLCB7IHNvdXJjZTogdGhpcy5zb3VyY2UsXG4gICAgICAgICAgICAgICAgICAgICBsaW5lOiB0aGlzLmxpbmUsXG4gICAgICAgICAgICAgICAgICAgICBjb2x1bW46IHRoaXMuY29sdW1uLFxuICAgICAgICAgICAgICAgICAgICAgbmFtZTogdGhpcy5uYW1lIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufTtcblxuLyoqXG4gKiBMaWtlIGBTdHJpbmcucHJvdG90eXBlLmpvaW5gIGV4Y2VwdCBmb3IgU291cmNlTm9kZXMuIEluc2VydHMgYGFTdHJgIGJldHdlZW5cbiAqIGVhY2ggb2YgYHRoaXMuY2hpbGRyZW5gLlxuICpcbiAqIEBwYXJhbSBhU2VwIFRoZSBzZXBhcmF0b3IuXG4gKi9cblNvdXJjZU5vZGUucHJvdG90eXBlLmpvaW4gPSBmdW5jdGlvbiBTb3VyY2VOb2RlX2pvaW4oYVNlcCkge1xuICB2YXIgbmV3Q2hpbGRyZW47XG4gIHZhciBpO1xuICB2YXIgbGVuID0gdGhpcy5jaGlsZHJlbi5sZW5ndGg7XG4gIGlmIChsZW4gPiAwKSB7XG4gICAgbmV3Q2hpbGRyZW4gPSBbXTtcbiAgICBmb3IgKGkgPSAwOyBpIDwgbGVuLTE7IGkrKykge1xuICAgICAgbmV3Q2hpbGRyZW4ucHVzaCh0aGlzLmNoaWxkcmVuW2ldKTtcbiAgICAgIG5ld0NoaWxkcmVuLnB1c2goYVNlcCk7XG4gICAgfVxuICAgIG5ld0NoaWxkcmVuLnB1c2godGhpcy5jaGlsZHJlbltpXSk7XG4gICAgdGhpcy5jaGlsZHJlbiA9IG5ld0NoaWxkcmVuO1xuICB9XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBDYWxsIFN0cmluZy5wcm90b3R5cGUucmVwbGFjZSBvbiB0aGUgdmVyeSByaWdodC1tb3N0IHNvdXJjZSBzbmlwcGV0LiBVc2VmdWxcbiAqIGZvciB0cmltbWluZyB3aGl0ZXNwYWNlIGZyb20gdGhlIGVuZCBvZiBhIHNvdXJjZSBub2RlLCBldGMuXG4gKlxuICogQHBhcmFtIGFQYXR0ZXJuIFRoZSBwYXR0ZXJuIHRvIHJlcGxhY2UuXG4gKiBAcGFyYW0gYVJlcGxhY2VtZW50IFRoZSB0aGluZyB0byByZXBsYWNlIHRoZSBwYXR0ZXJuIHdpdGguXG4gKi9cblNvdXJjZU5vZGUucHJvdG90eXBlLnJlcGxhY2VSaWdodCA9IGZ1bmN0aW9uIFNvdXJjZU5vZGVfcmVwbGFjZVJpZ2h0KGFQYXR0ZXJuLCBhUmVwbGFjZW1lbnQpIHtcbiAgdmFyIGxhc3RDaGlsZCA9IHRoaXMuY2hpbGRyZW5bdGhpcy5jaGlsZHJlbi5sZW5ndGggLSAxXTtcbiAgaWYgKGxhc3RDaGlsZFtpc1NvdXJjZU5vZGVdKSB7XG4gICAgbGFzdENoaWxkLnJlcGxhY2VSaWdodChhUGF0dGVybiwgYVJlcGxhY2VtZW50KTtcbiAgfVxuICBlbHNlIGlmICh0eXBlb2YgbGFzdENoaWxkID09PSAnc3RyaW5nJykge1xuICAgIHRoaXMuY2hpbGRyZW5bdGhpcy5jaGlsZHJlbi5sZW5ndGggLSAxXSA9IGxhc3RDaGlsZC5yZXBsYWNlKGFQYXR0ZXJuLCBhUmVwbGFjZW1lbnQpO1xuICB9XG4gIGVsc2Uge1xuICAgIHRoaXMuY2hpbGRyZW4ucHVzaCgnJy5yZXBsYWNlKGFQYXR0ZXJuLCBhUmVwbGFjZW1lbnQpKTtcbiAgfVxuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogU2V0IHRoZSBzb3VyY2UgY29udGVudCBmb3IgYSBzb3VyY2UgZmlsZS4gVGhpcyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBTb3VyY2VNYXBHZW5lcmF0b3JcbiAqIGluIHRoZSBzb3VyY2VzQ29udGVudCBmaWVsZC5cbiAqXG4gKiBAcGFyYW0gYVNvdXJjZUZpbGUgVGhlIGZpbGVuYW1lIG9mIHRoZSBzb3VyY2UgZmlsZVxuICogQHBhcmFtIGFTb3VyY2VDb250ZW50IFRoZSBjb250ZW50IG9mIHRoZSBzb3VyY2UgZmlsZVxuICovXG5Tb3VyY2VOb2RlLnByb3RvdHlwZS5zZXRTb3VyY2VDb250ZW50ID1cbiAgZnVuY3Rpb24gU291cmNlTm9kZV9zZXRTb3VyY2VDb250ZW50KGFTb3VyY2VGaWxlLCBhU291cmNlQ29udGVudCkge1xuICAgIHRoaXMuc291cmNlQ29udGVudHNbdXRpbC50b1NldFN0cmluZyhhU291cmNlRmlsZSldID0gYVNvdXJjZUNvbnRlbnQ7XG4gIH07XG5cbi8qKlxuICogV2FsayBvdmVyIHRoZSB0cmVlIG9mIFNvdXJjZU5vZGVzLiBUaGUgd2Fsa2luZyBmdW5jdGlvbiBpcyBjYWxsZWQgZm9yIGVhY2hcbiAqIHNvdXJjZSBmaWxlIGNvbnRlbnQgYW5kIGlzIHBhc3NlZCB0aGUgZmlsZW5hbWUgYW5kIHNvdXJjZSBjb250ZW50LlxuICpcbiAqIEBwYXJhbSBhRm4gVGhlIHRyYXZlcnNhbCBmdW5jdGlvbi5cbiAqL1xuU291cmNlTm9kZS5wcm90b3R5cGUud2Fsa1NvdXJjZUNvbnRlbnRzID1cbiAgZnVuY3Rpb24gU291cmNlTm9kZV93YWxrU291cmNlQ29udGVudHMoYUZuKSB7XG4gICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IHRoaXMuY2hpbGRyZW4ubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLmNoaWxkcmVuW2ldW2lzU291cmNlTm9kZV0pIHtcbiAgICAgICAgdGhpcy5jaGlsZHJlbltpXS53YWxrU291cmNlQ29udGVudHMoYUZuKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgc291cmNlcyA9IE9iamVjdC5rZXlzKHRoaXMuc291cmNlQ29udGVudHMpO1xuICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBzb3VyY2VzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICBhRm4odXRpbC5mcm9tU2V0U3RyaW5nKHNvdXJjZXNbaV0pLCB0aGlzLnNvdXJjZUNvbnRlbnRzW3NvdXJjZXNbaV1dKTtcbiAgICB9XG4gIH07XG5cbi8qKlxuICogUmV0dXJuIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBzb3VyY2Ugbm9kZS4gV2Fsa3Mgb3ZlciB0aGUgdHJlZVxuICogYW5kIGNvbmNhdGVuYXRlcyBhbGwgdGhlIHZhcmlvdXMgc25pcHBldHMgdG9nZXRoZXIgdG8gb25lIHN0cmluZy5cbiAqL1xuU291cmNlTm9kZS5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiBTb3VyY2VOb2RlX3RvU3RyaW5nKCkge1xuICB2YXIgc3RyID0gXCJcIjtcbiAgdGhpcy53YWxrKGZ1bmN0aW9uIChjaHVuaykge1xuICAgIHN0ciArPSBjaHVuaztcbiAgfSk7XG4gIHJldHVybiBzdHI7XG59O1xuXG4vKipcbiAqIFJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHNvdXJjZSBub2RlIGFsb25nIHdpdGggYSBzb3VyY2VcbiAqIG1hcC5cbiAqL1xuU291cmNlTm9kZS5wcm90b3R5cGUudG9TdHJpbmdXaXRoU291cmNlTWFwID0gZnVuY3Rpb24gU291cmNlTm9kZV90b1N0cmluZ1dpdGhTb3VyY2VNYXAoYUFyZ3MpIHtcbiAgdmFyIGdlbmVyYXRlZCA9IHtcbiAgICBjb2RlOiBcIlwiLFxuICAgIGxpbmU6IDEsXG4gICAgY29sdW1uOiAwXG4gIH07XG4gIHZhciBtYXAgPSBuZXcgU291cmNlTWFwR2VuZXJhdG9yKGFBcmdzKTtcbiAgdmFyIHNvdXJjZU1hcHBpbmdBY3RpdmUgPSBmYWxzZTtcbiAgdmFyIGxhc3RPcmlnaW5hbFNvdXJjZSA9IG51bGw7XG4gIHZhciBsYXN0T3JpZ2luYWxMaW5lID0gbnVsbDtcbiAgdmFyIGxhc3RPcmlnaW5hbENvbHVtbiA9IG51bGw7XG4gIHZhciBsYXN0T3JpZ2luYWxOYW1lID0gbnVsbDtcbiAgdGhpcy53YWxrKGZ1bmN0aW9uIChjaHVuaywgb3JpZ2luYWwpIHtcbiAgICBnZW5lcmF0ZWQuY29kZSArPSBjaHVuaztcbiAgICBpZiAob3JpZ2luYWwuc291cmNlICE9PSBudWxsXG4gICAgICAgICYmIG9yaWdpbmFsLmxpbmUgIT09IG51bGxcbiAgICAgICAgJiYgb3JpZ2luYWwuY29sdW1uICE9PSBudWxsKSB7XG4gICAgICBpZihsYXN0T3JpZ2luYWxTb3VyY2UgIT09IG9yaWdpbmFsLnNvdXJjZVxuICAgICAgICAgfHwgbGFzdE9yaWdpbmFsTGluZSAhPT0gb3JpZ2luYWwubGluZVxuICAgICAgICAgfHwgbGFzdE9yaWdpbmFsQ29sdW1uICE9PSBvcmlnaW5hbC5jb2x1bW5cbiAgICAgICAgIHx8IGxhc3RPcmlnaW5hbE5hbWUgIT09IG9yaWdpbmFsLm5hbWUpIHtcbiAgICAgICAgbWFwLmFkZE1hcHBpbmcoe1xuICAgICAgICAgIHNvdXJjZTogb3JpZ2luYWwuc291cmNlLFxuICAgICAgICAgIG9yaWdpbmFsOiB7XG4gICAgICAgICAgICBsaW5lOiBvcmlnaW5hbC5saW5lLFxuICAgICAgICAgICAgY29sdW1uOiBvcmlnaW5hbC5jb2x1bW5cbiAgICAgICAgICB9LFxuICAgICAgICAgIGdlbmVyYXRlZDoge1xuICAgICAgICAgICAgbGluZTogZ2VuZXJhdGVkLmxpbmUsXG4gICAgICAgICAgICBjb2x1bW46IGdlbmVyYXRlZC5jb2x1bW5cbiAgICAgICAgICB9LFxuICAgICAgICAgIG5hbWU6IG9yaWdpbmFsLm5hbWVcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBsYXN0T3JpZ2luYWxTb3VyY2UgPSBvcmlnaW5hbC5zb3VyY2U7XG4gICAgICBsYXN0T3JpZ2luYWxMaW5lID0gb3JpZ2luYWwubGluZTtcbiAgICAgIGxhc3RPcmlnaW5hbENvbHVtbiA9IG9yaWdpbmFsLmNvbHVtbjtcbiAgICAgIGxhc3RPcmlnaW5hbE5hbWUgPSBvcmlnaW5hbC5uYW1lO1xuICAgICAgc291cmNlTWFwcGluZ0FjdGl2ZSA9IHRydWU7XG4gICAgfSBlbHNlIGlmIChzb3VyY2VNYXBwaW5nQWN0aXZlKSB7XG4gICAgICBtYXAuYWRkTWFwcGluZyh7XG4gICAgICAgIGdlbmVyYXRlZDoge1xuICAgICAgICAgIGxpbmU6IGdlbmVyYXRlZC5saW5lLFxuICAgICAgICAgIGNvbHVtbjogZ2VuZXJhdGVkLmNvbHVtblxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGxhc3RPcmlnaW5hbFNvdXJjZSA9IG51bGw7XG4gICAgICBzb3VyY2VNYXBwaW5nQWN0aXZlID0gZmFsc2U7XG4gICAgfVxuICAgIGZvciAodmFyIGlkeCA9IDAsIGxlbmd0aCA9IGNodW5rLmxlbmd0aDsgaWR4IDwgbGVuZ3RoOyBpZHgrKykge1xuICAgICAgaWYgKGNodW5rLmNoYXJDb2RlQXQoaWR4KSA9PT0gTkVXTElORV9DT0RFKSB7XG4gICAgICAgIGdlbmVyYXRlZC5saW5lKys7XG4gICAgICAgIGdlbmVyYXRlZC5jb2x1bW4gPSAwO1xuICAgICAgICAvLyBNYXBwaW5ncyBlbmQgYXQgZW9sXG4gICAgICAgIGlmIChpZHggKyAxID09PSBsZW5ndGgpIHtcbiAgICAgICAgICBsYXN0T3JpZ2luYWxTb3VyY2UgPSBudWxsO1xuICAgICAgICAgIHNvdXJjZU1hcHBpbmdBY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIGlmIChzb3VyY2VNYXBwaW5nQWN0aXZlKSB7XG4gICAgICAgICAgbWFwLmFkZE1hcHBpbmcoe1xuICAgICAgICAgICAgc291cmNlOiBvcmlnaW5hbC5zb3VyY2UsXG4gICAgICAgICAgICBvcmlnaW5hbDoge1xuICAgICAgICAgICAgICBsaW5lOiBvcmlnaW5hbC5saW5lLFxuICAgICAgICAgICAgICBjb2x1bW46IG9yaWdpbmFsLmNvbHVtblxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdlbmVyYXRlZDoge1xuICAgICAgICAgICAgICBsaW5lOiBnZW5lcmF0ZWQubGluZSxcbiAgICAgICAgICAgICAgY29sdW1uOiBnZW5lcmF0ZWQuY29sdW1uXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmFtZTogb3JpZ2luYWwubmFtZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBnZW5lcmF0ZWQuY29sdW1uKys7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbiAgdGhpcy53YWxrU291cmNlQ29udGVudHMoZnVuY3Rpb24gKHNvdXJjZUZpbGUsIHNvdXJjZUNvbnRlbnQpIHtcbiAgICBtYXAuc2V0U291cmNlQ29udGVudChzb3VyY2VGaWxlLCBzb3VyY2VDb250ZW50KTtcbiAgfSk7XG5cbiAgcmV0dXJuIHsgY29kZTogZ2VuZXJhdGVkLmNvZGUsIG1hcDogbWFwIH07XG59O1xuXG5leHBvcnRzLlNvdXJjZU5vZGUgPSBTb3VyY2VOb2RlO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9saWIvc291cmNlLW5vZGUuanNcbi8vIG1vZHVsZSBpZCA9IDEwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=
\ No newline at end of file
diff --git a/node_modules/source-map/dist/source-map.js b/node_modules/source-map/dist/source-map.js
deleted file mode 100644
index 4e630e2..0000000
--- a/node_modules/source-map/dist/source-map.js
+++ /dev/null
@@ -1,3090 +0,0 @@
-(function webpackUniversalModuleDefinition(root, factory) {
- if(typeof exports === 'object' && typeof module === 'object')
- module.exports = factory();
- else if(typeof define === 'function' && define.amd)
- define([], factory);
- else if(typeof exports === 'object')
- exports["sourceMap"] = factory();
- else
- root["sourceMap"] = factory();
-})(this, function() {
-return /******/ (function(modules) { // webpackBootstrap
-/******/ // The module cache
-/******/ var installedModules = {};
-
-/******/ // The require function
-/******/ function __webpack_require__(moduleId) {
-
-/******/ // Check if module is in cache
-/******/ if(installedModules[moduleId])
-/******/ return installedModules[moduleId].exports;
-
-/******/ // Create a new module (and put it into the cache)
-/******/ var module = installedModules[moduleId] = {
-/******/ exports: {},
-/******/ id: moduleId,
-/******/ loaded: false
-/******/ };
-
-/******/ // Execute the module function
-/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-
-/******/ // Flag the module as loaded
-/******/ module.loaded = true;
-
-/******/ // Return the exports of the module
-/******/ return module.exports;
-/******/ }
-
-
-/******/ // expose the modules object (__webpack_modules__)
-/******/ __webpack_require__.m = modules;
-
-/******/ // expose the module cache
-/******/ __webpack_require__.c = installedModules;
-
-/******/ // __webpack_public_path__
-/******/ __webpack_require__.p = "";
-
-/******/ // Load entry module and return exports
-/******/ return __webpack_require__(0);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ (function(module, exports, __webpack_require__) {
-
- /*
- * Copyright 2009-2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE.txt or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
- exports.SourceMapGenerator = __webpack_require__(1).SourceMapGenerator;
- exports.SourceMapConsumer = __webpack_require__(7).SourceMapConsumer;
- exports.SourceNode = __webpack_require__(10).SourceNode;
-
-
-/***/ }),
-/* 1 */
-/***/ (function(module, exports, __webpack_require__) {
-
- /* -*- Mode: js; js-indent-level: 2; -*- */
- /*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
- var base64VLQ = __webpack_require__(2);
- var util = __webpack_require__(4);
- var ArraySet = __webpack_require__(5).ArraySet;
- var MappingList = __webpack_require__(6).MappingList;
-
- /**
- * An instance of the SourceMapGenerator represents a source map which is
- * being built incrementally. You may pass an object with the following
- * properties:
- *
- * - file: The filename of the generated source.
- * - sourceRoot: A root for all relative URLs in this source map.
- */
- function SourceMapGenerator(aArgs) {
- if (!aArgs) {
- aArgs = {};
- }
- this._file = util.getArg(aArgs, 'file', null);
- this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);
- this._skipValidation = util.getArg(aArgs, 'skipValidation', false);
- this._sources = new ArraySet();
- this._names = new ArraySet();
- this._mappings = new MappingList();
- this._sourcesContents = null;
- }
-
- SourceMapGenerator.prototype._version = 3;
-
- /**
- * Creates a new SourceMapGenerator based on a SourceMapConsumer
- *
- * @param aSourceMapConsumer The SourceMap.
- */
- SourceMapGenerator.fromSourceMap =
- function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {
- var sourceRoot = aSourceMapConsumer.sourceRoot;
- var generator = new SourceMapGenerator({
- file: aSourceMapConsumer.file,
- sourceRoot: sourceRoot
- });
- aSourceMapConsumer.eachMapping(function (mapping) {
- var newMapping = {
- generated: {
- line: mapping.generatedLine,
- column: mapping.generatedColumn
- }
- };
-
- if (mapping.source != null) {
- newMapping.source = mapping.source;
- if (sourceRoot != null) {
- newMapping.source = util.relative(sourceRoot, newMapping.source);
- }
-
- newMapping.original = {
- line: mapping.originalLine,
- column: mapping.originalColumn
- };
-
- if (mapping.name != null) {
- newMapping.name = mapping.name;
- }
- }
-
- generator.addMapping(newMapping);
- });
- aSourceMapConsumer.sources.forEach(function (sourceFile) {
- var content = aSourceMapConsumer.sourceContentFor(sourceFile);
- if (content != null) {
- generator.setSourceContent(sourceFile, content);
- }
- });
- return generator;
- };
-
- /**
- * Add a single mapping from original source line and column to the generated
- * source's line and column for this source map being created. The mapping
- * object should have the following properties:
- *
- * - generated: An object with the generated line and column positions.
- * - original: An object with the original line and column positions.
- * - source: The original source file (relative to the sourceRoot).
- * - name: An optional original token name for this mapping.
- */
- SourceMapGenerator.prototype.addMapping =
- function SourceMapGenerator_addMapping(aArgs) {
- var generated = util.getArg(aArgs, 'generated');
- var original = util.getArg(aArgs, 'original', null);
- var source = util.getArg(aArgs, 'source', null);
- var name = util.getArg(aArgs, 'name', null);
-
- if (!this._skipValidation) {
- this._validateMapping(generated, original, source, name);
- }
-
- if (source != null) {
- source = String(source);
- if (!this._sources.has(source)) {
- this._sources.add(source);
- }
- }
-
- if (name != null) {
- name = String(name);
- if (!this._names.has(name)) {
- this._names.add(name);
- }
- }
-
- this._mappings.add({
- generatedLine: generated.line,
- generatedColumn: generated.column,
- originalLine: original != null && original.line,
- originalColumn: original != null && original.column,
- source: source,
- name: name
- });
- };
-
- /**
- * Set the source content for a source file.
- */
- SourceMapGenerator.prototype.setSourceContent =
- function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {
- var source = aSourceFile;
- if (this._sourceRoot != null) {
- source = util.relative(this._sourceRoot, source);
- }
-
- if (aSourceContent != null) {
- // Add the source content to the _sourcesContents map.
- // Create a new _sourcesContents map if the property is null.
- if (!this._sourcesContents) {
- this._sourcesContents = Object.create(null);
- }
- this._sourcesContents[util.toSetString(source)] = aSourceContent;
- } else if (this._sourcesContents) {
- // Remove the source file from the _sourcesContents map.
- // If the _sourcesContents map is empty, set the property to null.
- delete this._sourcesContents[util.toSetString(source)];
- if (Object.keys(this._sourcesContents).length === 0) {
- this._sourcesContents = null;
- }
- }
- };
-
- /**
- * Applies the mappings of a sub-source-map for a specific source file to the
- * source map being generated. Each mapping to the supplied source file is
- * rewritten using the supplied source map. Note: The resolution for the
- * resulting mappings is the minimium of this map and the supplied map.
- *
- * @param aSourceMapConsumer The source map to be applied.
- * @param aSourceFile Optional. The filename of the source file.
- * If omitted, SourceMapConsumer's file property will be used.
- * @param aSourceMapPath Optional. The dirname of the path to the source map
- * to be applied. If relative, it is relative to the SourceMapConsumer.
- * This parameter is needed when the two source maps aren't in the same
- * directory, and the source map to be applied contains relative source
- * paths. If so, those relative source paths need to be rewritten
- * relative to the SourceMapGenerator.
- */
- SourceMapGenerator.prototype.applySourceMap =
- function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {
- var sourceFile = aSourceFile;
- // If aSourceFile is omitted, we will use the file property of the SourceMap
- if (aSourceFile == null) {
- if (aSourceMapConsumer.file == null) {
- throw new Error(
- 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +
- 'or the source map\'s "file" property. Both were omitted.'
- );
- }
- sourceFile = aSourceMapConsumer.file;
- }
- var sourceRoot = this._sourceRoot;
- // Make "sourceFile" relative if an absolute Url is passed.
- if (sourceRoot != null) {
- sourceFile = util.relative(sourceRoot, sourceFile);
- }
- // Applying the SourceMap can add and remove items from the sources and
- // the names array.
- var newSources = new ArraySet();
- var newNames = new ArraySet();
-
- // Find mappings for the "sourceFile"
- this._mappings.unsortedForEach(function (mapping) {
- if (mapping.source === sourceFile && mapping.originalLine != null) {
- // Check if it can be mapped by the source map, then update the mapping.
- var original = aSourceMapConsumer.originalPositionFor({
- line: mapping.originalLine,
- column: mapping.originalColumn
- });
- if (original.source != null) {
- // Copy mapping
- mapping.source = original.source;
- if (aSourceMapPath != null) {
- mapping.source = util.join(aSourceMapPath, mapping.source)
- }
- if (sourceRoot != null) {
- mapping.source = util.relative(sourceRoot, mapping.source);
- }
- mapping.originalLine = original.line;
- mapping.originalColumn = original.column;
- if (original.name != null) {
- mapping.name = original.name;
- }
- }
- }
-
- var source = mapping.source;
- if (source != null && !newSources.has(source)) {
- newSources.add(source);
- }
-
- var name = mapping.name;
- if (name != null && !newNames.has(name)) {
- newNames.add(name);
- }
-
- }, this);
- this._sources = newSources;
- this._names = newNames;
-
- // Copy sourcesContents of applied map.
- aSourceMapConsumer.sources.forEach(function (sourceFile) {
- var content = aSourceMapConsumer.sourceContentFor(sourceFile);
- if (content != null) {
- if (aSourceMapPath != null) {
- sourceFile = util.join(aSourceMapPath, sourceFile);
- }
- if (sourceRoot != null) {
- sourceFile = util.relative(sourceRoot, sourceFile);
- }
- this.setSourceContent(sourceFile, content);
- }
- }, this);
- };
-
- /**
- * A mapping can have one of the three levels of data:
- *
- * 1. Just the generated position.
- * 2. The Generated position, original position, and original source.
- * 3. Generated and original position, original source, as well as a name
- * token.
- *
- * To maintain consistency, we validate that any new mapping being added falls
- * in to one of these categories.
- */
- SourceMapGenerator.prototype._validateMapping =
- function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,
- aName) {
- // When aOriginal is truthy but has empty values for .line and .column,
- // it is most likely a programmer error. In this case we throw a very
- // specific error message to try to guide them the right way.
- // For example: https://github.com/Polymer/polymer-bundler/pull/519
- if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {
- throw new Error(
- 'original.line and original.column are not numbers -- you probably meant to omit ' +
- 'the original mapping entirely and only map the generated position. If so, pass ' +
- 'null for the original mapping instead of an object with empty or null values.'
- );
- }
-
- if (aGenerated && 'line' in aGenerated && 'column' in aGenerated
- && aGenerated.line > 0 && aGenerated.column >= 0
- && !aOriginal && !aSource && !aName) {
- // Case 1.
- return;
- }
- else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated
- && aOriginal && 'line' in aOriginal && 'column' in aOriginal
- && aGenerated.line > 0 && aGenerated.column >= 0
- && aOriginal.line > 0 && aOriginal.column >= 0
- && aSource) {
- // Cases 2 and 3.
- return;
- }
- else {
- throw new Error('Invalid mapping: ' + JSON.stringify({
- generated: aGenerated,
- source: aSource,
- original: aOriginal,
- name: aName
- }));
- }
- };
-
- /**
- * Serialize the accumulated mappings in to the stream of base 64 VLQs
- * specified by the source map format.
- */
- SourceMapGenerator.prototype._serializeMappings =
- function SourceMapGenerator_serializeMappings() {
- var previousGeneratedColumn = 0;
- var previousGeneratedLine = 1;
- var previousOriginalColumn = 0;
- var previousOriginalLine = 0;
- var previousName = 0;
- var previousSource = 0;
- var result = '';
- var next;
- var mapping;
- var nameIdx;
- var sourceIdx;
-
- var mappings = this._mappings.toArray();
- for (var i = 0, len = mappings.length; i < len; i++) {
- mapping = mappings[i];
- next = ''
-
- if (mapping.generatedLine !== previousGeneratedLine) {
- previousGeneratedColumn = 0;
- while (mapping.generatedLine !== previousGeneratedLine) {
- next += ';';
- previousGeneratedLine++;
- }
- }
- else {
- if (i > 0) {
- if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {
- continue;
- }
- next += ',';
- }
- }
-
- next += base64VLQ.encode(mapping.generatedColumn
- - previousGeneratedColumn);
- previousGeneratedColumn = mapping.generatedColumn;
-
- if (mapping.source != null) {
- sourceIdx = this._sources.indexOf(mapping.source);
- next += base64VLQ.encode(sourceIdx - previousSource);
- previousSource = sourceIdx;
-
- // lines are stored 0-based in SourceMap spec version 3
- next += base64VLQ.encode(mapping.originalLine - 1
- - previousOriginalLine);
- previousOriginalLine = mapping.originalLine - 1;
-
- next += base64VLQ.encode(mapping.originalColumn
- - previousOriginalColumn);
- previousOriginalColumn = mapping.originalColumn;
-
- if (mapping.name != null) {
- nameIdx = this._names.indexOf(mapping.name);
- next += base64VLQ.encode(nameIdx - previousName);
- previousName = nameIdx;
- }
- }
-
- result += next;
- }
-
- return result;
- };
-
- SourceMapGenerator.prototype._generateSourcesContent =
- function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {
- return aSources.map(function (source) {
- if (!this._sourcesContents) {
- return null;
- }
- if (aSourceRoot != null) {
- source = util.relative(aSourceRoot, source);
- }
- var key = util.toSetString(source);
- return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)
- ? this._sourcesContents[key]
- : null;
- }, this);
- };
-
- /**
- * Externalize the source map.
- */
- SourceMapGenerator.prototype.toJSON =
- function SourceMapGenerator_toJSON() {
- var map = {
- version: this._version,
- sources: this._sources.toArray(),
- names: this._names.toArray(),
- mappings: this._serializeMappings()
- };
- if (this._file != null) {
- map.file = this._file;
- }
- if (this._sourceRoot != null) {
- map.sourceRoot = this._sourceRoot;
- }
- if (this._sourcesContents) {
- map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);
- }
-
- return map;
- };
-
- /**
- * Render the source map being generated to a string.
- */
- SourceMapGenerator.prototype.toString =
- function SourceMapGenerator_toString() {
- return JSON.stringify(this.toJSON());
- };
-
- exports.SourceMapGenerator = SourceMapGenerator;
-
-
-/***/ }),
-/* 2 */
-/***/ (function(module, exports, __webpack_require__) {
-
- /* -*- Mode: js; js-indent-level: 2; -*- */
- /*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- *
- * Based on the Base 64 VLQ implementation in Closure Compiler:
- * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java
- *
- * Copyright 2011 The Closure Compiler Authors. All rights reserved.
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided
- * with the distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
- var base64 = __webpack_require__(3);
-
- // A single base 64 digit can contain 6 bits of data. For the base 64 variable
- // length quantities we use in the source map spec, the first bit is the sign,
- // the next four bits are the actual value, and the 6th bit is the
- // continuation bit. The continuation bit tells us whether there are more
- // digits in this value following this digit.
- //
- // Continuation
- // | Sign
- // | |
- // V V
- // 101011
-
- var VLQ_BASE_SHIFT = 5;
-
- // binary: 100000
- var VLQ_BASE = 1 << VLQ_BASE_SHIFT;
-
- // binary: 011111
- var VLQ_BASE_MASK = VLQ_BASE - 1;
-
- // binary: 100000
- var VLQ_CONTINUATION_BIT = VLQ_BASE;
-
- /**
- * Converts from a two-complement value to a value where the sign bit is
- * placed in the least significant bit. For example, as decimals:
- * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary)
- * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary)
- */
- function toVLQSigned(aValue) {
- return aValue < 0
- ? ((-aValue) << 1) + 1
- : (aValue << 1) + 0;
- }
-
- /**
- * Converts to a two-complement value from a value where the sign bit is
- * placed in the least significant bit. For example, as decimals:
- * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1
- * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2
- */
- function fromVLQSigned(aValue) {
- var isNegative = (aValue & 1) === 1;
- var shifted = aValue >> 1;
- return isNegative
- ? -shifted
- : shifted;
- }
-
- /**
- * Returns the base 64 VLQ encoded value.
- */
- exports.encode = function base64VLQ_encode(aValue) {
- var encoded = "";
- var digit;
-
- var vlq = toVLQSigned(aValue);
-
- do {
- digit = vlq & VLQ_BASE_MASK;
- vlq >>>= VLQ_BASE_SHIFT;
- if (vlq > 0) {
- // There are still more digits in this value, so we must make sure the
- // continuation bit is marked.
- digit |= VLQ_CONTINUATION_BIT;
- }
- encoded += base64.encode(digit);
- } while (vlq > 0);
-
- return encoded;
- };
-
- /**
- * Decodes the next base 64 VLQ value from the given string and returns the
- * value and the rest of the string via the out parameter.
- */
- exports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {
- var strLen = aStr.length;
- var result = 0;
- var shift = 0;
- var continuation, digit;
-
- do {
- if (aIndex >= strLen) {
- throw new Error("Expected more digits in base 64 VLQ value.");
- }
-
- digit = base64.decode(aStr.charCodeAt(aIndex++));
- if (digit === -1) {
- throw new Error("Invalid base64 digit: " + aStr.charAt(aIndex - 1));
- }
-
- continuation = !!(digit & VLQ_CONTINUATION_BIT);
- digit &= VLQ_BASE_MASK;
- result = result + (digit << shift);
- shift += VLQ_BASE_SHIFT;
- } while (continuation);
-
- aOutParam.value = fromVLQSigned(result);
- aOutParam.rest = aIndex;
- };
-
-
-/***/ }),
-/* 3 */
-/***/ (function(module, exports) {
-
- /* -*- Mode: js; js-indent-level: 2; -*- */
- /*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
- var intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');
-
- /**
- * Encode an integer in the range of 0 to 63 to a single base 64 digit.
- */
- exports.encode = function (number) {
- if (0 <= number && number < intToCharMap.length) {
- return intToCharMap[number];
- }
- throw new TypeError("Must be between 0 and 63: " + number);
- };
-
- /**
- * Decode a single base 64 character code digit to an integer. Returns -1 on
- * failure.
- */
- exports.decode = function (charCode) {
- var bigA = 65; // 'A'
- var bigZ = 90; // 'Z'
-
- var littleA = 97; // 'a'
- var littleZ = 122; // 'z'
-
- var zero = 48; // '0'
- var nine = 57; // '9'
-
- var plus = 43; // '+'
- var slash = 47; // '/'
-
- var littleOffset = 26;
- var numberOffset = 52;
-
- // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ
- if (bigA <= charCode && charCode <= bigZ) {
- return (charCode - bigA);
- }
-
- // 26 - 51: abcdefghijklmnopqrstuvwxyz
- if (littleA <= charCode && charCode <= littleZ) {
- return (charCode - littleA + littleOffset);
- }
-
- // 52 - 61: 0123456789
- if (zero <= charCode && charCode <= nine) {
- return (charCode - zero + numberOffset);
- }
-
- // 62: +
- if (charCode == plus) {
- return 62;
- }
-
- // 63: /
- if (charCode == slash) {
- return 63;
- }
-
- // Invalid base64 digit.
- return -1;
- };
-
-
-/***/ }),
-/* 4 */
-/***/ (function(module, exports) {
-
- /* -*- Mode: js; js-indent-level: 2; -*- */
- /*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
- /**
- * This is a helper function for getting values from parameter/options
- * objects.
- *
- * @param args The object we are extracting values from
- * @param name The name of the property we are getting.
- * @param defaultValue An optional value to return if the property is missing
- * from the object. If this is not specified and the property is missing, an
- * error will be thrown.
- */
- function getArg(aArgs, aName, aDefaultValue) {
- if (aName in aArgs) {
- return aArgs[aName];
- } else if (arguments.length === 3) {
- return aDefaultValue;
- } else {
- throw new Error('"' + aName + '" is a required argument.');
- }
- }
- exports.getArg = getArg;
-
- var urlRegexp = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/;
- var dataUrlRegexp = /^data:.+\,.+$/;
-
- function urlParse(aUrl) {
- var match = aUrl.match(urlRegexp);
- if (!match) {
- return null;
- }
- return {
- scheme: match[1],
- auth: match[2],
- host: match[3],
- port: match[4],
- path: match[5]
- };
- }
- exports.urlParse = urlParse;
-
- function urlGenerate(aParsedUrl) {
- var url = '';
- if (aParsedUrl.scheme) {
- url += aParsedUrl.scheme + ':';
- }
- url += '//';
- if (aParsedUrl.auth) {
- url += aParsedUrl.auth + '@';
- }
- if (aParsedUrl.host) {
- url += aParsedUrl.host;
- }
- if (aParsedUrl.port) {
- url += ":" + aParsedUrl.port
- }
- if (aParsedUrl.path) {
- url += aParsedUrl.path;
- }
- return url;
- }
- exports.urlGenerate = urlGenerate;
-
- /**
- * Normalizes a path, or the path portion of a URL:
- *
- * - Replaces consecutive slashes with one slash.
- * - Removes unnecessary '.' parts.
- * - Removes unnecessary '/..' parts.
- *
- * Based on code in the Node.js 'path' core module.
- *
- * @param aPath The path or url to normalize.
- */
- function normalize(aPath) {
- var path = aPath;
- var url = urlParse(aPath);
- if (url) {
- if (!url.path) {
- return aPath;
- }
- path = url.path;
- }
- var isAbsolute = exports.isAbsolute(path);
-
- var parts = path.split(/\/+/);
- for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {
- part = parts[i];
- if (part === '.') {
- parts.splice(i, 1);
- } else if (part === '..') {
- up++;
- } else if (up > 0) {
- if (part === '') {
- // The first part is blank if the path is absolute. Trying to go
- // above the root is a no-op. Therefore we can remove all '..' parts
- // directly after the root.
- parts.splice(i + 1, up);
- up = 0;
- } else {
- parts.splice(i, 2);
- up--;
- }
- }
- }
- path = parts.join('/');
-
- if (path === '') {
- path = isAbsolute ? '/' : '.';
- }
-
- if (url) {
- url.path = path;
- return urlGenerate(url);
- }
- return path;
- }
- exports.normalize = normalize;
-
- /**
- * Joins two paths/URLs.
- *
- * @param aRoot The root path or URL.
- * @param aPath The path or URL to be joined with the root.
- *
- * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a
- * scheme-relative URL: Then the scheme of aRoot, if any, is prepended
- * first.
- * - Otherwise aPath is a path. If aRoot is a URL, then its path portion
- * is updated with the result and aRoot is returned. Otherwise the result
- * is returned.
- * - If aPath is absolute, the result is aPath.
- * - Otherwise the two paths are joined with a slash.
- * - Joining for example 'http://' and 'www.example.com' is also supported.
- */
- function join(aRoot, aPath) {
- if (aRoot === "") {
- aRoot = ".";
- }
- if (aPath === "") {
- aPath = ".";
- }
- var aPathUrl = urlParse(aPath);
- var aRootUrl = urlParse(aRoot);
- if (aRootUrl) {
- aRoot = aRootUrl.path || '/';
- }
-
- // `join(foo, '//www.example.org')`
- if (aPathUrl && !aPathUrl.scheme) {
- if (aRootUrl) {
- aPathUrl.scheme = aRootUrl.scheme;
- }
- return urlGenerate(aPathUrl);
- }
-
- if (aPathUrl || aPath.match(dataUrlRegexp)) {
- return aPath;
- }
-
- // `join('http://', 'www.example.com')`
- if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {
- aRootUrl.host = aPath;
- return urlGenerate(aRootUrl);
- }
-
- var joined = aPath.charAt(0) === '/'
- ? aPath
- : normalize(aRoot.replace(/\/+$/, '') + '/' + aPath);
-
- if (aRootUrl) {
- aRootUrl.path = joined;
- return urlGenerate(aRootUrl);
- }
- return joined;
- }
- exports.join = join;
-
- exports.isAbsolute = function (aPath) {
- return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp);
- };
-
- /**
- * Make a path relative to a URL or another path.
- *
- * @param aRoot The root path or URL.
- * @param aPath The path or URL to be made relative to aRoot.
- */
- function relative(aRoot, aPath) {
- if (aRoot === "") {
- aRoot = ".";
- }
-
- aRoot = aRoot.replace(/\/$/, '');
-
- // It is possible for the path to be above the root. In this case, simply
- // checking whether the root is a prefix of the path won't work. Instead, we
- // need to remove components from the root one by one, until either we find
- // a prefix that fits, or we run out of components to remove.
- var level = 0;
- while (aPath.indexOf(aRoot + '/') !== 0) {
- var index = aRoot.lastIndexOf("/");
- if (index < 0) {
- return aPath;
- }
-
- // If the only part of the root that is left is the scheme (i.e. http://,
- // file:///, etc.), one or more slashes (/), or simply nothing at all, we
- // have exhausted all components, so the path is not relative to the root.
- aRoot = aRoot.slice(0, index);
- if (aRoot.match(/^([^\/]+:\/)?\/*$/)) {
- return aPath;
- }
-
- ++level;
- }
-
- // Make sure we add a "../" for each component we removed from the root.
- return Array(level + 1).join("../") + aPath.substr(aRoot.length + 1);
- }
- exports.relative = relative;
-
- var supportsNullProto = (function () {
- var obj = Object.create(null);
- return !('__proto__' in obj);
- }());
-
- function identity (s) {
- return s;
- }
-
- /**
- * Because behavior goes wacky when you set `__proto__` on objects, we
- * have to prefix all the strings in our set with an arbitrary character.
- *
- * See https://github.com/mozilla/source-map/pull/31 and
- * https://github.com/mozilla/source-map/issues/30
- *
- * @param String aStr
- */
- function toSetString(aStr) {
- if (isProtoString(aStr)) {
- return '$' + aStr;
- }
-
- return aStr;
- }
- exports.toSetString = supportsNullProto ? identity : toSetString;
-
- function fromSetString(aStr) {
- if (isProtoString(aStr)) {
- return aStr.slice(1);
- }
-
- return aStr;
- }
- exports.fromSetString = supportsNullProto ? identity : fromSetString;
-
- function isProtoString(s) {
- if (!s) {
- return false;
- }
-
- var length = s.length;
-
- if (length < 9 /* "__proto__".length */) {
- return false;
- }
-
- if (s.charCodeAt(length - 1) !== 95 /* '_' */ ||
- s.charCodeAt(length - 2) !== 95 /* '_' */ ||
- s.charCodeAt(length - 3) !== 111 /* 'o' */ ||
- s.charCodeAt(length - 4) !== 116 /* 't' */ ||
- s.charCodeAt(length - 5) !== 111 /* 'o' */ ||
- s.charCodeAt(length - 6) !== 114 /* 'r' */ ||
- s.charCodeAt(length - 7) !== 112 /* 'p' */ ||
- s.charCodeAt(length - 8) !== 95 /* '_' */ ||
- s.charCodeAt(length - 9) !== 95 /* '_' */) {
- return false;
- }
-
- for (var i = length - 10; i >= 0; i--) {
- if (s.charCodeAt(i) !== 36 /* '$' */) {
- return false;
- }
- }
-
- return true;
- }
-
- /**
- * Comparator between two mappings where the original positions are compared.
- *
- * Optionally pass in `true` as `onlyCompareGenerated` to consider two
- * mappings with the same original source/line/column, but different generated
- * line and column the same. Useful when searching for a mapping with a
- * stubbed out mapping.
- */
- function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {
- var cmp = mappingA.source - mappingB.source;
- if (cmp !== 0) {
- return cmp;
- }
-
- cmp = mappingA.originalLine - mappingB.originalLine;
- if (cmp !== 0) {
- return cmp;
- }
-
- cmp = mappingA.originalColumn - mappingB.originalColumn;
- if (cmp !== 0 || onlyCompareOriginal) {
- return cmp;
- }
-
- cmp = mappingA.generatedColumn - mappingB.generatedColumn;
- if (cmp !== 0) {
- return cmp;
- }
-
- cmp = mappingA.generatedLine - mappingB.generatedLine;
- if (cmp !== 0) {
- return cmp;
- }
-
- return mappingA.name - mappingB.name;
- }
- exports.compareByOriginalPositions = compareByOriginalPositions;
-
- /**
- * Comparator between two mappings with deflated source and name indices where
- * the generated positions are compared.
- *
- * Optionally pass in `true` as `onlyCompareGenerated` to consider two
- * mappings with the same generated line and column, but different
- * source/name/original line and column the same. Useful when searching for a
- * mapping with a stubbed out mapping.
- */
- function compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {
- var cmp = mappingA.generatedLine - mappingB.generatedLine;
- if (cmp !== 0) {
- return cmp;
- }
-
- cmp = mappingA.generatedColumn - mappingB.generatedColumn;
- if (cmp !== 0 || onlyCompareGenerated) {
- return cmp;
- }
-
- cmp = mappingA.source - mappingB.source;
- if (cmp !== 0) {
- return cmp;
- }
-
- cmp = mappingA.originalLine - mappingB.originalLine;
- if (cmp !== 0) {
- return cmp;
- }
-
- cmp = mappingA.originalColumn - mappingB.originalColumn;
- if (cmp !== 0) {
- return cmp;
- }
-
- return mappingA.name - mappingB.name;
- }
- exports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;
-
- function strcmp(aStr1, aStr2) {
- if (aStr1 === aStr2) {
- return 0;
- }
-
- if (aStr1 > aStr2) {
- return 1;
- }
-
- return -1;
- }
-
- /**
- * Comparator between two mappings with inflated source and name strings where
- * the generated positions are compared.
- */
- function compareByGeneratedPositionsInflated(mappingA, mappingB) {
- var cmp = mappingA.generatedLine - mappingB.generatedLine;
- if (cmp !== 0) {
- return cmp;
- }
-
- cmp = mappingA.generatedColumn - mappingB.generatedColumn;
- if (cmp !== 0) {
- return cmp;
- }
-
- cmp = strcmp(mappingA.source, mappingB.source);
- if (cmp !== 0) {
- return cmp;
- }
-
- cmp = mappingA.originalLine - mappingB.originalLine;
- if (cmp !== 0) {
- return cmp;
- }
-
- cmp = mappingA.originalColumn - mappingB.originalColumn;
- if (cmp !== 0) {
- return cmp;
- }
-
- return strcmp(mappingA.name, mappingB.name);
- }
- exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;
-
-
-/***/ }),
-/* 5 */
-/***/ (function(module, exports, __webpack_require__) {
-
- /* -*- Mode: js; js-indent-level: 2; -*- */
- /*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
- var util = __webpack_require__(4);
- var has = Object.prototype.hasOwnProperty;
- var hasNativeMap = typeof Map !== "undefined";
-
- /**
- * A data structure which is a combination of an array and a set. Adding a new
- * member is O(1), testing for membership is O(1), and finding the index of an
- * element is O(1). Removing elements from the set is not supported. Only
- * strings are supported for membership.
- */
- function ArraySet() {
- this._array = [];
- this._set = hasNativeMap ? new Map() : Object.create(null);
- }
-
- /**
- * Static method for creating ArraySet instances from an existing array.
- */
- ArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {
- var set = new ArraySet();
- for (var i = 0, len = aArray.length; i < len; i++) {
- set.add(aArray[i], aAllowDuplicates);
- }
- return set;
- };
-
- /**
- * Return how many unique items are in this ArraySet. If duplicates have been
- * added, than those do not count towards the size.
- *
- * @returns Number
- */
- ArraySet.prototype.size = function ArraySet_size() {
- return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;
- };
-
- /**
- * Add the given string to this set.
- *
- * @param String aStr
- */
- ArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {
- var sStr = hasNativeMap ? aStr : util.toSetString(aStr);
- var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);
- var idx = this._array.length;
- if (!isDuplicate || aAllowDuplicates) {
- this._array.push(aStr);
- }
- if (!isDuplicate) {
- if (hasNativeMap) {
- this._set.set(aStr, idx);
- } else {
- this._set[sStr] = idx;
- }
- }
- };
-
- /**
- * Is the given string a member of this set?
- *
- * @param String aStr
- */
- ArraySet.prototype.has = function ArraySet_has(aStr) {
- if (hasNativeMap) {
- return this._set.has(aStr);
- } else {
- var sStr = util.toSetString(aStr);
- return has.call(this._set, sStr);
- }
- };
-
- /**
- * What is the index of the given string in the array?
- *
- * @param String aStr
- */
- ArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {
- if (hasNativeMap) {
- var idx = this._set.get(aStr);
- if (idx >= 0) {
- return idx;
- }
- } else {
- var sStr = util.toSetString(aStr);
- if (has.call(this._set, sStr)) {
- return this._set[sStr];
- }
- }
-
- throw new Error('"' + aStr + '" is not in the set.');
- };
-
- /**
- * What is the element at the given index?
- *
- * @param Number aIdx
- */
- ArraySet.prototype.at = function ArraySet_at(aIdx) {
- if (aIdx >= 0 && aIdx < this._array.length) {
- return this._array[aIdx];
- }
- throw new Error('No element indexed by ' + aIdx);
- };
-
- /**
- * Returns the array representation of this set (which has the proper indices
- * indicated by indexOf). Note that this is a copy of the internal array used
- * for storing the members so that no one can mess with internal state.
- */
- ArraySet.prototype.toArray = function ArraySet_toArray() {
- return this._array.slice();
- };
-
- exports.ArraySet = ArraySet;
-
-
-/***/ }),
-/* 6 */
-/***/ (function(module, exports, __webpack_require__) {
-
- /* -*- Mode: js; js-indent-level: 2; -*- */
- /*
- * Copyright 2014 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
- var util = __webpack_require__(4);
-
- /**
- * Determine whether mappingB is after mappingA with respect to generated
- * position.
- */
- function generatedPositionAfter(mappingA, mappingB) {
- // Optimized for most common case
- var lineA = mappingA.generatedLine;
- var lineB = mappingB.generatedLine;
- var columnA = mappingA.generatedColumn;
- var columnB = mappingB.generatedColumn;
- return lineB > lineA || lineB == lineA && columnB >= columnA ||
- util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;
- }
-
- /**
- * A data structure to provide a sorted view of accumulated mappings in a
- * performance conscious manner. It trades a neglibable overhead in general
- * case for a large speedup in case of mappings being added in order.
- */
- function MappingList() {
- this._array = [];
- this._sorted = true;
- // Serves as infimum
- this._last = {generatedLine: -1, generatedColumn: 0};
- }
-
- /**
- * Iterate through internal items. This method takes the same arguments that
- * `Array.prototype.forEach` takes.
- *
- * NOTE: The order of the mappings is NOT guaranteed.
- */
- MappingList.prototype.unsortedForEach =
- function MappingList_forEach(aCallback, aThisArg) {
- this._array.forEach(aCallback, aThisArg);
- };
-
- /**
- * Add the given source mapping.
- *
- * @param Object aMapping
- */
- MappingList.prototype.add = function MappingList_add(aMapping) {
- if (generatedPositionAfter(this._last, aMapping)) {
- this._last = aMapping;
- this._array.push(aMapping);
- } else {
- this._sorted = false;
- this._array.push(aMapping);
- }
- };
-
- /**
- * Returns the flat, sorted array of mappings. The mappings are sorted by
- * generated position.
- *
- * WARNING: This method returns internal data without copying, for
- * performance. The return value must NOT be mutated, and should be treated as
- * an immutable borrow. If you want to take ownership, you must make your own
- * copy.
- */
- MappingList.prototype.toArray = function MappingList_toArray() {
- if (!this._sorted) {
- this._array.sort(util.compareByGeneratedPositionsInflated);
- this._sorted = true;
- }
- return this._array;
- };
-
- exports.MappingList = MappingList;
-
-
-/***/ }),
-/* 7 */
-/***/ (function(module, exports, __webpack_require__) {
-
- /* -*- Mode: js; js-indent-level: 2; -*- */
- /*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
- var util = __webpack_require__(4);
- var binarySearch = __webpack_require__(8);
- var ArraySet = __webpack_require__(5).ArraySet;
- var base64VLQ = __webpack_require__(2);
- var quickSort = __webpack_require__(9).quickSort;
-
- function SourceMapConsumer(aSourceMap) {
- var sourceMap = aSourceMap;
- if (typeof aSourceMap === 'string') {
- sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, ''));
- }
-
- return sourceMap.sections != null
- ? new IndexedSourceMapConsumer(sourceMap)
- : new BasicSourceMapConsumer(sourceMap);
- }
-
- SourceMapConsumer.fromSourceMap = function(aSourceMap) {
- return BasicSourceMapConsumer.fromSourceMap(aSourceMap);
- }
-
- /**
- * The version of the source mapping spec that we are consuming.
- */
- SourceMapConsumer.prototype._version = 3;
-
- // `__generatedMappings` and `__originalMappings` are arrays that hold the
- // parsed mapping coordinates from the source map's "mappings" attribute. They
- // are lazily instantiated, accessed via the `_generatedMappings` and
- // `_originalMappings` getters respectively, and we only parse the mappings
- // and create these arrays once queried for a source location. We jump through
- // these hoops because there can be many thousands of mappings, and parsing
- // them is expensive, so we only want to do it if we must.
- //
- // Each object in the arrays is of the form:
- //
- // {
- // generatedLine: The line number in the generated code,
- // generatedColumn: The column number in the generated code,
- // source: The path to the original source file that generated this
- // chunk of code,
- // originalLine: The line number in the original source that
- // corresponds to this chunk of generated code,
- // originalColumn: The column number in the original source that
- // corresponds to this chunk of generated code,
- // name: The name of the original symbol which generated this chunk of
- // code.
- // }
- //
- // All properties except for `generatedLine` and `generatedColumn` can be
- // `null`.
- //
- // `_generatedMappings` is ordered by the generated positions.
- //
- // `_originalMappings` is ordered by the original positions.
-
- SourceMapConsumer.prototype.__generatedMappings = null;
- Object.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {
- get: function () {
- if (!this.__generatedMappings) {
- this._parseMappings(this._mappings, this.sourceRoot);
- }
-
- return this.__generatedMappings;
- }
- });
-
- SourceMapConsumer.prototype.__originalMappings = null;
- Object.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {
- get: function () {
- if (!this.__originalMappings) {
- this._parseMappings(this._mappings, this.sourceRoot);
- }
-
- return this.__originalMappings;
- }
- });
-
- SourceMapConsumer.prototype._charIsMappingSeparator =
- function SourceMapConsumer_charIsMappingSeparator(aStr, index) {
- var c = aStr.charAt(index);
- return c === ";" || c === ",";
- };
-
- /**
- * Parse the mappings in a string in to a data structure which we can easily
- * query (the ordered arrays in the `this.__generatedMappings` and
- * `this.__originalMappings` properties).
- */
- SourceMapConsumer.prototype._parseMappings =
- function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {
- throw new Error("Subclasses must implement _parseMappings");
- };
-
- SourceMapConsumer.GENERATED_ORDER = 1;
- SourceMapConsumer.ORIGINAL_ORDER = 2;
-
- SourceMapConsumer.GREATEST_LOWER_BOUND = 1;
- SourceMapConsumer.LEAST_UPPER_BOUND = 2;
-
- /**
- * Iterate over each mapping between an original source/line/column and a
- * generated line/column in this source map.
- *
- * @param Function aCallback
- * The function that is called with each mapping.
- * @param Object aContext
- * Optional. If specified, this object will be the value of `this` every
- * time that `aCallback` is called.
- * @param aOrder
- * Either `SourceMapConsumer.GENERATED_ORDER` or
- * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to
- * iterate over the mappings sorted by the generated file's line/column
- * order or the original's source/line/column order, respectively. Defaults to
- * `SourceMapConsumer.GENERATED_ORDER`.
- */
- SourceMapConsumer.prototype.eachMapping =
- function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {
- var context = aContext || null;
- var order = aOrder || SourceMapConsumer.GENERATED_ORDER;
-
- var mappings;
- switch (order) {
- case SourceMapConsumer.GENERATED_ORDER:
- mappings = this._generatedMappings;
- break;
- case SourceMapConsumer.ORIGINAL_ORDER:
- mappings = this._originalMappings;
- break;
- default:
- throw new Error("Unknown order of iteration.");
- }
-
- var sourceRoot = this.sourceRoot;
- mappings.map(function (mapping) {
- var source = mapping.source === null ? null : this._sources.at(mapping.source);
- if (source != null && sourceRoot != null) {
- source = util.join(sourceRoot, source);
- }
- return {
- source: source,
- generatedLine: mapping.generatedLine,
- generatedColumn: mapping.generatedColumn,
- originalLine: mapping.originalLine,
- originalColumn: mapping.originalColumn,
- name: mapping.name === null ? null : this._names.at(mapping.name)
- };
- }, this).forEach(aCallback, context);
- };
-
- /**
- * Returns all generated line and column information for the original source,
- * line, and column provided. If no column is provided, returns all mappings
- * corresponding to a either the line we are searching for or the next
- * closest line that has any mappings. Otherwise, returns all mappings
- * corresponding to the given line and either the column we are searching for
- * or the next closest column that has any offsets.
- *
- * The only argument is an object with the following properties:
- *
- * - source: The filename of the original source.
- * - line: The line number in the original source.
- * - column: Optional. the column number in the original source.
- *
- * and an array of objects is returned, each with the following properties:
- *
- * - line: The line number in the generated source, or null.
- * - column: The column number in the generated source, or null.
- */
- SourceMapConsumer.prototype.allGeneratedPositionsFor =
- function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {
- var line = util.getArg(aArgs, 'line');
-
- // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping
- // returns the index of the closest mapping less than the needle. By
- // setting needle.originalColumn to 0, we thus find the last mapping for
- // the given line, provided such a mapping exists.
- var needle = {
- source: util.getArg(aArgs, 'source'),
- originalLine: line,
- originalColumn: util.getArg(aArgs, 'column', 0)
- };
-
- if (this.sourceRoot != null) {
- needle.source = util.relative(this.sourceRoot, needle.source);
- }
- if (!this._sources.has(needle.source)) {
- return [];
- }
- needle.source = this._sources.indexOf(needle.source);
-
- var mappings = [];
-
- var index = this._findMapping(needle,
- this._originalMappings,
- "originalLine",
- "originalColumn",
- util.compareByOriginalPositions,
- binarySearch.LEAST_UPPER_BOUND);
- if (index >= 0) {
- var mapping = this._originalMappings[index];
-
- if (aArgs.column === undefined) {
- var originalLine = mapping.originalLine;
-
- // Iterate until either we run out of mappings, or we run into
- // a mapping for a different line than the one we found. Since
- // mappings are sorted, this is guaranteed to find all mappings for
- // the line we found.
- while (mapping && mapping.originalLine === originalLine) {
- mappings.push({
- line: util.getArg(mapping, 'generatedLine', null),
- column: util.getArg(mapping, 'generatedColumn', null),
- lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)
- });
-
- mapping = this._originalMappings[++index];
- }
- } else {
- var originalColumn = mapping.originalColumn;
-
- // Iterate until either we run out of mappings, or we run into
- // a mapping for a different line than the one we were searching for.
- // Since mappings are sorted, this is guaranteed to find all mappings for
- // the line we are searching for.
- while (mapping &&
- mapping.originalLine === line &&
- mapping.originalColumn == originalColumn) {
- mappings.push({
- line: util.getArg(mapping, 'generatedLine', null),
- column: util.getArg(mapping, 'generatedColumn', null),
- lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)
- });
-
- mapping = this._originalMappings[++index];
- }
- }
- }
-
- return mappings;
- };
-
- exports.SourceMapConsumer = SourceMapConsumer;
-
- /**
- * A BasicSourceMapConsumer instance represents a parsed source map which we can
- * query for information about the original file positions by giving it a file
- * position in the generated source.
- *
- * The only parameter is the raw source map (either as a JSON string, or
- * already parsed to an object). According to the spec, source maps have the
- * following attributes:
- *
- * - version: Which version of the source map spec this map is following.
- * - sources: An array of URLs to the original source files.
- * - names: An array of identifiers which can be referrenced by individual mappings.
- * - sourceRoot: Optional. The URL root from which all sources are relative.
- * - sourcesContent: Optional. An array of contents of the original source files.
- * - mappings: A string of base64 VLQs which contain the actual mappings.
- * - file: Optional. The generated file this source map is associated with.
- *
- * Here is an example source map, taken from the source map spec[0]:
- *
- * {
- * version : 3,
- * file: "out.js",
- * sourceRoot : "",
- * sources: ["foo.js", "bar.js"],
- * names: ["src", "maps", "are", "fun"],
- * mappings: "AA,AB;;ABCDE;"
- * }
- *
- * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#
- */
- function BasicSourceMapConsumer(aSourceMap) {
- var sourceMap = aSourceMap;
- if (typeof aSourceMap === 'string') {
- sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, ''));
- }
-
- var version = util.getArg(sourceMap, 'version');
- var sources = util.getArg(sourceMap, 'sources');
- // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which
- // requires the array) to play nice here.
- var names = util.getArg(sourceMap, 'names', []);
- var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);
- var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);
- var mappings = util.getArg(sourceMap, 'mappings');
- var file = util.getArg(sourceMap, 'file', null);
-
- // Once again, Sass deviates from the spec and supplies the version as a
- // string rather than a number, so we use loose equality checking here.
- if (version != this._version) {
- throw new Error('Unsupported version: ' + version);
- }
-
- sources = sources
- .map(String)
- // Some source maps produce relative source paths like "./foo.js" instead of
- // "foo.js". Normalize these first so that future comparisons will succeed.
- // See bugzil.la/1090768.
- .map(util.normalize)
- // Always ensure that absolute sources are internally stored relative to
- // the source root, if the source root is absolute. Not doing this would
- // be particularly problematic when the source root is a prefix of the
- // source (valid, but why??). See github issue #199 and bugzil.la/1188982.
- .map(function (source) {
- return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)
- ? util.relative(sourceRoot, source)
- : source;
- });
-
- // Pass `true` below to allow duplicate names and sources. While source maps
- // are intended to be compressed and deduplicated, the TypeScript compiler
- // sometimes generates source maps with duplicates in them. See Github issue
- // #72 and bugzil.la/889492.
- this._names = ArraySet.fromArray(names.map(String), true);
- this._sources = ArraySet.fromArray(sources, true);
-
- this.sourceRoot = sourceRoot;
- this.sourcesContent = sourcesContent;
- this._mappings = mappings;
- this.file = file;
- }
-
- BasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);
- BasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;
-
- /**
- * Create a BasicSourceMapConsumer from a SourceMapGenerator.
- *
- * @param SourceMapGenerator aSourceMap
- * The source map that will be consumed.
- * @returns BasicSourceMapConsumer
- */
- BasicSourceMapConsumer.fromSourceMap =
- function SourceMapConsumer_fromSourceMap(aSourceMap) {
- var smc = Object.create(BasicSourceMapConsumer.prototype);
-
- var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);
- var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);
- smc.sourceRoot = aSourceMap._sourceRoot;
- smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),
- smc.sourceRoot);
- smc.file = aSourceMap._file;
-
- // Because we are modifying the entries (by converting string sources and
- // names to indices into the sources and names ArraySets), we have to make
- // a copy of the entry or else bad things happen. Shared mutable state
- // strikes again! See github issue #191.
-
- var generatedMappings = aSourceMap._mappings.toArray().slice();
- var destGeneratedMappings = smc.__generatedMappings = [];
- var destOriginalMappings = smc.__originalMappings = [];
-
- for (var i = 0, length = generatedMappings.length; i < length; i++) {
- var srcMapping = generatedMappings[i];
- var destMapping = new Mapping;
- destMapping.generatedLine = srcMapping.generatedLine;
- destMapping.generatedColumn = srcMapping.generatedColumn;
-
- if (srcMapping.source) {
- destMapping.source = sources.indexOf(srcMapping.source);
- destMapping.originalLine = srcMapping.originalLine;
- destMapping.originalColumn = srcMapping.originalColumn;
-
- if (srcMapping.name) {
- destMapping.name = names.indexOf(srcMapping.name);
- }
-
- destOriginalMappings.push(destMapping);
- }
-
- destGeneratedMappings.push(destMapping);
- }
-
- quickSort(smc.__originalMappings, util.compareByOriginalPositions);
-
- return smc;
- };
-
- /**
- * The version of the source mapping spec that we are consuming.
- */
- BasicSourceMapConsumer.prototype._version = 3;
-
- /**
- * The list of original sources.
- */
- Object.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {
- get: function () {
- return this._sources.toArray().map(function (s) {
- return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;
- }, this);
- }
- });
-
- /**
- * Provide the JIT with a nice shape / hidden class.
- */
- function Mapping() {
- this.generatedLine = 0;
- this.generatedColumn = 0;
- this.source = null;
- this.originalLine = null;
- this.originalColumn = null;
- this.name = null;
- }
-
- /**
- * Parse the mappings in a string in to a data structure which we can easily
- * query (the ordered arrays in the `this.__generatedMappings` and
- * `this.__originalMappings` properties).
- */
- BasicSourceMapConsumer.prototype._parseMappings =
- function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {
- var generatedLine = 1;
- var previousGeneratedColumn = 0;
- var previousOriginalLine = 0;
- var previousOriginalColumn = 0;
- var previousSource = 0;
- var previousName = 0;
- var length = aStr.length;
- var index = 0;
- var cachedSegments = {};
- var temp = {};
- var originalMappings = [];
- var generatedMappings = [];
- var mapping, str, segment, end, value;
-
- while (index < length) {
- if (aStr.charAt(index) === ';') {
- generatedLine++;
- index++;
- previousGeneratedColumn = 0;
- }
- else if (aStr.charAt(index) === ',') {
- index++;
- }
- else {
- mapping = new Mapping();
- mapping.generatedLine = generatedLine;
-
- // Because each offset is encoded relative to the previous one,
- // many segments often have the same encoding. We can exploit this
- // fact by caching the parsed variable length fields of each segment,
- // allowing us to avoid a second parse if we encounter the same
- // segment again.
- for (end = index; end < length; end++) {
- if (this._charIsMappingSeparator(aStr, end)) {
- break;
- }
- }
- str = aStr.slice(index, end);
-
- segment = cachedSegments[str];
- if (segment) {
- index += str.length;
- } else {
- segment = [];
- while (index < end) {
- base64VLQ.decode(aStr, index, temp);
- value = temp.value;
- index = temp.rest;
- segment.push(value);
- }
-
- if (segment.length === 2) {
- throw new Error('Found a source, but no line and column');
- }
-
- if (segment.length === 3) {
- throw new Error('Found a source and line, but no column');
- }
-
- cachedSegments[str] = segment;
- }
-
- // Generated column.
- mapping.generatedColumn = previousGeneratedColumn + segment[0];
- previousGeneratedColumn = mapping.generatedColumn;
-
- if (segment.length > 1) {
- // Original source.
- mapping.source = previousSource + segment[1];
- previousSource += segment[1];
-
- // Original line.
- mapping.originalLine = previousOriginalLine + segment[2];
- previousOriginalLine = mapping.originalLine;
- // Lines are stored 0-based
- mapping.originalLine += 1;
-
- // Original column.
- mapping.originalColumn = previousOriginalColumn + segment[3];
- previousOriginalColumn = mapping.originalColumn;
-
- if (segment.length > 4) {
- // Original name.
- mapping.name = previousName + segment[4];
- previousName += segment[4];
- }
- }
-
- generatedMappings.push(mapping);
- if (typeof mapping.originalLine === 'number') {
- originalMappings.push(mapping);
- }
- }
- }
-
- quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);
- this.__generatedMappings = generatedMappings;
-
- quickSort(originalMappings, util.compareByOriginalPositions);
- this.__originalMappings = originalMappings;
- };
-
- /**
- * Find the mapping that best matches the hypothetical "needle" mapping that
- * we are searching for in the given "haystack" of mappings.
- */
- BasicSourceMapConsumer.prototype._findMapping =
- function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,
- aColumnName, aComparator, aBias) {
- // To return the position we are searching for, we must first find the
- // mapping for the given position and then return the opposite position it
- // points to. Because the mappings are sorted, we can use binary search to
- // find the best mapping.
-
- if (aNeedle[aLineName] <= 0) {
- throw new TypeError('Line must be greater than or equal to 1, got '
- + aNeedle[aLineName]);
- }
- if (aNeedle[aColumnName] < 0) {
- throw new TypeError('Column must be greater than or equal to 0, got '
- + aNeedle[aColumnName]);
- }
-
- return binarySearch.search(aNeedle, aMappings, aComparator, aBias);
- };
-
- /**
- * Compute the last column for each generated mapping. The last column is
- * inclusive.
- */
- BasicSourceMapConsumer.prototype.computeColumnSpans =
- function SourceMapConsumer_computeColumnSpans() {
- for (var index = 0; index < this._generatedMappings.length; ++index) {
- var mapping = this._generatedMappings[index];
-
- // Mappings do not contain a field for the last generated columnt. We
- // can come up with an optimistic estimate, however, by assuming that
- // mappings are contiguous (i.e. given two consecutive mappings, the
- // first mapping ends where the second one starts).
- if (index + 1 < this._generatedMappings.length) {
- var nextMapping = this._generatedMappings[index + 1];
-
- if (mapping.generatedLine === nextMapping.generatedLine) {
- mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;
- continue;
- }
- }
-
- // The last mapping for each line spans the entire line.
- mapping.lastGeneratedColumn = Infinity;
- }
- };
-
- /**
- * Returns the original source, line, and column information for the generated
- * source's line and column positions provided. The only argument is an object
- * with the following properties:
- *
- * - line: The line number in the generated source.
- * - column: The column number in the generated source.
- * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or
- * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the
- * closest element that is smaller than or greater than the one we are
- * searching for, respectively, if the exact element cannot be found.
- * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.
- *
- * and an object is returned with the following properties:
- *
- * - source: The original source file, or null.
- * - line: The line number in the original source, or null.
- * - column: The column number in the original source, or null.
- * - name: The original identifier, or null.
- */
- BasicSourceMapConsumer.prototype.originalPositionFor =
- function SourceMapConsumer_originalPositionFor(aArgs) {
- var needle = {
- generatedLine: util.getArg(aArgs, 'line'),
- generatedColumn: util.getArg(aArgs, 'column')
- };
-
- var index = this._findMapping(
- needle,
- this._generatedMappings,
- "generatedLine",
- "generatedColumn",
- util.compareByGeneratedPositionsDeflated,
- util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)
- );
-
- if (index >= 0) {
- var mapping = this._generatedMappings[index];
-
- if (mapping.generatedLine === needle.generatedLine) {
- var source = util.getArg(mapping, 'source', null);
- if (source !== null) {
- source = this._sources.at(source);
- if (this.sourceRoot != null) {
- source = util.join(this.sourceRoot, source);
- }
- }
- var name = util.getArg(mapping, 'name', null);
- if (name !== null) {
- name = this._names.at(name);
- }
- return {
- source: source,
- line: util.getArg(mapping, 'originalLine', null),
- column: util.getArg(mapping, 'originalColumn', null),
- name: name
- };
- }
- }
-
- return {
- source: null,
- line: null,
- column: null,
- name: null
- };
- };
-
- /**
- * Return true if we have the source content for every source in the source
- * map, false otherwise.
- */
- BasicSourceMapConsumer.prototype.hasContentsOfAllSources =
- function BasicSourceMapConsumer_hasContentsOfAllSources() {
- if (!this.sourcesContent) {
- return false;
- }
- return this.sourcesContent.length >= this._sources.size() &&
- !this.sourcesContent.some(function (sc) { return sc == null; });
- };
-
- /**
- * Returns the original source content. The only argument is the url of the
- * original source file. Returns null if no original source content is
- * available.
- */
- BasicSourceMapConsumer.prototype.sourceContentFor =
- function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {
- if (!this.sourcesContent) {
- return null;
- }
-
- if (this.sourceRoot != null) {
- aSource = util.relative(this.sourceRoot, aSource);
- }
-
- if (this._sources.has(aSource)) {
- return this.sourcesContent[this._sources.indexOf(aSource)];
- }
-
- var url;
- if (this.sourceRoot != null
- && (url = util.urlParse(this.sourceRoot))) {
- // XXX: file:// URIs and absolute paths lead to unexpected behavior for
- // many users. We can help them out when they expect file:// URIs to
- // behave like it would if they were running a local HTTP server. See
- // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.
- var fileUriAbsPath = aSource.replace(/^file:\/\//, "");
- if (url.scheme == "file"
- && this._sources.has(fileUriAbsPath)) {
- return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]
- }
-
- if ((!url.path || url.path == "/")
- && this._sources.has("/" + aSource)) {
- return this.sourcesContent[this._sources.indexOf("/" + aSource)];
- }
- }
-
- // This function is used recursively from
- // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we
- // don't want to throw if we can't find the source - we just want to
- // return null, so we provide a flag to exit gracefully.
- if (nullOnMissing) {
- return null;
- }
- else {
- throw new Error('"' + aSource + '" is not in the SourceMap.');
- }
- };
-
- /**
- * Returns the generated line and column information for the original source,
- * line, and column positions provided. The only argument is an object with
- * the following properties:
- *
- * - source: The filename of the original source.
- * - line: The line number in the original source.
- * - column: The column number in the original source.
- * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or
- * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the
- * closest element that is smaller than or greater than the one we are
- * searching for, respectively, if the exact element cannot be found.
- * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.
- *
- * and an object is returned with the following properties:
- *
- * - line: The line number in the generated source, or null.
- * - column: The column number in the generated source, or null.
- */
- BasicSourceMapConsumer.prototype.generatedPositionFor =
- function SourceMapConsumer_generatedPositionFor(aArgs) {
- var source = util.getArg(aArgs, 'source');
- if (this.sourceRoot != null) {
- source = util.relative(this.sourceRoot, source);
- }
- if (!this._sources.has(source)) {
- return {
- line: null,
- column: null,
- lastColumn: null
- };
- }
- source = this._sources.indexOf(source);
-
- var needle = {
- source: source,
- originalLine: util.getArg(aArgs, 'line'),
- originalColumn: util.getArg(aArgs, 'column')
- };
-
- var index = this._findMapping(
- needle,
- this._originalMappings,
- "originalLine",
- "originalColumn",
- util.compareByOriginalPositions,
- util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)
- );
-
- if (index >= 0) {
- var mapping = this._originalMappings[index];
-
- if (mapping.source === needle.source) {
- return {
- line: util.getArg(mapping, 'generatedLine', null),
- column: util.getArg(mapping, 'generatedColumn', null),
- lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)
- };
- }
- }
-
- return {
- line: null,
- column: null,
- lastColumn: null
- };
- };
-
- exports.BasicSourceMapConsumer = BasicSourceMapConsumer;
-
- /**
- * An IndexedSourceMapConsumer instance represents a parsed source map which
- * we can query for information. It differs from BasicSourceMapConsumer in
- * that it takes "indexed" source maps (i.e. ones with a "sections" field) as
- * input.
- *
- * The only parameter is a raw source map (either as a JSON string, or already
- * parsed to an object). According to the spec for indexed source maps, they
- * have the following attributes:
- *
- * - version: Which version of the source map spec this map is following.
- * - file: Optional. The generated file this source map is associated with.
- * - sections: A list of section definitions.
- *
- * Each value under the "sections" field has two fields:
- * - offset: The offset into the original specified at which this section
- * begins to apply, defined as an object with a "line" and "column"
- * field.
- * - map: A source map definition. This source map could also be indexed,
- * but doesn't have to be.
- *
- * Instead of the "map" field, it's also possible to have a "url" field
- * specifying a URL to retrieve a source map from, but that's currently
- * unsupported.
- *
- * Here's an example source map, taken from the source map spec[0], but
- * modified to omit a section which uses the "url" field.
- *
- * {
- * version : 3,
- * file: "app.js",
- * sections: [{
- * offset: {line:100, column:10},
- * map: {
- * version : 3,
- * file: "section.js",
- * sources: ["foo.js", "bar.js"],
- * names: ["src", "maps", "are", "fun"],
- * mappings: "AAAA,E;;ABCDE;"
- * }
- * }],
- * }
- *
- * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt
- */
- function IndexedSourceMapConsumer(aSourceMap) {
- var sourceMap = aSourceMap;
- if (typeof aSourceMap === 'string') {
- sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, ''));
- }
-
- var version = util.getArg(sourceMap, 'version');
- var sections = util.getArg(sourceMap, 'sections');
-
- if (version != this._version) {
- throw new Error('Unsupported version: ' + version);
- }
-
- this._sources = new ArraySet();
- this._names = new ArraySet();
-
- var lastOffset = {
- line: -1,
- column: 0
- };
- this._sections = sections.map(function (s) {
- if (s.url) {
- // The url field will require support for asynchronicity.
- // See https://github.com/mozilla/source-map/issues/16
- throw new Error('Support for url field in sections not implemented.');
- }
- var offset = util.getArg(s, 'offset');
- var offsetLine = util.getArg(offset, 'line');
- var offsetColumn = util.getArg(offset, 'column');
-
- if (offsetLine < lastOffset.line ||
- (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {
- throw new Error('Section offsets must be ordered and non-overlapping.');
- }
- lastOffset = offset;
-
- return {
- generatedOffset: {
- // The offset fields are 0-based, but we use 1-based indices when
- // encoding/decoding from VLQ.
- generatedLine: offsetLine + 1,
- generatedColumn: offsetColumn + 1
- },
- consumer: new SourceMapConsumer(util.getArg(s, 'map'))
- }
- });
- }
-
- IndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);
- IndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;
-
- /**
- * The version of the source mapping spec that we are consuming.
- */
- IndexedSourceMapConsumer.prototype._version = 3;
-
- /**
- * The list of original sources.
- */
- Object.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {
- get: function () {
- var sources = [];
- for (var i = 0; i < this._sections.length; i++) {
- for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {
- sources.push(this._sections[i].consumer.sources[j]);
- }
- }
- return sources;
- }
- });
-
- /**
- * Returns the original source, line, and column information for the generated
- * source's line and column positions provided. The only argument is an object
- * with the following properties:
- *
- * - line: The line number in the generated source.
- * - column: The column number in the generated source.
- *
- * and an object is returned with the following properties:
- *
- * - source: The original source file, or null.
- * - line: The line number in the original source, or null.
- * - column: The column number in the original source, or null.
- * - name: The original identifier, or null.
- */
- IndexedSourceMapConsumer.prototype.originalPositionFor =
- function IndexedSourceMapConsumer_originalPositionFor(aArgs) {
- var needle = {
- generatedLine: util.getArg(aArgs, 'line'),
- generatedColumn: util.getArg(aArgs, 'column')
- };
-
- // Find the section containing the generated position we're trying to map
- // to an original position.
- var sectionIndex = binarySearch.search(needle, this._sections,
- function(needle, section) {
- var cmp = needle.generatedLine - section.generatedOffset.generatedLine;
- if (cmp) {
- return cmp;
- }
-
- return (needle.generatedColumn -
- section.generatedOffset.generatedColumn);
- });
- var section = this._sections[sectionIndex];
-
- if (!section) {
- return {
- source: null,
- line: null,
- column: null,
- name: null
- };
- }
-
- return section.consumer.originalPositionFor({
- line: needle.generatedLine -
- (section.generatedOffset.generatedLine - 1),
- column: needle.generatedColumn -
- (section.generatedOffset.generatedLine === needle.generatedLine
- ? section.generatedOffset.generatedColumn - 1
- : 0),
- bias: aArgs.bias
- });
- };
-
- /**
- * Return true if we have the source content for every source in the source
- * map, false otherwise.
- */
- IndexedSourceMapConsumer.prototype.hasContentsOfAllSources =
- function IndexedSourceMapConsumer_hasContentsOfAllSources() {
- return this._sections.every(function (s) {
- return s.consumer.hasContentsOfAllSources();
- });
- };
-
- /**
- * Returns the original source content. The only argument is the url of the
- * original source file. Returns null if no original source content is
- * available.
- */
- IndexedSourceMapConsumer.prototype.sourceContentFor =
- function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {
- for (var i = 0; i < this._sections.length; i++) {
- var section = this._sections[i];
-
- var content = section.consumer.sourceContentFor(aSource, true);
- if (content) {
- return content;
- }
- }
- if (nullOnMissing) {
- return null;
- }
- else {
- throw new Error('"' + aSource + '" is not in the SourceMap.');
- }
- };
-
- /**
- * Returns the generated line and column information for the original source,
- * line, and column positions provided. The only argument is an object with
- * the following properties:
- *
- * - source: The filename of the original source.
- * - line: The line number in the original source.
- * - column: The column number in the original source.
- *
- * and an object is returned with the following properties:
- *
- * - line: The line number in the generated source, or null.
- * - column: The column number in the generated source, or null.
- */
- IndexedSourceMapConsumer.prototype.generatedPositionFor =
- function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {
- for (var i = 0; i < this._sections.length; i++) {
- var section = this._sections[i];
-
- // Only consider this section if the requested source is in the list of
- // sources of the consumer.
- if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) {
- continue;
- }
- var generatedPosition = section.consumer.generatedPositionFor(aArgs);
- if (generatedPosition) {
- var ret = {
- line: generatedPosition.line +
- (section.generatedOffset.generatedLine - 1),
- column: generatedPosition.column +
- (section.generatedOffset.generatedLine === generatedPosition.line
- ? section.generatedOffset.generatedColumn - 1
- : 0)
- };
- return ret;
- }
- }
-
- return {
- line: null,
- column: null
- };
- };
-
- /**
- * Parse the mappings in a string in to a data structure which we can easily
- * query (the ordered arrays in the `this.__generatedMappings` and
- * `this.__originalMappings` properties).
- */
- IndexedSourceMapConsumer.prototype._parseMappings =
- function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {
- this.__generatedMappings = [];
- this.__originalMappings = [];
- for (var i = 0; i < this._sections.length; i++) {
- var section = this._sections[i];
- var sectionMappings = section.consumer._generatedMappings;
- for (var j = 0; j < sectionMappings.length; j++) {
- var mapping = sectionMappings[j];
-
- var source = section.consumer._sources.at(mapping.source);
- if (section.consumer.sourceRoot !== null) {
- source = util.join(section.consumer.sourceRoot, source);
- }
- this._sources.add(source);
- source = this._sources.indexOf(source);
-
- var name = section.consumer._names.at(mapping.name);
- this._names.add(name);
- name = this._names.indexOf(name);
-
- // The mappings coming from the consumer for the section have
- // generated positions relative to the start of the section, so we
- // need to offset them to be relative to the start of the concatenated
- // generated file.
- var adjustedMapping = {
- source: source,
- generatedLine: mapping.generatedLine +
- (section.generatedOffset.generatedLine - 1),
- generatedColumn: mapping.generatedColumn +
- (section.generatedOffset.generatedLine === mapping.generatedLine
- ? section.generatedOffset.generatedColumn - 1
- : 0),
- originalLine: mapping.originalLine,
- originalColumn: mapping.originalColumn,
- name: name
- };
-
- this.__generatedMappings.push(adjustedMapping);
- if (typeof adjustedMapping.originalLine === 'number') {
- this.__originalMappings.push(adjustedMapping);
- }
- }
- }
-
- quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);
- quickSort(this.__originalMappings, util.compareByOriginalPositions);
- };
-
- exports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;
-
-
-/***/ }),
-/* 8 */
-/***/ (function(module, exports) {
-
- /* -*- Mode: js; js-indent-level: 2; -*- */
- /*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
- exports.GREATEST_LOWER_BOUND = 1;
- exports.LEAST_UPPER_BOUND = 2;
-
- /**
- * Recursive implementation of binary search.
- *
- * @param aLow Indices here and lower do not contain the needle.
- * @param aHigh Indices here and higher do not contain the needle.
- * @param aNeedle The element being searched for.
- * @param aHaystack The non-empty array being searched.
- * @param aCompare Function which takes two elements and returns -1, 0, or 1.
- * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or
- * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the
- * closest element that is smaller than or greater than the one we are
- * searching for, respectively, if the exact element cannot be found.
- */
- function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {
- // This function terminates when one of the following is true:
- //
- // 1. We find the exact element we are looking for.
- //
- // 2. We did not find the exact element, but we can return the index of
- // the next-closest element.
- //
- // 3. We did not find the exact element, and there is no next-closest
- // element than the one we are searching for, so we return -1.
- var mid = Math.floor((aHigh - aLow) / 2) + aLow;
- var cmp = aCompare(aNeedle, aHaystack[mid], true);
- if (cmp === 0) {
- // Found the element we are looking for.
- return mid;
- }
- else if (cmp > 0) {
- // Our needle is greater than aHaystack[mid].
- if (aHigh - mid > 1) {
- // The element is in the upper half.
- return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);
- }
-
- // The exact needle element was not found in this haystack. Determine if
- // we are in termination case (3) or (2) and return the appropriate thing.
- if (aBias == exports.LEAST_UPPER_BOUND) {
- return aHigh < aHaystack.length ? aHigh : -1;
- } else {
- return mid;
- }
- }
- else {
- // Our needle is less than aHaystack[mid].
- if (mid - aLow > 1) {
- // The element is in the lower half.
- return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);
- }
-
- // we are in termination case (3) or (2) and return the appropriate thing.
- if (aBias == exports.LEAST_UPPER_BOUND) {
- return mid;
- } else {
- return aLow < 0 ? -1 : aLow;
- }
- }
- }
-
- /**
- * This is an implementation of binary search which will always try and return
- * the index of the closest element if there is no exact hit. This is because
- * mappings between original and generated line/col pairs are single points,
- * and there is an implicit region between each of them, so a miss just means
- * that you aren't on the very start of a region.
- *
- * @param aNeedle The element you are looking for.
- * @param aHaystack The array that is being searched.
- * @param aCompare A function which takes the needle and an element in the
- * array and returns -1, 0, or 1 depending on whether the needle is less
- * than, equal to, or greater than the element, respectively.
- * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or
- * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the
- * closest element that is smaller than or greater than the one we are
- * searching for, respectively, if the exact element cannot be found.
- * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.
- */
- exports.search = function search(aNeedle, aHaystack, aCompare, aBias) {
- if (aHaystack.length === 0) {
- return -1;
- }
-
- var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,
- aCompare, aBias || exports.GREATEST_LOWER_BOUND);
- if (index < 0) {
- return -1;
- }
-
- // We have found either the exact element, or the next-closest element than
- // the one we are searching for. However, there may be more than one such
- // element. Make sure we always return the smallest of these.
- while (index - 1 >= 0) {
- if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {
- break;
- }
- --index;
- }
-
- return index;
- };
-
-
-/***/ }),
-/* 9 */
-/***/ (function(module, exports) {
-
- /* -*- Mode: js; js-indent-level: 2; -*- */
- /*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
- // It turns out that some (most?) JavaScript engines don't self-host
- // `Array.prototype.sort`. This makes sense because C++ will likely remain
- // faster than JS when doing raw CPU-intensive sorting. However, when using a
- // custom comparator function, calling back and forth between the VM's C++ and
- // JIT'd JS is rather slow *and* loses JIT type information, resulting in
- // worse generated code for the comparator function than would be optimal. In
- // fact, when sorting with a comparator, these costs outweigh the benefits of
- // sorting in C++. By using our own JS-implemented Quick Sort (below), we get
- // a ~3500ms mean speed-up in `bench/bench.html`.
-
- /**
- * Swap the elements indexed by `x` and `y` in the array `ary`.
- *
- * @param {Array} ary
- * The array.
- * @param {Number} x
- * The index of the first item.
- * @param {Number} y
- * The index of the second item.
- */
- function swap(ary, x, y) {
- var temp = ary[x];
- ary[x] = ary[y];
- ary[y] = temp;
- }
-
- /**
- * Returns a random integer within the range `low .. high` inclusive.
- *
- * @param {Number} low
- * The lower bound on the range.
- * @param {Number} high
- * The upper bound on the range.
- */
- function randomIntInRange(low, high) {
- return Math.round(low + (Math.random() * (high - low)));
- }
-
- /**
- * The Quick Sort algorithm.
- *
- * @param {Array} ary
- * An array to sort.
- * @param {function} comparator
- * Function to use to compare two items.
- * @param {Number} p
- * Start index of the array
- * @param {Number} r
- * End index of the array
- */
- function doQuickSort(ary, comparator, p, r) {
- // If our lower bound is less than our upper bound, we (1) partition the
- // array into two pieces and (2) recurse on each half. If it is not, this is
- // the empty array and our base case.
-
- if (p < r) {
- // (1) Partitioning.
- //
- // The partitioning chooses a pivot between `p` and `r` and moves all
- // elements that are less than or equal to the pivot to the before it, and
- // all the elements that are greater than it after it. The effect is that
- // once partition is done, the pivot is in the exact place it will be when
- // the array is put in sorted order, and it will not need to be moved
- // again. This runs in O(n) time.
-
- // Always choose a random pivot so that an input array which is reverse
- // sorted does not cause O(n^2) running time.
- var pivotIndex = randomIntInRange(p, r);
- var i = p - 1;
-
- swap(ary, pivotIndex, r);
- var pivot = ary[r];
-
- // Immediately after `j` is incremented in this loop, the following hold
- // true:
- //
- // * Every element in `ary[p .. i]` is less than or equal to the pivot.
- //
- // * Every element in `ary[i+1 .. j-1]` is greater than the pivot.
- for (var j = p; j < r; j++) {
- if (comparator(ary[j], pivot) <= 0) {
- i += 1;
- swap(ary, i, j);
- }
- }
-
- swap(ary, i + 1, j);
- var q = i + 1;
-
- // (2) Recurse on each half.
-
- doQuickSort(ary, comparator, p, q - 1);
- doQuickSort(ary, comparator, q + 1, r);
- }
- }
-
- /**
- * Sort the given array in-place with the given comparator function.
- *
- * @param {Array} ary
- * An array to sort.
- * @param {function} comparator
- * Function to use to compare two items.
- */
- exports.quickSort = function (ary, comparator) {
- doQuickSort(ary, comparator, 0, ary.length - 1);
- };
-
-
-/***/ }),
-/* 10 */
-/***/ (function(module, exports, __webpack_require__) {
-
- /* -*- Mode: js; js-indent-level: 2; -*- */
- /*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
- var SourceMapGenerator = __webpack_require__(1).SourceMapGenerator;
- var util = __webpack_require__(4);
-
- // Matches a Windows-style `\r\n` newline or a `\n` newline used by all other
- // operating systems these days (capturing the result).
- var REGEX_NEWLINE = /(\r?\n)/;
-
- // Newline character code for charCodeAt() comparisons
- var NEWLINE_CODE = 10;
-
- // Private symbol for identifying `SourceNode`s when multiple versions of
- // the source-map library are loaded. This MUST NOT CHANGE across
- // versions!
- var isSourceNode = "$$$isSourceNode$$$";
-
- /**
- * SourceNodes provide a way to abstract over interpolating/concatenating
- * snippets of generated JavaScript source code while maintaining the line and
- * column information associated with the original source code.
- *
- * @param aLine The original line number.
- * @param aColumn The original column number.
- * @param aSource The original source's filename.
- * @param aChunks Optional. An array of strings which are snippets of
- * generated JS, or other SourceNodes.
- * @param aName The original identifier.
- */
- function SourceNode(aLine, aColumn, aSource, aChunks, aName) {
- this.children = [];
- this.sourceContents = {};
- this.line = aLine == null ? null : aLine;
- this.column = aColumn == null ? null : aColumn;
- this.source = aSource == null ? null : aSource;
- this.name = aName == null ? null : aName;
- this[isSourceNode] = true;
- if (aChunks != null) this.add(aChunks);
- }
-
- /**
- * Creates a SourceNode from generated code and a SourceMapConsumer.
- *
- * @param aGeneratedCode The generated code
- * @param aSourceMapConsumer The SourceMap for the generated code
- * @param aRelativePath Optional. The path that relative sources in the
- * SourceMapConsumer should be relative to.
- */
- SourceNode.fromStringWithSourceMap =
- function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {
- // The SourceNode we want to fill with the generated code
- // and the SourceMap
- var node = new SourceNode();
-
- // All even indices of this array are one line of the generated code,
- // while all odd indices are the newlines between two adjacent lines
- // (since `REGEX_NEWLINE` captures its match).
- // Processed fragments are accessed by calling `shiftNextLine`.
- var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);
- var remainingLinesIndex = 0;
- var shiftNextLine = function() {
- var lineContents = getNextLine();
- // The last line of a file might not have a newline.
- var newLine = getNextLine() || "";
- return lineContents + newLine;
-
- function getNextLine() {
- return remainingLinesIndex < remainingLines.length ?
- remainingLines[remainingLinesIndex++] : undefined;
- }
- };
-
- // We need to remember the position of "remainingLines"
- var lastGeneratedLine = 1, lastGeneratedColumn = 0;
-
- // The generate SourceNodes we need a code range.
- // To extract it current and last mapping is used.
- // Here we store the last mapping.
- var lastMapping = null;
-
- aSourceMapConsumer.eachMapping(function (mapping) {
- if (lastMapping !== null) {
- // We add the code from "lastMapping" to "mapping":
- // First check if there is a new line in between.
- if (lastGeneratedLine < mapping.generatedLine) {
- // Associate first line with "lastMapping"
- addMappingWithCode(lastMapping, shiftNextLine());
- lastGeneratedLine++;
- lastGeneratedColumn = 0;
- // The remaining code is added without mapping
- } else {
- // There is no new line in between.
- // Associate the code between "lastGeneratedColumn" and
- // "mapping.generatedColumn" with "lastMapping"
- var nextLine = remainingLines[remainingLinesIndex];
- var code = nextLine.substr(0, mapping.generatedColumn -
- lastGeneratedColumn);
- remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -
- lastGeneratedColumn);
- lastGeneratedColumn = mapping.generatedColumn;
- addMappingWithCode(lastMapping, code);
- // No more remaining code, continue
- lastMapping = mapping;
- return;
- }
- }
- // We add the generated code until the first mapping
- // to the SourceNode without any mapping.
- // Each line is added as separate string.
- while (lastGeneratedLine < mapping.generatedLine) {
- node.add(shiftNextLine());
- lastGeneratedLine++;
- }
- if (lastGeneratedColumn < mapping.generatedColumn) {
- var nextLine = remainingLines[remainingLinesIndex];
- node.add(nextLine.substr(0, mapping.generatedColumn));
- remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);
- lastGeneratedColumn = mapping.generatedColumn;
- }
- lastMapping = mapping;
- }, this);
- // We have processed all mappings.
- if (remainingLinesIndex < remainingLines.length) {
- if (lastMapping) {
- // Associate the remaining code in the current line with "lastMapping"
- addMappingWithCode(lastMapping, shiftNextLine());
- }
- // and add the remaining lines without any mapping
- node.add(remainingLines.splice(remainingLinesIndex).join(""));
- }
-
- // Copy sourcesContent into SourceNode
- aSourceMapConsumer.sources.forEach(function (sourceFile) {
- var content = aSourceMapConsumer.sourceContentFor(sourceFile);
- if (content != null) {
- if (aRelativePath != null) {
- sourceFile = util.join(aRelativePath, sourceFile);
- }
- node.setSourceContent(sourceFile, content);
- }
- });
-
- return node;
-
- function addMappingWithCode(mapping, code) {
- if (mapping === null || mapping.source === undefined) {
- node.add(code);
- } else {
- var source = aRelativePath
- ? util.join(aRelativePath, mapping.source)
- : mapping.source;
- node.add(new SourceNode(mapping.originalLine,
- mapping.originalColumn,
- source,
- code,
- mapping.name));
- }
- }
- };
-
- /**
- * Add a chunk of generated JS to this source node.
- *
- * @param aChunk A string snippet of generated JS code, another instance of
- * SourceNode, or an array where each member is one of those things.
- */
- SourceNode.prototype.add = function SourceNode_add(aChunk) {
- if (Array.isArray(aChunk)) {
- aChunk.forEach(function (chunk) {
- this.add(chunk);
- }, this);
- }
- else if (aChunk[isSourceNode] || typeof aChunk === "string") {
- if (aChunk) {
- this.children.push(aChunk);
- }
- }
- else {
- throw new TypeError(
- "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk
- );
- }
- return this;
- };
-
- /**
- * Add a chunk of generated JS to the beginning of this source node.
- *
- * @param aChunk A string snippet of generated JS code, another instance of
- * SourceNode, or an array where each member is one of those things.
- */
- SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {
- if (Array.isArray(aChunk)) {
- for (var i = aChunk.length-1; i >= 0; i--) {
- this.prepend(aChunk[i]);
- }
- }
- else if (aChunk[isSourceNode] || typeof aChunk === "string") {
- this.children.unshift(aChunk);
- }
- else {
- throw new TypeError(
- "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk
- );
- }
- return this;
- };
-
- /**
- * Walk over the tree of JS snippets in this node and its children. The
- * walking function is called once for each snippet of JS and is passed that
- * snippet and the its original associated source's line/column location.
- *
- * @param aFn The traversal function.
- */
- SourceNode.prototype.walk = function SourceNode_walk(aFn) {
- var chunk;
- for (var i = 0, len = this.children.length; i < len; i++) {
- chunk = this.children[i];
- if (chunk[isSourceNode]) {
- chunk.walk(aFn);
- }
- else {
- if (chunk !== '') {
- aFn(chunk, { source: this.source,
- line: this.line,
- column: this.column,
- name: this.name });
- }
- }
- }
- };
-
- /**
- * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between
- * each of `this.children`.
- *
- * @param aSep The separator.
- */
- SourceNode.prototype.join = function SourceNode_join(aSep) {
- var newChildren;
- var i;
- var len = this.children.length;
- if (len > 0) {
- newChildren = [];
- for (i = 0; i < len-1; i++) {
- newChildren.push(this.children[i]);
- newChildren.push(aSep);
- }
- newChildren.push(this.children[i]);
- this.children = newChildren;
- }
- return this;
- };
-
- /**
- * Call String.prototype.replace on the very right-most source snippet. Useful
- * for trimming whitespace from the end of a source node, etc.
- *
- * @param aPattern The pattern to replace.
- * @param aReplacement The thing to replace the pattern with.
- */
- SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {
- var lastChild = this.children[this.children.length - 1];
- if (lastChild[isSourceNode]) {
- lastChild.replaceRight(aPattern, aReplacement);
- }
- else if (typeof lastChild === 'string') {
- this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);
- }
- else {
- this.children.push(''.replace(aPattern, aReplacement));
- }
- return this;
- };
-
- /**
- * Set the source content for a source file. This will be added to the SourceMapGenerator
- * in the sourcesContent field.
- *
- * @param aSourceFile The filename of the source file
- * @param aSourceContent The content of the source file
- */
- SourceNode.prototype.setSourceContent =
- function SourceNode_setSourceContent(aSourceFile, aSourceContent) {
- this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;
- };
-
- /**
- * Walk over the tree of SourceNodes. The walking function is called for each
- * source file content and is passed the filename and source content.
- *
- * @param aFn The traversal function.
- */
- SourceNode.prototype.walkSourceContents =
- function SourceNode_walkSourceContents(aFn) {
- for (var i = 0, len = this.children.length; i < len; i++) {
- if (this.children[i][isSourceNode]) {
- this.children[i].walkSourceContents(aFn);
- }
- }
-
- var sources = Object.keys(this.sourceContents);
- for (var i = 0, len = sources.length; i < len; i++) {
- aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);
- }
- };
-
- /**
- * Return the string representation of this source node. Walks over the tree
- * and concatenates all the various snippets together to one string.
- */
- SourceNode.prototype.toString = function SourceNode_toString() {
- var str = "";
- this.walk(function (chunk) {
- str += chunk;
- });
- return str;
- };
-
- /**
- * Returns the string representation of this source node along with a source
- * map.
- */
- SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {
- var generated = {
- code: "",
- line: 1,
- column: 0
- };
- var map = new SourceMapGenerator(aArgs);
- var sourceMappingActive = false;
- var lastOriginalSource = null;
- var lastOriginalLine = null;
- var lastOriginalColumn = null;
- var lastOriginalName = null;
- this.walk(function (chunk, original) {
- generated.code += chunk;
- if (original.source !== null
- && original.line !== null
- && original.column !== null) {
- if(lastOriginalSource !== original.source
- || lastOriginalLine !== original.line
- || lastOriginalColumn !== original.column
- || lastOriginalName !== original.name) {
- map.addMapping({
- source: original.source,
- original: {
- line: original.line,
- column: original.column
- },
- generated: {
- line: generated.line,
- column: generated.column
- },
- name: original.name
- });
- }
- lastOriginalSource = original.source;
- lastOriginalLine = original.line;
- lastOriginalColumn = original.column;
- lastOriginalName = original.name;
- sourceMappingActive = true;
- } else if (sourceMappingActive) {
- map.addMapping({
- generated: {
- line: generated.line,
- column: generated.column
- }
- });
- lastOriginalSource = null;
- sourceMappingActive = false;
- }
- for (var idx = 0, length = chunk.length; idx < length; idx++) {
- if (chunk.charCodeAt(idx) === NEWLINE_CODE) {
- generated.line++;
- generated.column = 0;
- // Mappings end at eol
- if (idx + 1 === length) {
- lastOriginalSource = null;
- sourceMappingActive = false;
- } else if (sourceMappingActive) {
- map.addMapping({
- source: original.source,
- original: {
- line: original.line,
- column: original.column
- },
- generated: {
- line: generated.line,
- column: generated.column
- },
- name: original.name
- });
- }
- } else {
- generated.column++;
- }
- }
- });
- this.walkSourceContents(function (sourceFile, sourceContent) {
- map.setSourceContent(sourceFile, sourceContent);
- });
-
- return { code: generated.code, map: map };
- };
-
- exports.SourceNode = SourceNode;
-
-
-/***/ })
-/******/ ])
-});
-;
\ No newline at end of file
diff --git a/node_modules/source-map/dist/source-map.min.js b/node_modules/source-map/dist/source-map.min.js
deleted file mode 100644
index f2a46bd..0000000
--- a/node_modules/source-map/dist/source-map.min.js
+++ /dev/null
@@ -1,2 +0,0 @@
-!function(e,n){"object"==typeof exports&&"object"==typeof module?module.exports=n():"function"==typeof define&&define.amd?define([],n):"object"==typeof exports?exports.sourceMap=n():e.sourceMap=n()}(this,function(){return function(e){function n(t){if(r[t])return r[t].exports;var o=r[t]={exports:{},id:t,loaded:!1};return e[t].call(o.exports,o,o.exports,n),o.loaded=!0,o.exports}var r={};return n.m=e,n.c=r,n.p="",n(0)}([function(e,n,r){n.SourceMapGenerator=r(1).SourceMapGenerator,n.SourceMapConsumer=r(7).SourceMapConsumer,n.SourceNode=r(10).SourceNode},function(e,n,r){function t(e){e||(e={}),this._file=i.getArg(e,"file",null),this._sourceRoot=i.getArg(e,"sourceRoot",null),this._skipValidation=i.getArg(e,"skipValidation",!1),this._sources=new s,this._names=new s,this._mappings=new a,this._sourcesContents=null}var o=r(2),i=r(4),s=r(5).ArraySet,a=r(6).MappingList;t.prototype._version=3,t.fromSourceMap=function(e){var n=e.sourceRoot,r=new t({file:e.file,sourceRoot:n});return e.eachMapping(function(e){var t={generated:{line:e.generatedLine,column:e.generatedColumn}};null!=e.source&&(t.source=e.source,null!=n&&(t.source=i.relative(n,t.source)),t.original={line:e.originalLine,column:e.originalColumn},null!=e.name&&(t.name=e.name)),r.addMapping(t)}),e.sources.forEach(function(n){var t=e.sourceContentFor(n);null!=t&&r.setSourceContent(n,t)}),r},t.prototype.addMapping=function(e){var n=i.getArg(e,"generated"),r=i.getArg(e,"original",null),t=i.getArg(e,"source",null),o=i.getArg(e,"name",null);this._skipValidation||this._validateMapping(n,r,t,o),null!=t&&(t=String(t),this._sources.has(t)||this._sources.add(t)),null!=o&&(o=String(o),this._names.has(o)||this._names.add(o)),this._mappings.add({generatedLine:n.line,generatedColumn:n.column,originalLine:null!=r&&r.line,originalColumn:null!=r&&r.column,source:t,name:o})},t.prototype.setSourceContent=function(e,n){var r=e;null!=this._sourceRoot&&(r=i.relative(this._sourceRoot,r)),null!=n?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[i.toSetString(r)]=n):this._sourcesContents&&(delete this._sourcesContents[i.toSetString(r)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))},t.prototype.applySourceMap=function(e,n,r){var t=n;if(null==n){if(null==e.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');t=e.file}var o=this._sourceRoot;null!=o&&(t=i.relative(o,t));var a=new s,u=new s;this._mappings.unsortedForEach(function(n){if(n.source===t&&null!=n.originalLine){var s=e.originalPositionFor({line:n.originalLine,column:n.originalColumn});null!=s.source&&(n.source=s.source,null!=r&&(n.source=i.join(r,n.source)),null!=o&&(n.source=i.relative(o,n.source)),n.originalLine=s.line,n.originalColumn=s.column,null!=s.name&&(n.name=s.name))}var l=n.source;null==l||a.has(l)||a.add(l);var c=n.name;null==c||u.has(c)||u.add(c)},this),this._sources=a,this._names=u,e.sources.forEach(function(n){var t=e.sourceContentFor(n);null!=t&&(null!=r&&(n=i.join(r,n)),null!=o&&(n=i.relative(o,n)),this.setSourceContent(n,t))},this)},t.prototype._validateMapping=function(e,n,r,t){if(n&&"number"!=typeof n.line&&"number"!=typeof n.column)throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if((!(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0)||n||r||t)&&!(e&&"line"in e&&"column"in e&&n&&"line"in n&&"column"in n&&e.line>0&&e.column>=0&&n.line>0&&n.column>=0&&r))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:r,original:n,name:t}))},t.prototype._serializeMappings=function(){for(var e,n,r,t,s=0,a=1,u=0,l=0,c=0,g=0,p="",h=this._mappings.toArray(),f=0,d=h.length;f0){if(!i.compareByGeneratedPositionsInflated(n,h[f-1]))continue;e+=","}e+=o.encode(n.generatedColumn-s),s=n.generatedColumn,null!=n.source&&(t=this._sources.indexOf(n.source),e+=o.encode(t-g),g=t,e+=o.encode(n.originalLine-1-l),l=n.originalLine-1,e+=o.encode(n.originalColumn-u),u=n.originalColumn,null!=n.name&&(r=this._names.indexOf(n.name),e+=o.encode(r-c),c=r)),p+=e}return p},t.prototype._generateSourcesContent=function(e,n){return e.map(function(e){if(!this._sourcesContents)return null;null!=n&&(e=i.relative(n,e));var r=i.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,r)?this._sourcesContents[r]:null},this)},t.prototype.toJSON=function(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(e.file=this._file),null!=this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e},t.prototype.toString=function(){return JSON.stringify(this.toJSON())},n.SourceMapGenerator=t},function(e,n,r){function t(e){return e<0?(-e<<1)+1:(e<<1)+0}function o(e){var n=1===(1&e),r=e>>1;return n?-r:r}var i=r(3),s=5,a=1<>>=s,o>0&&(n|=l),r+=i.encode(n);while(o>0);return r},n.decode=function(e,n,r){var t,a,c=e.length,g=0,p=0;do{if(n>=c)throw new Error("Expected more digits in base 64 VLQ value.");if(a=i.decode(e.charCodeAt(n++)),a===-1)throw new Error("Invalid base64 digit: "+e.charAt(n-1));t=!!(a&l),a&=u,g+=a< =0;c--)s=u[c],"."===s?u.splice(c,1):".."===s?l++:l>0&&(""===s?(u.splice(c+1,l),l=0):(u.splice(c,2),l--));return r=u.join("/"),""===r&&(r=a?"/":"."),i?(i.path=r,o(i)):r}function s(e,n){""===e&&(e="."),""===n&&(n=".");var r=t(n),s=t(e);if(s&&(e=s.path||"/"),r&&!r.scheme)return s&&(r.scheme=s.scheme),o(r);if(r||n.match(_))return n;if(s&&!s.host&&!s.path)return s.host=n,o(s);var a="/"===n.charAt(0)?n:i(e.replace(/\/+$/,"")+"/"+n);return s?(s.path=a,o(s)):a}function a(e,n){""===e&&(e="."),e=e.replace(/\/$/,"");for(var r=0;0!==n.indexOf(e+"/");){var t=e.lastIndexOf("/");if(t<0)return n;if(e=e.slice(0,t),e.match(/^([^\/]+:\/)?\/*$/))return n;++r}return Array(r+1).join("../")+n.substr(e.length+1)}function u(e){return e}function l(e){return g(e)?"$"+e:e}function c(e){return g(e)?e.slice(1):e}function g(e){if(!e)return!1;var n=e.length;if(n<9)return!1;if(95!==e.charCodeAt(n-1)||95!==e.charCodeAt(n-2)||111!==e.charCodeAt(n-3)||116!==e.charCodeAt(n-4)||111!==e.charCodeAt(n-5)||114!==e.charCodeAt(n-6)||112!==e.charCodeAt(n-7)||95!==e.charCodeAt(n-8)||95!==e.charCodeAt(n-9))return!1;for(var r=n-10;r>=0;r--)if(36!==e.charCodeAt(r))return!1;return!0}function p(e,n,r){var t=e.source-n.source;return 0!==t?t:(t=e.originalLine-n.originalLine,0!==t?t:(t=e.originalColumn-n.originalColumn,0!==t||r?t:(t=e.generatedColumn-n.generatedColumn,0!==t?t:(t=e.generatedLine-n.generatedLine,0!==t?t:e.name-n.name))))}function h(e,n,r){var t=e.generatedLine-n.generatedLine;return 0!==t?t:(t=e.generatedColumn-n.generatedColumn,0!==t||r?t:(t=e.source-n.source,0!==t?t:(t=e.originalLine-n.originalLine,0!==t?t:(t=e.originalColumn-n.originalColumn,0!==t?t:e.name-n.name))))}function f(e,n){return e===n?0:e>n?1:-1}function d(e,n){var r=e.generatedLine-n.generatedLine;return 0!==r?r:(r=e.generatedColumn-n.generatedColumn,0!==r?r:(r=f(e.source,n.source),0!==r?r:(r=e.originalLine-n.originalLine,0!==r?r:(r=e.originalColumn-n.originalColumn,0!==r?r:f(e.name,n.name)))))}n.getArg=r;var m=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/,_=/^data:.+\,.+$/;n.urlParse=t,n.urlGenerate=o,n.normalize=i,n.join=s,n.isAbsolute=function(e){return"/"===e.charAt(0)||!!e.match(m)},n.relative=a;var v=function(){var e=Object.create(null);return!("__proto__"in e)}();n.toSetString=v?u:l,n.fromSetString=v?u:c,n.compareByOriginalPositions=p,n.compareByGeneratedPositionsDeflated=h,n.compareByGeneratedPositionsInflated=d},function(e,n,r){function t(){this._array=[],this._set=s?new Map:Object.create(null)}var o=r(4),i=Object.prototype.hasOwnProperty,s="undefined"!=typeof Map;t.fromArray=function(e,n){for(var r=new t,o=0,i=e.length;o=0)return n}else{var r=o.toSetString(e);if(i.call(this._set,r))return this._set[r]}throw new Error('"'+e+'" is not in the set.')},t.prototype.at=function(e){if(e>=0&&er||t==r&&s>=o||i.compareByGeneratedPositionsInflated(e,n)<=0}function o(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}var i=r(4);o.prototype.unsortedForEach=function(e,n){this._array.forEach(e,n)},o.prototype.add=function(e){t(this._last,e)?(this._last=e,this._array.push(e)):(this._sorted=!1,this._array.push(e))},o.prototype.toArray=function(){return this._sorted||(this._array.sort(i.compareByGeneratedPositionsInflated),this._sorted=!0),this._array},n.MappingList=o},function(e,n,r){function t(e){var n=e;return"string"==typeof e&&(n=JSON.parse(e.replace(/^\)\]\}'/,""))),null!=n.sections?new s(n):new o(n)}function o(e){var n=e;"string"==typeof e&&(n=JSON.parse(e.replace(/^\)\]\}'/,"")));var r=a.getArg(n,"version"),t=a.getArg(n,"sources"),o=a.getArg(n,"names",[]),i=a.getArg(n,"sourceRoot",null),s=a.getArg(n,"sourcesContent",null),u=a.getArg(n,"mappings"),c=a.getArg(n,"file",null);if(r!=this._version)throw new Error("Unsupported version: "+r);t=t.map(String).map(a.normalize).map(function(e){return i&&a.isAbsolute(i)&&a.isAbsolute(e)?a.relative(i,e):e}),this._names=l.fromArray(o.map(String),!0),this._sources=l.fromArray(t,!0),this.sourceRoot=i,this.sourcesContent=s,this._mappings=u,this.file=c}function i(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}function s(e){var n=e;"string"==typeof e&&(n=JSON.parse(e.replace(/^\)\]\}'/,"")));var r=a.getArg(n,"version"),o=a.getArg(n,"sections");if(r!=this._version)throw new Error("Unsupported version: "+r);this._sources=new l,this._names=new l;var i={line:-1,column:0};this._sections=o.map(function(e){if(e.url)throw new Error("Support for url field in sections not implemented.");var n=a.getArg(e,"offset"),r=a.getArg(n,"line"),o=a.getArg(n,"column");if(r=0){var i=this._originalMappings[o];if(void 0===e.column)for(var s=i.originalLine;i&&i.originalLine===s;)t.push({line:a.getArg(i,"generatedLine",null),column:a.getArg(i,"generatedColumn",null),lastColumn:a.getArg(i,"lastGeneratedColumn",null)}),i=this._originalMappings[++o];else for(var l=i.originalColumn;i&&i.originalLine===n&&i.originalColumn==l;)t.push({line:a.getArg(i,"generatedLine",null),column:a.getArg(i,"generatedColumn",null),lastColumn:a.getArg(i,"lastGeneratedColumn",null)}),i=this._originalMappings[++o]}return t},n.SourceMapConsumer=t,o.prototype=Object.create(t.prototype),o.prototype.consumer=t,o.fromSourceMap=function(e){var n=Object.create(o.prototype),r=n._names=l.fromArray(e._names.toArray(),!0),t=n._sources=l.fromArray(e._sources.toArray(),!0);n.sourceRoot=e._sourceRoot,n.sourcesContent=e._generateSourcesContent(n._sources.toArray(),n.sourceRoot),n.file=e._file;for(var s=e._mappings.toArray().slice(),u=n.__generatedMappings=[],c=n.__originalMappings=[],p=0,h=s.length;p1&&(r.source=d+o[1],d+=o[1],r.originalLine=h+o[2],h=r.originalLine,r.originalLine+=1,r.originalColumn=f+o[3],f=r.originalColumn,o.length>4&&(r.name=m+o[4],m+=o[4])),S.push(r),"number"==typeof r.originalLine&&A.push(r)}g(S,a.compareByGeneratedPositionsDeflated),this.__generatedMappings=S,g(A,a.compareByOriginalPositions),this.__originalMappings=A},o.prototype._findMapping=function(e,n,r,t,o,i){if(e[r]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+e[r]);if(e[t]<0)throw new TypeError("Column must be greater than or equal to 0, got "+e[t]);return u.search(e,n,o,i)},o.prototype.computeColumnSpans=function(){for(var e=0;e=0){var o=this._generatedMappings[r];if(o.generatedLine===n.generatedLine){var i=a.getArg(o,"source",null);null!==i&&(i=this._sources.at(i),null!=this.sourceRoot&&(i=a.join(this.sourceRoot,i)));var s=a.getArg(o,"name",null);return null!==s&&(s=this._names.at(s)),{source:i,line:a.getArg(o,"originalLine",null),column:a.getArg(o,"originalColumn",null),name:s}}}return{source:null,line:null,column:null,name:null}},o.prototype.hasContentsOfAllSources=function(){return!!this.sourcesContent&&(this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(e){return null==e}))},o.prototype.sourceContentFor=function(e,n){if(!this.sourcesContent)return null;if(null!=this.sourceRoot&&(e=a.relative(this.sourceRoot,e)),this._sources.has(e))return this.sourcesContent[this._sources.indexOf(e)];var r;if(null!=this.sourceRoot&&(r=a.urlParse(this.sourceRoot))){var t=e.replace(/^file:\/\//,"");if("file"==r.scheme&&this._sources.has(t))return this.sourcesContent[this._sources.indexOf(t)];if((!r.path||"/"==r.path)&&this._sources.has("/"+e))return this.sourcesContent[this._sources.indexOf("/"+e)]}if(n)return null;throw new Error('"'+e+'" is not in the SourceMap.')},o.prototype.generatedPositionFor=function(e){var n=a.getArg(e,"source");if(null!=this.sourceRoot&&(n=a.relative(this.sourceRoot,n)),!this._sources.has(n))return{line:null,column:null,lastColumn:null};n=this._sources.indexOf(n);var r={source:n,originalLine:a.getArg(e,"line"),originalColumn:a.getArg(e,"column")},o=this._findMapping(r,this._originalMappings,"originalLine","originalColumn",a.compareByOriginalPositions,a.getArg(e,"bias",t.GREATEST_LOWER_BOUND));if(o>=0){var i=this._originalMappings[o];if(i.source===r.source)return{line:a.getArg(i,"generatedLine",null),column:a.getArg(i,"generatedColumn",null),lastColumn:a.getArg(i,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},n.BasicSourceMapConsumer=o,s.prototype=Object.create(t.prototype),s.prototype.constructor=t,s.prototype._version=3,Object.defineProperty(s.prototype,"sources",{get:function(){for(var e=[],n=0;n0?t-u>1?r(u,t,o,i,s,a):a==n.LEAST_UPPER_BOUND?t1?r(e,u,o,i,s,a):a==n.LEAST_UPPER_BOUND?u:e<0?-1:e}n.GREATEST_LOWER_BOUND=1,n.LEAST_UPPER_BOUND=2,n.search=function(e,t,o,i){if(0===t.length)return-1;var s=r(-1,t.length,e,t,o,i||n.GREATEST_LOWER_BOUND);if(s<0)return-1;for(;s-1>=0&&0===o(t[s],t[s-1],!0);)--s;return s}},function(e,n){function r(e,n,r){var t=e[n];e[n]=e[r],e[r]=t}function t(e,n){return Math.round(e+Math.random()*(n-e))}function o(e,n,i,s){if(i=0;n--)this.prepend(e[n]);else{if(!e[u]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);this.children.unshift(e)}return this},t.prototype.walk=function(e){for(var n,r=0,t=this.children.length;r0){for(n=[],r=0;r 0 && aGenerated.column >= 0\n\t && !aOriginal && !aSource && !aName) {\n\t // Case 1.\n\t return;\n\t }\n\t else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n\t && aOriginal && 'line' in aOriginal && 'column' in aOriginal\n\t && aGenerated.line > 0 && aGenerated.column >= 0\n\t && aOriginal.line > 0 && aOriginal.column >= 0\n\t && aSource) {\n\t // Cases 2 and 3.\n\t return;\n\t }\n\t else {\n\t throw new Error('Invalid mapping: ' + JSON.stringify({\n\t generated: aGenerated,\n\t source: aSource,\n\t original: aOriginal,\n\t name: aName\n\t }));\n\t }\n\t };\n\t\n\t/**\n\t * Serialize the accumulated mappings in to the stream of base 64 VLQs\n\t * specified by the source map format.\n\t */\n\tSourceMapGenerator.prototype._serializeMappings =\n\t function SourceMapGenerator_serializeMappings() {\n\t var previousGeneratedColumn = 0;\n\t var previousGeneratedLine = 1;\n\t var previousOriginalColumn = 0;\n\t var previousOriginalLine = 0;\n\t var previousName = 0;\n\t var previousSource = 0;\n\t var result = '';\n\t var next;\n\t var mapping;\n\t var nameIdx;\n\t var sourceIdx;\n\t\n\t var mappings = this._mappings.toArray();\n\t for (var i = 0, len = mappings.length; i < len; i++) {\n\t mapping = mappings[i];\n\t next = ''\n\t\n\t if (mapping.generatedLine !== previousGeneratedLine) {\n\t previousGeneratedColumn = 0;\n\t while (mapping.generatedLine !== previousGeneratedLine) {\n\t next += ';';\n\t previousGeneratedLine++;\n\t }\n\t }\n\t else {\n\t if (i > 0) {\n\t if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\n\t continue;\n\t }\n\t next += ',';\n\t }\n\t }\n\t\n\t next += base64VLQ.encode(mapping.generatedColumn\n\t - previousGeneratedColumn);\n\t previousGeneratedColumn = mapping.generatedColumn;\n\t\n\t if (mapping.source != null) {\n\t sourceIdx = this._sources.indexOf(mapping.source);\n\t next += base64VLQ.encode(sourceIdx - previousSource);\n\t previousSource = sourceIdx;\n\t\n\t // lines are stored 0-based in SourceMap spec version 3\n\t next += base64VLQ.encode(mapping.originalLine - 1\n\t - previousOriginalLine);\n\t previousOriginalLine = mapping.originalLine - 1;\n\t\n\t next += base64VLQ.encode(mapping.originalColumn\n\t - previousOriginalColumn);\n\t previousOriginalColumn = mapping.originalColumn;\n\t\n\t if (mapping.name != null) {\n\t nameIdx = this._names.indexOf(mapping.name);\n\t next += base64VLQ.encode(nameIdx - previousName);\n\t previousName = nameIdx;\n\t }\n\t }\n\t\n\t result += next;\n\t }\n\t\n\t return result;\n\t };\n\t\n\tSourceMapGenerator.prototype._generateSourcesContent =\n\t function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\n\t return aSources.map(function (source) {\n\t if (!this._sourcesContents) {\n\t return null;\n\t }\n\t if (aSourceRoot != null) {\n\t source = util.relative(aSourceRoot, source);\n\t }\n\t var key = util.toSetString(source);\n\t return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)\n\t ? this._sourcesContents[key]\n\t : null;\n\t }, this);\n\t };\n\t\n\t/**\n\t * Externalize the source map.\n\t */\n\tSourceMapGenerator.prototype.toJSON =\n\t function SourceMapGenerator_toJSON() {\n\t var map = {\n\t version: this._version,\n\t sources: this._sources.toArray(),\n\t names: this._names.toArray(),\n\t mappings: this._serializeMappings()\n\t };\n\t if (this._file != null) {\n\t map.file = this._file;\n\t }\n\t if (this._sourceRoot != null) {\n\t map.sourceRoot = this._sourceRoot;\n\t }\n\t if (this._sourcesContents) {\n\t map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\n\t }\n\t\n\t return map;\n\t };\n\t\n\t/**\n\t * Render the source map being generated to a string.\n\t */\n\tSourceMapGenerator.prototype.toString =\n\t function SourceMapGenerator_toString() {\n\t return JSON.stringify(this.toJSON());\n\t };\n\t\n\texports.SourceMapGenerator = SourceMapGenerator;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t *\n\t * Based on the Base 64 VLQ implementation in Closure Compiler:\n\t * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n\t *\n\t * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n\t * Redistribution and use in source and binary forms, with or without\n\t * modification, are permitted provided that the following conditions are\n\t * met:\n\t *\n\t * * Redistributions of source code must retain the above copyright\n\t * notice, this list of conditions and the following disclaimer.\n\t * * Redistributions in binary form must reproduce the above\n\t * copyright notice, this list of conditions and the following\n\t * disclaimer in the documentation and/or other materials provided\n\t * with the distribution.\n\t * * Neither the name of Google Inc. nor the names of its\n\t * contributors may be used to endorse or promote products derived\n\t * from this software without specific prior written permission.\n\t *\n\t * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\t * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n\t * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n\t * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n\t * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n\t * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n\t * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n\t * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n\t * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n\t * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n\t * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t */\n\t\n\tvar base64 = __webpack_require__(3);\n\t\n\t// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n\t// length quantities we use in the source map spec, the first bit is the sign,\n\t// the next four bits are the actual value, and the 6th bit is the\n\t// continuation bit. The continuation bit tells us whether there are more\n\t// digits in this value following this digit.\n\t//\n\t// Continuation\n\t// | Sign\n\t// | |\n\t// V V\n\t// 101011\n\t\n\tvar VLQ_BASE_SHIFT = 5;\n\t\n\t// binary: 100000\n\tvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\t\n\t// binary: 011111\n\tvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\t\n\t// binary: 100000\n\tvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\t\n\t/**\n\t * Converts from a two-complement value to a value where the sign bit is\n\t * placed in the least significant bit. For example, as decimals:\n\t * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n\t * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n\t */\n\tfunction toVLQSigned(aValue) {\n\t return aValue < 0\n\t ? ((-aValue) << 1) + 1\n\t : (aValue << 1) + 0;\n\t}\n\t\n\t/**\n\t * Converts to a two-complement value from a value where the sign bit is\n\t * placed in the least significant bit. For example, as decimals:\n\t * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n\t * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n\t */\n\tfunction fromVLQSigned(aValue) {\n\t var isNegative = (aValue & 1) === 1;\n\t var shifted = aValue >> 1;\n\t return isNegative\n\t ? -shifted\n\t : shifted;\n\t}\n\t\n\t/**\n\t * Returns the base 64 VLQ encoded value.\n\t */\n\texports.encode = function base64VLQ_encode(aValue) {\n\t var encoded = \"\";\n\t var digit;\n\t\n\t var vlq = toVLQSigned(aValue);\n\t\n\t do {\n\t digit = vlq & VLQ_BASE_MASK;\n\t vlq >>>= VLQ_BASE_SHIFT;\n\t if (vlq > 0) {\n\t // There are still more digits in this value, so we must make sure the\n\t // continuation bit is marked.\n\t digit |= VLQ_CONTINUATION_BIT;\n\t }\n\t encoded += base64.encode(digit);\n\t } while (vlq > 0);\n\t\n\t return encoded;\n\t};\n\t\n\t/**\n\t * Decodes the next base 64 VLQ value from the given string and returns the\n\t * value and the rest of the string via the out parameter.\n\t */\n\texports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n\t var strLen = aStr.length;\n\t var result = 0;\n\t var shift = 0;\n\t var continuation, digit;\n\t\n\t do {\n\t if (aIndex >= strLen) {\n\t throw new Error(\"Expected more digits in base 64 VLQ value.\");\n\t }\n\t\n\t digit = base64.decode(aStr.charCodeAt(aIndex++));\n\t if (digit === -1) {\n\t throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n\t }\n\t\n\t continuation = !!(digit & VLQ_CONTINUATION_BIT);\n\t digit &= VLQ_BASE_MASK;\n\t result = result + (digit << shift);\n\t shift += VLQ_BASE_SHIFT;\n\t } while (continuation);\n\t\n\t aOutParam.value = fromVLQSigned(result);\n\t aOutParam.rest = aIndex;\n\t};\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\t\n\t/**\n\t * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n\t */\n\texports.encode = function (number) {\n\t if (0 <= number && number < intToCharMap.length) {\n\t return intToCharMap[number];\n\t }\n\t throw new TypeError(\"Must be between 0 and 63: \" + number);\n\t};\n\t\n\t/**\n\t * Decode a single base 64 character code digit to an integer. Returns -1 on\n\t * failure.\n\t */\n\texports.decode = function (charCode) {\n\t var bigA = 65; // 'A'\n\t var bigZ = 90; // 'Z'\n\t\n\t var littleA = 97; // 'a'\n\t var littleZ = 122; // 'z'\n\t\n\t var zero = 48; // '0'\n\t var nine = 57; // '9'\n\t\n\t var plus = 43; // '+'\n\t var slash = 47; // '/'\n\t\n\t var littleOffset = 26;\n\t var numberOffset = 52;\n\t\n\t // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n\t if (bigA <= charCode && charCode <= bigZ) {\n\t return (charCode - bigA);\n\t }\n\t\n\t // 26 - 51: abcdefghijklmnopqrstuvwxyz\n\t if (littleA <= charCode && charCode <= littleZ) {\n\t return (charCode - littleA + littleOffset);\n\t }\n\t\n\t // 52 - 61: 0123456789\n\t if (zero <= charCode && charCode <= nine) {\n\t return (charCode - zero + numberOffset);\n\t }\n\t\n\t // 62: +\n\t if (charCode == plus) {\n\t return 62;\n\t }\n\t\n\t // 63: /\n\t if (charCode == slash) {\n\t return 63;\n\t }\n\t\n\t // Invalid base64 digit.\n\t return -1;\n\t};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\t/**\n\t * This is a helper function for getting values from parameter/options\n\t * objects.\n\t *\n\t * @param args The object we are extracting values from\n\t * @param name The name of the property we are getting.\n\t * @param defaultValue An optional value to return if the property is missing\n\t * from the object. If this is not specified and the property is missing, an\n\t * error will be thrown.\n\t */\n\tfunction getArg(aArgs, aName, aDefaultValue) {\n\t if (aName in aArgs) {\n\t return aArgs[aName];\n\t } else if (arguments.length === 3) {\n\t return aDefaultValue;\n\t } else {\n\t throw new Error('\"' + aName + '\" is a required argument.');\n\t }\n\t}\n\texports.getArg = getArg;\n\t\n\tvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.]*)(?::(\\d+))?(\\S*)$/;\n\tvar dataUrlRegexp = /^data:.+\\,.+$/;\n\t\n\tfunction urlParse(aUrl) {\n\t var match = aUrl.match(urlRegexp);\n\t if (!match) {\n\t return null;\n\t }\n\t return {\n\t scheme: match[1],\n\t auth: match[2],\n\t host: match[3],\n\t port: match[4],\n\t path: match[5]\n\t };\n\t}\n\texports.urlParse = urlParse;\n\t\n\tfunction urlGenerate(aParsedUrl) {\n\t var url = '';\n\t if (aParsedUrl.scheme) {\n\t url += aParsedUrl.scheme + ':';\n\t }\n\t url += '//';\n\t if (aParsedUrl.auth) {\n\t url += aParsedUrl.auth + '@';\n\t }\n\t if (aParsedUrl.host) {\n\t url += aParsedUrl.host;\n\t }\n\t if (aParsedUrl.port) {\n\t url += \":\" + aParsedUrl.port\n\t }\n\t if (aParsedUrl.path) {\n\t url += aParsedUrl.path;\n\t }\n\t return url;\n\t}\n\texports.urlGenerate = urlGenerate;\n\t\n\t/**\n\t * Normalizes a path, or the path portion of a URL:\n\t *\n\t * - Replaces consecutive slashes with one slash.\n\t * - Removes unnecessary '.' parts.\n\t * - Removes unnecessary '/..' parts.\n\t *\n\t * Based on code in the Node.js 'path' core module.\n\t *\n\t * @param aPath The path or url to normalize.\n\t */\n\tfunction normalize(aPath) {\n\t var path = aPath;\n\t var url = urlParse(aPath);\n\t if (url) {\n\t if (!url.path) {\n\t return aPath;\n\t }\n\t path = url.path;\n\t }\n\t var isAbsolute = exports.isAbsolute(path);\n\t\n\t var parts = path.split(/\\/+/);\n\t for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n\t part = parts[i];\n\t if (part === '.') {\n\t parts.splice(i, 1);\n\t } else if (part === '..') {\n\t up++;\n\t } else if (up > 0) {\n\t if (part === '') {\n\t // The first part is blank if the path is absolute. Trying to go\n\t // above the root is a no-op. Therefore we can remove all '..' parts\n\t // directly after the root.\n\t parts.splice(i + 1, up);\n\t up = 0;\n\t } else {\n\t parts.splice(i, 2);\n\t up--;\n\t }\n\t }\n\t }\n\t path = parts.join('/');\n\t\n\t if (path === '') {\n\t path = isAbsolute ? '/' : '.';\n\t }\n\t\n\t if (url) {\n\t url.path = path;\n\t return urlGenerate(url);\n\t }\n\t return path;\n\t}\n\texports.normalize = normalize;\n\t\n\t/**\n\t * Joins two paths/URLs.\n\t *\n\t * @param aRoot The root path or URL.\n\t * @param aPath The path or URL to be joined with the root.\n\t *\n\t * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n\t * scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n\t * first.\n\t * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n\t * is updated with the result and aRoot is returned. Otherwise the result\n\t * is returned.\n\t * - If aPath is absolute, the result is aPath.\n\t * - Otherwise the two paths are joined with a slash.\n\t * - Joining for example 'http://' and 'www.example.com' is also supported.\n\t */\n\tfunction join(aRoot, aPath) {\n\t if (aRoot === \"\") {\n\t aRoot = \".\";\n\t }\n\t if (aPath === \"\") {\n\t aPath = \".\";\n\t }\n\t var aPathUrl = urlParse(aPath);\n\t var aRootUrl = urlParse(aRoot);\n\t if (aRootUrl) {\n\t aRoot = aRootUrl.path || '/';\n\t }\n\t\n\t // `join(foo, '//www.example.org')`\n\t if (aPathUrl && !aPathUrl.scheme) {\n\t if (aRootUrl) {\n\t aPathUrl.scheme = aRootUrl.scheme;\n\t }\n\t return urlGenerate(aPathUrl);\n\t }\n\t\n\t if (aPathUrl || aPath.match(dataUrlRegexp)) {\n\t return aPath;\n\t }\n\t\n\t // `join('http://', 'www.example.com')`\n\t if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n\t aRootUrl.host = aPath;\n\t return urlGenerate(aRootUrl);\n\t }\n\t\n\t var joined = aPath.charAt(0) === '/'\n\t ? aPath\n\t : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\t\n\t if (aRootUrl) {\n\t aRootUrl.path = joined;\n\t return urlGenerate(aRootUrl);\n\t }\n\t return joined;\n\t}\n\texports.join = join;\n\t\n\texports.isAbsolute = function (aPath) {\n\t return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp);\n\t};\n\t\n\t/**\n\t * Make a path relative to a URL or another path.\n\t *\n\t * @param aRoot The root path or URL.\n\t * @param aPath The path or URL to be made relative to aRoot.\n\t */\n\tfunction relative(aRoot, aPath) {\n\t if (aRoot === \"\") {\n\t aRoot = \".\";\n\t }\n\t\n\t aRoot = aRoot.replace(/\\/$/, '');\n\t\n\t // It is possible for the path to be above the root. In this case, simply\n\t // checking whether the root is a prefix of the path won't work. Instead, we\n\t // need to remove components from the root one by one, until either we find\n\t // a prefix that fits, or we run out of components to remove.\n\t var level = 0;\n\t while (aPath.indexOf(aRoot + '/') !== 0) {\n\t var index = aRoot.lastIndexOf(\"/\");\n\t if (index < 0) {\n\t return aPath;\n\t }\n\t\n\t // If the only part of the root that is left is the scheme (i.e. http://,\n\t // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n\t // have exhausted all components, so the path is not relative to the root.\n\t aRoot = aRoot.slice(0, index);\n\t if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n\t return aPath;\n\t }\n\t\n\t ++level;\n\t }\n\t\n\t // Make sure we add a \"../\" for each component we removed from the root.\n\t return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n\t}\n\texports.relative = relative;\n\t\n\tvar supportsNullProto = (function () {\n\t var obj = Object.create(null);\n\t return !('__proto__' in obj);\n\t}());\n\t\n\tfunction identity (s) {\n\t return s;\n\t}\n\t\n\t/**\n\t * Because behavior goes wacky when you set `__proto__` on objects, we\n\t * have to prefix all the strings in our set with an arbitrary character.\n\t *\n\t * See https://github.com/mozilla/source-map/pull/31 and\n\t * https://github.com/mozilla/source-map/issues/30\n\t *\n\t * @param String aStr\n\t */\n\tfunction toSetString(aStr) {\n\t if (isProtoString(aStr)) {\n\t return '$' + aStr;\n\t }\n\t\n\t return aStr;\n\t}\n\texports.toSetString = supportsNullProto ? identity : toSetString;\n\t\n\tfunction fromSetString(aStr) {\n\t if (isProtoString(aStr)) {\n\t return aStr.slice(1);\n\t }\n\t\n\t return aStr;\n\t}\n\texports.fromSetString = supportsNullProto ? identity : fromSetString;\n\t\n\tfunction isProtoString(s) {\n\t if (!s) {\n\t return false;\n\t }\n\t\n\t var length = s.length;\n\t\n\t if (length < 9 /* \"__proto__\".length */) {\n\t return false;\n\t }\n\t\n\t if (s.charCodeAt(length - 1) !== 95 /* '_' */ ||\n\t s.charCodeAt(length - 2) !== 95 /* '_' */ ||\n\t s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n\t s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n\t s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n\t s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n\t s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n\t s.charCodeAt(length - 8) !== 95 /* '_' */ ||\n\t s.charCodeAt(length - 9) !== 95 /* '_' */) {\n\t return false;\n\t }\n\t\n\t for (var i = length - 10; i >= 0; i--) {\n\t if (s.charCodeAt(i) !== 36 /* '$' */) {\n\t return false;\n\t }\n\t }\n\t\n\t return true;\n\t}\n\t\n\t/**\n\t * Comparator between two mappings where the original positions are compared.\n\t *\n\t * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n\t * mappings with the same original source/line/column, but different generated\n\t * line and column the same. Useful when searching for a mapping with a\n\t * stubbed out mapping.\n\t */\n\tfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n\t var cmp = mappingA.source - mappingB.source;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\t\n\t cmp = mappingA.originalLine - mappingB.originalLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\t\n\t cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t if (cmp !== 0 || onlyCompareOriginal) {\n\t return cmp;\n\t }\n\t\n\t cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\t\n\t cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\t\n\t return mappingA.name - mappingB.name;\n\t}\n\texports.compareByOriginalPositions = compareByOriginalPositions;\n\t\n\t/**\n\t * Comparator between two mappings with deflated source and name indices where\n\t * the generated positions are compared.\n\t *\n\t * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n\t * mappings with the same generated line and column, but different\n\t * source/name/original line and column the same. Useful when searching for a\n\t * mapping with a stubbed out mapping.\n\t */\n\tfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n\t var cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\t\n\t cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t if (cmp !== 0 || onlyCompareGenerated) {\n\t return cmp;\n\t }\n\t\n\t cmp = mappingA.source - mappingB.source;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\t\n\t cmp = mappingA.originalLine - mappingB.originalLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\t\n\t cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\t\n\t return mappingA.name - mappingB.name;\n\t}\n\texports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\t\n\tfunction strcmp(aStr1, aStr2) {\n\t if (aStr1 === aStr2) {\n\t return 0;\n\t }\n\t\n\t if (aStr1 > aStr2) {\n\t return 1;\n\t }\n\t\n\t return -1;\n\t}\n\t\n\t/**\n\t * Comparator between two mappings with inflated source and name strings where\n\t * the generated positions are compared.\n\t */\n\tfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n\t var cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\t\n\t cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\t\n\t cmp = strcmp(mappingA.source, mappingB.source);\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\t\n\t cmp = mappingA.originalLine - mappingB.originalLine;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\t\n\t cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t if (cmp !== 0) {\n\t return cmp;\n\t }\n\t\n\t return strcmp(mappingA.name, mappingB.name);\n\t}\n\texports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar util = __webpack_require__(4);\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar hasNativeMap = typeof Map !== \"undefined\";\n\t\n\t/**\n\t * A data structure which is a combination of an array and a set. Adding a new\n\t * member is O(1), testing for membership is O(1), and finding the index of an\n\t * element is O(1). Removing elements from the set is not supported. Only\n\t * strings are supported for membership.\n\t */\n\tfunction ArraySet() {\n\t this._array = [];\n\t this._set = hasNativeMap ? new Map() : Object.create(null);\n\t}\n\t\n\t/**\n\t * Static method for creating ArraySet instances from an existing array.\n\t */\n\tArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n\t var set = new ArraySet();\n\t for (var i = 0, len = aArray.length; i < len; i++) {\n\t set.add(aArray[i], aAllowDuplicates);\n\t }\n\t return set;\n\t};\n\t\n\t/**\n\t * Return how many unique items are in this ArraySet. If duplicates have been\n\t * added, than those do not count towards the size.\n\t *\n\t * @returns Number\n\t */\n\tArraySet.prototype.size = function ArraySet_size() {\n\t return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;\n\t};\n\t\n\t/**\n\t * Add the given string to this set.\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n\t var sStr = hasNativeMap ? aStr : util.toSetString(aStr);\n\t var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);\n\t var idx = this._array.length;\n\t if (!isDuplicate || aAllowDuplicates) {\n\t this._array.push(aStr);\n\t }\n\t if (!isDuplicate) {\n\t if (hasNativeMap) {\n\t this._set.set(aStr, idx);\n\t } else {\n\t this._set[sStr] = idx;\n\t }\n\t }\n\t};\n\t\n\t/**\n\t * Is the given string a member of this set?\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.has = function ArraySet_has(aStr) {\n\t if (hasNativeMap) {\n\t return this._set.has(aStr);\n\t } else {\n\t var sStr = util.toSetString(aStr);\n\t return has.call(this._set, sStr);\n\t }\n\t};\n\t\n\t/**\n\t * What is the index of the given string in the array?\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n\t if (hasNativeMap) {\n\t var idx = this._set.get(aStr);\n\t if (idx >= 0) {\n\t return idx;\n\t }\n\t } else {\n\t var sStr = util.toSetString(aStr);\n\t if (has.call(this._set, sStr)) {\n\t return this._set[sStr];\n\t }\n\t }\n\t\n\t throw new Error('\"' + aStr + '\" is not in the set.');\n\t};\n\t\n\t/**\n\t * What is the element at the given index?\n\t *\n\t * @param Number aIdx\n\t */\n\tArraySet.prototype.at = function ArraySet_at(aIdx) {\n\t if (aIdx >= 0 && aIdx < this._array.length) {\n\t return this._array[aIdx];\n\t }\n\t throw new Error('No element indexed by ' + aIdx);\n\t};\n\t\n\t/**\n\t * Returns the array representation of this set (which has the proper indices\n\t * indicated by indexOf). Note that this is a copy of the internal array used\n\t * for storing the members so that no one can mess with internal state.\n\t */\n\tArraySet.prototype.toArray = function ArraySet_toArray() {\n\t return this._array.slice();\n\t};\n\t\n\texports.ArraySet = ArraySet;\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2014 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar util = __webpack_require__(4);\n\t\n\t/**\n\t * Determine whether mappingB is after mappingA with respect to generated\n\t * position.\n\t */\n\tfunction generatedPositionAfter(mappingA, mappingB) {\n\t // Optimized for most common case\n\t var lineA = mappingA.generatedLine;\n\t var lineB = mappingB.generatedLine;\n\t var columnA = mappingA.generatedColumn;\n\t var columnB = mappingB.generatedColumn;\n\t return lineB > lineA || lineB == lineA && columnB >= columnA ||\n\t util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\n\t}\n\t\n\t/**\n\t * A data structure to provide a sorted view of accumulated mappings in a\n\t * performance conscious manner. It trades a neglibable overhead in general\n\t * case for a large speedup in case of mappings being added in order.\n\t */\n\tfunction MappingList() {\n\t this._array = [];\n\t this._sorted = true;\n\t // Serves as infimum\n\t this._last = {generatedLine: -1, generatedColumn: 0};\n\t}\n\t\n\t/**\n\t * Iterate through internal items. This method takes the same arguments that\n\t * `Array.prototype.forEach` takes.\n\t *\n\t * NOTE: The order of the mappings is NOT guaranteed.\n\t */\n\tMappingList.prototype.unsortedForEach =\n\t function MappingList_forEach(aCallback, aThisArg) {\n\t this._array.forEach(aCallback, aThisArg);\n\t };\n\t\n\t/**\n\t * Add the given source mapping.\n\t *\n\t * @param Object aMapping\n\t */\n\tMappingList.prototype.add = function MappingList_add(aMapping) {\n\t if (generatedPositionAfter(this._last, aMapping)) {\n\t this._last = aMapping;\n\t this._array.push(aMapping);\n\t } else {\n\t this._sorted = false;\n\t this._array.push(aMapping);\n\t }\n\t};\n\t\n\t/**\n\t * Returns the flat, sorted array of mappings. The mappings are sorted by\n\t * generated position.\n\t *\n\t * WARNING: This method returns internal data without copying, for\n\t * performance. The return value must NOT be mutated, and should be treated as\n\t * an immutable borrow. If you want to take ownership, you must make your own\n\t * copy.\n\t */\n\tMappingList.prototype.toArray = function MappingList_toArray() {\n\t if (!this._sorted) {\n\t this._array.sort(util.compareByGeneratedPositionsInflated);\n\t this._sorted = true;\n\t }\n\t return this._array;\n\t};\n\t\n\texports.MappingList = MappingList;\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar util = __webpack_require__(4);\n\tvar binarySearch = __webpack_require__(8);\n\tvar ArraySet = __webpack_require__(5).ArraySet;\n\tvar base64VLQ = __webpack_require__(2);\n\tvar quickSort = __webpack_require__(9).quickSort;\n\t\n\tfunction SourceMapConsumer(aSourceMap) {\n\t var sourceMap = aSourceMap;\n\t if (typeof aSourceMap === 'string') {\n\t sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t }\n\t\n\t return sourceMap.sections != null\n\t ? new IndexedSourceMapConsumer(sourceMap)\n\t : new BasicSourceMapConsumer(sourceMap);\n\t}\n\t\n\tSourceMapConsumer.fromSourceMap = function(aSourceMap) {\n\t return BasicSourceMapConsumer.fromSourceMap(aSourceMap);\n\t}\n\t\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tSourceMapConsumer.prototype._version = 3;\n\t\n\t// `__generatedMappings` and `__originalMappings` are arrays that hold the\n\t// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n\t// are lazily instantiated, accessed via the `_generatedMappings` and\n\t// `_originalMappings` getters respectively, and we only parse the mappings\n\t// and create these arrays once queried for a source location. We jump through\n\t// these hoops because there can be many thousands of mappings, and parsing\n\t// them is expensive, so we only want to do it if we must.\n\t//\n\t// Each object in the arrays is of the form:\n\t//\n\t// {\n\t// generatedLine: The line number in the generated code,\n\t// generatedColumn: The column number in the generated code,\n\t// source: The path to the original source file that generated this\n\t// chunk of code,\n\t// originalLine: The line number in the original source that\n\t// corresponds to this chunk of generated code,\n\t// originalColumn: The column number in the original source that\n\t// corresponds to this chunk of generated code,\n\t// name: The name of the original symbol which generated this chunk of\n\t// code.\n\t// }\n\t//\n\t// All properties except for `generatedLine` and `generatedColumn` can be\n\t// `null`.\n\t//\n\t// `_generatedMappings` is ordered by the generated positions.\n\t//\n\t// `_originalMappings` is ordered by the original positions.\n\t\n\tSourceMapConsumer.prototype.__generatedMappings = null;\n\tObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n\t get: function () {\n\t if (!this.__generatedMappings) {\n\t this._parseMappings(this._mappings, this.sourceRoot);\n\t }\n\t\n\t return this.__generatedMappings;\n\t }\n\t});\n\t\n\tSourceMapConsumer.prototype.__originalMappings = null;\n\tObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n\t get: function () {\n\t if (!this.__originalMappings) {\n\t this._parseMappings(this._mappings, this.sourceRoot);\n\t }\n\t\n\t return this.__originalMappings;\n\t }\n\t});\n\t\n\tSourceMapConsumer.prototype._charIsMappingSeparator =\n\t function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n\t var c = aStr.charAt(index);\n\t return c === \";\" || c === \",\";\n\t };\n\t\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tSourceMapConsumer.prototype._parseMappings =\n\t function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t throw new Error(\"Subclasses must implement _parseMappings\");\n\t };\n\t\n\tSourceMapConsumer.GENERATED_ORDER = 1;\n\tSourceMapConsumer.ORIGINAL_ORDER = 2;\n\t\n\tSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\n\tSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\t\n\t/**\n\t * Iterate over each mapping between an original source/line/column and a\n\t * generated line/column in this source map.\n\t *\n\t * @param Function aCallback\n\t * The function that is called with each mapping.\n\t * @param Object aContext\n\t * Optional. If specified, this object will be the value of `this` every\n\t * time that `aCallback` is called.\n\t * @param aOrder\n\t * Either `SourceMapConsumer.GENERATED_ORDER` or\n\t * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n\t * iterate over the mappings sorted by the generated file's line/column\n\t * order or the original's source/line/column order, respectively. Defaults to\n\t * `SourceMapConsumer.GENERATED_ORDER`.\n\t */\n\tSourceMapConsumer.prototype.eachMapping =\n\t function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n\t var context = aContext || null;\n\t var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\t\n\t var mappings;\n\t switch (order) {\n\t case SourceMapConsumer.GENERATED_ORDER:\n\t mappings = this._generatedMappings;\n\t break;\n\t case SourceMapConsumer.ORIGINAL_ORDER:\n\t mappings = this._originalMappings;\n\t break;\n\t default:\n\t throw new Error(\"Unknown order of iteration.\");\n\t }\n\t\n\t var sourceRoot = this.sourceRoot;\n\t mappings.map(function (mapping) {\n\t var source = mapping.source === null ? null : this._sources.at(mapping.source);\n\t if (source != null && sourceRoot != null) {\n\t source = util.join(sourceRoot, source);\n\t }\n\t return {\n\t source: source,\n\t generatedLine: mapping.generatedLine,\n\t generatedColumn: mapping.generatedColumn,\n\t originalLine: mapping.originalLine,\n\t originalColumn: mapping.originalColumn,\n\t name: mapping.name === null ? null : this._names.at(mapping.name)\n\t };\n\t }, this).forEach(aCallback, context);\n\t };\n\t\n\t/**\n\t * Returns all generated line and column information for the original source,\n\t * line, and column provided. If no column is provided, returns all mappings\n\t * corresponding to a either the line we are searching for or the next\n\t * closest line that has any mappings. Otherwise, returns all mappings\n\t * corresponding to the given line and either the column we are searching for\n\t * or the next closest column that has any offsets.\n\t *\n\t * The only argument is an object with the following properties:\n\t *\n\t * - source: The filename of the original source.\n\t * - line: The line number in the original source.\n\t * - column: Optional. the column number in the original source.\n\t *\n\t * and an array of objects is returned, each with the following properties:\n\t *\n\t * - line: The line number in the generated source, or null.\n\t * - column: The column number in the generated source, or null.\n\t */\n\tSourceMapConsumer.prototype.allGeneratedPositionsFor =\n\t function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n\t var line = util.getArg(aArgs, 'line');\n\t\n\t // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n\t // returns the index of the closest mapping less than the needle. By\n\t // setting needle.originalColumn to 0, we thus find the last mapping for\n\t // the given line, provided such a mapping exists.\n\t var needle = {\n\t source: util.getArg(aArgs, 'source'),\n\t originalLine: line,\n\t originalColumn: util.getArg(aArgs, 'column', 0)\n\t };\n\t\n\t if (this.sourceRoot != null) {\n\t needle.source = util.relative(this.sourceRoot, needle.source);\n\t }\n\t if (!this._sources.has(needle.source)) {\n\t return [];\n\t }\n\t needle.source = this._sources.indexOf(needle.source);\n\t\n\t var mappings = [];\n\t\n\t var index = this._findMapping(needle,\n\t this._originalMappings,\n\t \"originalLine\",\n\t \"originalColumn\",\n\t util.compareByOriginalPositions,\n\t binarySearch.LEAST_UPPER_BOUND);\n\t if (index >= 0) {\n\t var mapping = this._originalMappings[index];\n\t\n\t if (aArgs.column === undefined) {\n\t var originalLine = mapping.originalLine;\n\t\n\t // Iterate until either we run out of mappings, or we run into\n\t // a mapping for a different line than the one we found. Since\n\t // mappings are sorted, this is guaranteed to find all mappings for\n\t // the line we found.\n\t while (mapping && mapping.originalLine === originalLine) {\n\t mappings.push({\n\t line: util.getArg(mapping, 'generatedLine', null),\n\t column: util.getArg(mapping, 'generatedColumn', null),\n\t lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t });\n\t\n\t mapping = this._originalMappings[++index];\n\t }\n\t } else {\n\t var originalColumn = mapping.originalColumn;\n\t\n\t // Iterate until either we run out of mappings, or we run into\n\t // a mapping for a different line than the one we were searching for.\n\t // Since mappings are sorted, this is guaranteed to find all mappings for\n\t // the line we are searching for.\n\t while (mapping &&\n\t mapping.originalLine === line &&\n\t mapping.originalColumn == originalColumn) {\n\t mappings.push({\n\t line: util.getArg(mapping, 'generatedLine', null),\n\t column: util.getArg(mapping, 'generatedColumn', null),\n\t lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t });\n\t\n\t mapping = this._originalMappings[++index];\n\t }\n\t }\n\t }\n\t\n\t return mappings;\n\t };\n\t\n\texports.SourceMapConsumer = SourceMapConsumer;\n\t\n\t/**\n\t * A BasicSourceMapConsumer instance represents a parsed source map which we can\n\t * query for information about the original file positions by giving it a file\n\t * position in the generated source.\n\t *\n\t * The only parameter is the raw source map (either as a JSON string, or\n\t * already parsed to an object). According to the spec, source maps have the\n\t * following attributes:\n\t *\n\t * - version: Which version of the source map spec this map is following.\n\t * - sources: An array of URLs to the original source files.\n\t * - names: An array of identifiers which can be referrenced by individual mappings.\n\t * - sourceRoot: Optional. The URL root from which all sources are relative.\n\t * - sourcesContent: Optional. An array of contents of the original source files.\n\t * - mappings: A string of base64 VLQs which contain the actual mappings.\n\t * - file: Optional. The generated file this source map is associated with.\n\t *\n\t * Here is an example source map, taken from the source map spec[0]:\n\t *\n\t * {\n\t * version : 3,\n\t * file: \"out.js\",\n\t * sourceRoot : \"\",\n\t * sources: [\"foo.js\", \"bar.js\"],\n\t * names: [\"src\", \"maps\", \"are\", \"fun\"],\n\t * mappings: \"AA,AB;;ABCDE;\"\n\t * }\n\t *\n\t * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n\t */\n\tfunction BasicSourceMapConsumer(aSourceMap) {\n\t var sourceMap = aSourceMap;\n\t if (typeof aSourceMap === 'string') {\n\t sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t }\n\t\n\t var version = util.getArg(sourceMap, 'version');\n\t var sources = util.getArg(sourceMap, 'sources');\n\t // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n\t // requires the array) to play nice here.\n\t var names = util.getArg(sourceMap, 'names', []);\n\t var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n\t var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n\t var mappings = util.getArg(sourceMap, 'mappings');\n\t var file = util.getArg(sourceMap, 'file', null);\n\t\n\t // Once again, Sass deviates from the spec and supplies the version as a\n\t // string rather than a number, so we use loose equality checking here.\n\t if (version != this._version) {\n\t throw new Error('Unsupported version: ' + version);\n\t }\n\t\n\t sources = sources\n\t .map(String)\n\t // Some source maps produce relative source paths like \"./foo.js\" instead of\n\t // \"foo.js\". Normalize these first so that future comparisons will succeed.\n\t // See bugzil.la/1090768.\n\t .map(util.normalize)\n\t // Always ensure that absolute sources are internally stored relative to\n\t // the source root, if the source root is absolute. Not doing this would\n\t // be particularly problematic when the source root is a prefix of the\n\t // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n\t .map(function (source) {\n\t return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n\t ? util.relative(sourceRoot, source)\n\t : source;\n\t });\n\t\n\t // Pass `true` below to allow duplicate names and sources. While source maps\n\t // are intended to be compressed and deduplicated, the TypeScript compiler\n\t // sometimes generates source maps with duplicates in them. See Github issue\n\t // #72 and bugzil.la/889492.\n\t this._names = ArraySet.fromArray(names.map(String), true);\n\t this._sources = ArraySet.fromArray(sources, true);\n\t\n\t this.sourceRoot = sourceRoot;\n\t this.sourcesContent = sourcesContent;\n\t this._mappings = mappings;\n\t this.file = file;\n\t}\n\t\n\tBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\n\tBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\t\n\t/**\n\t * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n\t *\n\t * @param SourceMapGenerator aSourceMap\n\t * The source map that will be consumed.\n\t * @returns BasicSourceMapConsumer\n\t */\n\tBasicSourceMapConsumer.fromSourceMap =\n\t function SourceMapConsumer_fromSourceMap(aSourceMap) {\n\t var smc = Object.create(BasicSourceMapConsumer.prototype);\n\t\n\t var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n\t var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n\t smc.sourceRoot = aSourceMap._sourceRoot;\n\t smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n\t smc.sourceRoot);\n\t smc.file = aSourceMap._file;\n\t\n\t // Because we are modifying the entries (by converting string sources and\n\t // names to indices into the sources and names ArraySets), we have to make\n\t // a copy of the entry or else bad things happen. Shared mutable state\n\t // strikes again! See github issue #191.\n\t\n\t var generatedMappings = aSourceMap._mappings.toArray().slice();\n\t var destGeneratedMappings = smc.__generatedMappings = [];\n\t var destOriginalMappings = smc.__originalMappings = [];\n\t\n\t for (var i = 0, length = generatedMappings.length; i < length; i++) {\n\t var srcMapping = generatedMappings[i];\n\t var destMapping = new Mapping;\n\t destMapping.generatedLine = srcMapping.generatedLine;\n\t destMapping.generatedColumn = srcMapping.generatedColumn;\n\t\n\t if (srcMapping.source) {\n\t destMapping.source = sources.indexOf(srcMapping.source);\n\t destMapping.originalLine = srcMapping.originalLine;\n\t destMapping.originalColumn = srcMapping.originalColumn;\n\t\n\t if (srcMapping.name) {\n\t destMapping.name = names.indexOf(srcMapping.name);\n\t }\n\t\n\t destOriginalMappings.push(destMapping);\n\t }\n\t\n\t destGeneratedMappings.push(destMapping);\n\t }\n\t\n\t quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\t\n\t return smc;\n\t };\n\t\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tBasicSourceMapConsumer.prototype._version = 3;\n\t\n\t/**\n\t * The list of original sources.\n\t */\n\tObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n\t get: function () {\n\t return this._sources.toArray().map(function (s) {\n\t return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;\n\t }, this);\n\t }\n\t});\n\t\n\t/**\n\t * Provide the JIT with a nice shape / hidden class.\n\t */\n\tfunction Mapping() {\n\t this.generatedLine = 0;\n\t this.generatedColumn = 0;\n\t this.source = null;\n\t this.originalLine = null;\n\t this.originalColumn = null;\n\t this.name = null;\n\t}\n\t\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tBasicSourceMapConsumer.prototype._parseMappings =\n\t function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t var generatedLine = 1;\n\t var previousGeneratedColumn = 0;\n\t var previousOriginalLine = 0;\n\t var previousOriginalColumn = 0;\n\t var previousSource = 0;\n\t var previousName = 0;\n\t var length = aStr.length;\n\t var index = 0;\n\t var cachedSegments = {};\n\t var temp = {};\n\t var originalMappings = [];\n\t var generatedMappings = [];\n\t var mapping, str, segment, end, value;\n\t\n\t while (index < length) {\n\t if (aStr.charAt(index) === ';') {\n\t generatedLine++;\n\t index++;\n\t previousGeneratedColumn = 0;\n\t }\n\t else if (aStr.charAt(index) === ',') {\n\t index++;\n\t }\n\t else {\n\t mapping = new Mapping();\n\t mapping.generatedLine = generatedLine;\n\t\n\t // Because each offset is encoded relative to the previous one,\n\t // many segments often have the same encoding. We can exploit this\n\t // fact by caching the parsed variable length fields of each segment,\n\t // allowing us to avoid a second parse if we encounter the same\n\t // segment again.\n\t for (end = index; end < length; end++) {\n\t if (this._charIsMappingSeparator(aStr, end)) {\n\t break;\n\t }\n\t }\n\t str = aStr.slice(index, end);\n\t\n\t segment = cachedSegments[str];\n\t if (segment) {\n\t index += str.length;\n\t } else {\n\t segment = [];\n\t while (index < end) {\n\t base64VLQ.decode(aStr, index, temp);\n\t value = temp.value;\n\t index = temp.rest;\n\t segment.push(value);\n\t }\n\t\n\t if (segment.length === 2) {\n\t throw new Error('Found a source, but no line and column');\n\t }\n\t\n\t if (segment.length === 3) {\n\t throw new Error('Found a source and line, but no column');\n\t }\n\t\n\t cachedSegments[str] = segment;\n\t }\n\t\n\t // Generated column.\n\t mapping.generatedColumn = previousGeneratedColumn + segment[0];\n\t previousGeneratedColumn = mapping.generatedColumn;\n\t\n\t if (segment.length > 1) {\n\t // Original source.\n\t mapping.source = previousSource + segment[1];\n\t previousSource += segment[1];\n\t\n\t // Original line.\n\t mapping.originalLine = previousOriginalLine + segment[2];\n\t previousOriginalLine = mapping.originalLine;\n\t // Lines are stored 0-based\n\t mapping.originalLine += 1;\n\t\n\t // Original column.\n\t mapping.originalColumn = previousOriginalColumn + segment[3];\n\t previousOriginalColumn = mapping.originalColumn;\n\t\n\t if (segment.length > 4) {\n\t // Original name.\n\t mapping.name = previousName + segment[4];\n\t previousName += segment[4];\n\t }\n\t }\n\t\n\t generatedMappings.push(mapping);\n\t if (typeof mapping.originalLine === 'number') {\n\t originalMappings.push(mapping);\n\t }\n\t }\n\t }\n\t\n\t quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n\t this.__generatedMappings = generatedMappings;\n\t\n\t quickSort(originalMappings, util.compareByOriginalPositions);\n\t this.__originalMappings = originalMappings;\n\t };\n\t\n\t/**\n\t * Find the mapping that best matches the hypothetical \"needle\" mapping that\n\t * we are searching for in the given \"haystack\" of mappings.\n\t */\n\tBasicSourceMapConsumer.prototype._findMapping =\n\t function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n\t aColumnName, aComparator, aBias) {\n\t // To return the position we are searching for, we must first find the\n\t // mapping for the given position and then return the opposite position it\n\t // points to. Because the mappings are sorted, we can use binary search to\n\t // find the best mapping.\n\t\n\t if (aNeedle[aLineName] <= 0) {\n\t throw new TypeError('Line must be greater than or equal to 1, got '\n\t + aNeedle[aLineName]);\n\t }\n\t if (aNeedle[aColumnName] < 0) {\n\t throw new TypeError('Column must be greater than or equal to 0, got '\n\t + aNeedle[aColumnName]);\n\t }\n\t\n\t return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n\t };\n\t\n\t/**\n\t * Compute the last column for each generated mapping. The last column is\n\t * inclusive.\n\t */\n\tBasicSourceMapConsumer.prototype.computeColumnSpans =\n\t function SourceMapConsumer_computeColumnSpans() {\n\t for (var index = 0; index < this._generatedMappings.length; ++index) {\n\t var mapping = this._generatedMappings[index];\n\t\n\t // Mappings do not contain a field for the last generated columnt. We\n\t // can come up with an optimistic estimate, however, by assuming that\n\t // mappings are contiguous (i.e. given two consecutive mappings, the\n\t // first mapping ends where the second one starts).\n\t if (index + 1 < this._generatedMappings.length) {\n\t var nextMapping = this._generatedMappings[index + 1];\n\t\n\t if (mapping.generatedLine === nextMapping.generatedLine) {\n\t mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n\t continue;\n\t }\n\t }\n\t\n\t // The last mapping for each line spans the entire line.\n\t mapping.lastGeneratedColumn = Infinity;\n\t }\n\t };\n\t\n\t/**\n\t * Returns the original source, line, and column information for the generated\n\t * source's line and column positions provided. The only argument is an object\n\t * with the following properties:\n\t *\n\t * - line: The line number in the generated source.\n\t * - column: The column number in the generated source.\n\t * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n\t * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - source: The original source file, or null.\n\t * - line: The line number in the original source, or null.\n\t * - column: The column number in the original source, or null.\n\t * - name: The original identifier, or null.\n\t */\n\tBasicSourceMapConsumer.prototype.originalPositionFor =\n\t function SourceMapConsumer_originalPositionFor(aArgs) {\n\t var needle = {\n\t generatedLine: util.getArg(aArgs, 'line'),\n\t generatedColumn: util.getArg(aArgs, 'column')\n\t };\n\t\n\t var index = this._findMapping(\n\t needle,\n\t this._generatedMappings,\n\t \"generatedLine\",\n\t \"generatedColumn\",\n\t util.compareByGeneratedPositionsDeflated,\n\t util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n\t );\n\t\n\t if (index >= 0) {\n\t var mapping = this._generatedMappings[index];\n\t\n\t if (mapping.generatedLine === needle.generatedLine) {\n\t var source = util.getArg(mapping, 'source', null);\n\t if (source !== null) {\n\t source = this._sources.at(source);\n\t if (this.sourceRoot != null) {\n\t source = util.join(this.sourceRoot, source);\n\t }\n\t }\n\t var name = util.getArg(mapping, 'name', null);\n\t if (name !== null) {\n\t name = this._names.at(name);\n\t }\n\t return {\n\t source: source,\n\t line: util.getArg(mapping, 'originalLine', null),\n\t column: util.getArg(mapping, 'originalColumn', null),\n\t name: name\n\t };\n\t }\n\t }\n\t\n\t return {\n\t source: null,\n\t line: null,\n\t column: null,\n\t name: null\n\t };\n\t };\n\t\n\t/**\n\t * Return true if we have the source content for every source in the source\n\t * map, false otherwise.\n\t */\n\tBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n\t function BasicSourceMapConsumer_hasContentsOfAllSources() {\n\t if (!this.sourcesContent) {\n\t return false;\n\t }\n\t return this.sourcesContent.length >= this._sources.size() &&\n\t !this.sourcesContent.some(function (sc) { return sc == null; });\n\t };\n\t\n\t/**\n\t * Returns the original source content. The only argument is the url of the\n\t * original source file. Returns null if no original source content is\n\t * available.\n\t */\n\tBasicSourceMapConsumer.prototype.sourceContentFor =\n\t function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n\t if (!this.sourcesContent) {\n\t return null;\n\t }\n\t\n\t if (this.sourceRoot != null) {\n\t aSource = util.relative(this.sourceRoot, aSource);\n\t }\n\t\n\t if (this._sources.has(aSource)) {\n\t return this.sourcesContent[this._sources.indexOf(aSource)];\n\t }\n\t\n\t var url;\n\t if (this.sourceRoot != null\n\t && (url = util.urlParse(this.sourceRoot))) {\n\t // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n\t // many users. We can help them out when they expect file:// URIs to\n\t // behave like it would if they were running a local HTTP server. See\n\t // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n\t var fileUriAbsPath = aSource.replace(/^file:\\/\\//, \"\");\n\t if (url.scheme == \"file\"\n\t && this._sources.has(fileUriAbsPath)) {\n\t return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n\t }\n\t\n\t if ((!url.path || url.path == \"/\")\n\t && this._sources.has(\"/\" + aSource)) {\n\t return this.sourcesContent[this._sources.indexOf(\"/\" + aSource)];\n\t }\n\t }\n\t\n\t // This function is used recursively from\n\t // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n\t // don't want to throw if we can't find the source - we just want to\n\t // return null, so we provide a flag to exit gracefully.\n\t if (nullOnMissing) {\n\t return null;\n\t }\n\t else {\n\t throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n\t }\n\t };\n\t\n\t/**\n\t * Returns the generated line and column information for the original source,\n\t * line, and column positions provided. The only argument is an object with\n\t * the following properties:\n\t *\n\t * - source: The filename of the original source.\n\t * - line: The line number in the original source.\n\t * - column: The column number in the original source.\n\t * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n\t * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - line: The line number in the generated source, or null.\n\t * - column: The column number in the generated source, or null.\n\t */\n\tBasicSourceMapConsumer.prototype.generatedPositionFor =\n\t function SourceMapConsumer_generatedPositionFor(aArgs) {\n\t var source = util.getArg(aArgs, 'source');\n\t if (this.sourceRoot != null) {\n\t source = util.relative(this.sourceRoot, source);\n\t }\n\t if (!this._sources.has(source)) {\n\t return {\n\t line: null,\n\t column: null,\n\t lastColumn: null\n\t };\n\t }\n\t source = this._sources.indexOf(source);\n\t\n\t var needle = {\n\t source: source,\n\t originalLine: util.getArg(aArgs, 'line'),\n\t originalColumn: util.getArg(aArgs, 'column')\n\t };\n\t\n\t var index = this._findMapping(\n\t needle,\n\t this._originalMappings,\n\t \"originalLine\",\n\t \"originalColumn\",\n\t util.compareByOriginalPositions,\n\t util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n\t );\n\t\n\t if (index >= 0) {\n\t var mapping = this._originalMappings[index];\n\t\n\t if (mapping.source === needle.source) {\n\t return {\n\t line: util.getArg(mapping, 'generatedLine', null),\n\t column: util.getArg(mapping, 'generatedColumn', null),\n\t lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t };\n\t }\n\t }\n\t\n\t return {\n\t line: null,\n\t column: null,\n\t lastColumn: null\n\t };\n\t };\n\t\n\texports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\t\n\t/**\n\t * An IndexedSourceMapConsumer instance represents a parsed source map which\n\t * we can query for information. It differs from BasicSourceMapConsumer in\n\t * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n\t * input.\n\t *\n\t * The only parameter is a raw source map (either as a JSON string, or already\n\t * parsed to an object). According to the spec for indexed source maps, they\n\t * have the following attributes:\n\t *\n\t * - version: Which version of the source map spec this map is following.\n\t * - file: Optional. The generated file this source map is associated with.\n\t * - sections: A list of section definitions.\n\t *\n\t * Each value under the \"sections\" field has two fields:\n\t * - offset: The offset into the original specified at which this section\n\t * begins to apply, defined as an object with a \"line\" and \"column\"\n\t * field.\n\t * - map: A source map definition. This source map could also be indexed,\n\t * but doesn't have to be.\n\t *\n\t * Instead of the \"map\" field, it's also possible to have a \"url\" field\n\t * specifying a URL to retrieve a source map from, but that's currently\n\t * unsupported.\n\t *\n\t * Here's an example source map, taken from the source map spec[0], but\n\t * modified to omit a section which uses the \"url\" field.\n\t *\n\t * {\n\t * version : 3,\n\t * file: \"app.js\",\n\t * sections: [{\n\t * offset: {line:100, column:10},\n\t * map: {\n\t * version : 3,\n\t * file: \"section.js\",\n\t * sources: [\"foo.js\", \"bar.js\"],\n\t * names: [\"src\", \"maps\", \"are\", \"fun\"],\n\t * mappings: \"AAAA,E;;ABCDE;\"\n\t * }\n\t * }],\n\t * }\n\t *\n\t * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n\t */\n\tfunction IndexedSourceMapConsumer(aSourceMap) {\n\t var sourceMap = aSourceMap;\n\t if (typeof aSourceMap === 'string') {\n\t sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t }\n\t\n\t var version = util.getArg(sourceMap, 'version');\n\t var sections = util.getArg(sourceMap, 'sections');\n\t\n\t if (version != this._version) {\n\t throw new Error('Unsupported version: ' + version);\n\t }\n\t\n\t this._sources = new ArraySet();\n\t this._names = new ArraySet();\n\t\n\t var lastOffset = {\n\t line: -1,\n\t column: 0\n\t };\n\t this._sections = sections.map(function (s) {\n\t if (s.url) {\n\t // The url field will require support for asynchronicity.\n\t // See https://github.com/mozilla/source-map/issues/16\n\t throw new Error('Support for url field in sections not implemented.');\n\t }\n\t var offset = util.getArg(s, 'offset');\n\t var offsetLine = util.getArg(offset, 'line');\n\t var offsetColumn = util.getArg(offset, 'column');\n\t\n\t if (offsetLine < lastOffset.line ||\n\t (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n\t throw new Error('Section offsets must be ordered and non-overlapping.');\n\t }\n\t lastOffset = offset;\n\t\n\t return {\n\t generatedOffset: {\n\t // The offset fields are 0-based, but we use 1-based indices when\n\t // encoding/decoding from VLQ.\n\t generatedLine: offsetLine + 1,\n\t generatedColumn: offsetColumn + 1\n\t },\n\t consumer: new SourceMapConsumer(util.getArg(s, 'map'))\n\t }\n\t });\n\t}\n\t\n\tIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\n\tIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\t\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tIndexedSourceMapConsumer.prototype._version = 3;\n\t\n\t/**\n\t * The list of original sources.\n\t */\n\tObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n\t get: function () {\n\t var sources = [];\n\t for (var i = 0; i < this._sections.length; i++) {\n\t for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n\t sources.push(this._sections[i].consumer.sources[j]);\n\t }\n\t }\n\t return sources;\n\t }\n\t});\n\t\n\t/**\n\t * Returns the original source, line, and column information for the generated\n\t * source's line and column positions provided. The only argument is an object\n\t * with the following properties:\n\t *\n\t * - line: The line number in the generated source.\n\t * - column: The column number in the generated source.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - source: The original source file, or null.\n\t * - line: The line number in the original source, or null.\n\t * - column: The column number in the original source, or null.\n\t * - name: The original identifier, or null.\n\t */\n\tIndexedSourceMapConsumer.prototype.originalPositionFor =\n\t function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n\t var needle = {\n\t generatedLine: util.getArg(aArgs, 'line'),\n\t generatedColumn: util.getArg(aArgs, 'column')\n\t };\n\t\n\t // Find the section containing the generated position we're trying to map\n\t // to an original position.\n\t var sectionIndex = binarySearch.search(needle, this._sections,\n\t function(needle, section) {\n\t var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n\t if (cmp) {\n\t return cmp;\n\t }\n\t\n\t return (needle.generatedColumn -\n\t section.generatedOffset.generatedColumn);\n\t });\n\t var section = this._sections[sectionIndex];\n\t\n\t if (!section) {\n\t return {\n\t source: null,\n\t line: null,\n\t column: null,\n\t name: null\n\t };\n\t }\n\t\n\t return section.consumer.originalPositionFor({\n\t line: needle.generatedLine -\n\t (section.generatedOffset.generatedLine - 1),\n\t column: needle.generatedColumn -\n\t (section.generatedOffset.generatedLine === needle.generatedLine\n\t ? section.generatedOffset.generatedColumn - 1\n\t : 0),\n\t bias: aArgs.bias\n\t });\n\t };\n\t\n\t/**\n\t * Return true if we have the source content for every source in the source\n\t * map, false otherwise.\n\t */\n\tIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n\t function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n\t return this._sections.every(function (s) {\n\t return s.consumer.hasContentsOfAllSources();\n\t });\n\t };\n\t\n\t/**\n\t * Returns the original source content. The only argument is the url of the\n\t * original source file. Returns null if no original source content is\n\t * available.\n\t */\n\tIndexedSourceMapConsumer.prototype.sourceContentFor =\n\t function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n\t for (var i = 0; i < this._sections.length; i++) {\n\t var section = this._sections[i];\n\t\n\t var content = section.consumer.sourceContentFor(aSource, true);\n\t if (content) {\n\t return content;\n\t }\n\t }\n\t if (nullOnMissing) {\n\t return null;\n\t }\n\t else {\n\t throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n\t }\n\t };\n\t\n\t/**\n\t * Returns the generated line and column information for the original source,\n\t * line, and column positions provided. The only argument is an object with\n\t * the following properties:\n\t *\n\t * - source: The filename of the original source.\n\t * - line: The line number in the original source.\n\t * - column: The column number in the original source.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t * - line: The line number in the generated source, or null.\n\t * - column: The column number in the generated source, or null.\n\t */\n\tIndexedSourceMapConsumer.prototype.generatedPositionFor =\n\t function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n\t for (var i = 0; i < this._sections.length; i++) {\n\t var section = this._sections[i];\n\t\n\t // Only consider this section if the requested source is in the list of\n\t // sources of the consumer.\n\t if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) {\n\t continue;\n\t }\n\t var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n\t if (generatedPosition) {\n\t var ret = {\n\t line: generatedPosition.line +\n\t (section.generatedOffset.generatedLine - 1),\n\t column: generatedPosition.column +\n\t (section.generatedOffset.generatedLine === generatedPosition.line\n\t ? section.generatedOffset.generatedColumn - 1\n\t : 0)\n\t };\n\t return ret;\n\t }\n\t }\n\t\n\t return {\n\t line: null,\n\t column: null\n\t };\n\t };\n\t\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tIndexedSourceMapConsumer.prototype._parseMappings =\n\t function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t this.__generatedMappings = [];\n\t this.__originalMappings = [];\n\t for (var i = 0; i < this._sections.length; i++) {\n\t var section = this._sections[i];\n\t var sectionMappings = section.consumer._generatedMappings;\n\t for (var j = 0; j < sectionMappings.length; j++) {\n\t var mapping = sectionMappings[j];\n\t\n\t var source = section.consumer._sources.at(mapping.source);\n\t if (section.consumer.sourceRoot !== null) {\n\t source = util.join(section.consumer.sourceRoot, source);\n\t }\n\t this._sources.add(source);\n\t source = this._sources.indexOf(source);\n\t\n\t var name = section.consumer._names.at(mapping.name);\n\t this._names.add(name);\n\t name = this._names.indexOf(name);\n\t\n\t // The mappings coming from the consumer for the section have\n\t // generated positions relative to the start of the section, so we\n\t // need to offset them to be relative to the start of the concatenated\n\t // generated file.\n\t var adjustedMapping = {\n\t source: source,\n\t generatedLine: mapping.generatedLine +\n\t (section.generatedOffset.generatedLine - 1),\n\t generatedColumn: mapping.generatedColumn +\n\t (section.generatedOffset.generatedLine === mapping.generatedLine\n\t ? section.generatedOffset.generatedColumn - 1\n\t : 0),\n\t originalLine: mapping.originalLine,\n\t originalColumn: mapping.originalColumn,\n\t name: name\n\t };\n\t\n\t this.__generatedMappings.push(adjustedMapping);\n\t if (typeof adjustedMapping.originalLine === 'number') {\n\t this.__originalMappings.push(adjustedMapping);\n\t }\n\t }\n\t }\n\t\n\t quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n\t quickSort(this.__originalMappings, util.compareByOriginalPositions);\n\t };\n\t\n\texports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\texports.GREATEST_LOWER_BOUND = 1;\n\texports.LEAST_UPPER_BOUND = 2;\n\t\n\t/**\n\t * Recursive implementation of binary search.\n\t *\n\t * @param aLow Indices here and lower do not contain the needle.\n\t * @param aHigh Indices here and higher do not contain the needle.\n\t * @param aNeedle The element being searched for.\n\t * @param aHaystack The non-empty array being searched.\n\t * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n\t * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n\t * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t */\n\tfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n\t // This function terminates when one of the following is true:\n\t //\n\t // 1. We find the exact element we are looking for.\n\t //\n\t // 2. We did not find the exact element, but we can return the index of\n\t // the next-closest element.\n\t //\n\t // 3. We did not find the exact element, and there is no next-closest\n\t // element than the one we are searching for, so we return -1.\n\t var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n\t var cmp = aCompare(aNeedle, aHaystack[mid], true);\n\t if (cmp === 0) {\n\t // Found the element we are looking for.\n\t return mid;\n\t }\n\t else if (cmp > 0) {\n\t // Our needle is greater than aHaystack[mid].\n\t if (aHigh - mid > 1) {\n\t // The element is in the upper half.\n\t return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n\t }\n\t\n\t // The exact needle element was not found in this haystack. Determine if\n\t // we are in termination case (3) or (2) and return the appropriate thing.\n\t if (aBias == exports.LEAST_UPPER_BOUND) {\n\t return aHigh < aHaystack.length ? aHigh : -1;\n\t } else {\n\t return mid;\n\t }\n\t }\n\t else {\n\t // Our needle is less than aHaystack[mid].\n\t if (mid - aLow > 1) {\n\t // The element is in the lower half.\n\t return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n\t }\n\t\n\t // we are in termination case (3) or (2) and return the appropriate thing.\n\t if (aBias == exports.LEAST_UPPER_BOUND) {\n\t return mid;\n\t } else {\n\t return aLow < 0 ? -1 : aLow;\n\t }\n\t }\n\t}\n\t\n\t/**\n\t * This is an implementation of binary search which will always try and return\n\t * the index of the closest element if there is no exact hit. This is because\n\t * mappings between original and generated line/col pairs are single points,\n\t * and there is an implicit region between each of them, so a miss just means\n\t * that you aren't on the very start of a region.\n\t *\n\t * @param aNeedle The element you are looking for.\n\t * @param aHaystack The array that is being searched.\n\t * @param aCompare A function which takes the needle and an element in the\n\t * array and returns -1, 0, or 1 depending on whether the needle is less\n\t * than, equal to, or greater than the element, respectively.\n\t * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n\t * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t * closest element that is smaller than or greater than the one we are\n\t * searching for, respectively, if the exact element cannot be found.\n\t * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n\t */\n\texports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n\t if (aHaystack.length === 0) {\n\t return -1;\n\t }\n\t\n\t var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n\t aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n\t if (index < 0) {\n\t return -1;\n\t }\n\t\n\t // We have found either the exact element, or the next-closest element than\n\t // the one we are searching for. However, there may be more than one such\n\t // element. Make sure we always return the smallest of these.\n\t while (index - 1 >= 0) {\n\t if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n\t break;\n\t }\n\t --index;\n\t }\n\t\n\t return index;\n\t};\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\t// It turns out that some (most?) JavaScript engines don't self-host\n\t// `Array.prototype.sort`. This makes sense because C++ will likely remain\n\t// faster than JS when doing raw CPU-intensive sorting. However, when using a\n\t// custom comparator function, calling back and forth between the VM's C++ and\n\t// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n\t// worse generated code for the comparator function than would be optimal. In\n\t// fact, when sorting with a comparator, these costs outweigh the benefits of\n\t// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n\t// a ~3500ms mean speed-up in `bench/bench.html`.\n\t\n\t/**\n\t * Swap the elements indexed by `x` and `y` in the array `ary`.\n\t *\n\t * @param {Array} ary\n\t * The array.\n\t * @param {Number} x\n\t * The index of the first item.\n\t * @param {Number} y\n\t * The index of the second item.\n\t */\n\tfunction swap(ary, x, y) {\n\t var temp = ary[x];\n\t ary[x] = ary[y];\n\t ary[y] = temp;\n\t}\n\t\n\t/**\n\t * Returns a random integer within the range `low .. high` inclusive.\n\t *\n\t * @param {Number} low\n\t * The lower bound on the range.\n\t * @param {Number} high\n\t * The upper bound on the range.\n\t */\n\tfunction randomIntInRange(low, high) {\n\t return Math.round(low + (Math.random() * (high - low)));\n\t}\n\t\n\t/**\n\t * The Quick Sort algorithm.\n\t *\n\t * @param {Array} ary\n\t * An array to sort.\n\t * @param {function} comparator\n\t * Function to use to compare two items.\n\t * @param {Number} p\n\t * Start index of the array\n\t * @param {Number} r\n\t * End index of the array\n\t */\n\tfunction doQuickSort(ary, comparator, p, r) {\n\t // If our lower bound is less than our upper bound, we (1) partition the\n\t // array into two pieces and (2) recurse on each half. If it is not, this is\n\t // the empty array and our base case.\n\t\n\t if (p < r) {\n\t // (1) Partitioning.\n\t //\n\t // The partitioning chooses a pivot between `p` and `r` and moves all\n\t // elements that are less than or equal to the pivot to the before it, and\n\t // all the elements that are greater than it after it. The effect is that\n\t // once partition is done, the pivot is in the exact place it will be when\n\t // the array is put in sorted order, and it will not need to be moved\n\t // again. This runs in O(n) time.\n\t\n\t // Always choose a random pivot so that an input array which is reverse\n\t // sorted does not cause O(n^2) running time.\n\t var pivotIndex = randomIntInRange(p, r);\n\t var i = p - 1;\n\t\n\t swap(ary, pivotIndex, r);\n\t var pivot = ary[r];\n\t\n\t // Immediately after `j` is incremented in this loop, the following hold\n\t // true:\n\t //\n\t // * Every element in `ary[p .. i]` is less than or equal to the pivot.\n\t //\n\t // * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n\t for (var j = p; j < r; j++) {\n\t if (comparator(ary[j], pivot) <= 0) {\n\t i += 1;\n\t swap(ary, i, j);\n\t }\n\t }\n\t\n\t swap(ary, i + 1, j);\n\t var q = i + 1;\n\t\n\t // (2) Recurse on each half.\n\t\n\t doQuickSort(ary, comparator, p, q - 1);\n\t doQuickSort(ary, comparator, q + 1, r);\n\t }\n\t}\n\t\n\t/**\n\t * Sort the given array in-place with the given comparator function.\n\t *\n\t * @param {Array} ary\n\t * An array to sort.\n\t * @param {function} comparator\n\t * Function to use to compare two items.\n\t */\n\texports.quickSort = function (ary, comparator) {\n\t doQuickSort(ary, comparator, 0, ary.length - 1);\n\t};\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar SourceMapGenerator = __webpack_require__(1).SourceMapGenerator;\n\tvar util = __webpack_require__(4);\n\t\n\t// Matches a Windows-style `\\r\\n` newline or a `\\n` newline used by all other\n\t// operating systems these days (capturing the result).\n\tvar REGEX_NEWLINE = /(\\r?\\n)/;\n\t\n\t// Newline character code for charCodeAt() comparisons\n\tvar NEWLINE_CODE = 10;\n\t\n\t// Private symbol for identifying `SourceNode`s when multiple versions of\n\t// the source-map library are loaded. This MUST NOT CHANGE across\n\t// versions!\n\tvar isSourceNode = \"$$$isSourceNode$$$\";\n\t\n\t/**\n\t * SourceNodes provide a way to abstract over interpolating/concatenating\n\t * snippets of generated JavaScript source code while maintaining the line and\n\t * column information associated with the original source code.\n\t *\n\t * @param aLine The original line number.\n\t * @param aColumn The original column number.\n\t * @param aSource The original source's filename.\n\t * @param aChunks Optional. An array of strings which are snippets of\n\t * generated JS, or other SourceNodes.\n\t * @param aName The original identifier.\n\t */\n\tfunction SourceNode(aLine, aColumn, aSource, aChunks, aName) {\n\t this.children = [];\n\t this.sourceContents = {};\n\t this.line = aLine == null ? null : aLine;\n\t this.column = aColumn == null ? null : aColumn;\n\t this.source = aSource == null ? null : aSource;\n\t this.name = aName == null ? null : aName;\n\t this[isSourceNode] = true;\n\t if (aChunks != null) this.add(aChunks);\n\t}\n\t\n\t/**\n\t * Creates a SourceNode from generated code and a SourceMapConsumer.\n\t *\n\t * @param aGeneratedCode The generated code\n\t * @param aSourceMapConsumer The SourceMap for the generated code\n\t * @param aRelativePath Optional. The path that relative sources in the\n\t * SourceMapConsumer should be relative to.\n\t */\n\tSourceNode.fromStringWithSourceMap =\n\t function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\n\t // The SourceNode we want to fill with the generated code\n\t // and the SourceMap\n\t var node = new SourceNode();\n\t\n\t // All even indices of this array are one line of the generated code,\n\t // while all odd indices are the newlines between two adjacent lines\n\t // (since `REGEX_NEWLINE` captures its match).\n\t // Processed fragments are accessed by calling `shiftNextLine`.\n\t var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n\t var remainingLinesIndex = 0;\n\t var shiftNextLine = function() {\n\t var lineContents = getNextLine();\n\t // The last line of a file might not have a newline.\n\t var newLine = getNextLine() || \"\";\n\t return lineContents + newLine;\n\t\n\t function getNextLine() {\n\t return remainingLinesIndex < remainingLines.length ?\n\t remainingLines[remainingLinesIndex++] : undefined;\n\t }\n\t };\n\t\n\t // We need to remember the position of \"remainingLines\"\n\t var lastGeneratedLine = 1, lastGeneratedColumn = 0;\n\t\n\t // The generate SourceNodes we need a code range.\n\t // To extract it current and last mapping is used.\n\t // Here we store the last mapping.\n\t var lastMapping = null;\n\t\n\t aSourceMapConsumer.eachMapping(function (mapping) {\n\t if (lastMapping !== null) {\n\t // We add the code from \"lastMapping\" to \"mapping\":\n\t // First check if there is a new line in between.\n\t if (lastGeneratedLine < mapping.generatedLine) {\n\t // Associate first line with \"lastMapping\"\n\t addMappingWithCode(lastMapping, shiftNextLine());\n\t lastGeneratedLine++;\n\t lastGeneratedColumn = 0;\n\t // The remaining code is added without mapping\n\t } else {\n\t // There is no new line in between.\n\t // Associate the code between \"lastGeneratedColumn\" and\n\t // \"mapping.generatedColumn\" with \"lastMapping\"\n\t var nextLine = remainingLines[remainingLinesIndex];\n\t var code = nextLine.substr(0, mapping.generatedColumn -\n\t lastGeneratedColumn);\n\t remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -\n\t lastGeneratedColumn);\n\t lastGeneratedColumn = mapping.generatedColumn;\n\t addMappingWithCode(lastMapping, code);\n\t // No more remaining code, continue\n\t lastMapping = mapping;\n\t return;\n\t }\n\t }\n\t // We add the generated code until the first mapping\n\t // to the SourceNode without any mapping.\n\t // Each line is added as separate string.\n\t while (lastGeneratedLine < mapping.generatedLine) {\n\t node.add(shiftNextLine());\n\t lastGeneratedLine++;\n\t }\n\t if (lastGeneratedColumn < mapping.generatedColumn) {\n\t var nextLine = remainingLines[remainingLinesIndex];\n\t node.add(nextLine.substr(0, mapping.generatedColumn));\n\t remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);\n\t lastGeneratedColumn = mapping.generatedColumn;\n\t }\n\t lastMapping = mapping;\n\t }, this);\n\t // We have processed all mappings.\n\t if (remainingLinesIndex < remainingLines.length) {\n\t if (lastMapping) {\n\t // Associate the remaining code in the current line with \"lastMapping\"\n\t addMappingWithCode(lastMapping, shiftNextLine());\n\t }\n\t // and add the remaining lines without any mapping\n\t node.add(remainingLines.splice(remainingLinesIndex).join(\"\"));\n\t }\n\t\n\t // Copy sourcesContent into SourceNode\n\t aSourceMapConsumer.sources.forEach(function (sourceFile) {\n\t var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n\t if (content != null) {\n\t if (aRelativePath != null) {\n\t sourceFile = util.join(aRelativePath, sourceFile);\n\t }\n\t node.setSourceContent(sourceFile, content);\n\t }\n\t });\n\t\n\t return node;\n\t\n\t function addMappingWithCode(mapping, code) {\n\t if (mapping === null || mapping.source === undefined) {\n\t node.add(code);\n\t } else {\n\t var source = aRelativePath\n\t ? util.join(aRelativePath, mapping.source)\n\t : mapping.source;\n\t node.add(new SourceNode(mapping.originalLine,\n\t mapping.originalColumn,\n\t source,\n\t code,\n\t mapping.name));\n\t }\n\t }\n\t };\n\t\n\t/**\n\t * Add a chunk of generated JS to this source node.\n\t *\n\t * @param aChunk A string snippet of generated JS code, another instance of\n\t * SourceNode, or an array where each member is one of those things.\n\t */\n\tSourceNode.prototype.add = function SourceNode_add(aChunk) {\n\t if (Array.isArray(aChunk)) {\n\t aChunk.forEach(function (chunk) {\n\t this.add(chunk);\n\t }, this);\n\t }\n\t else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n\t if (aChunk) {\n\t this.children.push(aChunk);\n\t }\n\t }\n\t else {\n\t throw new TypeError(\n\t \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n\t );\n\t }\n\t return this;\n\t};\n\t\n\t/**\n\t * Add a chunk of generated JS to the beginning of this source node.\n\t *\n\t * @param aChunk A string snippet of generated JS code, another instance of\n\t * SourceNode, or an array where each member is one of those things.\n\t */\n\tSourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\n\t if (Array.isArray(aChunk)) {\n\t for (var i = aChunk.length-1; i >= 0; i--) {\n\t this.prepend(aChunk[i]);\n\t }\n\t }\n\t else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n\t this.children.unshift(aChunk);\n\t }\n\t else {\n\t throw new TypeError(\n\t \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n\t );\n\t }\n\t return this;\n\t};\n\t\n\t/**\n\t * Walk over the tree of JS snippets in this node and its children. The\n\t * walking function is called once for each snippet of JS and is passed that\n\t * snippet and the its original associated source's line/column location.\n\t *\n\t * @param aFn The traversal function.\n\t */\n\tSourceNode.prototype.walk = function SourceNode_walk(aFn) {\n\t var chunk;\n\t for (var i = 0, len = this.children.length; i < len; i++) {\n\t chunk = this.children[i];\n\t if (chunk[isSourceNode]) {\n\t chunk.walk(aFn);\n\t }\n\t else {\n\t if (chunk !== '') {\n\t aFn(chunk, { source: this.source,\n\t line: this.line,\n\t column: this.column,\n\t name: this.name });\n\t }\n\t }\n\t }\n\t};\n\t\n\t/**\n\t * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\n\t * each of `this.children`.\n\t *\n\t * @param aSep The separator.\n\t */\n\tSourceNode.prototype.join = function SourceNode_join(aSep) {\n\t var newChildren;\n\t var i;\n\t var len = this.children.length;\n\t if (len > 0) {\n\t newChildren = [];\n\t for (i = 0; i < len-1; i++) {\n\t newChildren.push(this.children[i]);\n\t newChildren.push(aSep);\n\t }\n\t newChildren.push(this.children[i]);\n\t this.children = newChildren;\n\t }\n\t return this;\n\t};\n\t\n\t/**\n\t * Call String.prototype.replace on the very right-most source snippet. Useful\n\t * for trimming whitespace from the end of a source node, etc.\n\t *\n\t * @param aPattern The pattern to replace.\n\t * @param aReplacement The thing to replace the pattern with.\n\t */\n\tSourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\n\t var lastChild = this.children[this.children.length - 1];\n\t if (lastChild[isSourceNode]) {\n\t lastChild.replaceRight(aPattern, aReplacement);\n\t }\n\t else if (typeof lastChild === 'string') {\n\t this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\n\t }\n\t else {\n\t this.children.push(''.replace(aPattern, aReplacement));\n\t }\n\t return this;\n\t};\n\t\n\t/**\n\t * Set the source content for a source file. This will be added to the SourceMapGenerator\n\t * in the sourcesContent field.\n\t *\n\t * @param aSourceFile The filename of the source file\n\t * @param aSourceContent The content of the source file\n\t */\n\tSourceNode.prototype.setSourceContent =\n\t function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\n\t this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\n\t };\n\t\n\t/**\n\t * Walk over the tree of SourceNodes. The walking function is called for each\n\t * source file content and is passed the filename and source content.\n\t *\n\t * @param aFn The traversal function.\n\t */\n\tSourceNode.prototype.walkSourceContents =\n\t function SourceNode_walkSourceContents(aFn) {\n\t for (var i = 0, len = this.children.length; i < len; i++) {\n\t if (this.children[i][isSourceNode]) {\n\t this.children[i].walkSourceContents(aFn);\n\t }\n\t }\n\t\n\t var sources = Object.keys(this.sourceContents);\n\t for (var i = 0, len = sources.length; i < len; i++) {\n\t aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\n\t }\n\t };\n\t\n\t/**\n\t * Return the string representation of this source node. Walks over the tree\n\t * and concatenates all the various snippets together to one string.\n\t */\n\tSourceNode.prototype.toString = function SourceNode_toString() {\n\t var str = \"\";\n\t this.walk(function (chunk) {\n\t str += chunk;\n\t });\n\t return str;\n\t};\n\t\n\t/**\n\t * Returns the string representation of this source node along with a source\n\t * map.\n\t */\n\tSourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\n\t var generated = {\n\t code: \"\",\n\t line: 1,\n\t column: 0\n\t };\n\t var map = new SourceMapGenerator(aArgs);\n\t var sourceMappingActive = false;\n\t var lastOriginalSource = null;\n\t var lastOriginalLine = null;\n\t var lastOriginalColumn = null;\n\t var lastOriginalName = null;\n\t this.walk(function (chunk, original) {\n\t generated.code += chunk;\n\t if (original.source !== null\n\t && original.line !== null\n\t && original.column !== null) {\n\t if(lastOriginalSource !== original.source\n\t || lastOriginalLine !== original.line\n\t || lastOriginalColumn !== original.column\n\t || lastOriginalName !== original.name) {\n\t map.addMapping({\n\t source: original.source,\n\t original: {\n\t line: original.line,\n\t column: original.column\n\t },\n\t generated: {\n\t line: generated.line,\n\t column: generated.column\n\t },\n\t name: original.name\n\t });\n\t }\n\t lastOriginalSource = original.source;\n\t lastOriginalLine = original.line;\n\t lastOriginalColumn = original.column;\n\t lastOriginalName = original.name;\n\t sourceMappingActive = true;\n\t } else if (sourceMappingActive) {\n\t map.addMapping({\n\t generated: {\n\t line: generated.line,\n\t column: generated.column\n\t }\n\t });\n\t lastOriginalSource = null;\n\t sourceMappingActive = false;\n\t }\n\t for (var idx = 0, length = chunk.length; idx < length; idx++) {\n\t if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\n\t generated.line++;\n\t generated.column = 0;\n\t // Mappings end at eol\n\t if (idx + 1 === length) {\n\t lastOriginalSource = null;\n\t sourceMappingActive = false;\n\t } else if (sourceMappingActive) {\n\t map.addMapping({\n\t source: original.source,\n\t original: {\n\t line: original.line,\n\t column: original.column\n\t },\n\t generated: {\n\t line: generated.line,\n\t column: generated.column\n\t },\n\t name: original.name\n\t });\n\t }\n\t } else {\n\t generated.column++;\n\t }\n\t }\n\t });\n\t this.walkSourceContents(function (sourceFile, sourceContent) {\n\t map.setSourceContent(sourceFile, sourceContent);\n\t });\n\t\n\t return { code: generated.code, map: map };\n\t};\n\t\n\texports.SourceNode = SourceNode;\n\n\n/***/ })\n/******/ ])\n});\n;\n\n\n// WEBPACK FOOTER //\n// source-map.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 42c329f865e32e011afb","/*\n * Copyright 2009-2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE.txt or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\nexports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator;\nexports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer;\nexports.SourceNode = require('./lib/source-node').SourceNode;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./source-map.js\n// module id = 0\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar base64VLQ = require('./base64-vlq');\nvar util = require('./util');\nvar ArraySet = require('./array-set').ArraySet;\nvar MappingList = require('./mapping-list').MappingList;\n\n/**\n * An instance of the SourceMapGenerator represents a source map which is\n * being built incrementally. You may pass an object with the following\n * properties:\n *\n * - file: The filename of the generated source.\n * - sourceRoot: A root for all relative URLs in this source map.\n */\nfunction SourceMapGenerator(aArgs) {\n if (!aArgs) {\n aArgs = {};\n }\n this._file = util.getArg(aArgs, 'file', null);\n this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);\n this._skipValidation = util.getArg(aArgs, 'skipValidation', false);\n this._sources = new ArraySet();\n this._names = new ArraySet();\n this._mappings = new MappingList();\n this._sourcesContents = null;\n}\n\nSourceMapGenerator.prototype._version = 3;\n\n/**\n * Creates a new SourceMapGenerator based on a SourceMapConsumer\n *\n * @param aSourceMapConsumer The SourceMap.\n */\nSourceMapGenerator.fromSourceMap =\n function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {\n var sourceRoot = aSourceMapConsumer.sourceRoot;\n var generator = new SourceMapGenerator({\n file: aSourceMapConsumer.file,\n sourceRoot: sourceRoot\n });\n aSourceMapConsumer.eachMapping(function (mapping) {\n var newMapping = {\n generated: {\n line: mapping.generatedLine,\n column: mapping.generatedColumn\n }\n };\n\n if (mapping.source != null) {\n newMapping.source = mapping.source;\n if (sourceRoot != null) {\n newMapping.source = util.relative(sourceRoot, newMapping.source);\n }\n\n newMapping.original = {\n line: mapping.originalLine,\n column: mapping.originalColumn\n };\n\n if (mapping.name != null) {\n newMapping.name = mapping.name;\n }\n }\n\n generator.addMapping(newMapping);\n });\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n generator.setSourceContent(sourceFile, content);\n }\n });\n return generator;\n };\n\n/**\n * Add a single mapping from original source line and column to the generated\n * source's line and column for this source map being created. The mapping\n * object should have the following properties:\n *\n * - generated: An object with the generated line and column positions.\n * - original: An object with the original line and column positions.\n * - source: The original source file (relative to the sourceRoot).\n * - name: An optional original token name for this mapping.\n */\nSourceMapGenerator.prototype.addMapping =\n function SourceMapGenerator_addMapping(aArgs) {\n var generated = util.getArg(aArgs, 'generated');\n var original = util.getArg(aArgs, 'original', null);\n var source = util.getArg(aArgs, 'source', null);\n var name = util.getArg(aArgs, 'name', null);\n\n if (!this._skipValidation) {\n this._validateMapping(generated, original, source, name);\n }\n\n if (source != null) {\n source = String(source);\n if (!this._sources.has(source)) {\n this._sources.add(source);\n }\n }\n\n if (name != null) {\n name = String(name);\n if (!this._names.has(name)) {\n this._names.add(name);\n }\n }\n\n this._mappings.add({\n generatedLine: generated.line,\n generatedColumn: generated.column,\n originalLine: original != null && original.line,\n originalColumn: original != null && original.column,\n source: source,\n name: name\n });\n };\n\n/**\n * Set the source content for a source file.\n */\nSourceMapGenerator.prototype.setSourceContent =\n function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {\n var source = aSourceFile;\n if (this._sourceRoot != null) {\n source = util.relative(this._sourceRoot, source);\n }\n\n if (aSourceContent != null) {\n // Add the source content to the _sourcesContents map.\n // Create a new _sourcesContents map if the property is null.\n if (!this._sourcesContents) {\n this._sourcesContents = Object.create(null);\n }\n this._sourcesContents[util.toSetString(source)] = aSourceContent;\n } else if (this._sourcesContents) {\n // Remove the source file from the _sourcesContents map.\n // If the _sourcesContents map is empty, set the property to null.\n delete this._sourcesContents[util.toSetString(source)];\n if (Object.keys(this._sourcesContents).length === 0) {\n this._sourcesContents = null;\n }\n }\n };\n\n/**\n * Applies the mappings of a sub-source-map for a specific source file to the\n * source map being generated. Each mapping to the supplied source file is\n * rewritten using the supplied source map. Note: The resolution for the\n * resulting mappings is the minimium of this map and the supplied map.\n *\n * @param aSourceMapConsumer The source map to be applied.\n * @param aSourceFile Optional. The filename of the source file.\n * If omitted, SourceMapConsumer's file property will be used.\n * @param aSourceMapPath Optional. The dirname of the path to the source map\n * to be applied. If relative, it is relative to the SourceMapConsumer.\n * This parameter is needed when the two source maps aren't in the same\n * directory, and the source map to be applied contains relative source\n * paths. If so, those relative source paths need to be rewritten\n * relative to the SourceMapGenerator.\n */\nSourceMapGenerator.prototype.applySourceMap =\n function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {\n var sourceFile = aSourceFile;\n // If aSourceFile is omitted, we will use the file property of the SourceMap\n if (aSourceFile == null) {\n if (aSourceMapConsumer.file == null) {\n throw new Error(\n 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +\n 'or the source map\\'s \"file\" property. Both were omitted.'\n );\n }\n sourceFile = aSourceMapConsumer.file;\n }\n var sourceRoot = this._sourceRoot;\n // Make \"sourceFile\" relative if an absolute Url is passed.\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n // Applying the SourceMap can add and remove items from the sources and\n // the names array.\n var newSources = new ArraySet();\n var newNames = new ArraySet();\n\n // Find mappings for the \"sourceFile\"\n this._mappings.unsortedForEach(function (mapping) {\n if (mapping.source === sourceFile && mapping.originalLine != null) {\n // Check if it can be mapped by the source map, then update the mapping.\n var original = aSourceMapConsumer.originalPositionFor({\n line: mapping.originalLine,\n column: mapping.originalColumn\n });\n if (original.source != null) {\n // Copy mapping\n mapping.source = original.source;\n if (aSourceMapPath != null) {\n mapping.source = util.join(aSourceMapPath, mapping.source)\n }\n if (sourceRoot != null) {\n mapping.source = util.relative(sourceRoot, mapping.source);\n }\n mapping.originalLine = original.line;\n mapping.originalColumn = original.column;\n if (original.name != null) {\n mapping.name = original.name;\n }\n }\n }\n\n var source = mapping.source;\n if (source != null && !newSources.has(source)) {\n newSources.add(source);\n }\n\n var name = mapping.name;\n if (name != null && !newNames.has(name)) {\n newNames.add(name);\n }\n\n }, this);\n this._sources = newSources;\n this._names = newNames;\n\n // Copy sourcesContents of applied map.\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aSourceMapPath != null) {\n sourceFile = util.join(aSourceMapPath, sourceFile);\n }\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n this.setSourceContent(sourceFile, content);\n }\n }, this);\n };\n\n/**\n * A mapping can have one of the three levels of data:\n *\n * 1. Just the generated position.\n * 2. The Generated position, original position, and original source.\n * 3. Generated and original position, original source, as well as a name\n * token.\n *\n * To maintain consistency, we validate that any new mapping being added falls\n * in to one of these categories.\n */\nSourceMapGenerator.prototype._validateMapping =\n function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,\n aName) {\n // When aOriginal is truthy but has empty values for .line and .column,\n // it is most likely a programmer error. In this case we throw a very\n // specific error message to try to guide them the right way.\n // For example: https://github.com/Polymer/polymer-bundler/pull/519\n if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {\n throw new Error(\n 'original.line and original.column are not numbers -- you probably meant to omit ' +\n 'the original mapping entirely and only map the generated position. If so, pass ' +\n 'null for the original mapping instead of an object with empty or null values.'\n );\n }\n\n if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aGenerated.line > 0 && aGenerated.column >= 0\n && !aOriginal && !aSource && !aName) {\n // Case 1.\n return;\n }\n else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aOriginal && 'line' in aOriginal && 'column' in aOriginal\n && aGenerated.line > 0 && aGenerated.column >= 0\n && aOriginal.line > 0 && aOriginal.column >= 0\n && aSource) {\n // Cases 2 and 3.\n return;\n }\n else {\n throw new Error('Invalid mapping: ' + JSON.stringify({\n generated: aGenerated,\n source: aSource,\n original: aOriginal,\n name: aName\n }));\n }\n };\n\n/**\n * Serialize the accumulated mappings in to the stream of base 64 VLQs\n * specified by the source map format.\n */\nSourceMapGenerator.prototype._serializeMappings =\n function SourceMapGenerator_serializeMappings() {\n var previousGeneratedColumn = 0;\n var previousGeneratedLine = 1;\n var previousOriginalColumn = 0;\n var previousOriginalLine = 0;\n var previousName = 0;\n var previousSource = 0;\n var result = '';\n var next;\n var mapping;\n var nameIdx;\n var sourceIdx;\n\n var mappings = this._mappings.toArray();\n for (var i = 0, len = mappings.length; i < len; i++) {\n mapping = mappings[i];\n next = ''\n\n if (mapping.generatedLine !== previousGeneratedLine) {\n previousGeneratedColumn = 0;\n while (mapping.generatedLine !== previousGeneratedLine) {\n next += ';';\n previousGeneratedLine++;\n }\n }\n else {\n if (i > 0) {\n if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\n continue;\n }\n next += ',';\n }\n }\n\n next += base64VLQ.encode(mapping.generatedColumn\n - previousGeneratedColumn);\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (mapping.source != null) {\n sourceIdx = this._sources.indexOf(mapping.source);\n next += base64VLQ.encode(sourceIdx - previousSource);\n previousSource = sourceIdx;\n\n // lines are stored 0-based in SourceMap spec version 3\n next += base64VLQ.encode(mapping.originalLine - 1\n - previousOriginalLine);\n previousOriginalLine = mapping.originalLine - 1;\n\n next += base64VLQ.encode(mapping.originalColumn\n - previousOriginalColumn);\n previousOriginalColumn = mapping.originalColumn;\n\n if (mapping.name != null) {\n nameIdx = this._names.indexOf(mapping.name);\n next += base64VLQ.encode(nameIdx - previousName);\n previousName = nameIdx;\n }\n }\n\n result += next;\n }\n\n return result;\n };\n\nSourceMapGenerator.prototype._generateSourcesContent =\n function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\n return aSources.map(function (source) {\n if (!this._sourcesContents) {\n return null;\n }\n if (aSourceRoot != null) {\n source = util.relative(aSourceRoot, source);\n }\n var key = util.toSetString(source);\n return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)\n ? this._sourcesContents[key]\n : null;\n }, this);\n };\n\n/**\n * Externalize the source map.\n */\nSourceMapGenerator.prototype.toJSON =\n function SourceMapGenerator_toJSON() {\n var map = {\n version: this._version,\n sources: this._sources.toArray(),\n names: this._names.toArray(),\n mappings: this._serializeMappings()\n };\n if (this._file != null) {\n map.file = this._file;\n }\n if (this._sourceRoot != null) {\n map.sourceRoot = this._sourceRoot;\n }\n if (this._sourcesContents) {\n map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\n }\n\n return map;\n };\n\n/**\n * Render the source map being generated to a string.\n */\nSourceMapGenerator.prototype.toString =\n function SourceMapGenerator_toString() {\n return JSON.stringify(this.toJSON());\n };\n\nexports.SourceMapGenerator = SourceMapGenerator;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/source-map-generator.js\n// module id = 1\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * Based on the Base 64 VLQ implementation in Closure Compiler:\n * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n *\n * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are\n * met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above\n * copyright notice, this list of conditions and the following\n * disclaimer in the documentation and/or other materials provided\n * with the distribution.\n * * Neither the name of Google Inc. nor the names of its\n * contributors may be used to endorse or promote products derived\n * from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nvar base64 = require('./base64');\n\n// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n// length quantities we use in the source map spec, the first bit is the sign,\n// the next four bits are the actual value, and the 6th bit is the\n// continuation bit. The continuation bit tells us whether there are more\n// digits in this value following this digit.\n//\n// Continuation\n// | Sign\n// | |\n// V V\n// 101011\n\nvar VLQ_BASE_SHIFT = 5;\n\n// binary: 100000\nvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\n// binary: 011111\nvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\n// binary: 100000\nvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\n/**\n * Converts from a two-complement value to a value where the sign bit is\n * placed in the least significant bit. For example, as decimals:\n * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n */\nfunction toVLQSigned(aValue) {\n return aValue < 0\n ? ((-aValue) << 1) + 1\n : (aValue << 1) + 0;\n}\n\n/**\n * Converts to a two-complement value from a value where the sign bit is\n * placed in the least significant bit. For example, as decimals:\n * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n */\nfunction fromVLQSigned(aValue) {\n var isNegative = (aValue & 1) === 1;\n var shifted = aValue >> 1;\n return isNegative\n ? -shifted\n : shifted;\n}\n\n/**\n * Returns the base 64 VLQ encoded value.\n */\nexports.encode = function base64VLQ_encode(aValue) {\n var encoded = \"\";\n var digit;\n\n var vlq = toVLQSigned(aValue);\n\n do {\n digit = vlq & VLQ_BASE_MASK;\n vlq >>>= VLQ_BASE_SHIFT;\n if (vlq > 0) {\n // There are still more digits in this value, so we must make sure the\n // continuation bit is marked.\n digit |= VLQ_CONTINUATION_BIT;\n }\n encoded += base64.encode(digit);\n } while (vlq > 0);\n\n return encoded;\n};\n\n/**\n * Decodes the next base 64 VLQ value from the given string and returns the\n * value and the rest of the string via the out parameter.\n */\nexports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n var strLen = aStr.length;\n var result = 0;\n var shift = 0;\n var continuation, digit;\n\n do {\n if (aIndex >= strLen) {\n throw new Error(\"Expected more digits in base 64 VLQ value.\");\n }\n\n digit = base64.decode(aStr.charCodeAt(aIndex++));\n if (digit === -1) {\n throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n }\n\n continuation = !!(digit & VLQ_CONTINUATION_BIT);\n digit &= VLQ_BASE_MASK;\n result = result + (digit << shift);\n shift += VLQ_BASE_SHIFT;\n } while (continuation);\n\n aOutParam.value = fromVLQSigned(result);\n aOutParam.rest = aIndex;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/base64-vlq.js\n// module id = 2\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\n/**\n * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n */\nexports.encode = function (number) {\n if (0 <= number && number < intToCharMap.length) {\n return intToCharMap[number];\n }\n throw new TypeError(\"Must be between 0 and 63: \" + number);\n};\n\n/**\n * Decode a single base 64 character code digit to an integer. Returns -1 on\n * failure.\n */\nexports.decode = function (charCode) {\n var bigA = 65; // 'A'\n var bigZ = 90; // 'Z'\n\n var littleA = 97; // 'a'\n var littleZ = 122; // 'z'\n\n var zero = 48; // '0'\n var nine = 57; // '9'\n\n var plus = 43; // '+'\n var slash = 47; // '/'\n\n var littleOffset = 26;\n var numberOffset = 52;\n\n // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n if (bigA <= charCode && charCode <= bigZ) {\n return (charCode - bigA);\n }\n\n // 26 - 51: abcdefghijklmnopqrstuvwxyz\n if (littleA <= charCode && charCode <= littleZ) {\n return (charCode - littleA + littleOffset);\n }\n\n // 52 - 61: 0123456789\n if (zero <= charCode && charCode <= nine) {\n return (charCode - zero + numberOffset);\n }\n\n // 62: +\n if (charCode == plus) {\n return 62;\n }\n\n // 63: /\n if (charCode == slash) {\n return 63;\n }\n\n // Invalid base64 digit.\n return -1;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/base64.js\n// module id = 3\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n/**\n * This is a helper function for getting values from parameter/options\n * objects.\n *\n * @param args The object we are extracting values from\n * @param name The name of the property we are getting.\n * @param defaultValue An optional value to return if the property is missing\n * from the object. If this is not specified and the property is missing, an\n * error will be thrown.\n */\nfunction getArg(aArgs, aName, aDefaultValue) {\n if (aName in aArgs) {\n return aArgs[aName];\n } else if (arguments.length === 3) {\n return aDefaultValue;\n } else {\n throw new Error('\"' + aName + '\" is a required argument.');\n }\n}\nexports.getArg = getArg;\n\nvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.]*)(?::(\\d+))?(\\S*)$/;\nvar dataUrlRegexp = /^data:.+\\,.+$/;\n\nfunction urlParse(aUrl) {\n var match = aUrl.match(urlRegexp);\n if (!match) {\n return null;\n }\n return {\n scheme: match[1],\n auth: match[2],\n host: match[3],\n port: match[4],\n path: match[5]\n };\n}\nexports.urlParse = urlParse;\n\nfunction urlGenerate(aParsedUrl) {\n var url = '';\n if (aParsedUrl.scheme) {\n url += aParsedUrl.scheme + ':';\n }\n url += '//';\n if (aParsedUrl.auth) {\n url += aParsedUrl.auth + '@';\n }\n if (aParsedUrl.host) {\n url += aParsedUrl.host;\n }\n if (aParsedUrl.port) {\n url += \":\" + aParsedUrl.port\n }\n if (aParsedUrl.path) {\n url += aParsedUrl.path;\n }\n return url;\n}\nexports.urlGenerate = urlGenerate;\n\n/**\n * Normalizes a path, or the path portion of a URL:\n *\n * - Replaces consecutive slashes with one slash.\n * - Removes unnecessary '.' parts.\n * - Removes unnecessary '/..' parts.\n *\n * Based on code in the Node.js 'path' core module.\n *\n * @param aPath The path or url to normalize.\n */\nfunction normalize(aPath) {\n var path = aPath;\n var url = urlParse(aPath);\n if (url) {\n if (!url.path) {\n return aPath;\n }\n path = url.path;\n }\n var isAbsolute = exports.isAbsolute(path);\n\n var parts = path.split(/\\/+/);\n for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n part = parts[i];\n if (part === '.') {\n parts.splice(i, 1);\n } else if (part === '..') {\n up++;\n } else if (up > 0) {\n if (part === '') {\n // The first part is blank if the path is absolute. Trying to go\n // above the root is a no-op. Therefore we can remove all '..' parts\n // directly after the root.\n parts.splice(i + 1, up);\n up = 0;\n } else {\n parts.splice(i, 2);\n up--;\n }\n }\n }\n path = parts.join('/');\n\n if (path === '') {\n path = isAbsolute ? '/' : '.';\n }\n\n if (url) {\n url.path = path;\n return urlGenerate(url);\n }\n return path;\n}\nexports.normalize = normalize;\n\n/**\n * Joins two paths/URLs.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be joined with the root.\n *\n * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n * scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n * first.\n * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n * is updated with the result and aRoot is returned. Otherwise the result\n * is returned.\n * - If aPath is absolute, the result is aPath.\n * - Otherwise the two paths are joined with a slash.\n * - Joining for example 'http://' and 'www.example.com' is also supported.\n */\nfunction join(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n if (aPath === \"\") {\n aPath = \".\";\n }\n var aPathUrl = urlParse(aPath);\n var aRootUrl = urlParse(aRoot);\n if (aRootUrl) {\n aRoot = aRootUrl.path || '/';\n }\n\n // `join(foo, '//www.example.org')`\n if (aPathUrl && !aPathUrl.scheme) {\n if (aRootUrl) {\n aPathUrl.scheme = aRootUrl.scheme;\n }\n return urlGenerate(aPathUrl);\n }\n\n if (aPathUrl || aPath.match(dataUrlRegexp)) {\n return aPath;\n }\n\n // `join('http://', 'www.example.com')`\n if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n aRootUrl.host = aPath;\n return urlGenerate(aRootUrl);\n }\n\n var joined = aPath.charAt(0) === '/'\n ? aPath\n : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\n if (aRootUrl) {\n aRootUrl.path = joined;\n return urlGenerate(aRootUrl);\n }\n return joined;\n}\nexports.join = join;\n\nexports.isAbsolute = function (aPath) {\n return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp);\n};\n\n/**\n * Make a path relative to a URL or another path.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be made relative to aRoot.\n */\nfunction relative(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n\n aRoot = aRoot.replace(/\\/$/, '');\n\n // It is possible for the path to be above the root. In this case, simply\n // checking whether the root is a prefix of the path won't work. Instead, we\n // need to remove components from the root one by one, until either we find\n // a prefix that fits, or we run out of components to remove.\n var level = 0;\n while (aPath.indexOf(aRoot + '/') !== 0) {\n var index = aRoot.lastIndexOf(\"/\");\n if (index < 0) {\n return aPath;\n }\n\n // If the only part of the root that is left is the scheme (i.e. http://,\n // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n // have exhausted all components, so the path is not relative to the root.\n aRoot = aRoot.slice(0, index);\n if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n return aPath;\n }\n\n ++level;\n }\n\n // Make sure we add a \"../\" for each component we removed from the root.\n return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n}\nexports.relative = relative;\n\nvar supportsNullProto = (function () {\n var obj = Object.create(null);\n return !('__proto__' in obj);\n}());\n\nfunction identity (s) {\n return s;\n}\n\n/**\n * Because behavior goes wacky when you set `__proto__` on objects, we\n * have to prefix all the strings in our set with an arbitrary character.\n *\n * See https://github.com/mozilla/source-map/pull/31 and\n * https://github.com/mozilla/source-map/issues/30\n *\n * @param String aStr\n */\nfunction toSetString(aStr) {\n if (isProtoString(aStr)) {\n return '$' + aStr;\n }\n\n return aStr;\n}\nexports.toSetString = supportsNullProto ? identity : toSetString;\n\nfunction fromSetString(aStr) {\n if (isProtoString(aStr)) {\n return aStr.slice(1);\n }\n\n return aStr;\n}\nexports.fromSetString = supportsNullProto ? identity : fromSetString;\n\nfunction isProtoString(s) {\n if (!s) {\n return false;\n }\n\n var length = s.length;\n\n if (length < 9 /* \"__proto__\".length */) {\n return false;\n }\n\n if (s.charCodeAt(length - 1) !== 95 /* '_' */ ||\n s.charCodeAt(length - 2) !== 95 /* '_' */ ||\n s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n s.charCodeAt(length - 8) !== 95 /* '_' */ ||\n s.charCodeAt(length - 9) !== 95 /* '_' */) {\n return false;\n }\n\n for (var i = length - 10; i >= 0; i--) {\n if (s.charCodeAt(i) !== 36 /* '$' */) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Comparator between two mappings where the original positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same original source/line/column, but different generated\n * line and column the same. Useful when searching for a mapping with a\n * stubbed out mapping.\n */\nfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n var cmp = mappingA.source - mappingB.source;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0 || onlyCompareOriginal) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n return mappingA.name - mappingB.name;\n}\nexports.compareByOriginalPositions = compareByOriginalPositions;\n\n/**\n * Comparator between two mappings with deflated source and name indices where\n * the generated positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same generated line and column, but different\n * source/name/original line and column the same. Useful when searching for a\n * mapping with a stubbed out mapping.\n */\nfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0 || onlyCompareGenerated) {\n return cmp;\n }\n\n cmp = mappingA.source - mappingB.source;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return mappingA.name - mappingB.name;\n}\nexports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\nfunction strcmp(aStr1, aStr2) {\n if (aStr1 === aStr2) {\n return 0;\n }\n\n if (aStr1 > aStr2) {\n return 1;\n }\n\n return -1;\n}\n\n/**\n * Comparator between two mappings with inflated source and name strings where\n * the generated positions are compared.\n */\nfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/util.js\n// module id = 4\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar has = Object.prototype.hasOwnProperty;\nvar hasNativeMap = typeof Map !== \"undefined\";\n\n/**\n * A data structure which is a combination of an array and a set. Adding a new\n * member is O(1), testing for membership is O(1), and finding the index of an\n * element is O(1). Removing elements from the set is not supported. Only\n * strings are supported for membership.\n */\nfunction ArraySet() {\n this._array = [];\n this._set = hasNativeMap ? new Map() : Object.create(null);\n}\n\n/**\n * Static method for creating ArraySet instances from an existing array.\n */\nArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n var set = new ArraySet();\n for (var i = 0, len = aArray.length; i < len; i++) {\n set.add(aArray[i], aAllowDuplicates);\n }\n return set;\n};\n\n/**\n * Return how many unique items are in this ArraySet. If duplicates have been\n * added, than those do not count towards the size.\n *\n * @returns Number\n */\nArraySet.prototype.size = function ArraySet_size() {\n return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;\n};\n\n/**\n * Add the given string to this set.\n *\n * @param String aStr\n */\nArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n var sStr = hasNativeMap ? aStr : util.toSetString(aStr);\n var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);\n var idx = this._array.length;\n if (!isDuplicate || aAllowDuplicates) {\n this._array.push(aStr);\n }\n if (!isDuplicate) {\n if (hasNativeMap) {\n this._set.set(aStr, idx);\n } else {\n this._set[sStr] = idx;\n }\n }\n};\n\n/**\n * Is the given string a member of this set?\n *\n * @param String aStr\n */\nArraySet.prototype.has = function ArraySet_has(aStr) {\n if (hasNativeMap) {\n return this._set.has(aStr);\n } else {\n var sStr = util.toSetString(aStr);\n return has.call(this._set, sStr);\n }\n};\n\n/**\n * What is the index of the given string in the array?\n *\n * @param String aStr\n */\nArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n if (hasNativeMap) {\n var idx = this._set.get(aStr);\n if (idx >= 0) {\n return idx;\n }\n } else {\n var sStr = util.toSetString(aStr);\n if (has.call(this._set, sStr)) {\n return this._set[sStr];\n }\n }\n\n throw new Error('\"' + aStr + '\" is not in the set.');\n};\n\n/**\n * What is the element at the given index?\n *\n * @param Number aIdx\n */\nArraySet.prototype.at = function ArraySet_at(aIdx) {\n if (aIdx >= 0 && aIdx < this._array.length) {\n return this._array[aIdx];\n }\n throw new Error('No element indexed by ' + aIdx);\n};\n\n/**\n * Returns the array representation of this set (which has the proper indices\n * indicated by indexOf). Note that this is a copy of the internal array used\n * for storing the members so that no one can mess with internal state.\n */\nArraySet.prototype.toArray = function ArraySet_toArray() {\n return this._array.slice();\n};\n\nexports.ArraySet = ArraySet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/array-set.js\n// module id = 5\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2014 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\n\n/**\n * Determine whether mappingB is after mappingA with respect to generated\n * position.\n */\nfunction generatedPositionAfter(mappingA, mappingB) {\n // Optimized for most common case\n var lineA = mappingA.generatedLine;\n var lineB = mappingB.generatedLine;\n var columnA = mappingA.generatedColumn;\n var columnB = mappingB.generatedColumn;\n return lineB > lineA || lineB == lineA && columnB >= columnA ||\n util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\n}\n\n/**\n * A data structure to provide a sorted view of accumulated mappings in a\n * performance conscious manner. It trades a neglibable overhead in general\n * case for a large speedup in case of mappings being added in order.\n */\nfunction MappingList() {\n this._array = [];\n this._sorted = true;\n // Serves as infimum\n this._last = {generatedLine: -1, generatedColumn: 0};\n}\n\n/**\n * Iterate through internal items. This method takes the same arguments that\n * `Array.prototype.forEach` takes.\n *\n * NOTE: The order of the mappings is NOT guaranteed.\n */\nMappingList.prototype.unsortedForEach =\n function MappingList_forEach(aCallback, aThisArg) {\n this._array.forEach(aCallback, aThisArg);\n };\n\n/**\n * Add the given source mapping.\n *\n * @param Object aMapping\n */\nMappingList.prototype.add = function MappingList_add(aMapping) {\n if (generatedPositionAfter(this._last, aMapping)) {\n this._last = aMapping;\n this._array.push(aMapping);\n } else {\n this._sorted = false;\n this._array.push(aMapping);\n }\n};\n\n/**\n * Returns the flat, sorted array of mappings. The mappings are sorted by\n * generated position.\n *\n * WARNING: This method returns internal data without copying, for\n * performance. The return value must NOT be mutated, and should be treated as\n * an immutable borrow. If you want to take ownership, you must make your own\n * copy.\n */\nMappingList.prototype.toArray = function MappingList_toArray() {\n if (!this._sorted) {\n this._array.sort(util.compareByGeneratedPositionsInflated);\n this._sorted = true;\n }\n return this._array;\n};\n\nexports.MappingList = MappingList;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/mapping-list.js\n// module id = 6\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar binarySearch = require('./binary-search');\nvar ArraySet = require('./array-set').ArraySet;\nvar base64VLQ = require('./base64-vlq');\nvar quickSort = require('./quick-sort').quickSort;\n\nfunction SourceMapConsumer(aSourceMap) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n }\n\n return sourceMap.sections != null\n ? new IndexedSourceMapConsumer(sourceMap)\n : new BasicSourceMapConsumer(sourceMap);\n}\n\nSourceMapConsumer.fromSourceMap = function(aSourceMap) {\n return BasicSourceMapConsumer.fromSourceMap(aSourceMap);\n}\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nSourceMapConsumer.prototype._version = 3;\n\n// `__generatedMappings` and `__originalMappings` are arrays that hold the\n// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n// are lazily instantiated, accessed via the `_generatedMappings` and\n// `_originalMappings` getters respectively, and we only parse the mappings\n// and create these arrays once queried for a source location. We jump through\n// these hoops because there can be many thousands of mappings, and parsing\n// them is expensive, so we only want to do it if we must.\n//\n// Each object in the arrays is of the form:\n//\n// {\n// generatedLine: The line number in the generated code,\n// generatedColumn: The column number in the generated code,\n// source: The path to the original source file that generated this\n// chunk of code,\n// originalLine: The line number in the original source that\n// corresponds to this chunk of generated code,\n// originalColumn: The column number in the original source that\n// corresponds to this chunk of generated code,\n// name: The name of the original symbol which generated this chunk of\n// code.\n// }\n//\n// All properties except for `generatedLine` and `generatedColumn` can be\n// `null`.\n//\n// `_generatedMappings` is ordered by the generated positions.\n//\n// `_originalMappings` is ordered by the original positions.\n\nSourceMapConsumer.prototype.__generatedMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n get: function () {\n if (!this.__generatedMappings) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__generatedMappings;\n }\n});\n\nSourceMapConsumer.prototype.__originalMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n get: function () {\n if (!this.__originalMappings) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__originalMappings;\n }\n});\n\nSourceMapConsumer.prototype._charIsMappingSeparator =\n function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n var c = aStr.charAt(index);\n return c === \";\" || c === \",\";\n };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nSourceMapConsumer.prototype._parseMappings =\n function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n throw new Error(\"Subclasses must implement _parseMappings\");\n };\n\nSourceMapConsumer.GENERATED_ORDER = 1;\nSourceMapConsumer.ORIGINAL_ORDER = 2;\n\nSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\nSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\n/**\n * Iterate over each mapping between an original source/line/column and a\n * generated line/column in this source map.\n *\n * @param Function aCallback\n * The function that is called with each mapping.\n * @param Object aContext\n * Optional. If specified, this object will be the value of `this` every\n * time that `aCallback` is called.\n * @param aOrder\n * Either `SourceMapConsumer.GENERATED_ORDER` or\n * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n * iterate over the mappings sorted by the generated file's line/column\n * order or the original's source/line/column order, respectively. Defaults to\n * `SourceMapConsumer.GENERATED_ORDER`.\n */\nSourceMapConsumer.prototype.eachMapping =\n function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n var context = aContext || null;\n var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\n var mappings;\n switch (order) {\n case SourceMapConsumer.GENERATED_ORDER:\n mappings = this._generatedMappings;\n break;\n case SourceMapConsumer.ORIGINAL_ORDER:\n mappings = this._originalMappings;\n break;\n default:\n throw new Error(\"Unknown order of iteration.\");\n }\n\n var sourceRoot = this.sourceRoot;\n mappings.map(function (mapping) {\n var source = mapping.source === null ? null : this._sources.at(mapping.source);\n if (source != null && sourceRoot != null) {\n source = util.join(sourceRoot, source);\n }\n return {\n source: source,\n generatedLine: mapping.generatedLine,\n generatedColumn: mapping.generatedColumn,\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name: mapping.name === null ? null : this._names.at(mapping.name)\n };\n }, this).forEach(aCallback, context);\n };\n\n/**\n * Returns all generated line and column information for the original source,\n * line, and column provided. If no column is provided, returns all mappings\n * corresponding to a either the line we are searching for or the next\n * closest line that has any mappings. Otherwise, returns all mappings\n * corresponding to the given line and either the column we are searching for\n * or the next closest column that has any offsets.\n *\n * The only argument is an object with the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source.\n * - column: Optional. the column number in the original source.\n *\n * and an array of objects is returned, each with the following properties:\n *\n * - line: The line number in the generated source, or null.\n * - column: The column number in the generated source, or null.\n */\nSourceMapConsumer.prototype.allGeneratedPositionsFor =\n function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n var line = util.getArg(aArgs, 'line');\n\n // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n // returns the index of the closest mapping less than the needle. By\n // setting needle.originalColumn to 0, we thus find the last mapping for\n // the given line, provided such a mapping exists.\n var needle = {\n source: util.getArg(aArgs, 'source'),\n originalLine: line,\n originalColumn: util.getArg(aArgs, 'column', 0)\n };\n\n if (this.sourceRoot != null) {\n needle.source = util.relative(this.sourceRoot, needle.source);\n }\n if (!this._sources.has(needle.source)) {\n return [];\n }\n needle.source = this._sources.indexOf(needle.source);\n\n var mappings = [];\n\n var index = this._findMapping(needle,\n this._originalMappings,\n \"originalLine\",\n \"originalColumn\",\n util.compareByOriginalPositions,\n binarySearch.LEAST_UPPER_BOUND);\n if (index >= 0) {\n var mapping = this._originalMappings[index];\n\n if (aArgs.column === undefined) {\n var originalLine = mapping.originalLine;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we found. Since\n // mappings are sorted, this is guaranteed to find all mappings for\n // the line we found.\n while (mapping && mapping.originalLine === originalLine) {\n mappings.push({\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n });\n\n mapping = this._originalMappings[++index];\n }\n } else {\n var originalColumn = mapping.originalColumn;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we were searching for.\n // Since mappings are sorted, this is guaranteed to find all mappings for\n // the line we are searching for.\n while (mapping &&\n mapping.originalLine === line &&\n mapping.originalColumn == originalColumn) {\n mappings.push({\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n });\n\n mapping = this._originalMappings[++index];\n }\n }\n }\n\n return mappings;\n };\n\nexports.SourceMapConsumer = SourceMapConsumer;\n\n/**\n * A BasicSourceMapConsumer instance represents a parsed source map which we can\n * query for information about the original file positions by giving it a file\n * position in the generated source.\n *\n * The only parameter is the raw source map (either as a JSON string, or\n * already parsed to an object). According to the spec, source maps have the\n * following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - sources: An array of URLs to the original source files.\n * - names: An array of identifiers which can be referrenced by individual mappings.\n * - sourceRoot: Optional. The URL root from which all sources are relative.\n * - sourcesContent: Optional. An array of contents of the original source files.\n * - mappings: A string of base64 VLQs which contain the actual mappings.\n * - file: Optional. The generated file this source map is associated with.\n *\n * Here is an example source map, taken from the source map spec[0]:\n *\n * {\n * version : 3,\n * file: \"out.js\",\n * sourceRoot : \"\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AA,AB;;ABCDE;\"\n * }\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n */\nfunction BasicSourceMapConsumer(aSourceMap) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n }\n\n var version = util.getArg(sourceMap, 'version');\n var sources = util.getArg(sourceMap, 'sources');\n // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n // requires the array) to play nice here.\n var names = util.getArg(sourceMap, 'names', []);\n var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n var mappings = util.getArg(sourceMap, 'mappings');\n var file = util.getArg(sourceMap, 'file', null);\n\n // Once again, Sass deviates from the spec and supplies the version as a\n // string rather than a number, so we use loose equality checking here.\n if (version != this._version) {\n throw new Error('Unsupported version: ' + version);\n }\n\n sources = sources\n .map(String)\n // Some source maps produce relative source paths like \"./foo.js\" instead of\n // \"foo.js\". Normalize these first so that future comparisons will succeed.\n // See bugzil.la/1090768.\n .map(util.normalize)\n // Always ensure that absolute sources are internally stored relative to\n // the source root, if the source root is absolute. Not doing this would\n // be particularly problematic when the source root is a prefix of the\n // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n .map(function (source) {\n return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n ? util.relative(sourceRoot, source)\n : source;\n });\n\n // Pass `true` below to allow duplicate names and sources. While source maps\n // are intended to be compressed and deduplicated, the TypeScript compiler\n // sometimes generates source maps with duplicates in them. See Github issue\n // #72 and bugzil.la/889492.\n this._names = ArraySet.fromArray(names.map(String), true);\n this._sources = ArraySet.fromArray(sources, true);\n\n this.sourceRoot = sourceRoot;\n this.sourcesContent = sourcesContent;\n this._mappings = mappings;\n this.file = file;\n}\n\nBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\n/**\n * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n *\n * @param SourceMapGenerator aSourceMap\n * The source map that will be consumed.\n * @returns BasicSourceMapConsumer\n */\nBasicSourceMapConsumer.fromSourceMap =\n function SourceMapConsumer_fromSourceMap(aSourceMap) {\n var smc = Object.create(BasicSourceMapConsumer.prototype);\n\n var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n smc.sourceRoot = aSourceMap._sourceRoot;\n smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n smc.sourceRoot);\n smc.file = aSourceMap._file;\n\n // Because we are modifying the entries (by converting string sources and\n // names to indices into the sources and names ArraySets), we have to make\n // a copy of the entry or else bad things happen. Shared mutable state\n // strikes again! See github issue #191.\n\n var generatedMappings = aSourceMap._mappings.toArray().slice();\n var destGeneratedMappings = smc.__generatedMappings = [];\n var destOriginalMappings = smc.__originalMappings = [];\n\n for (var i = 0, length = generatedMappings.length; i < length; i++) {\n var srcMapping = generatedMappings[i];\n var destMapping = new Mapping;\n destMapping.generatedLine = srcMapping.generatedLine;\n destMapping.generatedColumn = srcMapping.generatedColumn;\n\n if (srcMapping.source) {\n destMapping.source = sources.indexOf(srcMapping.source);\n destMapping.originalLine = srcMapping.originalLine;\n destMapping.originalColumn = srcMapping.originalColumn;\n\n if (srcMapping.name) {\n destMapping.name = names.indexOf(srcMapping.name);\n }\n\n destOriginalMappings.push(destMapping);\n }\n\n destGeneratedMappings.push(destMapping);\n }\n\n quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\n return smc;\n };\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nBasicSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n get: function () {\n return this._sources.toArray().map(function (s) {\n return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;\n }, this);\n }\n});\n\n/**\n * Provide the JIT with a nice shape / hidden class.\n */\nfunction Mapping() {\n this.generatedLine = 0;\n this.generatedColumn = 0;\n this.source = null;\n this.originalLine = null;\n this.originalColumn = null;\n this.name = null;\n}\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nBasicSourceMapConsumer.prototype._parseMappings =\n function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n var generatedLine = 1;\n var previousGeneratedColumn = 0;\n var previousOriginalLine = 0;\n var previousOriginalColumn = 0;\n var previousSource = 0;\n var previousName = 0;\n var length = aStr.length;\n var index = 0;\n var cachedSegments = {};\n var temp = {};\n var originalMappings = [];\n var generatedMappings = [];\n var mapping, str, segment, end, value;\n\n while (index < length) {\n if (aStr.charAt(index) === ';') {\n generatedLine++;\n index++;\n previousGeneratedColumn = 0;\n }\n else if (aStr.charAt(index) === ',') {\n index++;\n }\n else {\n mapping = new Mapping();\n mapping.generatedLine = generatedLine;\n\n // Because each offset is encoded relative to the previous one,\n // many segments often have the same encoding. We can exploit this\n // fact by caching the parsed variable length fields of each segment,\n // allowing us to avoid a second parse if we encounter the same\n // segment again.\n for (end = index; end < length; end++) {\n if (this._charIsMappingSeparator(aStr, end)) {\n break;\n }\n }\n str = aStr.slice(index, end);\n\n segment = cachedSegments[str];\n if (segment) {\n index += str.length;\n } else {\n segment = [];\n while (index < end) {\n base64VLQ.decode(aStr, index, temp);\n value = temp.value;\n index = temp.rest;\n segment.push(value);\n }\n\n if (segment.length === 2) {\n throw new Error('Found a source, but no line and column');\n }\n\n if (segment.length === 3) {\n throw new Error('Found a source and line, but no column');\n }\n\n cachedSegments[str] = segment;\n }\n\n // Generated column.\n mapping.generatedColumn = previousGeneratedColumn + segment[0];\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (segment.length > 1) {\n // Original source.\n mapping.source = previousSource + segment[1];\n previousSource += segment[1];\n\n // Original line.\n mapping.originalLine = previousOriginalLine + segment[2];\n previousOriginalLine = mapping.originalLine;\n // Lines are stored 0-based\n mapping.originalLine += 1;\n\n // Original column.\n mapping.originalColumn = previousOriginalColumn + segment[3];\n previousOriginalColumn = mapping.originalColumn;\n\n if (segment.length > 4) {\n // Original name.\n mapping.name = previousName + segment[4];\n previousName += segment[4];\n }\n }\n\n generatedMappings.push(mapping);\n if (typeof mapping.originalLine === 'number') {\n originalMappings.push(mapping);\n }\n }\n }\n\n quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n this.__generatedMappings = generatedMappings;\n\n quickSort(originalMappings, util.compareByOriginalPositions);\n this.__originalMappings = originalMappings;\n };\n\n/**\n * Find the mapping that best matches the hypothetical \"needle\" mapping that\n * we are searching for in the given \"haystack\" of mappings.\n */\nBasicSourceMapConsumer.prototype._findMapping =\n function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n aColumnName, aComparator, aBias) {\n // To return the position we are searching for, we must first find the\n // mapping for the given position and then return the opposite position it\n // points to. Because the mappings are sorted, we can use binary search to\n // find the best mapping.\n\n if (aNeedle[aLineName] <= 0) {\n throw new TypeError('Line must be greater than or equal to 1, got '\n + aNeedle[aLineName]);\n }\n if (aNeedle[aColumnName] < 0) {\n throw new TypeError('Column must be greater than or equal to 0, got '\n + aNeedle[aColumnName]);\n }\n\n return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n };\n\n/**\n * Compute the last column for each generated mapping. The last column is\n * inclusive.\n */\nBasicSourceMapConsumer.prototype.computeColumnSpans =\n function SourceMapConsumer_computeColumnSpans() {\n for (var index = 0; index < this._generatedMappings.length; ++index) {\n var mapping = this._generatedMappings[index];\n\n // Mappings do not contain a field for the last generated columnt. We\n // can come up with an optimistic estimate, however, by assuming that\n // mappings are contiguous (i.e. given two consecutive mappings, the\n // first mapping ends where the second one starts).\n if (index + 1 < this._generatedMappings.length) {\n var nextMapping = this._generatedMappings[index + 1];\n\n if (mapping.generatedLine === nextMapping.generatedLine) {\n mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n continue;\n }\n }\n\n // The last mapping for each line spans the entire line.\n mapping.lastGeneratedColumn = Infinity;\n }\n };\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source.\n * - column: The column number in the generated source.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null.\n * - column: The column number in the original source, or null.\n * - name: The original identifier, or null.\n */\nBasicSourceMapConsumer.prototype.originalPositionFor =\n function SourceMapConsumer_originalPositionFor(aArgs) {\n var needle = {\n generatedLine: util.getArg(aArgs, 'line'),\n generatedColumn: util.getArg(aArgs, 'column')\n };\n\n var index = this._findMapping(\n needle,\n this._generatedMappings,\n \"generatedLine\",\n \"generatedColumn\",\n util.compareByGeneratedPositionsDeflated,\n util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n );\n\n if (index >= 0) {\n var mapping = this._generatedMappings[index];\n\n if (mapping.generatedLine === needle.generatedLine) {\n var source = util.getArg(mapping, 'source', null);\n if (source !== null) {\n source = this._sources.at(source);\n if (this.sourceRoot != null) {\n source = util.join(this.sourceRoot, source);\n }\n }\n var name = util.getArg(mapping, 'name', null);\n if (name !== null) {\n name = this._names.at(name);\n }\n return {\n source: source,\n line: util.getArg(mapping, 'originalLine', null),\n column: util.getArg(mapping, 'originalColumn', null),\n name: name\n };\n }\n }\n\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n function BasicSourceMapConsumer_hasContentsOfAllSources() {\n if (!this.sourcesContent) {\n return false;\n }\n return this.sourcesContent.length >= this._sources.size() &&\n !this.sourcesContent.some(function (sc) { return sc == null; });\n };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nBasicSourceMapConsumer.prototype.sourceContentFor =\n function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n if (!this.sourcesContent) {\n return null;\n }\n\n if (this.sourceRoot != null) {\n aSource = util.relative(this.sourceRoot, aSource);\n }\n\n if (this._sources.has(aSource)) {\n return this.sourcesContent[this._sources.indexOf(aSource)];\n }\n\n var url;\n if (this.sourceRoot != null\n && (url = util.urlParse(this.sourceRoot))) {\n // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n // many users. We can help them out when they expect file:// URIs to\n // behave like it would if they were running a local HTTP server. See\n // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n var fileUriAbsPath = aSource.replace(/^file:\\/\\//, \"\");\n if (url.scheme == \"file\"\n && this._sources.has(fileUriAbsPath)) {\n return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n }\n\n if ((!url.path || url.path == \"/\")\n && this._sources.has(\"/\" + aSource)) {\n return this.sourcesContent[this._sources.indexOf(\"/\" + aSource)];\n }\n }\n\n // This function is used recursively from\n // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n // don't want to throw if we can't find the source - we just want to\n // return null, so we provide a flag to exit gracefully.\n if (nullOnMissing) {\n return null;\n }\n else {\n throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n }\n };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source.\n * - column: The column number in the original source.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null.\n * - column: The column number in the generated source, or null.\n */\nBasicSourceMapConsumer.prototype.generatedPositionFor =\n function SourceMapConsumer_generatedPositionFor(aArgs) {\n var source = util.getArg(aArgs, 'source');\n if (this.sourceRoot != null) {\n source = util.relative(this.sourceRoot, source);\n }\n if (!this._sources.has(source)) {\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n }\n source = this._sources.indexOf(source);\n\n var needle = {\n source: source,\n originalLine: util.getArg(aArgs, 'line'),\n originalColumn: util.getArg(aArgs, 'column')\n };\n\n var index = this._findMapping(\n needle,\n this._originalMappings,\n \"originalLine\",\n \"originalColumn\",\n util.compareByOriginalPositions,\n util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n );\n\n if (index >= 0) {\n var mapping = this._originalMappings[index];\n\n if (mapping.source === needle.source) {\n return {\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n };\n }\n }\n\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n };\n\nexports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\n/**\n * An IndexedSourceMapConsumer instance represents a parsed source map which\n * we can query for information. It differs from BasicSourceMapConsumer in\n * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n * input.\n *\n * The only parameter is a raw source map (either as a JSON string, or already\n * parsed to an object). According to the spec for indexed source maps, they\n * have the following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - file: Optional. The generated file this source map is associated with.\n * - sections: A list of section definitions.\n *\n * Each value under the \"sections\" field has two fields:\n * - offset: The offset into the original specified at which this section\n * begins to apply, defined as an object with a \"line\" and \"column\"\n * field.\n * - map: A source map definition. This source map could also be indexed,\n * but doesn't have to be.\n *\n * Instead of the \"map\" field, it's also possible to have a \"url\" field\n * specifying a URL to retrieve a source map from, but that's currently\n * unsupported.\n *\n * Here's an example source map, taken from the source map spec[0], but\n * modified to omit a section which uses the \"url\" field.\n *\n * {\n * version : 3,\n * file: \"app.js\",\n * sections: [{\n * offset: {line:100, column:10},\n * map: {\n * version : 3,\n * file: \"section.js\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AAAA,E;;ABCDE;\"\n * }\n * }],\n * }\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n */\nfunction IndexedSourceMapConsumer(aSourceMap) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n }\n\n var version = util.getArg(sourceMap, 'version');\n var sections = util.getArg(sourceMap, 'sections');\n\n if (version != this._version) {\n throw new Error('Unsupported version: ' + version);\n }\n\n this._sources = new ArraySet();\n this._names = new ArraySet();\n\n var lastOffset = {\n line: -1,\n column: 0\n };\n this._sections = sections.map(function (s) {\n if (s.url) {\n // The url field will require support for asynchronicity.\n // See https://github.com/mozilla/source-map/issues/16\n throw new Error('Support for url field in sections not implemented.');\n }\n var offset = util.getArg(s, 'offset');\n var offsetLine = util.getArg(offset, 'line');\n var offsetColumn = util.getArg(offset, 'column');\n\n if (offsetLine < lastOffset.line ||\n (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n throw new Error('Section offsets must be ordered and non-overlapping.');\n }\n lastOffset = offset;\n\n return {\n generatedOffset: {\n // The offset fields are 0-based, but we use 1-based indices when\n // encoding/decoding from VLQ.\n generatedLine: offsetLine + 1,\n generatedColumn: offsetColumn + 1\n },\n consumer: new SourceMapConsumer(util.getArg(s, 'map'))\n }\n });\n}\n\nIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nIndexedSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n get: function () {\n var sources = [];\n for (var i = 0; i < this._sections.length; i++) {\n for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n sources.push(this._sections[i].consumer.sources[j]);\n }\n }\n return sources;\n }\n});\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source.\n * - column: The column number in the generated source.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null.\n * - column: The column number in the original source, or null.\n * - name: The original identifier, or null.\n */\nIndexedSourceMapConsumer.prototype.originalPositionFor =\n function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n var needle = {\n generatedLine: util.getArg(aArgs, 'line'),\n generatedColumn: util.getArg(aArgs, 'column')\n };\n\n // Find the section containing the generated position we're trying to map\n // to an original position.\n var sectionIndex = binarySearch.search(needle, this._sections,\n function(needle, section) {\n var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n if (cmp) {\n return cmp;\n }\n\n return (needle.generatedColumn -\n section.generatedOffset.generatedColumn);\n });\n var section = this._sections[sectionIndex];\n\n if (!section) {\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n }\n\n return section.consumer.originalPositionFor({\n line: needle.generatedLine -\n (section.generatedOffset.generatedLine - 1),\n column: needle.generatedColumn -\n (section.generatedOffset.generatedLine === needle.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n bias: aArgs.bias\n });\n };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n return this._sections.every(function (s) {\n return s.consumer.hasContentsOfAllSources();\n });\n };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nIndexedSourceMapConsumer.prototype.sourceContentFor =\n function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n\n var content = section.consumer.sourceContentFor(aSource, true);\n if (content) {\n return content;\n }\n }\n if (nullOnMissing) {\n return null;\n }\n else {\n throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n }\n };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source.\n * - column: The column number in the original source.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null.\n * - column: The column number in the generated source, or null.\n */\nIndexedSourceMapConsumer.prototype.generatedPositionFor =\n function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n\n // Only consider this section if the requested source is in the list of\n // sources of the consumer.\n if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) {\n continue;\n }\n var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n if (generatedPosition) {\n var ret = {\n line: generatedPosition.line +\n (section.generatedOffset.generatedLine - 1),\n column: generatedPosition.column +\n (section.generatedOffset.generatedLine === generatedPosition.line\n ? section.generatedOffset.generatedColumn - 1\n : 0)\n };\n return ret;\n }\n }\n\n return {\n line: null,\n column: null\n };\n };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nIndexedSourceMapConsumer.prototype._parseMappings =\n function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n this.__generatedMappings = [];\n this.__originalMappings = [];\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n var sectionMappings = section.consumer._generatedMappings;\n for (var j = 0; j < sectionMappings.length; j++) {\n var mapping = sectionMappings[j];\n\n var source = section.consumer._sources.at(mapping.source);\n if (section.consumer.sourceRoot !== null) {\n source = util.join(section.consumer.sourceRoot, source);\n }\n this._sources.add(source);\n source = this._sources.indexOf(source);\n\n var name = section.consumer._names.at(mapping.name);\n this._names.add(name);\n name = this._names.indexOf(name);\n\n // The mappings coming from the consumer for the section have\n // generated positions relative to the start of the section, so we\n // need to offset them to be relative to the start of the concatenated\n // generated file.\n var adjustedMapping = {\n source: source,\n generatedLine: mapping.generatedLine +\n (section.generatedOffset.generatedLine - 1),\n generatedColumn: mapping.generatedColumn +\n (section.generatedOffset.generatedLine === mapping.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name: name\n };\n\n this.__generatedMappings.push(adjustedMapping);\n if (typeof adjustedMapping.originalLine === 'number') {\n this.__originalMappings.push(adjustedMapping);\n }\n }\n }\n\n quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n quickSort(this.__originalMappings, util.compareByOriginalPositions);\n };\n\nexports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/source-map-consumer.js\n// module id = 7\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nexports.GREATEST_LOWER_BOUND = 1;\nexports.LEAST_UPPER_BOUND = 2;\n\n/**\n * Recursive implementation of binary search.\n *\n * @param aLow Indices here and lower do not contain the needle.\n * @param aHigh Indices here and higher do not contain the needle.\n * @param aNeedle The element being searched for.\n * @param aHaystack The non-empty array being searched.\n * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n */\nfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n // This function terminates when one of the following is true:\n //\n // 1. We find the exact element we are looking for.\n //\n // 2. We did not find the exact element, but we can return the index of\n // the next-closest element.\n //\n // 3. We did not find the exact element, and there is no next-closest\n // element than the one we are searching for, so we return -1.\n var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n var cmp = aCompare(aNeedle, aHaystack[mid], true);\n if (cmp === 0) {\n // Found the element we are looking for.\n return mid;\n }\n else if (cmp > 0) {\n // Our needle is greater than aHaystack[mid].\n if (aHigh - mid > 1) {\n // The element is in the upper half.\n return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // The exact needle element was not found in this haystack. Determine if\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return aHigh < aHaystack.length ? aHigh : -1;\n } else {\n return mid;\n }\n }\n else {\n // Our needle is less than aHaystack[mid].\n if (mid - aLow > 1) {\n // The element is in the lower half.\n return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return mid;\n } else {\n return aLow < 0 ? -1 : aLow;\n }\n }\n}\n\n/**\n * This is an implementation of binary search which will always try and return\n * the index of the closest element if there is no exact hit. This is because\n * mappings between original and generated line/col pairs are single points,\n * and there is an implicit region between each of them, so a miss just means\n * that you aren't on the very start of a region.\n *\n * @param aNeedle The element you are looking for.\n * @param aHaystack The array that is being searched.\n * @param aCompare A function which takes the needle and an element in the\n * array and returns -1, 0, or 1 depending on whether the needle is less\n * than, equal to, or greater than the element, respectively.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n */\nexports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n if (aHaystack.length === 0) {\n return -1;\n }\n\n var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n if (index < 0) {\n return -1;\n }\n\n // We have found either the exact element, or the next-closest element than\n // the one we are searching for. However, there may be more than one such\n // element. Make sure we always return the smallest of these.\n while (index - 1 >= 0) {\n if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n break;\n }\n --index;\n }\n\n return index;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/binary-search.js\n// module id = 8\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n// It turns out that some (most?) JavaScript engines don't self-host\n// `Array.prototype.sort`. This makes sense because C++ will likely remain\n// faster than JS when doing raw CPU-intensive sorting. However, when using a\n// custom comparator function, calling back and forth between the VM's C++ and\n// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n// worse generated code for the comparator function than would be optimal. In\n// fact, when sorting with a comparator, these costs outweigh the benefits of\n// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n// a ~3500ms mean speed-up in `bench/bench.html`.\n\n/**\n * Swap the elements indexed by `x` and `y` in the array `ary`.\n *\n * @param {Array} ary\n * The array.\n * @param {Number} x\n * The index of the first item.\n * @param {Number} y\n * The index of the second item.\n */\nfunction swap(ary, x, y) {\n var temp = ary[x];\n ary[x] = ary[y];\n ary[y] = temp;\n}\n\n/**\n * Returns a random integer within the range `low .. high` inclusive.\n *\n * @param {Number} low\n * The lower bound on the range.\n * @param {Number} high\n * The upper bound on the range.\n */\nfunction randomIntInRange(low, high) {\n return Math.round(low + (Math.random() * (high - low)));\n}\n\n/**\n * The Quick Sort algorithm.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n * @param {Number} p\n * Start index of the array\n * @param {Number} r\n * End index of the array\n */\nfunction doQuickSort(ary, comparator, p, r) {\n // If our lower bound is less than our upper bound, we (1) partition the\n // array into two pieces and (2) recurse on each half. If it is not, this is\n // the empty array and our base case.\n\n if (p < r) {\n // (1) Partitioning.\n //\n // The partitioning chooses a pivot between `p` and `r` and moves all\n // elements that are less than or equal to the pivot to the before it, and\n // all the elements that are greater than it after it. The effect is that\n // once partition is done, the pivot is in the exact place it will be when\n // the array is put in sorted order, and it will not need to be moved\n // again. This runs in O(n) time.\n\n // Always choose a random pivot so that an input array which is reverse\n // sorted does not cause O(n^2) running time.\n var pivotIndex = randomIntInRange(p, r);\n var i = p - 1;\n\n swap(ary, pivotIndex, r);\n var pivot = ary[r];\n\n // Immediately after `j` is incremented in this loop, the following hold\n // true:\n //\n // * Every element in `ary[p .. i]` is less than or equal to the pivot.\n //\n // * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n for (var j = p; j < r; j++) {\n if (comparator(ary[j], pivot) <= 0) {\n i += 1;\n swap(ary, i, j);\n }\n }\n\n swap(ary, i + 1, j);\n var q = i + 1;\n\n // (2) Recurse on each half.\n\n doQuickSort(ary, comparator, p, q - 1);\n doQuickSort(ary, comparator, q + 1, r);\n }\n}\n\n/**\n * Sort the given array in-place with the given comparator function.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n */\nexports.quickSort = function (ary, comparator) {\n doQuickSort(ary, comparator, 0, ary.length - 1);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/quick-sort.js\n// module id = 9\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar SourceMapGenerator = require('./source-map-generator').SourceMapGenerator;\nvar util = require('./util');\n\n// Matches a Windows-style `\\r\\n` newline or a `\\n` newline used by all other\n// operating systems these days (capturing the result).\nvar REGEX_NEWLINE = /(\\r?\\n)/;\n\n// Newline character code for charCodeAt() comparisons\nvar NEWLINE_CODE = 10;\n\n// Private symbol for identifying `SourceNode`s when multiple versions of\n// the source-map library are loaded. This MUST NOT CHANGE across\n// versions!\nvar isSourceNode = \"$$$isSourceNode$$$\";\n\n/**\n * SourceNodes provide a way to abstract over interpolating/concatenating\n * snippets of generated JavaScript source code while maintaining the line and\n * column information associated with the original source code.\n *\n * @param aLine The original line number.\n * @param aColumn The original column number.\n * @param aSource The original source's filename.\n * @param aChunks Optional. An array of strings which are snippets of\n * generated JS, or other SourceNodes.\n * @param aName The original identifier.\n */\nfunction SourceNode(aLine, aColumn, aSource, aChunks, aName) {\n this.children = [];\n this.sourceContents = {};\n this.line = aLine == null ? null : aLine;\n this.column = aColumn == null ? null : aColumn;\n this.source = aSource == null ? null : aSource;\n this.name = aName == null ? null : aName;\n this[isSourceNode] = true;\n if (aChunks != null) this.add(aChunks);\n}\n\n/**\n * Creates a SourceNode from generated code and a SourceMapConsumer.\n *\n * @param aGeneratedCode The generated code\n * @param aSourceMapConsumer The SourceMap for the generated code\n * @param aRelativePath Optional. The path that relative sources in the\n * SourceMapConsumer should be relative to.\n */\nSourceNode.fromStringWithSourceMap =\n function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\n // The SourceNode we want to fill with the generated code\n // and the SourceMap\n var node = new SourceNode();\n\n // All even indices of this array are one line of the generated code,\n // while all odd indices are the newlines between two adjacent lines\n // (since `REGEX_NEWLINE` captures its match).\n // Processed fragments are accessed by calling `shiftNextLine`.\n var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n var remainingLinesIndex = 0;\n var shiftNextLine = function() {\n var lineContents = getNextLine();\n // The last line of a file might not have a newline.\n var newLine = getNextLine() || \"\";\n return lineContents + newLine;\n\n function getNextLine() {\n return remainingLinesIndex < remainingLines.length ?\n remainingLines[remainingLinesIndex++] : undefined;\n }\n };\n\n // We need to remember the position of \"remainingLines\"\n var lastGeneratedLine = 1, lastGeneratedColumn = 0;\n\n // The generate SourceNodes we need a code range.\n // To extract it current and last mapping is used.\n // Here we store the last mapping.\n var lastMapping = null;\n\n aSourceMapConsumer.eachMapping(function (mapping) {\n if (lastMapping !== null) {\n // We add the code from \"lastMapping\" to \"mapping\":\n // First check if there is a new line in between.\n if (lastGeneratedLine < mapping.generatedLine) {\n // Associate first line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n lastGeneratedLine++;\n lastGeneratedColumn = 0;\n // The remaining code is added without mapping\n } else {\n // There is no new line in between.\n // Associate the code between \"lastGeneratedColumn\" and\n // \"mapping.generatedColumn\" with \"lastMapping\"\n var nextLine = remainingLines[remainingLinesIndex];\n var code = nextLine.substr(0, mapping.generatedColumn -\n lastGeneratedColumn);\n remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -\n lastGeneratedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n addMappingWithCode(lastMapping, code);\n // No more remaining code, continue\n lastMapping = mapping;\n return;\n }\n }\n // We add the generated code until the first mapping\n // to the SourceNode without any mapping.\n // Each line is added as separate string.\n while (lastGeneratedLine < mapping.generatedLine) {\n node.add(shiftNextLine());\n lastGeneratedLine++;\n }\n if (lastGeneratedColumn < mapping.generatedColumn) {\n var nextLine = remainingLines[remainingLinesIndex];\n node.add(nextLine.substr(0, mapping.generatedColumn));\n remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n }\n lastMapping = mapping;\n }, this);\n // We have processed all mappings.\n if (remainingLinesIndex < remainingLines.length) {\n if (lastMapping) {\n // Associate the remaining code in the current line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n }\n // and add the remaining lines without any mapping\n node.add(remainingLines.splice(remainingLinesIndex).join(\"\"));\n }\n\n // Copy sourcesContent into SourceNode\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aRelativePath != null) {\n sourceFile = util.join(aRelativePath, sourceFile);\n }\n node.setSourceContent(sourceFile, content);\n }\n });\n\n return node;\n\n function addMappingWithCode(mapping, code) {\n if (mapping === null || mapping.source === undefined) {\n node.add(code);\n } else {\n var source = aRelativePath\n ? util.join(aRelativePath, mapping.source)\n : mapping.source;\n node.add(new SourceNode(mapping.originalLine,\n mapping.originalColumn,\n source,\n code,\n mapping.name));\n }\n }\n };\n\n/**\n * Add a chunk of generated JS to this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.add = function SourceNode_add(aChunk) {\n if (Array.isArray(aChunk)) {\n aChunk.forEach(function (chunk) {\n this.add(chunk);\n }, this);\n }\n else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n if (aChunk) {\n this.children.push(aChunk);\n }\n }\n else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n};\n\n/**\n * Add a chunk of generated JS to the beginning of this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\n if (Array.isArray(aChunk)) {\n for (var i = aChunk.length-1; i >= 0; i--) {\n this.prepend(aChunk[i]);\n }\n }\n else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n this.children.unshift(aChunk);\n }\n else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n};\n\n/**\n * Walk over the tree of JS snippets in this node and its children. The\n * walking function is called once for each snippet of JS and is passed that\n * snippet and the its original associated source's line/column location.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walk = function SourceNode_walk(aFn) {\n var chunk;\n for (var i = 0, len = this.children.length; i < len; i++) {\n chunk = this.children[i];\n if (chunk[isSourceNode]) {\n chunk.walk(aFn);\n }\n else {\n if (chunk !== '') {\n aFn(chunk, { source: this.source,\n line: this.line,\n column: this.column,\n name: this.name });\n }\n }\n }\n};\n\n/**\n * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\n * each of `this.children`.\n *\n * @param aSep The separator.\n */\nSourceNode.prototype.join = function SourceNode_join(aSep) {\n var newChildren;\n var i;\n var len = this.children.length;\n if (len > 0) {\n newChildren = [];\n for (i = 0; i < len-1; i++) {\n newChildren.push(this.children[i]);\n newChildren.push(aSep);\n }\n newChildren.push(this.children[i]);\n this.children = newChildren;\n }\n return this;\n};\n\n/**\n * Call String.prototype.replace on the very right-most source snippet. Useful\n * for trimming whitespace from the end of a source node, etc.\n *\n * @param aPattern The pattern to replace.\n * @param aReplacement The thing to replace the pattern with.\n */\nSourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\n var lastChild = this.children[this.children.length - 1];\n if (lastChild[isSourceNode]) {\n lastChild.replaceRight(aPattern, aReplacement);\n }\n else if (typeof lastChild === 'string') {\n this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\n }\n else {\n this.children.push(''.replace(aPattern, aReplacement));\n }\n return this;\n};\n\n/**\n * Set the source content for a source file. This will be added to the SourceMapGenerator\n * in the sourcesContent field.\n *\n * @param aSourceFile The filename of the source file\n * @param aSourceContent The content of the source file\n */\nSourceNode.prototype.setSourceContent =\n function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\n this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\n };\n\n/**\n * Walk over the tree of SourceNodes. The walking function is called for each\n * source file content and is passed the filename and source content.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walkSourceContents =\n function SourceNode_walkSourceContents(aFn) {\n for (var i = 0, len = this.children.length; i < len; i++) {\n if (this.children[i][isSourceNode]) {\n this.children[i].walkSourceContents(aFn);\n }\n }\n\n var sources = Object.keys(this.sourceContents);\n for (var i = 0, len = sources.length; i < len; i++) {\n aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\n }\n };\n\n/**\n * Return the string representation of this source node. Walks over the tree\n * and concatenates all the various snippets together to one string.\n */\nSourceNode.prototype.toString = function SourceNode_toString() {\n var str = \"\";\n this.walk(function (chunk) {\n str += chunk;\n });\n return str;\n};\n\n/**\n * Returns the string representation of this source node along with a source\n * map.\n */\nSourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\n var generated = {\n code: \"\",\n line: 1,\n column: 0\n };\n var map = new SourceMapGenerator(aArgs);\n var sourceMappingActive = false;\n var lastOriginalSource = null;\n var lastOriginalLine = null;\n var lastOriginalColumn = null;\n var lastOriginalName = null;\n this.walk(function (chunk, original) {\n generated.code += chunk;\n if (original.source !== null\n && original.line !== null\n && original.column !== null) {\n if(lastOriginalSource !== original.source\n || lastOriginalLine !== original.line\n || lastOriginalColumn !== original.column\n || lastOriginalName !== original.name) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n lastOriginalSource = original.source;\n lastOriginalLine = original.line;\n lastOriginalColumn = original.column;\n lastOriginalName = original.name;\n sourceMappingActive = true;\n } else if (sourceMappingActive) {\n map.addMapping({\n generated: {\n line: generated.line,\n column: generated.column\n }\n });\n lastOriginalSource = null;\n sourceMappingActive = false;\n }\n for (var idx = 0, length = chunk.length; idx < length; idx++) {\n if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\n generated.line++;\n generated.column = 0;\n // Mappings end at eol\n if (idx + 1 === length) {\n lastOriginalSource = null;\n sourceMappingActive = false;\n } else if (sourceMappingActive) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n } else {\n generated.column++;\n }\n }\n });\n this.walkSourceContents(function (sourceFile, sourceContent) {\n map.setSourceContent(sourceFile, sourceContent);\n });\n\n return { code: generated.code, map: map };\n};\n\nexports.SourceNode = SourceNode;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/source-node.js\n// module id = 10\n// module chunks = 0"],"sourceRoot":""}
\ No newline at end of file
diff --git a/node_modules/source-map/lib/array-set.js b/node_modules/source-map/lib/array-set.js
deleted file mode 100644
index fbd5c81..0000000
--- a/node_modules/source-map/lib/array-set.js
+++ /dev/null
@@ -1,121 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
-var util = require('./util');
-var has = Object.prototype.hasOwnProperty;
-var hasNativeMap = typeof Map !== "undefined";
-
-/**
- * A data structure which is a combination of an array and a set. Adding a new
- * member is O(1), testing for membership is O(1), and finding the index of an
- * element is O(1). Removing elements from the set is not supported. Only
- * strings are supported for membership.
- */
-function ArraySet() {
- this._array = [];
- this._set = hasNativeMap ? new Map() : Object.create(null);
-}
-
-/**
- * Static method for creating ArraySet instances from an existing array.
- */
-ArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {
- var set = new ArraySet();
- for (var i = 0, len = aArray.length; i < len; i++) {
- set.add(aArray[i], aAllowDuplicates);
- }
- return set;
-};
-
-/**
- * Return how many unique items are in this ArraySet. If duplicates have been
- * added, than those do not count towards the size.
- *
- * @returns Number
- */
-ArraySet.prototype.size = function ArraySet_size() {
- return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;
-};
-
-/**
- * Add the given string to this set.
- *
- * @param String aStr
- */
-ArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {
- var sStr = hasNativeMap ? aStr : util.toSetString(aStr);
- var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);
- var idx = this._array.length;
- if (!isDuplicate || aAllowDuplicates) {
- this._array.push(aStr);
- }
- if (!isDuplicate) {
- if (hasNativeMap) {
- this._set.set(aStr, idx);
- } else {
- this._set[sStr] = idx;
- }
- }
-};
-
-/**
- * Is the given string a member of this set?
- *
- * @param String aStr
- */
-ArraySet.prototype.has = function ArraySet_has(aStr) {
- if (hasNativeMap) {
- return this._set.has(aStr);
- } else {
- var sStr = util.toSetString(aStr);
- return has.call(this._set, sStr);
- }
-};
-
-/**
- * What is the index of the given string in the array?
- *
- * @param String aStr
- */
-ArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {
- if (hasNativeMap) {
- var idx = this._set.get(aStr);
- if (idx >= 0) {
- return idx;
- }
- } else {
- var sStr = util.toSetString(aStr);
- if (has.call(this._set, sStr)) {
- return this._set[sStr];
- }
- }
-
- throw new Error('"' + aStr + '" is not in the set.');
-};
-
-/**
- * What is the element at the given index?
- *
- * @param Number aIdx
- */
-ArraySet.prototype.at = function ArraySet_at(aIdx) {
- if (aIdx >= 0 && aIdx < this._array.length) {
- return this._array[aIdx];
- }
- throw new Error('No element indexed by ' + aIdx);
-};
-
-/**
- * Returns the array representation of this set (which has the proper indices
- * indicated by indexOf). Note that this is a copy of the internal array used
- * for storing the members so that no one can mess with internal state.
- */
-ArraySet.prototype.toArray = function ArraySet_toArray() {
- return this._array.slice();
-};
-
-exports.ArraySet = ArraySet;
diff --git a/node_modules/source-map/lib/base64-vlq.js b/node_modules/source-map/lib/base64-vlq.js
deleted file mode 100644
index 612b404..0000000
--- a/node_modules/source-map/lib/base64-vlq.js
+++ /dev/null
@@ -1,140 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- *
- * Based on the Base 64 VLQ implementation in Closure Compiler:
- * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java
- *
- * Copyright 2011 The Closure Compiler Authors. All rights reserved.
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided
- * with the distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-var base64 = require('./base64');
-
-// A single base 64 digit can contain 6 bits of data. For the base 64 variable
-// length quantities we use in the source map spec, the first bit is the sign,
-// the next four bits are the actual value, and the 6th bit is the
-// continuation bit. The continuation bit tells us whether there are more
-// digits in this value following this digit.
-//
-// Continuation
-// | Sign
-// | |
-// V V
-// 101011
-
-var VLQ_BASE_SHIFT = 5;
-
-// binary: 100000
-var VLQ_BASE = 1 << VLQ_BASE_SHIFT;
-
-// binary: 011111
-var VLQ_BASE_MASK = VLQ_BASE - 1;
-
-// binary: 100000
-var VLQ_CONTINUATION_BIT = VLQ_BASE;
-
-/**
- * Converts from a two-complement value to a value where the sign bit is
- * placed in the least significant bit. For example, as decimals:
- * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary)
- * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary)
- */
-function toVLQSigned(aValue) {
- return aValue < 0
- ? ((-aValue) << 1) + 1
- : (aValue << 1) + 0;
-}
-
-/**
- * Converts to a two-complement value from a value where the sign bit is
- * placed in the least significant bit. For example, as decimals:
- * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1
- * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2
- */
-function fromVLQSigned(aValue) {
- var isNegative = (aValue & 1) === 1;
- var shifted = aValue >> 1;
- return isNegative
- ? -shifted
- : shifted;
-}
-
-/**
- * Returns the base 64 VLQ encoded value.
- */
-exports.encode = function base64VLQ_encode(aValue) {
- var encoded = "";
- var digit;
-
- var vlq = toVLQSigned(aValue);
-
- do {
- digit = vlq & VLQ_BASE_MASK;
- vlq >>>= VLQ_BASE_SHIFT;
- if (vlq > 0) {
- // There are still more digits in this value, so we must make sure the
- // continuation bit is marked.
- digit |= VLQ_CONTINUATION_BIT;
- }
- encoded += base64.encode(digit);
- } while (vlq > 0);
-
- return encoded;
-};
-
-/**
- * Decodes the next base 64 VLQ value from the given string and returns the
- * value and the rest of the string via the out parameter.
- */
-exports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {
- var strLen = aStr.length;
- var result = 0;
- var shift = 0;
- var continuation, digit;
-
- do {
- if (aIndex >= strLen) {
- throw new Error("Expected more digits in base 64 VLQ value.");
- }
-
- digit = base64.decode(aStr.charCodeAt(aIndex++));
- if (digit === -1) {
- throw new Error("Invalid base64 digit: " + aStr.charAt(aIndex - 1));
- }
-
- continuation = !!(digit & VLQ_CONTINUATION_BIT);
- digit &= VLQ_BASE_MASK;
- result = result + (digit << shift);
- shift += VLQ_BASE_SHIFT;
- } while (continuation);
-
- aOutParam.value = fromVLQSigned(result);
- aOutParam.rest = aIndex;
-};
diff --git a/node_modules/source-map/lib/base64.js b/node_modules/source-map/lib/base64.js
deleted file mode 100644
index 8aa86b3..0000000
--- a/node_modules/source-map/lib/base64.js
+++ /dev/null
@@ -1,67 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
-var intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');
-
-/**
- * Encode an integer in the range of 0 to 63 to a single base 64 digit.
- */
-exports.encode = function (number) {
- if (0 <= number && number < intToCharMap.length) {
- return intToCharMap[number];
- }
- throw new TypeError("Must be between 0 and 63: " + number);
-};
-
-/**
- * Decode a single base 64 character code digit to an integer. Returns -1 on
- * failure.
- */
-exports.decode = function (charCode) {
- var bigA = 65; // 'A'
- var bigZ = 90; // 'Z'
-
- var littleA = 97; // 'a'
- var littleZ = 122; // 'z'
-
- var zero = 48; // '0'
- var nine = 57; // '9'
-
- var plus = 43; // '+'
- var slash = 47; // '/'
-
- var littleOffset = 26;
- var numberOffset = 52;
-
- // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ
- if (bigA <= charCode && charCode <= bigZ) {
- return (charCode - bigA);
- }
-
- // 26 - 51: abcdefghijklmnopqrstuvwxyz
- if (littleA <= charCode && charCode <= littleZ) {
- return (charCode - littleA + littleOffset);
- }
-
- // 52 - 61: 0123456789
- if (zero <= charCode && charCode <= nine) {
- return (charCode - zero + numberOffset);
- }
-
- // 62: +
- if (charCode == plus) {
- return 62;
- }
-
- // 63: /
- if (charCode == slash) {
- return 63;
- }
-
- // Invalid base64 digit.
- return -1;
-};
diff --git a/node_modules/source-map/lib/binary-search.js b/node_modules/source-map/lib/binary-search.js
deleted file mode 100644
index 010ac94..0000000
--- a/node_modules/source-map/lib/binary-search.js
+++ /dev/null
@@ -1,111 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
-exports.GREATEST_LOWER_BOUND = 1;
-exports.LEAST_UPPER_BOUND = 2;
-
-/**
- * Recursive implementation of binary search.
- *
- * @param aLow Indices here and lower do not contain the needle.
- * @param aHigh Indices here and higher do not contain the needle.
- * @param aNeedle The element being searched for.
- * @param aHaystack The non-empty array being searched.
- * @param aCompare Function which takes two elements and returns -1, 0, or 1.
- * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or
- * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the
- * closest element that is smaller than or greater than the one we are
- * searching for, respectively, if the exact element cannot be found.
- */
-function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {
- // This function terminates when one of the following is true:
- //
- // 1. We find the exact element we are looking for.
- //
- // 2. We did not find the exact element, but we can return the index of
- // the next-closest element.
- //
- // 3. We did not find the exact element, and there is no next-closest
- // element than the one we are searching for, so we return -1.
- var mid = Math.floor((aHigh - aLow) / 2) + aLow;
- var cmp = aCompare(aNeedle, aHaystack[mid], true);
- if (cmp === 0) {
- // Found the element we are looking for.
- return mid;
- }
- else if (cmp > 0) {
- // Our needle is greater than aHaystack[mid].
- if (aHigh - mid > 1) {
- // The element is in the upper half.
- return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);
- }
-
- // The exact needle element was not found in this haystack. Determine if
- // we are in termination case (3) or (2) and return the appropriate thing.
- if (aBias == exports.LEAST_UPPER_BOUND) {
- return aHigh < aHaystack.length ? aHigh : -1;
- } else {
- return mid;
- }
- }
- else {
- // Our needle is less than aHaystack[mid].
- if (mid - aLow > 1) {
- // The element is in the lower half.
- return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);
- }
-
- // we are in termination case (3) or (2) and return the appropriate thing.
- if (aBias == exports.LEAST_UPPER_BOUND) {
- return mid;
- } else {
- return aLow < 0 ? -1 : aLow;
- }
- }
-}
-
-/**
- * This is an implementation of binary search which will always try and return
- * the index of the closest element if there is no exact hit. This is because
- * mappings between original and generated line/col pairs are single points,
- * and there is an implicit region between each of them, so a miss just means
- * that you aren't on the very start of a region.
- *
- * @param aNeedle The element you are looking for.
- * @param aHaystack The array that is being searched.
- * @param aCompare A function which takes the needle and an element in the
- * array and returns -1, 0, or 1 depending on whether the needle is less
- * than, equal to, or greater than the element, respectively.
- * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or
- * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the
- * closest element that is smaller than or greater than the one we are
- * searching for, respectively, if the exact element cannot be found.
- * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.
- */
-exports.search = function search(aNeedle, aHaystack, aCompare, aBias) {
- if (aHaystack.length === 0) {
- return -1;
- }
-
- var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,
- aCompare, aBias || exports.GREATEST_LOWER_BOUND);
- if (index < 0) {
- return -1;
- }
-
- // We have found either the exact element, or the next-closest element than
- // the one we are searching for. However, there may be more than one such
- // element. Make sure we always return the smallest of these.
- while (index - 1 >= 0) {
- if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {
- break;
- }
- --index;
- }
-
- return index;
-};
diff --git a/node_modules/source-map/lib/mapping-list.js b/node_modules/source-map/lib/mapping-list.js
deleted file mode 100644
index 06d1274..0000000
--- a/node_modules/source-map/lib/mapping-list.js
+++ /dev/null
@@ -1,79 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2014 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
-var util = require('./util');
-
-/**
- * Determine whether mappingB is after mappingA with respect to generated
- * position.
- */
-function generatedPositionAfter(mappingA, mappingB) {
- // Optimized for most common case
- var lineA = mappingA.generatedLine;
- var lineB = mappingB.generatedLine;
- var columnA = mappingA.generatedColumn;
- var columnB = mappingB.generatedColumn;
- return lineB > lineA || lineB == lineA && columnB >= columnA ||
- util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;
-}
-
-/**
- * A data structure to provide a sorted view of accumulated mappings in a
- * performance conscious manner. It trades a neglibable overhead in general
- * case for a large speedup in case of mappings being added in order.
- */
-function MappingList() {
- this._array = [];
- this._sorted = true;
- // Serves as infimum
- this._last = {generatedLine: -1, generatedColumn: 0};
-}
-
-/**
- * Iterate through internal items. This method takes the same arguments that
- * `Array.prototype.forEach` takes.
- *
- * NOTE: The order of the mappings is NOT guaranteed.
- */
-MappingList.prototype.unsortedForEach =
- function MappingList_forEach(aCallback, aThisArg) {
- this._array.forEach(aCallback, aThisArg);
- };
-
-/**
- * Add the given source mapping.
- *
- * @param Object aMapping
- */
-MappingList.prototype.add = function MappingList_add(aMapping) {
- if (generatedPositionAfter(this._last, aMapping)) {
- this._last = aMapping;
- this._array.push(aMapping);
- } else {
- this._sorted = false;
- this._array.push(aMapping);
- }
-};
-
-/**
- * Returns the flat, sorted array of mappings. The mappings are sorted by
- * generated position.
- *
- * WARNING: This method returns internal data without copying, for
- * performance. The return value must NOT be mutated, and should be treated as
- * an immutable borrow. If you want to take ownership, you must make your own
- * copy.
- */
-MappingList.prototype.toArray = function MappingList_toArray() {
- if (!this._sorted) {
- this._array.sort(util.compareByGeneratedPositionsInflated);
- this._sorted = true;
- }
- return this._array;
-};
-
-exports.MappingList = MappingList;
diff --git a/node_modules/source-map/lib/quick-sort.js b/node_modules/source-map/lib/quick-sort.js
deleted file mode 100644
index 6a7caad..0000000
--- a/node_modules/source-map/lib/quick-sort.js
+++ /dev/null
@@ -1,114 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
-// It turns out that some (most?) JavaScript engines don't self-host
-// `Array.prototype.sort`. This makes sense because C++ will likely remain
-// faster than JS when doing raw CPU-intensive sorting. However, when using a
-// custom comparator function, calling back and forth between the VM's C++ and
-// JIT'd JS is rather slow *and* loses JIT type information, resulting in
-// worse generated code for the comparator function than would be optimal. In
-// fact, when sorting with a comparator, these costs outweigh the benefits of
-// sorting in C++. By using our own JS-implemented Quick Sort (below), we get
-// a ~3500ms mean speed-up in `bench/bench.html`.
-
-/**
- * Swap the elements indexed by `x` and `y` in the array `ary`.
- *
- * @param {Array} ary
- * The array.
- * @param {Number} x
- * The index of the first item.
- * @param {Number} y
- * The index of the second item.
- */
-function swap(ary, x, y) {
- var temp = ary[x];
- ary[x] = ary[y];
- ary[y] = temp;
-}
-
-/**
- * Returns a random integer within the range `low .. high` inclusive.
- *
- * @param {Number} low
- * The lower bound on the range.
- * @param {Number} high
- * The upper bound on the range.
- */
-function randomIntInRange(low, high) {
- return Math.round(low + (Math.random() * (high - low)));
-}
-
-/**
- * The Quick Sort algorithm.
- *
- * @param {Array} ary
- * An array to sort.
- * @param {function} comparator
- * Function to use to compare two items.
- * @param {Number} p
- * Start index of the array
- * @param {Number} r
- * End index of the array
- */
-function doQuickSort(ary, comparator, p, r) {
- // If our lower bound is less than our upper bound, we (1) partition the
- // array into two pieces and (2) recurse on each half. If it is not, this is
- // the empty array and our base case.
-
- if (p < r) {
- // (1) Partitioning.
- //
- // The partitioning chooses a pivot between `p` and `r` and moves all
- // elements that are less than or equal to the pivot to the before it, and
- // all the elements that are greater than it after it. The effect is that
- // once partition is done, the pivot is in the exact place it will be when
- // the array is put in sorted order, and it will not need to be moved
- // again. This runs in O(n) time.
-
- // Always choose a random pivot so that an input array which is reverse
- // sorted does not cause O(n^2) running time.
- var pivotIndex = randomIntInRange(p, r);
- var i = p - 1;
-
- swap(ary, pivotIndex, r);
- var pivot = ary[r];
-
- // Immediately after `j` is incremented in this loop, the following hold
- // true:
- //
- // * Every element in `ary[p .. i]` is less than or equal to the pivot.
- //
- // * Every element in `ary[i+1 .. j-1]` is greater than the pivot.
- for (var j = p; j < r; j++) {
- if (comparator(ary[j], pivot) <= 0) {
- i += 1;
- swap(ary, i, j);
- }
- }
-
- swap(ary, i + 1, j);
- var q = i + 1;
-
- // (2) Recurse on each half.
-
- doQuickSort(ary, comparator, p, q - 1);
- doQuickSort(ary, comparator, q + 1, r);
- }
-}
-
-/**
- * Sort the given array in-place with the given comparator function.
- *
- * @param {Array} ary
- * An array to sort.
- * @param {function} comparator
- * Function to use to compare two items.
- */
-exports.quickSort = function (ary, comparator) {
- doQuickSort(ary, comparator, 0, ary.length - 1);
-};
diff --git a/node_modules/source-map/lib/source-map-consumer.js b/node_modules/source-map/lib/source-map-consumer.js
deleted file mode 100644
index 6abcc28..0000000
--- a/node_modules/source-map/lib/source-map-consumer.js
+++ /dev/null
@@ -1,1082 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
-var util = require('./util');
-var binarySearch = require('./binary-search');
-var ArraySet = require('./array-set').ArraySet;
-var base64VLQ = require('./base64-vlq');
-var quickSort = require('./quick-sort').quickSort;
-
-function SourceMapConsumer(aSourceMap) {
- var sourceMap = aSourceMap;
- if (typeof aSourceMap === 'string') {
- sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, ''));
- }
-
- return sourceMap.sections != null
- ? new IndexedSourceMapConsumer(sourceMap)
- : new BasicSourceMapConsumer(sourceMap);
-}
-
-SourceMapConsumer.fromSourceMap = function(aSourceMap) {
- return BasicSourceMapConsumer.fromSourceMap(aSourceMap);
-}
-
-/**
- * The version of the source mapping spec that we are consuming.
- */
-SourceMapConsumer.prototype._version = 3;
-
-// `__generatedMappings` and `__originalMappings` are arrays that hold the
-// parsed mapping coordinates from the source map's "mappings" attribute. They
-// are lazily instantiated, accessed via the `_generatedMappings` and
-// `_originalMappings` getters respectively, and we only parse the mappings
-// and create these arrays once queried for a source location. We jump through
-// these hoops because there can be many thousands of mappings, and parsing
-// them is expensive, so we only want to do it if we must.
-//
-// Each object in the arrays is of the form:
-//
-// {
-// generatedLine: The line number in the generated code,
-// generatedColumn: The column number in the generated code,
-// source: The path to the original source file that generated this
-// chunk of code,
-// originalLine: The line number in the original source that
-// corresponds to this chunk of generated code,
-// originalColumn: The column number in the original source that
-// corresponds to this chunk of generated code,
-// name: The name of the original symbol which generated this chunk of
-// code.
-// }
-//
-// All properties except for `generatedLine` and `generatedColumn` can be
-// `null`.
-//
-// `_generatedMappings` is ordered by the generated positions.
-//
-// `_originalMappings` is ordered by the original positions.
-
-SourceMapConsumer.prototype.__generatedMappings = null;
-Object.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {
- get: function () {
- if (!this.__generatedMappings) {
- this._parseMappings(this._mappings, this.sourceRoot);
- }
-
- return this.__generatedMappings;
- }
-});
-
-SourceMapConsumer.prototype.__originalMappings = null;
-Object.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {
- get: function () {
- if (!this.__originalMappings) {
- this._parseMappings(this._mappings, this.sourceRoot);
- }
-
- return this.__originalMappings;
- }
-});
-
-SourceMapConsumer.prototype._charIsMappingSeparator =
- function SourceMapConsumer_charIsMappingSeparator(aStr, index) {
- var c = aStr.charAt(index);
- return c === ";" || c === ",";
- };
-
-/**
- * Parse the mappings in a string in to a data structure which we can easily
- * query (the ordered arrays in the `this.__generatedMappings` and
- * `this.__originalMappings` properties).
- */
-SourceMapConsumer.prototype._parseMappings =
- function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {
- throw new Error("Subclasses must implement _parseMappings");
- };
-
-SourceMapConsumer.GENERATED_ORDER = 1;
-SourceMapConsumer.ORIGINAL_ORDER = 2;
-
-SourceMapConsumer.GREATEST_LOWER_BOUND = 1;
-SourceMapConsumer.LEAST_UPPER_BOUND = 2;
-
-/**
- * Iterate over each mapping between an original source/line/column and a
- * generated line/column in this source map.
- *
- * @param Function aCallback
- * The function that is called with each mapping.
- * @param Object aContext
- * Optional. If specified, this object will be the value of `this` every
- * time that `aCallback` is called.
- * @param aOrder
- * Either `SourceMapConsumer.GENERATED_ORDER` or
- * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to
- * iterate over the mappings sorted by the generated file's line/column
- * order or the original's source/line/column order, respectively. Defaults to
- * `SourceMapConsumer.GENERATED_ORDER`.
- */
-SourceMapConsumer.prototype.eachMapping =
- function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {
- var context = aContext || null;
- var order = aOrder || SourceMapConsumer.GENERATED_ORDER;
-
- var mappings;
- switch (order) {
- case SourceMapConsumer.GENERATED_ORDER:
- mappings = this._generatedMappings;
- break;
- case SourceMapConsumer.ORIGINAL_ORDER:
- mappings = this._originalMappings;
- break;
- default:
- throw new Error("Unknown order of iteration.");
- }
-
- var sourceRoot = this.sourceRoot;
- mappings.map(function (mapping) {
- var source = mapping.source === null ? null : this._sources.at(mapping.source);
- if (source != null && sourceRoot != null) {
- source = util.join(sourceRoot, source);
- }
- return {
- source: source,
- generatedLine: mapping.generatedLine,
- generatedColumn: mapping.generatedColumn,
- originalLine: mapping.originalLine,
- originalColumn: mapping.originalColumn,
- name: mapping.name === null ? null : this._names.at(mapping.name)
- };
- }, this).forEach(aCallback, context);
- };
-
-/**
- * Returns all generated line and column information for the original source,
- * line, and column provided. If no column is provided, returns all mappings
- * corresponding to a either the line we are searching for or the next
- * closest line that has any mappings. Otherwise, returns all mappings
- * corresponding to the given line and either the column we are searching for
- * or the next closest column that has any offsets.
- *
- * The only argument is an object with the following properties:
- *
- * - source: The filename of the original source.
- * - line: The line number in the original source.
- * - column: Optional. the column number in the original source.
- *
- * and an array of objects is returned, each with the following properties:
- *
- * - line: The line number in the generated source, or null.
- * - column: The column number in the generated source, or null.
- */
-SourceMapConsumer.prototype.allGeneratedPositionsFor =
- function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {
- var line = util.getArg(aArgs, 'line');
-
- // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping
- // returns the index of the closest mapping less than the needle. By
- // setting needle.originalColumn to 0, we thus find the last mapping for
- // the given line, provided such a mapping exists.
- var needle = {
- source: util.getArg(aArgs, 'source'),
- originalLine: line,
- originalColumn: util.getArg(aArgs, 'column', 0)
- };
-
- if (this.sourceRoot != null) {
- needle.source = util.relative(this.sourceRoot, needle.source);
- }
- if (!this._sources.has(needle.source)) {
- return [];
- }
- needle.source = this._sources.indexOf(needle.source);
-
- var mappings = [];
-
- var index = this._findMapping(needle,
- this._originalMappings,
- "originalLine",
- "originalColumn",
- util.compareByOriginalPositions,
- binarySearch.LEAST_UPPER_BOUND);
- if (index >= 0) {
- var mapping = this._originalMappings[index];
-
- if (aArgs.column === undefined) {
- var originalLine = mapping.originalLine;
-
- // Iterate until either we run out of mappings, or we run into
- // a mapping for a different line than the one we found. Since
- // mappings are sorted, this is guaranteed to find all mappings for
- // the line we found.
- while (mapping && mapping.originalLine === originalLine) {
- mappings.push({
- line: util.getArg(mapping, 'generatedLine', null),
- column: util.getArg(mapping, 'generatedColumn', null),
- lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)
- });
-
- mapping = this._originalMappings[++index];
- }
- } else {
- var originalColumn = mapping.originalColumn;
-
- // Iterate until either we run out of mappings, or we run into
- // a mapping for a different line than the one we were searching for.
- // Since mappings are sorted, this is guaranteed to find all mappings for
- // the line we are searching for.
- while (mapping &&
- mapping.originalLine === line &&
- mapping.originalColumn == originalColumn) {
- mappings.push({
- line: util.getArg(mapping, 'generatedLine', null),
- column: util.getArg(mapping, 'generatedColumn', null),
- lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)
- });
-
- mapping = this._originalMappings[++index];
- }
- }
- }
-
- return mappings;
- };
-
-exports.SourceMapConsumer = SourceMapConsumer;
-
-/**
- * A BasicSourceMapConsumer instance represents a parsed source map which we can
- * query for information about the original file positions by giving it a file
- * position in the generated source.
- *
- * The only parameter is the raw source map (either as a JSON string, or
- * already parsed to an object). According to the spec, source maps have the
- * following attributes:
- *
- * - version: Which version of the source map spec this map is following.
- * - sources: An array of URLs to the original source files.
- * - names: An array of identifiers which can be referrenced by individual mappings.
- * - sourceRoot: Optional. The URL root from which all sources are relative.
- * - sourcesContent: Optional. An array of contents of the original source files.
- * - mappings: A string of base64 VLQs which contain the actual mappings.
- * - file: Optional. The generated file this source map is associated with.
- *
- * Here is an example source map, taken from the source map spec[0]:
- *
- * {
- * version : 3,
- * file: "out.js",
- * sourceRoot : "",
- * sources: ["foo.js", "bar.js"],
- * names: ["src", "maps", "are", "fun"],
- * mappings: "AA,AB;;ABCDE;"
- * }
- *
- * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#
- */
-function BasicSourceMapConsumer(aSourceMap) {
- var sourceMap = aSourceMap;
- if (typeof aSourceMap === 'string') {
- sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, ''));
- }
-
- var version = util.getArg(sourceMap, 'version');
- var sources = util.getArg(sourceMap, 'sources');
- // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which
- // requires the array) to play nice here.
- var names = util.getArg(sourceMap, 'names', []);
- var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);
- var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);
- var mappings = util.getArg(sourceMap, 'mappings');
- var file = util.getArg(sourceMap, 'file', null);
-
- // Once again, Sass deviates from the spec and supplies the version as a
- // string rather than a number, so we use loose equality checking here.
- if (version != this._version) {
- throw new Error('Unsupported version: ' + version);
- }
-
- sources = sources
- .map(String)
- // Some source maps produce relative source paths like "./foo.js" instead of
- // "foo.js". Normalize these first so that future comparisons will succeed.
- // See bugzil.la/1090768.
- .map(util.normalize)
- // Always ensure that absolute sources are internally stored relative to
- // the source root, if the source root is absolute. Not doing this would
- // be particularly problematic when the source root is a prefix of the
- // source (valid, but why??). See github issue #199 and bugzil.la/1188982.
- .map(function (source) {
- return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)
- ? util.relative(sourceRoot, source)
- : source;
- });
-
- // Pass `true` below to allow duplicate names and sources. While source maps
- // are intended to be compressed and deduplicated, the TypeScript compiler
- // sometimes generates source maps with duplicates in them. See Github issue
- // #72 and bugzil.la/889492.
- this._names = ArraySet.fromArray(names.map(String), true);
- this._sources = ArraySet.fromArray(sources, true);
-
- this.sourceRoot = sourceRoot;
- this.sourcesContent = sourcesContent;
- this._mappings = mappings;
- this.file = file;
-}
-
-BasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);
-BasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;
-
-/**
- * Create a BasicSourceMapConsumer from a SourceMapGenerator.
- *
- * @param SourceMapGenerator aSourceMap
- * The source map that will be consumed.
- * @returns BasicSourceMapConsumer
- */
-BasicSourceMapConsumer.fromSourceMap =
- function SourceMapConsumer_fromSourceMap(aSourceMap) {
- var smc = Object.create(BasicSourceMapConsumer.prototype);
-
- var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);
- var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);
- smc.sourceRoot = aSourceMap._sourceRoot;
- smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),
- smc.sourceRoot);
- smc.file = aSourceMap._file;
-
- // Because we are modifying the entries (by converting string sources and
- // names to indices into the sources and names ArraySets), we have to make
- // a copy of the entry or else bad things happen. Shared mutable state
- // strikes again! See github issue #191.
-
- var generatedMappings = aSourceMap._mappings.toArray().slice();
- var destGeneratedMappings = smc.__generatedMappings = [];
- var destOriginalMappings = smc.__originalMappings = [];
-
- for (var i = 0, length = generatedMappings.length; i < length; i++) {
- var srcMapping = generatedMappings[i];
- var destMapping = new Mapping;
- destMapping.generatedLine = srcMapping.generatedLine;
- destMapping.generatedColumn = srcMapping.generatedColumn;
-
- if (srcMapping.source) {
- destMapping.source = sources.indexOf(srcMapping.source);
- destMapping.originalLine = srcMapping.originalLine;
- destMapping.originalColumn = srcMapping.originalColumn;
-
- if (srcMapping.name) {
- destMapping.name = names.indexOf(srcMapping.name);
- }
-
- destOriginalMappings.push(destMapping);
- }
-
- destGeneratedMappings.push(destMapping);
- }
-
- quickSort(smc.__originalMappings, util.compareByOriginalPositions);
-
- return smc;
- };
-
-/**
- * The version of the source mapping spec that we are consuming.
- */
-BasicSourceMapConsumer.prototype._version = 3;
-
-/**
- * The list of original sources.
- */
-Object.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {
- get: function () {
- return this._sources.toArray().map(function (s) {
- return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;
- }, this);
- }
-});
-
-/**
- * Provide the JIT with a nice shape / hidden class.
- */
-function Mapping() {
- this.generatedLine = 0;
- this.generatedColumn = 0;
- this.source = null;
- this.originalLine = null;
- this.originalColumn = null;
- this.name = null;
-}
-
-/**
- * Parse the mappings in a string in to a data structure which we can easily
- * query (the ordered arrays in the `this.__generatedMappings` and
- * `this.__originalMappings` properties).
- */
-BasicSourceMapConsumer.prototype._parseMappings =
- function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {
- var generatedLine = 1;
- var previousGeneratedColumn = 0;
- var previousOriginalLine = 0;
- var previousOriginalColumn = 0;
- var previousSource = 0;
- var previousName = 0;
- var length = aStr.length;
- var index = 0;
- var cachedSegments = {};
- var temp = {};
- var originalMappings = [];
- var generatedMappings = [];
- var mapping, str, segment, end, value;
-
- while (index < length) {
- if (aStr.charAt(index) === ';') {
- generatedLine++;
- index++;
- previousGeneratedColumn = 0;
- }
- else if (aStr.charAt(index) === ',') {
- index++;
- }
- else {
- mapping = new Mapping();
- mapping.generatedLine = generatedLine;
-
- // Because each offset is encoded relative to the previous one,
- // many segments often have the same encoding. We can exploit this
- // fact by caching the parsed variable length fields of each segment,
- // allowing us to avoid a second parse if we encounter the same
- // segment again.
- for (end = index; end < length; end++) {
- if (this._charIsMappingSeparator(aStr, end)) {
- break;
- }
- }
- str = aStr.slice(index, end);
-
- segment = cachedSegments[str];
- if (segment) {
- index += str.length;
- } else {
- segment = [];
- while (index < end) {
- base64VLQ.decode(aStr, index, temp);
- value = temp.value;
- index = temp.rest;
- segment.push(value);
- }
-
- if (segment.length === 2) {
- throw new Error('Found a source, but no line and column');
- }
-
- if (segment.length === 3) {
- throw new Error('Found a source and line, but no column');
- }
-
- cachedSegments[str] = segment;
- }
-
- // Generated column.
- mapping.generatedColumn = previousGeneratedColumn + segment[0];
- previousGeneratedColumn = mapping.generatedColumn;
-
- if (segment.length > 1) {
- // Original source.
- mapping.source = previousSource + segment[1];
- previousSource += segment[1];
-
- // Original line.
- mapping.originalLine = previousOriginalLine + segment[2];
- previousOriginalLine = mapping.originalLine;
- // Lines are stored 0-based
- mapping.originalLine += 1;
-
- // Original column.
- mapping.originalColumn = previousOriginalColumn + segment[3];
- previousOriginalColumn = mapping.originalColumn;
-
- if (segment.length > 4) {
- // Original name.
- mapping.name = previousName + segment[4];
- previousName += segment[4];
- }
- }
-
- generatedMappings.push(mapping);
- if (typeof mapping.originalLine === 'number') {
- originalMappings.push(mapping);
- }
- }
- }
-
- quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);
- this.__generatedMappings = generatedMappings;
-
- quickSort(originalMappings, util.compareByOriginalPositions);
- this.__originalMappings = originalMappings;
- };
-
-/**
- * Find the mapping that best matches the hypothetical "needle" mapping that
- * we are searching for in the given "haystack" of mappings.
- */
-BasicSourceMapConsumer.prototype._findMapping =
- function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,
- aColumnName, aComparator, aBias) {
- // To return the position we are searching for, we must first find the
- // mapping for the given position and then return the opposite position it
- // points to. Because the mappings are sorted, we can use binary search to
- // find the best mapping.
-
- if (aNeedle[aLineName] <= 0) {
- throw new TypeError('Line must be greater than or equal to 1, got '
- + aNeedle[aLineName]);
- }
- if (aNeedle[aColumnName] < 0) {
- throw new TypeError('Column must be greater than or equal to 0, got '
- + aNeedle[aColumnName]);
- }
-
- return binarySearch.search(aNeedle, aMappings, aComparator, aBias);
- };
-
-/**
- * Compute the last column for each generated mapping. The last column is
- * inclusive.
- */
-BasicSourceMapConsumer.prototype.computeColumnSpans =
- function SourceMapConsumer_computeColumnSpans() {
- for (var index = 0; index < this._generatedMappings.length; ++index) {
- var mapping = this._generatedMappings[index];
-
- // Mappings do not contain a field for the last generated columnt. We
- // can come up with an optimistic estimate, however, by assuming that
- // mappings are contiguous (i.e. given two consecutive mappings, the
- // first mapping ends where the second one starts).
- if (index + 1 < this._generatedMappings.length) {
- var nextMapping = this._generatedMappings[index + 1];
-
- if (mapping.generatedLine === nextMapping.generatedLine) {
- mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;
- continue;
- }
- }
-
- // The last mapping for each line spans the entire line.
- mapping.lastGeneratedColumn = Infinity;
- }
- };
-
-/**
- * Returns the original source, line, and column information for the generated
- * source's line and column positions provided. The only argument is an object
- * with the following properties:
- *
- * - line: The line number in the generated source.
- * - column: The column number in the generated source.
- * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or
- * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the
- * closest element that is smaller than or greater than the one we are
- * searching for, respectively, if the exact element cannot be found.
- * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.
- *
- * and an object is returned with the following properties:
- *
- * - source: The original source file, or null.
- * - line: The line number in the original source, or null.
- * - column: The column number in the original source, or null.
- * - name: The original identifier, or null.
- */
-BasicSourceMapConsumer.prototype.originalPositionFor =
- function SourceMapConsumer_originalPositionFor(aArgs) {
- var needle = {
- generatedLine: util.getArg(aArgs, 'line'),
- generatedColumn: util.getArg(aArgs, 'column')
- };
-
- var index = this._findMapping(
- needle,
- this._generatedMappings,
- "generatedLine",
- "generatedColumn",
- util.compareByGeneratedPositionsDeflated,
- util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)
- );
-
- if (index >= 0) {
- var mapping = this._generatedMappings[index];
-
- if (mapping.generatedLine === needle.generatedLine) {
- var source = util.getArg(mapping, 'source', null);
- if (source !== null) {
- source = this._sources.at(source);
- if (this.sourceRoot != null) {
- source = util.join(this.sourceRoot, source);
- }
- }
- var name = util.getArg(mapping, 'name', null);
- if (name !== null) {
- name = this._names.at(name);
- }
- return {
- source: source,
- line: util.getArg(mapping, 'originalLine', null),
- column: util.getArg(mapping, 'originalColumn', null),
- name: name
- };
- }
- }
-
- return {
- source: null,
- line: null,
- column: null,
- name: null
- };
- };
-
-/**
- * Return true if we have the source content for every source in the source
- * map, false otherwise.
- */
-BasicSourceMapConsumer.prototype.hasContentsOfAllSources =
- function BasicSourceMapConsumer_hasContentsOfAllSources() {
- if (!this.sourcesContent) {
- return false;
- }
- return this.sourcesContent.length >= this._sources.size() &&
- !this.sourcesContent.some(function (sc) { return sc == null; });
- };
-
-/**
- * Returns the original source content. The only argument is the url of the
- * original source file. Returns null if no original source content is
- * available.
- */
-BasicSourceMapConsumer.prototype.sourceContentFor =
- function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {
- if (!this.sourcesContent) {
- return null;
- }
-
- if (this.sourceRoot != null) {
- aSource = util.relative(this.sourceRoot, aSource);
- }
-
- if (this._sources.has(aSource)) {
- return this.sourcesContent[this._sources.indexOf(aSource)];
- }
-
- var url;
- if (this.sourceRoot != null
- && (url = util.urlParse(this.sourceRoot))) {
- // XXX: file:// URIs and absolute paths lead to unexpected behavior for
- // many users. We can help them out when they expect file:// URIs to
- // behave like it would if they were running a local HTTP server. See
- // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.
- var fileUriAbsPath = aSource.replace(/^file:\/\//, "");
- if (url.scheme == "file"
- && this._sources.has(fileUriAbsPath)) {
- return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]
- }
-
- if ((!url.path || url.path == "/")
- && this._sources.has("/" + aSource)) {
- return this.sourcesContent[this._sources.indexOf("/" + aSource)];
- }
- }
-
- // This function is used recursively from
- // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we
- // don't want to throw if we can't find the source - we just want to
- // return null, so we provide a flag to exit gracefully.
- if (nullOnMissing) {
- return null;
- }
- else {
- throw new Error('"' + aSource + '" is not in the SourceMap.');
- }
- };
-
-/**
- * Returns the generated line and column information for the original source,
- * line, and column positions provided. The only argument is an object with
- * the following properties:
- *
- * - source: The filename of the original source.
- * - line: The line number in the original source.
- * - column: The column number in the original source.
- * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or
- * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the
- * closest element that is smaller than or greater than the one we are
- * searching for, respectively, if the exact element cannot be found.
- * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.
- *
- * and an object is returned with the following properties:
- *
- * - line: The line number in the generated source, or null.
- * - column: The column number in the generated source, or null.
- */
-BasicSourceMapConsumer.prototype.generatedPositionFor =
- function SourceMapConsumer_generatedPositionFor(aArgs) {
- var source = util.getArg(aArgs, 'source');
- if (this.sourceRoot != null) {
- source = util.relative(this.sourceRoot, source);
- }
- if (!this._sources.has(source)) {
- return {
- line: null,
- column: null,
- lastColumn: null
- };
- }
- source = this._sources.indexOf(source);
-
- var needle = {
- source: source,
- originalLine: util.getArg(aArgs, 'line'),
- originalColumn: util.getArg(aArgs, 'column')
- };
-
- var index = this._findMapping(
- needle,
- this._originalMappings,
- "originalLine",
- "originalColumn",
- util.compareByOriginalPositions,
- util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)
- );
-
- if (index >= 0) {
- var mapping = this._originalMappings[index];
-
- if (mapping.source === needle.source) {
- return {
- line: util.getArg(mapping, 'generatedLine', null),
- column: util.getArg(mapping, 'generatedColumn', null),
- lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)
- };
- }
- }
-
- return {
- line: null,
- column: null,
- lastColumn: null
- };
- };
-
-exports.BasicSourceMapConsumer = BasicSourceMapConsumer;
-
-/**
- * An IndexedSourceMapConsumer instance represents a parsed source map which
- * we can query for information. It differs from BasicSourceMapConsumer in
- * that it takes "indexed" source maps (i.e. ones with a "sections" field) as
- * input.
- *
- * The only parameter is a raw source map (either as a JSON string, or already
- * parsed to an object). According to the spec for indexed source maps, they
- * have the following attributes:
- *
- * - version: Which version of the source map spec this map is following.
- * - file: Optional. The generated file this source map is associated with.
- * - sections: A list of section definitions.
- *
- * Each value under the "sections" field has two fields:
- * - offset: The offset into the original specified at which this section
- * begins to apply, defined as an object with a "line" and "column"
- * field.
- * - map: A source map definition. This source map could also be indexed,
- * but doesn't have to be.
- *
- * Instead of the "map" field, it's also possible to have a "url" field
- * specifying a URL to retrieve a source map from, but that's currently
- * unsupported.
- *
- * Here's an example source map, taken from the source map spec[0], but
- * modified to omit a section which uses the "url" field.
- *
- * {
- * version : 3,
- * file: "app.js",
- * sections: [{
- * offset: {line:100, column:10},
- * map: {
- * version : 3,
- * file: "section.js",
- * sources: ["foo.js", "bar.js"],
- * names: ["src", "maps", "are", "fun"],
- * mappings: "AAAA,E;;ABCDE;"
- * }
- * }],
- * }
- *
- * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt
- */
-function IndexedSourceMapConsumer(aSourceMap) {
- var sourceMap = aSourceMap;
- if (typeof aSourceMap === 'string') {
- sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, ''));
- }
-
- var version = util.getArg(sourceMap, 'version');
- var sections = util.getArg(sourceMap, 'sections');
-
- if (version != this._version) {
- throw new Error('Unsupported version: ' + version);
- }
-
- this._sources = new ArraySet();
- this._names = new ArraySet();
-
- var lastOffset = {
- line: -1,
- column: 0
- };
- this._sections = sections.map(function (s) {
- if (s.url) {
- // The url field will require support for asynchronicity.
- // See https://github.com/mozilla/source-map/issues/16
- throw new Error('Support for url field in sections not implemented.');
- }
- var offset = util.getArg(s, 'offset');
- var offsetLine = util.getArg(offset, 'line');
- var offsetColumn = util.getArg(offset, 'column');
-
- if (offsetLine < lastOffset.line ||
- (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {
- throw new Error('Section offsets must be ordered and non-overlapping.');
- }
- lastOffset = offset;
-
- return {
- generatedOffset: {
- // The offset fields are 0-based, but we use 1-based indices when
- // encoding/decoding from VLQ.
- generatedLine: offsetLine + 1,
- generatedColumn: offsetColumn + 1
- },
- consumer: new SourceMapConsumer(util.getArg(s, 'map'))
- }
- });
-}
-
-IndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);
-IndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;
-
-/**
- * The version of the source mapping spec that we are consuming.
- */
-IndexedSourceMapConsumer.prototype._version = 3;
-
-/**
- * The list of original sources.
- */
-Object.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {
- get: function () {
- var sources = [];
- for (var i = 0; i < this._sections.length; i++) {
- for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {
- sources.push(this._sections[i].consumer.sources[j]);
- }
- }
- return sources;
- }
-});
-
-/**
- * Returns the original source, line, and column information for the generated
- * source's line and column positions provided. The only argument is an object
- * with the following properties:
- *
- * - line: The line number in the generated source.
- * - column: The column number in the generated source.
- *
- * and an object is returned with the following properties:
- *
- * - source: The original source file, or null.
- * - line: The line number in the original source, or null.
- * - column: The column number in the original source, or null.
- * - name: The original identifier, or null.
- */
-IndexedSourceMapConsumer.prototype.originalPositionFor =
- function IndexedSourceMapConsumer_originalPositionFor(aArgs) {
- var needle = {
- generatedLine: util.getArg(aArgs, 'line'),
- generatedColumn: util.getArg(aArgs, 'column')
- };
-
- // Find the section containing the generated position we're trying to map
- // to an original position.
- var sectionIndex = binarySearch.search(needle, this._sections,
- function(needle, section) {
- var cmp = needle.generatedLine - section.generatedOffset.generatedLine;
- if (cmp) {
- return cmp;
- }
-
- return (needle.generatedColumn -
- section.generatedOffset.generatedColumn);
- });
- var section = this._sections[sectionIndex];
-
- if (!section) {
- return {
- source: null,
- line: null,
- column: null,
- name: null
- };
- }
-
- return section.consumer.originalPositionFor({
- line: needle.generatedLine -
- (section.generatedOffset.generatedLine - 1),
- column: needle.generatedColumn -
- (section.generatedOffset.generatedLine === needle.generatedLine
- ? section.generatedOffset.generatedColumn - 1
- : 0),
- bias: aArgs.bias
- });
- };
-
-/**
- * Return true if we have the source content for every source in the source
- * map, false otherwise.
- */
-IndexedSourceMapConsumer.prototype.hasContentsOfAllSources =
- function IndexedSourceMapConsumer_hasContentsOfAllSources() {
- return this._sections.every(function (s) {
- return s.consumer.hasContentsOfAllSources();
- });
- };
-
-/**
- * Returns the original source content. The only argument is the url of the
- * original source file. Returns null if no original source content is
- * available.
- */
-IndexedSourceMapConsumer.prototype.sourceContentFor =
- function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {
- for (var i = 0; i < this._sections.length; i++) {
- var section = this._sections[i];
-
- var content = section.consumer.sourceContentFor(aSource, true);
- if (content) {
- return content;
- }
- }
- if (nullOnMissing) {
- return null;
- }
- else {
- throw new Error('"' + aSource + '" is not in the SourceMap.');
- }
- };
-
-/**
- * Returns the generated line and column information for the original source,
- * line, and column positions provided. The only argument is an object with
- * the following properties:
- *
- * - source: The filename of the original source.
- * - line: The line number in the original source.
- * - column: The column number in the original source.
- *
- * and an object is returned with the following properties:
- *
- * - line: The line number in the generated source, or null.
- * - column: The column number in the generated source, or null.
- */
-IndexedSourceMapConsumer.prototype.generatedPositionFor =
- function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {
- for (var i = 0; i < this._sections.length; i++) {
- var section = this._sections[i];
-
- // Only consider this section if the requested source is in the list of
- // sources of the consumer.
- if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) {
- continue;
- }
- var generatedPosition = section.consumer.generatedPositionFor(aArgs);
- if (generatedPosition) {
- var ret = {
- line: generatedPosition.line +
- (section.generatedOffset.generatedLine - 1),
- column: generatedPosition.column +
- (section.generatedOffset.generatedLine === generatedPosition.line
- ? section.generatedOffset.generatedColumn - 1
- : 0)
- };
- return ret;
- }
- }
-
- return {
- line: null,
- column: null
- };
- };
-
-/**
- * Parse the mappings in a string in to a data structure which we can easily
- * query (the ordered arrays in the `this.__generatedMappings` and
- * `this.__originalMappings` properties).
- */
-IndexedSourceMapConsumer.prototype._parseMappings =
- function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {
- this.__generatedMappings = [];
- this.__originalMappings = [];
- for (var i = 0; i < this._sections.length; i++) {
- var section = this._sections[i];
- var sectionMappings = section.consumer._generatedMappings;
- for (var j = 0; j < sectionMappings.length; j++) {
- var mapping = sectionMappings[j];
-
- var source = section.consumer._sources.at(mapping.source);
- if (section.consumer.sourceRoot !== null) {
- source = util.join(section.consumer.sourceRoot, source);
- }
- this._sources.add(source);
- source = this._sources.indexOf(source);
-
- var name = section.consumer._names.at(mapping.name);
- this._names.add(name);
- name = this._names.indexOf(name);
-
- // The mappings coming from the consumer for the section have
- // generated positions relative to the start of the section, so we
- // need to offset them to be relative to the start of the concatenated
- // generated file.
- var adjustedMapping = {
- source: source,
- generatedLine: mapping.generatedLine +
- (section.generatedOffset.generatedLine - 1),
- generatedColumn: mapping.generatedColumn +
- (section.generatedOffset.generatedLine === mapping.generatedLine
- ? section.generatedOffset.generatedColumn - 1
- : 0),
- originalLine: mapping.originalLine,
- originalColumn: mapping.originalColumn,
- name: name
- };
-
- this.__generatedMappings.push(adjustedMapping);
- if (typeof adjustedMapping.originalLine === 'number') {
- this.__originalMappings.push(adjustedMapping);
- }
- }
- }
-
- quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);
- quickSort(this.__originalMappings, util.compareByOriginalPositions);
- };
-
-exports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;
diff --git a/node_modules/source-map/lib/source-map-generator.js b/node_modules/source-map/lib/source-map-generator.js
deleted file mode 100644
index aff1e7f..0000000
--- a/node_modules/source-map/lib/source-map-generator.js
+++ /dev/null
@@ -1,416 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
-var base64VLQ = require('./base64-vlq');
-var util = require('./util');
-var ArraySet = require('./array-set').ArraySet;
-var MappingList = require('./mapping-list').MappingList;
-
-/**
- * An instance of the SourceMapGenerator represents a source map which is
- * being built incrementally. You may pass an object with the following
- * properties:
- *
- * - file: The filename of the generated source.
- * - sourceRoot: A root for all relative URLs in this source map.
- */
-function SourceMapGenerator(aArgs) {
- if (!aArgs) {
- aArgs = {};
- }
- this._file = util.getArg(aArgs, 'file', null);
- this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);
- this._skipValidation = util.getArg(aArgs, 'skipValidation', false);
- this._sources = new ArraySet();
- this._names = new ArraySet();
- this._mappings = new MappingList();
- this._sourcesContents = null;
-}
-
-SourceMapGenerator.prototype._version = 3;
-
-/**
- * Creates a new SourceMapGenerator based on a SourceMapConsumer
- *
- * @param aSourceMapConsumer The SourceMap.
- */
-SourceMapGenerator.fromSourceMap =
- function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {
- var sourceRoot = aSourceMapConsumer.sourceRoot;
- var generator = new SourceMapGenerator({
- file: aSourceMapConsumer.file,
- sourceRoot: sourceRoot
- });
- aSourceMapConsumer.eachMapping(function (mapping) {
- var newMapping = {
- generated: {
- line: mapping.generatedLine,
- column: mapping.generatedColumn
- }
- };
-
- if (mapping.source != null) {
- newMapping.source = mapping.source;
- if (sourceRoot != null) {
- newMapping.source = util.relative(sourceRoot, newMapping.source);
- }
-
- newMapping.original = {
- line: mapping.originalLine,
- column: mapping.originalColumn
- };
-
- if (mapping.name != null) {
- newMapping.name = mapping.name;
- }
- }
-
- generator.addMapping(newMapping);
- });
- aSourceMapConsumer.sources.forEach(function (sourceFile) {
- var content = aSourceMapConsumer.sourceContentFor(sourceFile);
- if (content != null) {
- generator.setSourceContent(sourceFile, content);
- }
- });
- return generator;
- };
-
-/**
- * Add a single mapping from original source line and column to the generated
- * source's line and column for this source map being created. The mapping
- * object should have the following properties:
- *
- * - generated: An object with the generated line and column positions.
- * - original: An object with the original line and column positions.
- * - source: The original source file (relative to the sourceRoot).
- * - name: An optional original token name for this mapping.
- */
-SourceMapGenerator.prototype.addMapping =
- function SourceMapGenerator_addMapping(aArgs) {
- var generated = util.getArg(aArgs, 'generated');
- var original = util.getArg(aArgs, 'original', null);
- var source = util.getArg(aArgs, 'source', null);
- var name = util.getArg(aArgs, 'name', null);
-
- if (!this._skipValidation) {
- this._validateMapping(generated, original, source, name);
- }
-
- if (source != null) {
- source = String(source);
- if (!this._sources.has(source)) {
- this._sources.add(source);
- }
- }
-
- if (name != null) {
- name = String(name);
- if (!this._names.has(name)) {
- this._names.add(name);
- }
- }
-
- this._mappings.add({
- generatedLine: generated.line,
- generatedColumn: generated.column,
- originalLine: original != null && original.line,
- originalColumn: original != null && original.column,
- source: source,
- name: name
- });
- };
-
-/**
- * Set the source content for a source file.
- */
-SourceMapGenerator.prototype.setSourceContent =
- function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {
- var source = aSourceFile;
- if (this._sourceRoot != null) {
- source = util.relative(this._sourceRoot, source);
- }
-
- if (aSourceContent != null) {
- // Add the source content to the _sourcesContents map.
- // Create a new _sourcesContents map if the property is null.
- if (!this._sourcesContents) {
- this._sourcesContents = Object.create(null);
- }
- this._sourcesContents[util.toSetString(source)] = aSourceContent;
- } else if (this._sourcesContents) {
- // Remove the source file from the _sourcesContents map.
- // If the _sourcesContents map is empty, set the property to null.
- delete this._sourcesContents[util.toSetString(source)];
- if (Object.keys(this._sourcesContents).length === 0) {
- this._sourcesContents = null;
- }
- }
- };
-
-/**
- * Applies the mappings of a sub-source-map for a specific source file to the
- * source map being generated. Each mapping to the supplied source file is
- * rewritten using the supplied source map. Note: The resolution for the
- * resulting mappings is the minimium of this map and the supplied map.
- *
- * @param aSourceMapConsumer The source map to be applied.
- * @param aSourceFile Optional. The filename of the source file.
- * If omitted, SourceMapConsumer's file property will be used.
- * @param aSourceMapPath Optional. The dirname of the path to the source map
- * to be applied. If relative, it is relative to the SourceMapConsumer.
- * This parameter is needed when the two source maps aren't in the same
- * directory, and the source map to be applied contains relative source
- * paths. If so, those relative source paths need to be rewritten
- * relative to the SourceMapGenerator.
- */
-SourceMapGenerator.prototype.applySourceMap =
- function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {
- var sourceFile = aSourceFile;
- // If aSourceFile is omitted, we will use the file property of the SourceMap
- if (aSourceFile == null) {
- if (aSourceMapConsumer.file == null) {
- throw new Error(
- 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +
- 'or the source map\'s "file" property. Both were omitted.'
- );
- }
- sourceFile = aSourceMapConsumer.file;
- }
- var sourceRoot = this._sourceRoot;
- // Make "sourceFile" relative if an absolute Url is passed.
- if (sourceRoot != null) {
- sourceFile = util.relative(sourceRoot, sourceFile);
- }
- // Applying the SourceMap can add and remove items from the sources and
- // the names array.
- var newSources = new ArraySet();
- var newNames = new ArraySet();
-
- // Find mappings for the "sourceFile"
- this._mappings.unsortedForEach(function (mapping) {
- if (mapping.source === sourceFile && mapping.originalLine != null) {
- // Check if it can be mapped by the source map, then update the mapping.
- var original = aSourceMapConsumer.originalPositionFor({
- line: mapping.originalLine,
- column: mapping.originalColumn
- });
- if (original.source != null) {
- // Copy mapping
- mapping.source = original.source;
- if (aSourceMapPath != null) {
- mapping.source = util.join(aSourceMapPath, mapping.source)
- }
- if (sourceRoot != null) {
- mapping.source = util.relative(sourceRoot, mapping.source);
- }
- mapping.originalLine = original.line;
- mapping.originalColumn = original.column;
- if (original.name != null) {
- mapping.name = original.name;
- }
- }
- }
-
- var source = mapping.source;
- if (source != null && !newSources.has(source)) {
- newSources.add(source);
- }
-
- var name = mapping.name;
- if (name != null && !newNames.has(name)) {
- newNames.add(name);
- }
-
- }, this);
- this._sources = newSources;
- this._names = newNames;
-
- // Copy sourcesContents of applied map.
- aSourceMapConsumer.sources.forEach(function (sourceFile) {
- var content = aSourceMapConsumer.sourceContentFor(sourceFile);
- if (content != null) {
- if (aSourceMapPath != null) {
- sourceFile = util.join(aSourceMapPath, sourceFile);
- }
- if (sourceRoot != null) {
- sourceFile = util.relative(sourceRoot, sourceFile);
- }
- this.setSourceContent(sourceFile, content);
- }
- }, this);
- };
-
-/**
- * A mapping can have one of the three levels of data:
- *
- * 1. Just the generated position.
- * 2. The Generated position, original position, and original source.
- * 3. Generated and original position, original source, as well as a name
- * token.
- *
- * To maintain consistency, we validate that any new mapping being added falls
- * in to one of these categories.
- */
-SourceMapGenerator.prototype._validateMapping =
- function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,
- aName) {
- // When aOriginal is truthy but has empty values for .line and .column,
- // it is most likely a programmer error. In this case we throw a very
- // specific error message to try to guide them the right way.
- // For example: https://github.com/Polymer/polymer-bundler/pull/519
- if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {
- throw new Error(
- 'original.line and original.column are not numbers -- you probably meant to omit ' +
- 'the original mapping entirely and only map the generated position. If so, pass ' +
- 'null for the original mapping instead of an object with empty or null values.'
- );
- }
-
- if (aGenerated && 'line' in aGenerated && 'column' in aGenerated
- && aGenerated.line > 0 && aGenerated.column >= 0
- && !aOriginal && !aSource && !aName) {
- // Case 1.
- return;
- }
- else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated
- && aOriginal && 'line' in aOriginal && 'column' in aOriginal
- && aGenerated.line > 0 && aGenerated.column >= 0
- && aOriginal.line > 0 && aOriginal.column >= 0
- && aSource) {
- // Cases 2 and 3.
- return;
- }
- else {
- throw new Error('Invalid mapping: ' + JSON.stringify({
- generated: aGenerated,
- source: aSource,
- original: aOriginal,
- name: aName
- }));
- }
- };
-
-/**
- * Serialize the accumulated mappings in to the stream of base 64 VLQs
- * specified by the source map format.
- */
-SourceMapGenerator.prototype._serializeMappings =
- function SourceMapGenerator_serializeMappings() {
- var previousGeneratedColumn = 0;
- var previousGeneratedLine = 1;
- var previousOriginalColumn = 0;
- var previousOriginalLine = 0;
- var previousName = 0;
- var previousSource = 0;
- var result = '';
- var next;
- var mapping;
- var nameIdx;
- var sourceIdx;
-
- var mappings = this._mappings.toArray();
- for (var i = 0, len = mappings.length; i < len; i++) {
- mapping = mappings[i];
- next = ''
-
- if (mapping.generatedLine !== previousGeneratedLine) {
- previousGeneratedColumn = 0;
- while (mapping.generatedLine !== previousGeneratedLine) {
- next += ';';
- previousGeneratedLine++;
- }
- }
- else {
- if (i > 0) {
- if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {
- continue;
- }
- next += ',';
- }
- }
-
- next += base64VLQ.encode(mapping.generatedColumn
- - previousGeneratedColumn);
- previousGeneratedColumn = mapping.generatedColumn;
-
- if (mapping.source != null) {
- sourceIdx = this._sources.indexOf(mapping.source);
- next += base64VLQ.encode(sourceIdx - previousSource);
- previousSource = sourceIdx;
-
- // lines are stored 0-based in SourceMap spec version 3
- next += base64VLQ.encode(mapping.originalLine - 1
- - previousOriginalLine);
- previousOriginalLine = mapping.originalLine - 1;
-
- next += base64VLQ.encode(mapping.originalColumn
- - previousOriginalColumn);
- previousOriginalColumn = mapping.originalColumn;
-
- if (mapping.name != null) {
- nameIdx = this._names.indexOf(mapping.name);
- next += base64VLQ.encode(nameIdx - previousName);
- previousName = nameIdx;
- }
- }
-
- result += next;
- }
-
- return result;
- };
-
-SourceMapGenerator.prototype._generateSourcesContent =
- function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {
- return aSources.map(function (source) {
- if (!this._sourcesContents) {
- return null;
- }
- if (aSourceRoot != null) {
- source = util.relative(aSourceRoot, source);
- }
- var key = util.toSetString(source);
- return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)
- ? this._sourcesContents[key]
- : null;
- }, this);
- };
-
-/**
- * Externalize the source map.
- */
-SourceMapGenerator.prototype.toJSON =
- function SourceMapGenerator_toJSON() {
- var map = {
- version: this._version,
- sources: this._sources.toArray(),
- names: this._names.toArray(),
- mappings: this._serializeMappings()
- };
- if (this._file != null) {
- map.file = this._file;
- }
- if (this._sourceRoot != null) {
- map.sourceRoot = this._sourceRoot;
- }
- if (this._sourcesContents) {
- map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);
- }
-
- return map;
- };
-
-/**
- * Render the source map being generated to a string.
- */
-SourceMapGenerator.prototype.toString =
- function SourceMapGenerator_toString() {
- return JSON.stringify(this.toJSON());
- };
-
-exports.SourceMapGenerator = SourceMapGenerator;
diff --git a/node_modules/source-map/lib/source-node.js b/node_modules/source-map/lib/source-node.js
deleted file mode 100644
index d196a53..0000000
--- a/node_modules/source-map/lib/source-node.js
+++ /dev/null
@@ -1,413 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
-var SourceMapGenerator = require('./source-map-generator').SourceMapGenerator;
-var util = require('./util');
-
-// Matches a Windows-style `\r\n` newline or a `\n` newline used by all other
-// operating systems these days (capturing the result).
-var REGEX_NEWLINE = /(\r?\n)/;
-
-// Newline character code for charCodeAt() comparisons
-var NEWLINE_CODE = 10;
-
-// Private symbol for identifying `SourceNode`s when multiple versions of
-// the source-map library are loaded. This MUST NOT CHANGE across
-// versions!
-var isSourceNode = "$$$isSourceNode$$$";
-
-/**
- * SourceNodes provide a way to abstract over interpolating/concatenating
- * snippets of generated JavaScript source code while maintaining the line and
- * column information associated with the original source code.
- *
- * @param aLine The original line number.
- * @param aColumn The original column number.
- * @param aSource The original source's filename.
- * @param aChunks Optional. An array of strings which are snippets of
- * generated JS, or other SourceNodes.
- * @param aName The original identifier.
- */
-function SourceNode(aLine, aColumn, aSource, aChunks, aName) {
- this.children = [];
- this.sourceContents = {};
- this.line = aLine == null ? null : aLine;
- this.column = aColumn == null ? null : aColumn;
- this.source = aSource == null ? null : aSource;
- this.name = aName == null ? null : aName;
- this[isSourceNode] = true;
- if (aChunks != null) this.add(aChunks);
-}
-
-/**
- * Creates a SourceNode from generated code and a SourceMapConsumer.
- *
- * @param aGeneratedCode The generated code
- * @param aSourceMapConsumer The SourceMap for the generated code
- * @param aRelativePath Optional. The path that relative sources in the
- * SourceMapConsumer should be relative to.
- */
-SourceNode.fromStringWithSourceMap =
- function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {
- // The SourceNode we want to fill with the generated code
- // and the SourceMap
- var node = new SourceNode();
-
- // All even indices of this array are one line of the generated code,
- // while all odd indices are the newlines between two adjacent lines
- // (since `REGEX_NEWLINE` captures its match).
- // Processed fragments are accessed by calling `shiftNextLine`.
- var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);
- var remainingLinesIndex = 0;
- var shiftNextLine = function() {
- var lineContents = getNextLine();
- // The last line of a file might not have a newline.
- var newLine = getNextLine() || "";
- return lineContents + newLine;
-
- function getNextLine() {
- return remainingLinesIndex < remainingLines.length ?
- remainingLines[remainingLinesIndex++] : undefined;
- }
- };
-
- // We need to remember the position of "remainingLines"
- var lastGeneratedLine = 1, lastGeneratedColumn = 0;
-
- // The generate SourceNodes we need a code range.
- // To extract it current and last mapping is used.
- // Here we store the last mapping.
- var lastMapping = null;
-
- aSourceMapConsumer.eachMapping(function (mapping) {
- if (lastMapping !== null) {
- // We add the code from "lastMapping" to "mapping":
- // First check if there is a new line in between.
- if (lastGeneratedLine < mapping.generatedLine) {
- // Associate first line with "lastMapping"
- addMappingWithCode(lastMapping, shiftNextLine());
- lastGeneratedLine++;
- lastGeneratedColumn = 0;
- // The remaining code is added without mapping
- } else {
- // There is no new line in between.
- // Associate the code between "lastGeneratedColumn" and
- // "mapping.generatedColumn" with "lastMapping"
- var nextLine = remainingLines[remainingLinesIndex];
- var code = nextLine.substr(0, mapping.generatedColumn -
- lastGeneratedColumn);
- remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -
- lastGeneratedColumn);
- lastGeneratedColumn = mapping.generatedColumn;
- addMappingWithCode(lastMapping, code);
- // No more remaining code, continue
- lastMapping = mapping;
- return;
- }
- }
- // We add the generated code until the first mapping
- // to the SourceNode without any mapping.
- // Each line is added as separate string.
- while (lastGeneratedLine < mapping.generatedLine) {
- node.add(shiftNextLine());
- lastGeneratedLine++;
- }
- if (lastGeneratedColumn < mapping.generatedColumn) {
- var nextLine = remainingLines[remainingLinesIndex];
- node.add(nextLine.substr(0, mapping.generatedColumn));
- remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);
- lastGeneratedColumn = mapping.generatedColumn;
- }
- lastMapping = mapping;
- }, this);
- // We have processed all mappings.
- if (remainingLinesIndex < remainingLines.length) {
- if (lastMapping) {
- // Associate the remaining code in the current line with "lastMapping"
- addMappingWithCode(lastMapping, shiftNextLine());
- }
- // and add the remaining lines without any mapping
- node.add(remainingLines.splice(remainingLinesIndex).join(""));
- }
-
- // Copy sourcesContent into SourceNode
- aSourceMapConsumer.sources.forEach(function (sourceFile) {
- var content = aSourceMapConsumer.sourceContentFor(sourceFile);
- if (content != null) {
- if (aRelativePath != null) {
- sourceFile = util.join(aRelativePath, sourceFile);
- }
- node.setSourceContent(sourceFile, content);
- }
- });
-
- return node;
-
- function addMappingWithCode(mapping, code) {
- if (mapping === null || mapping.source === undefined) {
- node.add(code);
- } else {
- var source = aRelativePath
- ? util.join(aRelativePath, mapping.source)
- : mapping.source;
- node.add(new SourceNode(mapping.originalLine,
- mapping.originalColumn,
- source,
- code,
- mapping.name));
- }
- }
- };
-
-/**
- * Add a chunk of generated JS to this source node.
- *
- * @param aChunk A string snippet of generated JS code, another instance of
- * SourceNode, or an array where each member is one of those things.
- */
-SourceNode.prototype.add = function SourceNode_add(aChunk) {
- if (Array.isArray(aChunk)) {
- aChunk.forEach(function (chunk) {
- this.add(chunk);
- }, this);
- }
- else if (aChunk[isSourceNode] || typeof aChunk === "string") {
- if (aChunk) {
- this.children.push(aChunk);
- }
- }
- else {
- throw new TypeError(
- "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk
- );
- }
- return this;
-};
-
-/**
- * Add a chunk of generated JS to the beginning of this source node.
- *
- * @param aChunk A string snippet of generated JS code, another instance of
- * SourceNode, or an array where each member is one of those things.
- */
-SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {
- if (Array.isArray(aChunk)) {
- for (var i = aChunk.length-1; i >= 0; i--) {
- this.prepend(aChunk[i]);
- }
- }
- else if (aChunk[isSourceNode] || typeof aChunk === "string") {
- this.children.unshift(aChunk);
- }
- else {
- throw new TypeError(
- "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk
- );
- }
- return this;
-};
-
-/**
- * Walk over the tree of JS snippets in this node and its children. The
- * walking function is called once for each snippet of JS and is passed that
- * snippet and the its original associated source's line/column location.
- *
- * @param aFn The traversal function.
- */
-SourceNode.prototype.walk = function SourceNode_walk(aFn) {
- var chunk;
- for (var i = 0, len = this.children.length; i < len; i++) {
- chunk = this.children[i];
- if (chunk[isSourceNode]) {
- chunk.walk(aFn);
- }
- else {
- if (chunk !== '') {
- aFn(chunk, { source: this.source,
- line: this.line,
- column: this.column,
- name: this.name });
- }
- }
- }
-};
-
-/**
- * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between
- * each of `this.children`.
- *
- * @param aSep The separator.
- */
-SourceNode.prototype.join = function SourceNode_join(aSep) {
- var newChildren;
- var i;
- var len = this.children.length;
- if (len > 0) {
- newChildren = [];
- for (i = 0; i < len-1; i++) {
- newChildren.push(this.children[i]);
- newChildren.push(aSep);
- }
- newChildren.push(this.children[i]);
- this.children = newChildren;
- }
- return this;
-};
-
-/**
- * Call String.prototype.replace on the very right-most source snippet. Useful
- * for trimming whitespace from the end of a source node, etc.
- *
- * @param aPattern The pattern to replace.
- * @param aReplacement The thing to replace the pattern with.
- */
-SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {
- var lastChild = this.children[this.children.length - 1];
- if (lastChild[isSourceNode]) {
- lastChild.replaceRight(aPattern, aReplacement);
- }
- else if (typeof lastChild === 'string') {
- this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);
- }
- else {
- this.children.push(''.replace(aPattern, aReplacement));
- }
- return this;
-};
-
-/**
- * Set the source content for a source file. This will be added to the SourceMapGenerator
- * in the sourcesContent field.
- *
- * @param aSourceFile The filename of the source file
- * @param aSourceContent The content of the source file
- */
-SourceNode.prototype.setSourceContent =
- function SourceNode_setSourceContent(aSourceFile, aSourceContent) {
- this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;
- };
-
-/**
- * Walk over the tree of SourceNodes. The walking function is called for each
- * source file content and is passed the filename and source content.
- *
- * @param aFn The traversal function.
- */
-SourceNode.prototype.walkSourceContents =
- function SourceNode_walkSourceContents(aFn) {
- for (var i = 0, len = this.children.length; i < len; i++) {
- if (this.children[i][isSourceNode]) {
- this.children[i].walkSourceContents(aFn);
- }
- }
-
- var sources = Object.keys(this.sourceContents);
- for (var i = 0, len = sources.length; i < len; i++) {
- aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);
- }
- };
-
-/**
- * Return the string representation of this source node. Walks over the tree
- * and concatenates all the various snippets together to one string.
- */
-SourceNode.prototype.toString = function SourceNode_toString() {
- var str = "";
- this.walk(function (chunk) {
- str += chunk;
- });
- return str;
-};
-
-/**
- * Returns the string representation of this source node along with a source
- * map.
- */
-SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {
- var generated = {
- code: "",
- line: 1,
- column: 0
- };
- var map = new SourceMapGenerator(aArgs);
- var sourceMappingActive = false;
- var lastOriginalSource = null;
- var lastOriginalLine = null;
- var lastOriginalColumn = null;
- var lastOriginalName = null;
- this.walk(function (chunk, original) {
- generated.code += chunk;
- if (original.source !== null
- && original.line !== null
- && original.column !== null) {
- if(lastOriginalSource !== original.source
- || lastOriginalLine !== original.line
- || lastOriginalColumn !== original.column
- || lastOriginalName !== original.name) {
- map.addMapping({
- source: original.source,
- original: {
- line: original.line,
- column: original.column
- },
- generated: {
- line: generated.line,
- column: generated.column
- },
- name: original.name
- });
- }
- lastOriginalSource = original.source;
- lastOriginalLine = original.line;
- lastOriginalColumn = original.column;
- lastOriginalName = original.name;
- sourceMappingActive = true;
- } else if (sourceMappingActive) {
- map.addMapping({
- generated: {
- line: generated.line,
- column: generated.column
- }
- });
- lastOriginalSource = null;
- sourceMappingActive = false;
- }
- for (var idx = 0, length = chunk.length; idx < length; idx++) {
- if (chunk.charCodeAt(idx) === NEWLINE_CODE) {
- generated.line++;
- generated.column = 0;
- // Mappings end at eol
- if (idx + 1 === length) {
- lastOriginalSource = null;
- sourceMappingActive = false;
- } else if (sourceMappingActive) {
- map.addMapping({
- source: original.source,
- original: {
- line: original.line,
- column: original.column
- },
- generated: {
- line: generated.line,
- column: generated.column
- },
- name: original.name
- });
- }
- } else {
- generated.column++;
- }
- }
- });
- this.walkSourceContents(function (sourceFile, sourceContent) {
- map.setSourceContent(sourceFile, sourceContent);
- });
-
- return { code: generated.code, map: map };
-};
-
-exports.SourceNode = SourceNode;
diff --git a/node_modules/source-map/lib/util.js b/node_modules/source-map/lib/util.js
deleted file mode 100644
index 44e0e45..0000000
--- a/node_modules/source-map/lib/util.js
+++ /dev/null
@@ -1,417 +0,0 @@
-/* -*- Mode: js; js-indent-level: 2; -*- */
-/*
- * Copyright 2011 Mozilla Foundation and contributors
- * Licensed under the New BSD license. See LICENSE or:
- * http://opensource.org/licenses/BSD-3-Clause
- */
-
-/**
- * This is a helper function for getting values from parameter/options
- * objects.
- *
- * @param args The object we are extracting values from
- * @param name The name of the property we are getting.
- * @param defaultValue An optional value to return if the property is missing
- * from the object. If this is not specified and the property is missing, an
- * error will be thrown.
- */
-function getArg(aArgs, aName, aDefaultValue) {
- if (aName in aArgs) {
- return aArgs[aName];
- } else if (arguments.length === 3) {
- return aDefaultValue;
- } else {
- throw new Error('"' + aName + '" is a required argument.');
- }
-}
-exports.getArg = getArg;
-
-var urlRegexp = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/;
-var dataUrlRegexp = /^data:.+\,.+$/;
-
-function urlParse(aUrl) {
- var match = aUrl.match(urlRegexp);
- if (!match) {
- return null;
- }
- return {
- scheme: match[1],
- auth: match[2],
- host: match[3],
- port: match[4],
- path: match[5]
- };
-}
-exports.urlParse = urlParse;
-
-function urlGenerate(aParsedUrl) {
- var url = '';
- if (aParsedUrl.scheme) {
- url += aParsedUrl.scheme + ':';
- }
- url += '//';
- if (aParsedUrl.auth) {
- url += aParsedUrl.auth + '@';
- }
- if (aParsedUrl.host) {
- url += aParsedUrl.host;
- }
- if (aParsedUrl.port) {
- url += ":" + aParsedUrl.port
- }
- if (aParsedUrl.path) {
- url += aParsedUrl.path;
- }
- return url;
-}
-exports.urlGenerate = urlGenerate;
-
-/**
- * Normalizes a path, or the path portion of a URL:
- *
- * - Replaces consecutive slashes with one slash.
- * - Removes unnecessary '.' parts.
- * - Removes unnecessary '/..' parts.
- *
- * Based on code in the Node.js 'path' core module.
- *
- * @param aPath The path or url to normalize.
- */
-function normalize(aPath) {
- var path = aPath;
- var url = urlParse(aPath);
- if (url) {
- if (!url.path) {
- return aPath;
- }
- path = url.path;
- }
- var isAbsolute = exports.isAbsolute(path);
-
- var parts = path.split(/\/+/);
- for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {
- part = parts[i];
- if (part === '.') {
- parts.splice(i, 1);
- } else if (part === '..') {
- up++;
- } else if (up > 0) {
- if (part === '') {
- // The first part is blank if the path is absolute. Trying to go
- // above the root is a no-op. Therefore we can remove all '..' parts
- // directly after the root.
- parts.splice(i + 1, up);
- up = 0;
- } else {
- parts.splice(i, 2);
- up--;
- }
- }
- }
- path = parts.join('/');
-
- if (path === '') {
- path = isAbsolute ? '/' : '.';
- }
-
- if (url) {
- url.path = path;
- return urlGenerate(url);
- }
- return path;
-}
-exports.normalize = normalize;
-
-/**
- * Joins two paths/URLs.
- *
- * @param aRoot The root path or URL.
- * @param aPath The path or URL to be joined with the root.
- *
- * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a
- * scheme-relative URL: Then the scheme of aRoot, if any, is prepended
- * first.
- * - Otherwise aPath is a path. If aRoot is a URL, then its path portion
- * is updated with the result and aRoot is returned. Otherwise the result
- * is returned.
- * - If aPath is absolute, the result is aPath.
- * - Otherwise the two paths are joined with a slash.
- * - Joining for example 'http://' and 'www.example.com' is also supported.
- */
-function join(aRoot, aPath) {
- if (aRoot === "") {
- aRoot = ".";
- }
- if (aPath === "") {
- aPath = ".";
- }
- var aPathUrl = urlParse(aPath);
- var aRootUrl = urlParse(aRoot);
- if (aRootUrl) {
- aRoot = aRootUrl.path || '/';
- }
-
- // `join(foo, '//www.example.org')`
- if (aPathUrl && !aPathUrl.scheme) {
- if (aRootUrl) {
- aPathUrl.scheme = aRootUrl.scheme;
- }
- return urlGenerate(aPathUrl);
- }
-
- if (aPathUrl || aPath.match(dataUrlRegexp)) {
- return aPath;
- }
-
- // `join('http://', 'www.example.com')`
- if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {
- aRootUrl.host = aPath;
- return urlGenerate(aRootUrl);
- }
-
- var joined = aPath.charAt(0) === '/'
- ? aPath
- : normalize(aRoot.replace(/\/+$/, '') + '/' + aPath);
-
- if (aRootUrl) {
- aRootUrl.path = joined;
- return urlGenerate(aRootUrl);
- }
- return joined;
-}
-exports.join = join;
-
-exports.isAbsolute = function (aPath) {
- return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp);
-};
-
-/**
- * Make a path relative to a URL or another path.
- *
- * @param aRoot The root path or URL.
- * @param aPath The path or URL to be made relative to aRoot.
- */
-function relative(aRoot, aPath) {
- if (aRoot === "") {
- aRoot = ".";
- }
-
- aRoot = aRoot.replace(/\/$/, '');
-
- // It is possible for the path to be above the root. In this case, simply
- // checking whether the root is a prefix of the path won't work. Instead, we
- // need to remove components from the root one by one, until either we find
- // a prefix that fits, or we run out of components to remove.
- var level = 0;
- while (aPath.indexOf(aRoot + '/') !== 0) {
- var index = aRoot.lastIndexOf("/");
- if (index < 0) {
- return aPath;
- }
-
- // If the only part of the root that is left is the scheme (i.e. http://,
- // file:///, etc.), one or more slashes (/), or simply nothing at all, we
- // have exhausted all components, so the path is not relative to the root.
- aRoot = aRoot.slice(0, index);
- if (aRoot.match(/^([^\/]+:\/)?\/*$/)) {
- return aPath;
- }
-
- ++level;
- }
-
- // Make sure we add a "../" for each component we removed from the root.
- return Array(level + 1).join("../") + aPath.substr(aRoot.length + 1);
-}
-exports.relative = relative;
-
-var supportsNullProto = (function () {
- var obj = Object.create(null);
- return !('__proto__' in obj);
-}());
-
-function identity (s) {
- return s;
-}
-
-/**
- * Because behavior goes wacky when you set `__proto__` on objects, we
- * have to prefix all the strings in our set with an arbitrary character.
- *
- * See https://github.com/mozilla/source-map/pull/31 and
- * https://github.com/mozilla/source-map/issues/30
- *
- * @param String aStr
- */
-function toSetString(aStr) {
- if (isProtoString(aStr)) {
- return '$' + aStr;
- }
-
- return aStr;
-}
-exports.toSetString = supportsNullProto ? identity : toSetString;
-
-function fromSetString(aStr) {
- if (isProtoString(aStr)) {
- return aStr.slice(1);
- }
-
- return aStr;
-}
-exports.fromSetString = supportsNullProto ? identity : fromSetString;
-
-function isProtoString(s) {
- if (!s) {
- return false;
- }
-
- var length = s.length;
-
- if (length < 9 /* "__proto__".length */) {
- return false;
- }
-
- if (s.charCodeAt(length - 1) !== 95 /* '_' */ ||
- s.charCodeAt(length - 2) !== 95 /* '_' */ ||
- s.charCodeAt(length - 3) !== 111 /* 'o' */ ||
- s.charCodeAt(length - 4) !== 116 /* 't' */ ||
- s.charCodeAt(length - 5) !== 111 /* 'o' */ ||
- s.charCodeAt(length - 6) !== 114 /* 'r' */ ||
- s.charCodeAt(length - 7) !== 112 /* 'p' */ ||
- s.charCodeAt(length - 8) !== 95 /* '_' */ ||
- s.charCodeAt(length - 9) !== 95 /* '_' */) {
- return false;
- }
-
- for (var i = length - 10; i >= 0; i--) {
- if (s.charCodeAt(i) !== 36 /* '$' */) {
- return false;
- }
- }
-
- return true;
-}
-
-/**
- * Comparator between two mappings where the original positions are compared.
- *
- * Optionally pass in `true` as `onlyCompareGenerated` to consider two
- * mappings with the same original source/line/column, but different generated
- * line and column the same. Useful when searching for a mapping with a
- * stubbed out mapping.
- */
-function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {
- var cmp = mappingA.source - mappingB.source;
- if (cmp !== 0) {
- return cmp;
- }
-
- cmp = mappingA.originalLine - mappingB.originalLine;
- if (cmp !== 0) {
- return cmp;
- }
-
- cmp = mappingA.originalColumn - mappingB.originalColumn;
- if (cmp !== 0 || onlyCompareOriginal) {
- return cmp;
- }
-
- cmp = mappingA.generatedColumn - mappingB.generatedColumn;
- if (cmp !== 0) {
- return cmp;
- }
-
- cmp = mappingA.generatedLine - mappingB.generatedLine;
- if (cmp !== 0) {
- return cmp;
- }
-
- return mappingA.name - mappingB.name;
-}
-exports.compareByOriginalPositions = compareByOriginalPositions;
-
-/**
- * Comparator between two mappings with deflated source and name indices where
- * the generated positions are compared.
- *
- * Optionally pass in `true` as `onlyCompareGenerated` to consider two
- * mappings with the same generated line and column, but different
- * source/name/original line and column the same. Useful when searching for a
- * mapping with a stubbed out mapping.
- */
-function compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {
- var cmp = mappingA.generatedLine - mappingB.generatedLine;
- if (cmp !== 0) {
- return cmp;
- }
-
- cmp = mappingA.generatedColumn - mappingB.generatedColumn;
- if (cmp !== 0 || onlyCompareGenerated) {
- return cmp;
- }
-
- cmp = mappingA.source - mappingB.source;
- if (cmp !== 0) {
- return cmp;
- }
-
- cmp = mappingA.originalLine - mappingB.originalLine;
- if (cmp !== 0) {
- return cmp;
- }
-
- cmp = mappingA.originalColumn - mappingB.originalColumn;
- if (cmp !== 0) {
- return cmp;
- }
-
- return mappingA.name - mappingB.name;
-}
-exports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;
-
-function strcmp(aStr1, aStr2) {
- if (aStr1 === aStr2) {
- return 0;
- }
-
- if (aStr1 > aStr2) {
- return 1;
- }
-
- return -1;
-}
-
-/**
- * Comparator between two mappings with inflated source and name strings where
- * the generated positions are compared.
- */
-function compareByGeneratedPositionsInflated(mappingA, mappingB) {
- var cmp = mappingA.generatedLine - mappingB.generatedLine;
- if (cmp !== 0) {
- return cmp;
- }
-
- cmp = mappingA.generatedColumn - mappingB.generatedColumn;
- if (cmp !== 0) {
- return cmp;
- }
-
- cmp = strcmp(mappingA.source, mappingB.source);
- if (cmp !== 0) {
- return cmp;
- }
-
- cmp = mappingA.originalLine - mappingB.originalLine;
- if (cmp !== 0) {
- return cmp;
- }
-
- cmp = mappingA.originalColumn - mappingB.originalColumn;
- if (cmp !== 0) {
- return cmp;
- }
-
- return strcmp(mappingA.name, mappingB.name);
-}
-exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;
diff --git a/node_modules/source-map/package.json b/node_modules/source-map/package.json
deleted file mode 100644
index 048e3ae..0000000
--- a/node_modules/source-map/package.json
+++ /dev/null
@@ -1,72 +0,0 @@
-{
- "name": "source-map",
- "description": "Generates and consumes source maps",
- "version": "0.5.7",
- "homepage": "https://github.com/mozilla/source-map",
- "author": "Nick Fitzgerald ",
- "contributors": [
- "Tobias Koppers ",
- "Duncan Beevers ",
- "Stephen Crane ",
- "Ryan Seddon ",
- "Miles Elam ",
- "Mihai Bazon ",
- "Michael Ficarra ",
- "Todd Wolfson ",
- "Alexander Solovyov ",
- "Felix Gnass ",
- "Conrad Irwin ",
- "usrbincc ",
- "David Glasser ",
- "Chase Douglas ",
- "Evan Wallace ",
- "Heather Arthur ",
- "Hugh Kennedy ",
- "David Glasser ",
- "Simon Lydell ",
- "Jmeas Smith ",
- "Michael Z Goddard ",
- "azu ",
- "John Gozde ",
- "Adam Kirkton ",
- "Chris Montgomery ",
- "J. Ryan Stinnett ",
- "Jack Herrington ",
- "Chris Truter ",
- "Daniel Espeset ",
- "Jamie Wong ",
- "Eddy Bruël ",
- "Hawken Rives ",
- "Gilad Peleg ",
- "djchie