From 1beb74f252cf514d2b531e04665a5a12beb83504 Mon Sep 17 00:00:00 2001 From: Arne van Iterson Date: Tue, 31 Dec 2019 15:41:21 +0100 Subject: [PATCH] Added example --- .gitignore | 4 +- README.md | 4 +- examples/shooter/favicon.png | Bin 0 -> 264 bytes examples/shooter/index.html | 20 + examples/shooter/package.json | 21 + .../shooter/res/fonts/Keycaps Regular.ttf | Bin 0 -> 60388 bytes examples/shooter/res/fonts/keycaps.TTF | Bin 0 -> 32044 bytes examples/shooter/res/fonts/visitor1.ttf | Bin 0 -> 27552 bytes examples/shooter/res/images/baddie.png | Bin 0 -> 235 bytes examples/shooter/res/images/bg.png | Bin 0 -> 12719 bytes examples/shooter/res/images/bullet.png | Bin 0 -> 159 bytes examples/shooter/res/images/spaceship.png | Bin 0 -> 405 bytes examples/shooter/res/main.css | 56 ++ examples/shooter/src/main.js | 178 ++++ package-lock.json | 761 +++++++++++++----- package.json | 7 +- startHTTP.bat | 1 - 17 files changed, 842 insertions(+), 210 deletions(-) create mode 100644 examples/shooter/favicon.png create mode 100644 examples/shooter/index.html create mode 100644 examples/shooter/package.json create mode 100644 examples/shooter/res/fonts/Keycaps Regular.ttf create mode 100644 examples/shooter/res/fonts/keycaps.TTF create mode 100644 examples/shooter/res/fonts/visitor1.ttf create mode 100644 examples/shooter/res/images/baddie.png create mode 100644 examples/shooter/res/images/bg.png create mode 100644 examples/shooter/res/images/bullet.png create mode 100644 examples/shooter/res/images/spaceship.png create mode 100644 examples/shooter/res/main.css create mode 100644 examples/shooter/src/main.js delete mode 100644 startHTTP.bat diff --git a/.gitignore b/.gitignore index bb8f8a2..07444d2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -projects/ -node_modules/ \ No newline at end of file +node_modules/ +projects/ \ No newline at end of file diff --git a/README.md b/README.md index 640d513..4c38088 100644 --- a/README.md +++ b/README.md @@ -9,8 +9,8 @@ To try out asdf library and the projects for yourself, you need to: * Download node.js * Clone this repository * Go the the folder where you cloned this repository -* Run startHTTP.bat or run -``` +* Run `npm start` or run +```bash node list.js --dir ./ ``` diff --git a/examples/shooter/favicon.png b/examples/shooter/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..b353a1caaf3fcfdd50497453b2ff0d463a0f5893 GIT binary patch literal 264 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucLCF%=h?3y^w370~qEv>0#LT=By}Z;C1rt33 zJtM=93Yk-ZiYh!^978Ppk50PCc|d`O^>4Ax-4mjBjsz}Ve`SITcNVv(-y`p$_+1i@ zwPgf-Gug$Hf6uM#xKVv{atg<~04}E=(FL1T86qa!s7se((pfrX#gt8Y2Nt++sbsZx zhi&UW_&}F++xN8x_|{xd)v<8oEIJp>(%boFyt=akR{ E0Q4kSp8x;= literal 0 HcmV?d00001 diff --git a/examples/shooter/index.html b/examples/shooter/index.html new file mode 100644 index 0000000..34330e1 --- /dev/null +++ b/examples/shooter/index.html @@ -0,0 +1,20 @@ + + + + Game + + + +
SPACEMANIA 2000
+
+ +
+
+ W
ASD
+ Move +
_
+ Shoot +
+ + + diff --git a/examples/shooter/package.json b/examples/shooter/package.json new file mode 100644 index 0000000..2d0b66b --- /dev/null +++ b/examples/shooter/package.json @@ -0,0 +1,21 @@ +{ + "name": "asdf-shooter", + "version": "1.0.0", + "description": "Spacemania 2000 Shooter Game", + "main": "index.html", + "directories": { + "lib": "lib" + }, + "scripts": { + "test": "na" + }, + "keywords": [ + "shooter", + "spacemania", + "2000", + "game", + "asdf" + ], + "author": "Arne van Iterson", + "license": "ISC" +} \ No newline at end of file diff --git a/examples/shooter/res/fonts/Keycaps Regular.ttf b/examples/shooter/res/fonts/Keycaps Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..36c5e8571f13bf56f6bb19a9fcf8c6f196e5763d GIT binary patch literal 60388 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 literal 0 HcmV?d00001 diff --git a/examples/shooter/res/fonts/keycaps.TTF b/examples/shooter/res/fonts/keycaps.TTF new file mode 100644 index 0000000000000000000000000000000000000000..cb0f2748f791f5414f44674fc3e06670ed432959 GIT binary patch literal 32044 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 literal 0 HcmV?d00001 diff --git a/examples/shooter/res/fonts/visitor1.ttf b/examples/shooter/res/fonts/visitor1.ttf new file mode 100644 index 0000000000000000000000000000000000000000..04ce123d4bbfbe14c4e60982181804b847a96025 GIT binary patch literal 27552 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 Ps8Xvx0u{mUV6OhZx}kpw literal 0 HcmV?d00001 diff --git a/examples/shooter/res/images/baddie.png b/examples/shooter/res/images/baddie.png new file mode 100644 index 0000000000000000000000000000000000000000..4fbd7537c2ed715cb7a05662a56bd884af3ede2d GIT binary patch literal 235 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

ZHoJI{MdRu>zdr=#46LR^(Bg6~avA&n# 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 literal 0 HcmV?d00001 diff --git a/examples/shooter/res/images/bullet.png b/examples/shooter/res/images/bullet.png new file mode 100644 index 0000000000000000000000000000000000000000..78a7026f30c15f4e444db577eecd177babdbffe1 GIT binary patch literal 159 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`X`U{QAr`$yFK^^MpuppDv0gCR zka_9yC8?~>idMNWsR~YX+Hvk^)OD)Bc9ny^X#0U zES1l!<%^s@?SG)-b)Vy!K1V+H-`F$aKKqX(q%lp{@=Ut?;TDx;78{Nm18rpRboFyt I=akR{08tn?1ONa4 literal 0 HcmV?d00001 diff --git a/examples/shooter/res/images/spaceship.png b/examples/shooter/res/images/spaceship.png new file mode 100644 index 0000000000000000000000000000000000000000..4b6965852d4cf4a88a6322b8f7928bf87deac214 GIT binary patch literal 405 zcmV;G0c!qJKtmnf@^@Av$3Eb~@06fnFAWc&R zaJgJYjzuSkUVmONB`P>iV5d(EoQ#rLi~b(I(w?xr1cXbeIJN|FSCqA1?# zTyUQN+Rey>t@B@ZGwKsqB8nmfP}lX}x*dN4L!qI2F@wh&00000NkvXXu0mjf6E(A9 literal 0 HcmV?d00001 diff --git a/examples/shooter/res/main.css b/examples/shooter/res/main.css new file mode 100644 index 0000000..ef11a6d --- /dev/null +++ b/examples/shooter/res/main.css @@ -0,0 +1,56 @@ +@font-face { + font-family: "Visitor"; + font-style: normal; + src: url("./fonts/visitor1.ttf") format("truetype"); +} +@font-face { + font-family: "KeyCaps"; + font-style: normal; + src: url("./fonts/keycaps.TTF") format("truetype"); +} +.title { + font-family: "Visitor"; + font-size: 40px; + color: white; +} +body { + background-color: rgba(42, 42, 46, 1); + text-align: center; + + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +#board { + position: relative; + background-color: #111; + width: 640px; + height: auto; + margin: auto; + border: 5px solid whitesmoke; +} +.controls_container { + padding: 20px; + color: white; + text-align: center; + display: grid; + grid-template-areas: + 'control_1 control_2' + 'control_def_1 control_def_2'; + grid-gap: 10px; + width: 300px; + left: calc(50% - 160px); + position: absolute; +} +.control { + font-family: "KeyCaps"; + font-size: 33px; + display: inline-block; + vertical-align: middle; + width: 150px; +} +.control_definition { + font-family: "Visitor"; + width: 150px; +} diff --git a/examples/shooter/src/main.js b/examples/shooter/src/main.js new file mode 100644 index 0000000..f4515bc --- /dev/null +++ b/examples/shooter/src/main.js @@ -0,0 +1,178 @@ +import asdf from "../../../asdf/index.js"; +const { Container, CanvasRenderer, KeyControls, MouseControls, Text, Texture, Sprite } = asdf; + +// Board Setup + const w = 640; + const h = 300; + const renderer = new CanvasRenderer(w, h); + document.querySelector("#board").appendChild(renderer.view); + +// Setup game variables + let dt = 0; + let last = 0; + let lastShot = 0; + let lastSpawn = 0; + let spawnSpeed = 1.0; + let scoreAmount = 0; + let gameOver = false; + +// Setup game objects + const scene = new Container(); + +// Load game textures + const textures = { + background: new Texture("./res/images/bg.png"), + spaceship: new Texture("./res/images/spaceship.png"), + bullet: new Texture("./res/images/bullet.png"), + baddie: new Texture("./res/images/baddie.png") + } + +// Spaceship + const controls = new KeyControls(); + const ship = new Sprite(textures.spaceship); + ship.pos.x = 120; + ship.pos.y = h / 2 - 16; + ship.update = function(dt, t) { + const { pos } = this; + pos.x += controls.x * dt * 300; + pos.y += controls.y * dt * 300; + + if (pos.x < 0) pos.x = 0; + if (pos.x > w - 32) pos.x = w - 32; + if (pos.y < 0) pos.y = 0; + if (pos.y > h - 32) pos.y = h - 32; + } + +// Bullets + const bullets = new Container(); + function fireBullet(x, y) { + const bullet = new Sprite(textures.bullet); + bullet.pos.x = x; + bullet.pos.y = y; + bullet.update = function(dt, t) { + bullet.pos.x += 400 * dt; + } + bullets.add(bullet); + } + +// Bad guys + const baddies = new Container(); + function spawnBaddie(x, y, speed) { + const baddie = new Sprite(textures.baddie); + baddie.pos.x = x; + baddie.pos.y = y; + baddie.update = function(dt) { + this.pos.x += speed * dt; + this.pos.y += Math.sin(this.pos.x / 15) * 1; + }; + baddies.add(baddie); + } + +// Show score + const score = new Text(`${scoreAmount}`, { + font: "15pt Visitor", + fill: "#000000", + align: "left" + }); + score.pos.x = 50; + score.pos.y = 15; + score.update = function() { + if (gameOver) { + score.pos.x = w / 2; + score.pos.y = (h / 3) * 2; + score.text = `Score: ` + `${scoreAmount}`; + score.style.align = "center"; + score.style.font = "24pt Visitor" + } else { + score.text = `${scoreAmount}`; + } + } + +// Gameover + function doGameOver() { + const gameOverMessage = new Text(`Game Over`, { + font: "45pt Visitor", + fill: "#000000", + align: "center" + }); + gameOverMessage.pos.x = w / 2; + gameOverMessage.pos.y = h / 3; + + scene.add(gameOverMessage); + scene.remove(ship); + scene.remove(baddies); + scene.remove(bullets); + gameOver = true; + } + +// Add game objects + scene.add(new Sprite(textures.background)); + scene.add(ship); + scene.add(bullets); + scene.add(baddies); + scene.add(score); + + +// Looping Code +function loopme(ms) { + requestAnimationFrame(loopme); + const t = ms / 1000; + dt = t - last; + last = t; + + // Game logic code + if (controls.action && t - lastShot > 0.15) { + lastShot = t; + fireBullet(ship.pos.x + 24, ship.pos.y + 10); + } + + // Spawn bad guys + if (t - lastSpawn > spawnSpeed) { + lastSpawn = t; + const speed = -50 - (Math.random() * Math.random() * 100); + const position = Math.random() * (h - 24); + spawnBaddie(w, position, speed); + + spawnSpeed = spawnSpeed < 0.05 ? 0.6 : spawnSpeed * 0.97 + 0.001; + } + + // Destroy bullets when they go out of the screen + baddies.children.forEach(baddie => { + bullets.children.forEach(bullet => { + let dx_b = baddie.pos.x + 16 - (bullet.pos.x + 8); + let dy_b = baddie.pos.y + 16 - (bullet.pos.y + 8); + if (Math.sqrt(dx_b * dx_b + dy_b * dy_b) < 24) { + bullet.dead = true; + baddie.dead = true; + if (!gameOver) { + scoreAmount += Math.floor(t); + } + } + + if (bullet.pos.x > w + 20) { + bullet.dead = true; + } + }); + let dx_s = baddie.pos.x + 16 - (ship.pos.x + 16) + let dy_s = baddie.pos.y + 16 - (ship.pos.y + 16) + if (Math.sqrt(dx_s * dx_s + dy_s * dy_s) < 32) { + if (!gameOver) { + doGameOver(); + } + baddie.dead = true; + } + + if (baddie.pos.x < -32) { + if (!gameOver) { + doGameOver(); + } + baddie.dead = true; + } + }); + + + + scene.update(dt, t); + renderer.render(scene); +} +requestAnimationFrame(loopme); diff --git a/package-lock.json b/package-lock.json index bd5d14f..a4f5847 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,14 @@ { - "requires": true, + "name": "asdf-games", + "version": "1.0.0", "lockfileVersion": 1, + "requires": true, "dependencies": { "accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dev": true, "requires": { "mime-types": "~2.1.24", "negotiator": "0.6.2" @@ -14,17 +17,20 @@ "ansi-regex": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz", - "integrity": "sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk=" + "integrity": "sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk=", + "dev": true }, "ansi-styles": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz", - "integrity": "sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94=" + "integrity": "sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94=", + "dev": true }, "anymatch": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, "requires": { "micromatch": "^3.1.4", "normalize-path": "^2.1.1" @@ -34,6 +40,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, "requires": { "remove-trailing-separator": "^1.0.1" } @@ -43,52 +50,62 @@ "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true }, "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==" + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true }, "arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true }, "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true }, "assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true }, "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==" + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true }, "async-limiter": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true }, "base": { "version": "0.11.2", "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, "requires": { "cache-base": "^1.0.1", "class-utils": "^0.3.5", @@ -103,6 +120,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -111,6 +129,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -119,6 +138,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -127,6 +147,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -138,17 +159,30 @@ "batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true }, "binary-extensions": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } }, "bole": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/bole/-/bole-2.0.0.tgz", "integrity": "sha1-2KocaQRnv7T+Ebh0rLLoOH44JhU=", + "dev": true, "requires": { "core-util-is": ">=1.0.1 <1.1.0-0", "individual": ">=3.0.0 <3.1.0-0", @@ -159,6 +193,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -168,6 +203,7 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, "requires": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -185,6 +221,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -1297,6 +1334,7 @@ "version": "11.6.3", "resolved": "https://registry.npmjs.org/budo/-/budo-11.6.3.tgz", "integrity": "sha512-U9pV6SoSxGduY/wnoIlDwEEUhxtTFqYqoyWvi3B5nJ/abSxuNmolfAfzgOQIEXqtHhPEA4FlM+VNzdEDOjpIjw==", + "dev": true, "requires": { "bole": "^2.0.0", "browserify": "^16.2.3", @@ -1333,12 +1371,14 @@ "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==" + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true }, "cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, "requires": { "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", @@ -1355,6 +1395,7 @@ "version": "0.5.1", "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz", "integrity": "sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ=", + "dev": true, "requires": { "ansi-styles": "^1.1.0", "escape-string-regexp": "^1.0.0", @@ -1367,6 +1408,7 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz", "integrity": "sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA=", + "dev": true, "requires": { "ansi-regex": "^0.2.1" } @@ -1376,12 +1418,14 @@ "charenc": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=" + "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", + "dev": true }, "chokidar": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.6.tgz", - "integrity": "sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g==", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, "requires": { "anymatch": "^2.0.0", "async-each": "^1.0.1", @@ -1401,6 +1445,7 @@ "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, "requires": { "arr-union": "^3.1.0", "define-property": "^0.2.5", @@ -1412,6 +1457,7 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -1422,6 +1468,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, "requires": { "map-visit": "^1.0.0", "object-visit": "^1.0.0" @@ -1430,17 +1477,20 @@ "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==" + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true }, "concat-stream": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, "requires": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", @@ -1451,22 +1501,26 @@ "connect-pushstate": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/connect-pushstate/-/connect-pushstate-1.1.0.tgz", - "integrity": "sha1-vKsiQnHEOWBKD7D2FMCl9WPojiQ=" + "integrity": "sha1-vKsiQnHEOWBKD7D2FMCl9WPojiQ=", + "dev": true }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true }, "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=" + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true }, "cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, "requires": { "nice-try": "^1.0.4", "path-key": "^2.0.1", @@ -1478,17 +1532,20 @@ "crypt": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", - "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=" + "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=", + "dev": true }, "debounce": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.0.tgz", - "integrity": "sha512-mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg==" + "integrity": "sha512-mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg==", + "dev": true }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "requires": { "ms": "2.0.0" } @@ -1496,12 +1553,14 @@ "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=" + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true }, "default-gateway": { "version": "2.7.2", "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-2.7.2.tgz", "integrity": "sha512-lAc4i9QJR0YHSDFdzeBQKfZ1SRDG3hsJNEkrpcZa8QhBfidLAilT60BDEIVUUGqosFp425KOgB3uYqcnQrWafQ==", + "dev": true, "requires": { "execa": "^0.10.0", "ip-regex": "^2.1.0" @@ -1511,6 +1570,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" @@ -1520,6 +1580,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -1528,6 +1589,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -1536,6 +1598,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -1547,57 +1610,68 @@ "defined": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", + "dev": true }, "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true }, "destroy": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true }, "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true }, "es6-promisify": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-6.0.1.tgz", - "integrity": "sha512-J3ZkwbEnnO+fGAKrjVpeUAnZshAdfZvbhQpqfIH9kSAspReRC4nJnu8ewm55b4y9ElyeuhCTzJD0XiH8Tsbhlw==" + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-6.0.2.tgz", + "integrity": "sha512-eO6vFm0JvqGzjWIQA6QVKjxpmELfhWbDUWHm1rPfIbn55mhKPiAa5xpLmQWJrNa629ZIeQ8ZvMAi13kvrjK6Mg==", + "dev": true }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true }, "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true }, "events": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "dev": true }, "execa": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", + "dev": true, "requires": { "cross-spawn": "^6.0.0", "get-stream": "^3.0.0", @@ -1612,6 +1686,7 @@ "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, "requires": { "debug": "^2.3.3", "define-property": "^0.2.5", @@ -1626,6 +1701,7 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -1634,6 +1710,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -1644,6 +1721,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" @@ -1653,6 +1731,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, "requires": { "is-plain-object": "^2.0.4" } @@ -1663,6 +1742,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, "requires": { "array-unique": "^0.3.2", "define-property": "^1.0.0", @@ -1678,6 +1758,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -1686,6 +1767,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -1694,6 +1776,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -1702,6 +1785,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -1710,6 +1794,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -1718,10 +1803,18 @@ } } }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", @@ -1733,6 +1826,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -1742,12 +1836,14 @@ "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true }, "fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, "requires": { "map-cache": "^0.2.2" } @@ -1755,12 +1851,14 @@ "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true }, "from2": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, "requires": { "inherits": "^2.0.1", "readable-stream": "^2.0.0" @@ -1770,38 +1868,45 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/from2-string/-/from2-string-1.1.0.tgz", "integrity": "sha1-GCgrJ9CKJnyzAwzSuLSw8hKvdSo=", + "dev": true, "requires": { "from2": "^2.0.3" } }, "fsevents": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", - "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz", + "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==", + "dev": true, "optional": true, "requires": { + "bindings": "^1.5.0", "nan": "^2.12.1", - "node-pre-gyp": "^0.12.0" + "node-pre-gyp": "*" }, "dependencies": { "abbrev": { "version": "1.1.1", "bundled": true, + "dev": true, "optional": true }, "ansi-regex": { "version": "2.1.1", "bundled": true, + "dev": true, "optional": true }, "aproba": { "version": "1.2.0", "bundled": true, + "dev": true, "optional": true }, "are-we-there-yet": { "version": "1.1.5", "bundled": true, + "dev": true, "optional": true, "requires": { "delegates": "^1.0.0", @@ -1811,11 +1916,13 @@ "balanced-match": { "version": "1.0.0", "bundled": true, + "dev": true, "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, + "dev": true, "optional": true, "requires": { "balanced-match": "^1.0.0", @@ -1823,33 +1930,39 @@ } }, "chownr": { - "version": "1.1.1", + "version": "1.1.3", "bundled": true, + "dev": true, "optional": true }, "code-point-at": { "version": "1.1.0", "bundled": true, + "dev": true, "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, + "dev": true, "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, + "dev": true, "optional": true }, "core-util-is": { "version": "1.0.2", "bundled": true, + "dev": true, "optional": true }, "debug": { - "version": "4.1.1", + "version": "3.2.6", "bundled": true, + "dev": true, "optional": true, "requires": { "ms": "^2.1.1" @@ -1858,34 +1971,40 @@ "deep-extend": { "version": "0.6.0", "bundled": true, + "dev": true, "optional": true }, "delegates": { "version": "1.0.0", "bundled": true, + "dev": true, "optional": true }, "detect-libc": { "version": "1.0.3", "bundled": true, + "dev": true, "optional": true }, "fs-minipass": { - "version": "1.2.5", + "version": "1.2.7", "bundled": true, + "dev": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "^2.6.0" } }, "fs.realpath": { "version": "1.0.0", "bundled": true, + "dev": true, "optional": true }, "gauge": { "version": "2.7.4", "bundled": true, + "dev": true, "optional": true, "requires": { "aproba": "^1.0.3", @@ -1899,8 +2018,9 @@ } }, "glob": { - "version": "7.1.3", + "version": "7.1.6", "bundled": true, + "dev": true, "optional": true, "requires": { "fs.realpath": "^1.0.0", @@ -1914,19 +2034,22 @@ "has-unicode": { "version": "2.0.1", "bundled": true, + "dev": true, "optional": true }, "iconv-lite": { "version": "0.4.24", "bundled": true, + "dev": true, "optional": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } }, "ignore-walk": { - "version": "3.0.1", + "version": "3.0.3", "bundled": true, + "dev": true, "optional": true, "requires": { "minimatch": "^3.0.4" @@ -1935,6 +2058,7 @@ "inflight": { "version": "1.0.6", "bundled": true, + "dev": true, "optional": true, "requires": { "once": "^1.3.0", @@ -1942,18 +2066,21 @@ } }, "inherits": { - "version": "2.0.3", + "version": "2.0.4", "bundled": true, + "dev": true, "optional": true }, "ini": { "version": "1.3.5", "bundled": true, + "dev": true, "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, + "dev": true, "optional": true, "requires": { "number-is-nan": "^1.0.0" @@ -1962,11 +2089,13 @@ "isarray": { "version": "1.0.0", "bundled": true, + "dev": true, "optional": true }, "minimatch": { "version": "3.0.4", "bundled": true, + "dev": true, "optional": true, "requires": { "brace-expansion": "^1.1.7" @@ -1975,11 +2104,13 @@ "minimist": { "version": "0.0.8", "bundled": true, + "dev": true, "optional": true }, "minipass": { - "version": "2.3.5", + "version": "2.9.0", "bundled": true, + "dev": true, "optional": true, "requires": { "safe-buffer": "^5.1.2", @@ -1987,39 +2118,44 @@ } }, "minizlib": { - "version": "1.2.1", + "version": "1.3.3", "bundled": true, + "dev": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "^2.9.0" } }, "mkdirp": { "version": "0.5.1", "bundled": true, + "dev": true, "optional": true, "requires": { "minimist": "0.0.8" } }, "ms": { - "version": "2.1.1", + "version": "2.1.2", "bundled": true, + "dev": true, "optional": true }, "needle": { - "version": "2.3.0", + "version": "2.4.0", "bundled": true, + "dev": true, "optional": true, "requires": { - "debug": "^4.1.0", + "debug": "^3.2.6", "iconv-lite": "^0.4.4", "sax": "^1.2.4" } }, "node-pre-gyp": { - "version": "0.12.0", + "version": "0.14.0", "bundled": true, + "dev": true, "optional": true, "requires": { "detect-libc": "^1.0.2", @@ -2031,12 +2167,13 @@ "rc": "^1.2.7", "rimraf": "^2.6.1", "semver": "^5.3.0", - "tar": "^4" + "tar": "^4.4.2" } }, "nopt": { "version": "4.0.1", "bundled": true, + "dev": true, "optional": true, "requires": { "abbrev": "1", @@ -2044,13 +2181,24 @@ } }, "npm-bundled": { - "version": "1.0.6", + "version": "1.1.1", "bundled": true, + "dev": true, + "optional": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "bundled": true, + "dev": true, "optional": true }, "npm-packlist": { - "version": "1.4.1", + "version": "1.4.7", "bundled": true, + "dev": true, "optional": true, "requires": { "ignore-walk": "^3.0.1", @@ -2060,6 +2208,7 @@ "npmlog": { "version": "4.1.2", "bundled": true, + "dev": true, "optional": true, "requires": { "are-we-there-yet": "~1.1.2", @@ -2071,16 +2220,19 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, + "dev": true, "optional": true }, "object-assign": { "version": "4.1.1", "bundled": true, + "dev": true, "optional": true }, "once": { "version": "1.4.0", "bundled": true, + "dev": true, "optional": true, "requires": { "wrappy": "1" @@ -2089,16 +2241,19 @@ "os-homedir": { "version": "1.0.2", "bundled": true, + "dev": true, "optional": true }, "os-tmpdir": { "version": "1.0.2", "bundled": true, + "dev": true, "optional": true }, "osenv": { "version": "0.1.5", "bundled": true, + "dev": true, "optional": true, "requires": { "os-homedir": "^1.0.0", @@ -2108,16 +2263,19 @@ "path-is-absolute": { "version": "1.0.1", "bundled": true, + "dev": true, "optional": true }, "process-nextick-args": { - "version": "2.0.0", + "version": "2.0.1", "bundled": true, + "dev": true, "optional": true }, "rc": { "version": "1.2.8", "bundled": true, + "dev": true, "optional": true, "requires": { "deep-extend": "^0.6.0", @@ -2129,6 +2287,7 @@ "minimist": { "version": "1.2.0", "bundled": true, + "dev": true, "optional": true } } @@ -2136,6 +2295,7 @@ "readable-stream": { "version": "2.3.6", "bundled": true, + "dev": true, "optional": true, "requires": { "core-util-is": "~1.0.0", @@ -2148,8 +2308,9 @@ } }, "rimraf": { - "version": "2.6.3", + "version": "2.7.1", "bundled": true, + "dev": true, "optional": true, "requires": { "glob": "^7.1.3" @@ -2158,36 +2319,43 @@ "safe-buffer": { "version": "5.1.2", "bundled": true, + "dev": true, "optional": true }, "safer-buffer": { "version": "2.1.2", "bundled": true, + "dev": true, "optional": true }, "sax": { "version": "1.2.4", "bundled": true, + "dev": true, "optional": true }, "semver": { - "version": "5.7.0", + "version": "5.7.1", "bundled": true, + "dev": true, "optional": true }, "set-blocking": { "version": "2.0.0", "bundled": true, + "dev": true, "optional": true }, "signal-exit": { "version": "3.0.2", "bundled": true, + "dev": true, "optional": true }, "string-width": { "version": "1.0.2", "bundled": true, + "dev": true, "optional": true, "requires": { "code-point-at": "^1.0.0", @@ -2198,6 +2366,7 @@ "string_decoder": { "version": "1.1.1", "bundled": true, + "dev": true, "optional": true, "requires": { "safe-buffer": "~5.1.0" @@ -2206,6 +2375,7 @@ "strip-ansi": { "version": "3.0.1", "bundled": true, + "dev": true, "optional": true, "requires": { "ansi-regex": "^2.0.0" @@ -2214,30 +2384,34 @@ "strip-json-comments": { "version": "2.0.1", "bundled": true, + "dev": true, "optional": true }, "tar": { - "version": "4.4.8", + "version": "4.4.13", "bundled": true, + "dev": true, "optional": true, "requires": { "chownr": "^1.1.1", "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", "mkdirp": "^0.5.0", "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" + "yallist": "^3.0.3" } }, "util-deprecate": { "version": "1.0.2", "bundled": true, + "dev": true, "optional": true }, "wide-align": { "version": "1.1.3", "bundled": true, + "dev": true, "optional": true, "requires": { "string-width": "^1.0.2 || 2" @@ -2246,11 +2420,13 @@ "wrappy": { "version": "1.0.2", "bundled": true, + "dev": true, "optional": true }, "yallist": { - "version": "3.0.3", + "version": "3.1.1", "bundled": true, + "dev": true, "optional": true } } @@ -2259,6 +2435,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/garnish/-/garnish-5.2.0.tgz", "integrity": "sha1-vtQ2WTguSxmOM8eTiXvnxwHmVXc=", + "dev": true, "requires": { "chalk": "^0.5.1", "minimist": "^1.1.0", @@ -2276,6 +2453,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/get-ports/-/get-ports-1.0.3.tgz", "integrity": "sha1-9AvVgKyn7A77e5bL/L6wPviUteg=", + "dev": true, "requires": { "map-limit": "0.0.1" } @@ -2283,17 +2461,20 @@ "get-stream": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true }, "get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true }, "glob-parent": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, "requires": { "is-glob": "^3.1.0", "path-dirname": "^1.0.0" @@ -2303,6 +2484,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, "requires": { "is-extglob": "^2.1.0" } @@ -2310,14 +2492,16 @@ } }, "graceful-fs": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz", - "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==" + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", + "dev": true }, "has-ansi": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz", "integrity": "sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4=", + "dev": true, "requires": { "ansi-regex": "^0.2.0" } @@ -2326,6 +2510,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, "requires": { "get-value": "^2.0.6", "has-values": "^1.0.0", @@ -2336,6 +2521,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, "requires": { "is-number": "^3.0.0", "kind-of": "^4.0.0" @@ -2345,6 +2531,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -2352,20 +2539,31 @@ } }, "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "dev": true, "requires": { "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + } } }, "individual": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/individual/-/individual-3.0.0.tgz", - "integrity": "sha1-58pPhfiVewGHNPKFdQ3CLsL5hi0=" + "integrity": "sha1-58pPhfiVewGHNPKFdQ3CLsL5hi0=", + "dev": true }, "inherits": { "version": "2.0.3", @@ -2373,9 +2571,10 @@ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "inject-lr-script": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/inject-lr-script/-/inject-lr-script-2.1.0.tgz", - "integrity": "sha1-5htehMEYczkGy+oB7D10Zpijn2U=", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/inject-lr-script/-/inject-lr-script-2.2.0.tgz", + "integrity": "sha512-lFLjCOg2XP8233AiET5vFePo910vhNIkKHDzUptNhc+4Y7dsp/TNBiusUUpaxzaGd6UDHy0Lozfl9AwmteK6DQ==", + "dev": true, "requires": { "resp-modifier": "^6.0.0" } @@ -2384,6 +2583,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-3.0.1.tgz", "integrity": "sha512-NXXgESC2nNVtU+pqmC9e6R8B1GpKxzsAQhffvh5AL79qKnodd+L7tnEQmTiUAVngqLalPbSqRA7XGIEL5nCd0Q==", + "dev": true, "requires": { "default-gateway": "^2.6.0", "ipaddr.js": "^1.5.2" @@ -2392,17 +2592,20 @@ "ip-regex": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=" + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true }, "ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true }, "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=", + "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -2411,6 +2614,7 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -2421,6 +2625,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, "requires": { "binary-extensions": "^1.0.0" } @@ -2428,12 +2633,14 @@ "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true }, "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=", + "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -2442,6 +2649,7 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -2452,6 +2660,7 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -2461,24 +2670,28 @@ "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==" + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true } } }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true }, "is-finite": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, "requires": { "number-is-nan": "^1.0.0" } @@ -2487,6 +2700,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, "requires": { "is-extglob": "^2.1.1" } @@ -2495,6 +2709,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -2503,6 +2718,7 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -2513,6 +2729,7 @@ "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==", + "dev": true, "requires": { "isobject": "^3.0.1" } @@ -2520,47 +2737,56 @@ "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true }, "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==" + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true }, "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true }, "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true }, "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true }, "map-limit": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/map-limit/-/map-limit-0.0.1.tgz", "integrity": "sha1-63lhAxwPDo0AG/LVb6toXViCLzg=", + "dev": true, "requires": { "once": "~1.3.0" }, @@ -2569,6 +2795,7 @@ "version": "1.3.3", "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", + "dev": true, "requires": { "wrappy": "1" } @@ -2579,6 +2806,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, "requires": { "object-visit": "^1.0.0" } @@ -2587,6 +2815,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz", "integrity": "sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=", + "dev": true, "requires": { "charenc": "~0.0.1", "crypt": "~0.0.1", @@ -2597,6 +2826,7 @@ "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -2616,25 +2846,29 @@ "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true }, "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" + "version": "1.42.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz", + "integrity": "sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ==", + "dev": true }, "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "version": "2.1.25", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.25.tgz", + "integrity": "sha512-5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg==", + "dev": true, "requires": { - "mime-db": "1.40.0" + "mime-db": "1.42.0" } }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, "requires": { "brace-expansion": "^1.1.7" } @@ -2642,12 +2876,14 @@ "minimist": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true }, "mixin-deep": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" @@ -2657,6 +2893,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, "requires": { "is-plain-object": "^2.0.4" } @@ -2666,18 +2903,21 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true }, "nan": { "version": "2.14.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "dev": true, "optional": true }, "nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -2695,22 +2935,26 @@ "negotiator": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, "requires": { "path-key": "^2.0.0" } @@ -2718,17 +2962,20 @@ "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=" + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true }, "object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, "requires": { "copy-descriptor": "^0.1.0", "define-property": "^0.2.5", @@ -2739,6 +2986,7 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -2747,6 +2995,7 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -2757,6 +3006,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, "requires": { "isobject": "^3.0.0" } @@ -2765,6 +3015,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, "requires": { "isobject": "^3.0.1" } @@ -2773,6 +3024,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, "requires": { "ee-first": "1.1.1" } @@ -2780,12 +3032,14 @@ "on-headers": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, "requires": { "wrappy": "1" } @@ -2794,6 +3048,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/opn/-/opn-3.0.3.tgz", "integrity": "sha1-ttmec5n3jWXDuq/+8fsojpuFJDo=", + "dev": true, "requires": { "object-assign": "^4.0.1" } @@ -2801,12 +3056,14 @@ "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true }, "outpipe": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/outpipe/-/outpipe-1.1.1.tgz", "integrity": "sha1-UM+GFjZeh+Ax4ppeyTOaPaRyX6I=", + "dev": true, "requires": { "shell-quote": "^1.4.2" } @@ -2814,12 +3071,14 @@ "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true }, "pad-left": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/pad-left/-/pad-left-2.1.0.tgz", "integrity": "sha1-FuajstRKjhOMsIOMx8tAOk/J6ZQ=", + "dev": true, "requires": { "repeat-string": "^1.5.4" } @@ -2828,6 +3087,7 @@ "version": "0.2.2", "resolved": "https://registry.npmjs.org/pad-right/-/pad-right-0.2.2.tgz", "integrity": "sha1-b7ySQEXSRPKiokRQMGDTv8YAl3Q=", + "dev": true, "requires": { "repeat-string": "^1.5.2" } @@ -2835,42 +3095,50 @@ "parse-ms": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-1.0.1.tgz", - "integrity": "sha1-VjRtR0nXjyNDDKDHE4UK75GqNh0=" + "integrity": "sha1-VjRtR0nXjyNDDKDHE4UK75GqNh0=", + "dev": true }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true }, "pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true }, "path-dirname": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true }, "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=" + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true }, "path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true }, "path-parse": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true }, "pem": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/pem/-/pem-1.14.2.tgz", - "integrity": "sha512-TOnPtq3ZFnCniOZ+rka4pk8UIze9xG1qI+wNE7EmkiR/cg+53uVvk5QbkWZ7M6RsuOxzz62FW1hlAobJr/lTOA==", + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/pem/-/pem-1.14.3.tgz", + "integrity": "sha512-Q+AMVMD3fzeVvZs5PHeI+pVt0hgZY2fjhkliBW43qyONLgCXPVk1ryim43F9eupHlNGLJNT5T/NNrzhUdiC5Zg==", + "dev": true, "requires": { "es6-promisify": "^6.0.0", "md5": "^2.2.1", @@ -2881,22 +3149,26 @@ "plur": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/plur/-/plur-1.0.0.tgz", - "integrity": "sha1-24XGgU9eXlo7Se/CjWBP7GKXUVY=" + "integrity": "sha1-24XGgU9eXlo7Se/CjWBP7GKXUVY=", + "dev": true }, "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=" + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true }, "prettier-bytes": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/prettier-bytes/-/prettier-bytes-1.0.4.tgz", - "integrity": "sha1-mUsCqkb2mcULYle1+qp/4lV+YtY=" + "integrity": "sha1-mUsCqkb2mcULYle1+qp/4lV+YtY=", + "dev": true }, "pretty-ms": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-2.1.0.tgz", "integrity": "sha1-QlfCVt8/sLRR1q/6qwIYhBJpgdw=", + "dev": true, "requires": { "is-finite": "^1.0.1", "parse-ms": "^1.0.0", @@ -2906,12 +3178,14 @@ "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==" + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true }, "query-string": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "dev": true, "requires": { "object-assign": "^4.1.0", "strict-uri-encode": "^1.0.0" @@ -2920,12 +3194,14 @@ "range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true }, "readable-stream": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -2940,6 +3216,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, "requires": { "graceful-fs": "^4.1.11", "micromatch": "^3.1.10", @@ -2950,6 +3227,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, "requires": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" @@ -2959,6 +3237,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/reload-css/-/reload-css-1.0.2.tgz", "integrity": "sha1-avsRFi4jFP7M2tbcX96CH9cxgzE=", + "dev": true, "requires": { "query-string": "^4.2.3" } @@ -2966,22 +3245,26 @@ "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=" + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true }, "repeat-element": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true }, "repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true }, "resolve": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", - "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.1.tgz", + "integrity": "sha512-fn5Wobh4cxbLzuHaE+nphztHy43/b++4M6SsGFC2gB8uYwf0C8LcarfCz1un7UTW8OFQg9iNjZ4xpcFVGebDPg==", + "dev": true, "requires": { "path-parse": "^1.0.6" } @@ -2989,12 +3272,14 @@ "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true }, "resp-modifier": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz", "integrity": "sha1-sSTeXE+6/LpUH0j/pzlw9KpFa08=", + "dev": true, "requires": { "debug": "^2.2.0", "minimatch": "^3.0.2" @@ -3003,22 +3288,26 @@ "ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true }, "right-now": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/right-now/-/right-now-1.0.0.tgz", - "integrity": "sha1-bolgne69fc2vja7Mmuo5z1haCRg=" + "integrity": "sha1-bolgne69fc2vja7Mmuo5z1haCRg=", + "dev": true }, "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==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true }, "safe-regex": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, "requires": { "ret": "~0.1.10" } @@ -3026,12 +3315,14 @@ "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true }, "send": { "version": "0.17.1", "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dev": true, "requires": { "debug": "2.6.9", "depd": "~1.1.2", @@ -3048,32 +3339,11 @@ "statuses": "~1.5.0" }, "dependencies": { - "http-errors": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", - "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, "ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true } } }, @@ -3081,6 +3351,7 @@ "version": "1.9.1", "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, "requires": { "accepts": "~1.3.4", "batch": "0.6.1", @@ -3089,12 +3360,33 @@ "http-errors": "~1.6.2", "mime-types": "~2.1.17", "parseurl": "~1.3.2" + }, + "dependencies": { + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + } } }, "serve-static": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "dev": true, "requires": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", @@ -3106,6 +3398,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", @@ -3117,6 +3410,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -3124,14 +3418,16 @@ } }, "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, "requires": { "shebang-regex": "^1.0.0" } @@ -3139,22 +3435,26 @@ "shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true }, "shell-quote": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.1.tgz", - "integrity": "sha512-2kUqeAGnMAu6YrTPX4E3LfxacH9gKljzVjlkUeSqY0soGwK4KLl7TURXCem712tkhBCeeaFP9QK4dKn88s3Icg==" + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", + "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==", + "dev": true }, "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true }, "simple-html-index": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/simple-html-index/-/simple-html-index-1.5.0.tgz", "integrity": "sha1-LJPurrrAAdihNfwAIr1K3o9YmW8=", + "dev": true, "requires": { "from2-string": "^1.1.0" } @@ -3163,6 +3463,7 @@ "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, "requires": { "base": "^0.11.1", "debug": "^2.2.0", @@ -3178,6 +3479,7 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -3186,6 +3488,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -3196,6 +3499,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, "requires": { "define-property": "^1.0.0", "isobject": "^3.0.0", @@ -3206,6 +3510,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -3214,6 +3519,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -3222,6 +3528,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -3230,6 +3537,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -3242,6 +3550,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, "requires": { "kind-of": "^3.2.0" }, @@ -3250,6 +3559,7 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -3259,14 +3569,16 @@ "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true }, "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "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==", + "dev": true, "requires": { - "atob": "^2.1.1", + "atob": "^2.1.2", "decode-uri-component": "^0.2.0", "resolve-url": "^0.2.1", "source-map-url": "^0.4.0", @@ -3276,12 +3588,14 @@ "source-map-url": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true }, "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==", + "dev": true, "requires": { "extend-shallow": "^3.0.0" } @@ -3290,6 +3604,7 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/split2/-/split2-0.2.1.tgz", "integrity": "sha1-At2smtwD7Au3jBKC7Aecpuha6QA=", + "dev": true, "requires": { "through2": "~0.6.1" } @@ -3297,12 +3612,14 @@ "stacked": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/stacked/-/stacked-1.1.1.tgz", - "integrity": "sha1-LH+jjMfjejQRp3zY55LeRI+faXU=" + "integrity": "sha1-LH+jjMfjejQRp3zY55LeRI+faXU=", + "dev": true }, "static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, "requires": { "define-property": "^0.2.5", "object-copy": "^0.1.0" @@ -3312,6 +3629,7 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -3321,12 +3639,14 @@ "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true }, "stdout-stream": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", + "dev": true, "requires": { "readable-stream": "^2.0.1" } @@ -3334,12 +3654,14 @@ "strict-uri-encode": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true }, "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==", + "dev": true, "requires": { "safe-buffer": "~5.1.0" } @@ -3348,6 +3670,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, "requires": { "ansi-regex": "^2.0.0" }, @@ -3355,19 +3678,22 @@ "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true } } }, "strip-eof": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true }, "subarg": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", + "dev": true, "requires": { "minimist": "^1.1.0" } @@ -3375,12 +3701,14 @@ "supports-color": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz", - "integrity": "sha1-2S3iaU6z9nMjlz1649i1W0wiGQo=" + "integrity": "sha1-2S3iaU6z9nMjlz1649i1W0wiGQo=", + "dev": true }, "term-color": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/term-color/-/term-color-1.0.1.tgz", "integrity": "sha1-OOGSVTpHPjXkFgT/UZmEa/gRejo=", + "dev": true, "requires": { "ansi-styles": "2.0.1", "supports-color": "1.3.1" @@ -3389,12 +3717,14 @@ "ansi-styles": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.0.1.tgz", - "integrity": "sha1-sDP1f5Pi0oreuLwRE4+hPaD9IKM=" + "integrity": "sha1-sDP1f5Pi0oreuLwRE4+hPaD9IKM=", + "dev": true }, "supports-color": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-1.3.1.tgz", - "integrity": "sha1-FXWN8J2P87SswwdTn6vicJXhBC0=" + "integrity": "sha1-FXWN8J2P87SswwdTn6vicJXhBC0=", + "dev": true } } }, @@ -3402,6 +3732,7 @@ "version": "0.6.5", "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true, "requires": { "readable-stream": ">=1.0.33-1 <1.1.0-0", "xtend": ">=4.0.0 <4.1.0-0" @@ -3410,12 +3741,14 @@ "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true }, "readable-stream": { "version": "1.0.34", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", @@ -3426,7 +3759,8 @@ "string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true } } }, @@ -3434,6 +3768,7 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -3442,6 +3777,7 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -3452,6 +3788,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, "requires": { "define-property": "^2.0.2", "extend-shallow": "^3.0.2", @@ -3463,6 +3800,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, "requires": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" @@ -3471,17 +3809,20 @@ "toidentifier": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true }, "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true }, "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==", + "dev": true, "requires": { "arr-union": "^3.1.0", "get-value": "^2.0.6", @@ -3493,6 +3834,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, "requires": { "has-value": "^0.3.1", "isobject": "^3.0.0" @@ -3502,6 +3844,7 @@ "version": "0.3.1", "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, "requires": { "get-value": "^2.0.3", "has-values": "^0.1.4", @@ -3512,6 +3855,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, "requires": { "isarray": "1.0.0" } @@ -3521,39 +3865,46 @@ "has-values": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true } } }, "upath": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", - "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true }, "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true }, "url-trim": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/url-trim/-/url-trim-1.0.0.tgz", - "integrity": "sha1-QAV+LxZLiOXaynJp2kfm0d2Detw=" + "integrity": "sha1-QAV+LxZLiOXaynJp2kfm0d2Detw=", + "dev": true }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true }, "watchify": { "version": "3.11.1", "resolved": "https://registry.npmjs.org/watchify/-/watchify-3.11.1.tgz", "integrity": "sha512-WwnUClyFNRMB2NIiHgJU9RQPQNqVeFk7OmZaWf5dC5EnNa0Mgr7imBydbaJ7tGTuPM2hz1Cb4uiBvK9NVxMfog==", + "dev": true, "requires": { "anymatch": "^2.0.0", "browserify": "^16.1.0", @@ -3568,6 +3919,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, "requires": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" @@ -3579,6 +3931,7 @@ "version": "1.8.2", "resolved": "https://registry.npmjs.org/watchify-middleware/-/watchify-middleware-1.8.2.tgz", "integrity": "sha512-A+x5K0mHVEK2WSLOEbazcXDFnSlralMZzk364Ea39F4xFl2jGl4VQLLN5HwrnRzpF5/Ggf1Q2he0HpJtflUiHg==", + "dev": true, "requires": { "concat-stream": "^1.5.0", "debounce": "^1.0.0", @@ -3592,6 +3945,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, "requires": { "isexe": "^2.0.0" } @@ -3599,12 +3953,14 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true }, "ws": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "dev": true, "requires": { "async-limiter": "~1.0.0" } @@ -3612,7 +3968,8 @@ "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true } } } diff --git a/package.json b/package.json index efffb7d..9dac8b3 100644 --- a/package.json +++ b/package.json @@ -4,13 +4,14 @@ "description": "Me making games using HTML5 Games: Novice to Ninja by Sitepoint.", "main": "list.js", "dependencies": { - "browserify": "^16.5.0", + "browserify": "^16.5.0" + }, + "devDependencies": { "budo": "^11.6.3", "serve-index": "^1.9.1" }, - "devDependencies": {}, "scripts": { - "test": "startHTTP.bat" + "start": "node list.js --dir ./ --live" }, "repository": { "type": "git", diff --git a/startHTTP.bat b/startHTTP.bat deleted file mode 100644 index 59dcf79..0000000 --- a/startHTTP.bat +++ /dev/null @@ -1 +0,0 @@ -node list.js --dir ./ --live \ No newline at end of file