From c209fa92499236542c2af8c5e0b80502fa6086d0 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Fri, 16 Mar 2018 11:20:15 -0400 Subject: [PATCH 01/21] Fix build script for mac --- app/build_mac.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build_mac.sh b/app/build_mac.sh index 2cc68a5..8c1c509 100644 --- a/app/build_mac.sh +++ b/app/build_mac.sh @@ -4,7 +4,7 @@ #build dmg for mac install sleep 5s mkdir ../dist/installers -./node_modules/.bin/electron-installer-dmg ../dist/mcopy-darwin-x64/mcopy.app mcopy --out=../dist/installers --icon=assets/icons/icon.icns --overwrite +./node_modules/.bin/electron-installer-dmg ../dist/mcopy-app-darwin-x64/mcopy-app.app mcopy-app --out=../dist/installers --icon=assets/icons/icon.icns --overwrite # Path to the icon file that will be the app icon in the DMG window. # --icon-size= How big to make the icon for the app in the DMG. [Default: `80`]. # --background= Path to a PNG image to use as the background of the DMG. From bab6593fba456cad41f792e8a01c1486ecd7b310 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Fri, 16 Mar 2018 11:26:09 -0400 Subject: [PATCH 02/21] Add test script to the package file --- app/package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/package.json b/app/package.json index fc32e17..6e8fb2b 100644 --- a/app/package.json +++ b/app/package.json @@ -6,7 +6,8 @@ "scripts": { "start": "./node_modules/.bin/electron main.js", "dev": "./node_modules/.bin/gulp && ./node_modules/.bin/electron main.js -d", - "install": "./node_modules/.bin/electron-rebuild" + "install": "./node_modules/.bin/electron-rebuild", + "test": "./node_modules/.bin/qunit test/index.js" }, "repository": { "type": "git", From 1373d1d6907adf1f5b07098e7c83069330357688 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Fri, 16 Mar 2018 11:30:54 -0400 Subject: [PATCH 03/21] Start mscript work by adding tests. Will be relying on qunit. --- app/lib/mscript/index.js | 23 ++---- app/test/arduino_tests.js | 31 ++++++++ app/test/index.js | 3 + app/test/mscript_test.js | 146 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 185 insertions(+), 18 deletions(-) create mode 100644 app/test/arduino_tests.js create mode 100644 app/test/index.js create mode 100644 app/test/mscript_test.js diff --git a/app/lib/mscript/index.js b/app/lib/mscript/index.js index 51deaa0..4a2ef53 100644 --- a/app/lib/mscript/index.js +++ b/app/lib/mscript/index.js @@ -1,10 +1,11 @@ -var fs, - input; +'use strict'; -var mscript = {}; +let fs; +let input; + +const mscript = {}; mscript.arg = function arg (shrt, lng) { - 'use strict'; if (process.argv.indexOf(shrt) !== -1 || process.argv.indexOf(lng) !== -1) { return true; @@ -13,7 +14,6 @@ mscript.arg = function arg (shrt, lng) { }; mscript.arg_pos = function arg_pos (shrt, lng) { - 'use strict'; var pos = -1; pos = process.argv.indexOf(shrt); if (pos === -1) { @@ -41,7 +41,6 @@ mscript.alts = { }; mscript.state = {}; mscript.state_clear = function state_clear () { - 'use strict'; mscript.state = { cam : 0, proj : 0, @@ -51,7 +50,6 @@ mscript.state_clear = function state_clear () { }; }; mscript.alts_unique = function alts_unique () { - 'use strict'; var ids = Object.keys(mscript.alts), all = []; for (var i = 0; i < ids.length; i++) { @@ -63,7 +61,6 @@ mscript.alts_unique = function alts_unique () { } }; mscript.interpret = function interpret (text, callback) { - 'use strict'; mscript.state_clear(); if (typeof text === 'undefined') { mscript.fail('No input'); @@ -218,15 +215,12 @@ mscript.interpret = function interpret (text, callback) { } }; mscript.last_loop = function last_loop () { - 'use strict'; return mscript.state.loops[mscript.state.loops.length - 1]; }; mscript.parent_loop = function parent_loop () { - 'use script'; return mscript.state.loops[mscript.state.loops.length - 2]; }; mscript.state_update = function state_update (cmd, val) { - 'use strict'; if (cmd === 'END') { for (var i = 0; i < val; i++) { if (mscript.state.rec === 0) { @@ -278,7 +272,6 @@ mscript.state_update = function state_update (cmd, val) { } }; mscript.str_to_arr = function str_to_arr (str, cmd) { - 'use strict'; var cnt = str.split(cmd), c = parseInt(cnt[1]), arr = []; @@ -294,7 +287,6 @@ mscript.str_to_arr = function str_to_arr (str, cmd) { return arr; }; mscript.light_state = function light_state (str) { - 'use strict'; //add parsers for other color spaces var color = str.replace('L ', '').trim(); mscript.state.color = color; @@ -322,16 +314,13 @@ mscript.light_to_arr = function light_to_arr (str, cmd) { return arr; }; mscript.loop_count = function loop_count (str) { - 'use strict'; return parseInt(str.split('LOOP ')[1]); }; mscript.fail = function fail (reason) { - 'use strict'; console.error(JSON.stringify({success: false, error: true, msg : reason})); if (process) process.exit(); }; mscript.output = function output (data) { - 'use strict'; var json = true; //default if (mscript.arg('-j', '--json')) { json = true; @@ -351,7 +340,6 @@ mscript.output = function output (data) { } }; mscript.init = function init () { - 'use strict'; if (mscript.arg('-t', '--tests')) { return mscript.tests(); } @@ -381,7 +369,6 @@ mscript.init = function init () { }; mscript.tests = function tests () { - 'use strict'; console.log('Running mscript tests'); console.time('Tests took'); diff --git a/app/test/arduino_tests.js b/app/test/arduino_tests.js new file mode 100644 index 0000000..dc6f2fe --- /dev/null +++ b/app/test/arduino_tests.js @@ -0,0 +1,31 @@ +/*var fs = require('fs'), + mcopy = {}; + +mcopy.cfg = JSON.parse(fs.readFileSync('./cfg.json', 'utf8')); +mcopy.arduino = require('../lib/mcopy-arduino.js')(mcopy.cfg); + +mcopy.arduino.colorTest = function (color, cb) { + mcopy.arduino.send(mcopy.cfg.arduino.cmd.light, function () { + console.log('Light set to ' + color); + if (cb) setTimeout(cb, 20); + }); + mcopy.arduino.string(color); +}; + +mcopy.arduino.init(function (success) { + mcopy.arduino.connect(function () { + + mcopy.arduino.colorTest('255,140,70', function () { + mcopy.arduino.colorTest('5,0,0', function () { + mcopy.arduino.colorTest('255,255,255', function () { + mcopy.arduino.colorTest('160,14,250', function () { + mcopy.arduino.colorTest('5,32,200', function () { + + });//5 + });//4 + });//3 + });//2 + });//1 + + }); +});*/ \ No newline at end of file diff --git a/app/test/index.js b/app/test/index.js new file mode 100644 index 0000000..6f4720e --- /dev/null +++ b/app/test/index.js @@ -0,0 +1,3 @@ +'use strict' + +const mscript_test = require('./mscript_test.js'); \ No newline at end of file diff --git a/app/test/mscript_test.js b/app/test/mscript_test.js new file mode 100644 index 0000000..c8d2e1c --- /dev/null +++ b/app/test/mscript_test.js @@ -0,0 +1,146 @@ +'use strict'; + +const mscript = require('../lib/mscript'); + +QUnit.test(`Basic functions`, (assert) => { + const script = 'CF\nPF\nCB\nPB\nBF\nBB'; + let pass = false; + mscript.interpret(script, (obj) => { + if (obj.success === true + && obj.cam === 0 + && obj.proj === 0 + && obj.arr.length === 6) { + pass = true; + } + assert.ok(pass, `Simple script compiles`) + }); +}) +/* + + console.log('Basic function test...'); + mscript.interpret(script, function (obj) { + if (obj.success === true + && obj.cam === 0 + && obj.proj === 0 + && obj.arr.length === 6) { + console.log('...Passed!'); + } else { + fail(script, obj); + } + }); + + var script = 'CF\nPF\nCB\nPB\nBF\nBB'; + console.log('Functions with integers test...'); + mscript.interpret(script, function (obj) { + if (obj.success === true + && obj.cam === 0 + && obj.proj === 0 + && obj.arr.length === 6) { + console.log('...Passed!'); + } else { + fail(script, obj); + } + }); + + script = 'CF 1000\nCB 1000\nSET PROJ 200\nPB 200'; + console.log('Basic state test...'); + mscript.interpret(script, function (obj) { + if (obj.success === true + && obj.cam === 0 + && obj.proj === 0) { + console.log('...Passed!'); + } else { + fail(script, obj); + } + }); + + script = 'LOOP 10\nCF 3\nPF 1\nEND LOOP'; + console.log('Basic loop test...'); + mscript.interpret(script, function (obj) { + if (obj.success === true + && obj.cam === 30 + && obj.proj === 10 + && obj.arr.length === 40) { + console.log('...Passed!'); + } else { + fail(script, obj); + } + }); + + script = 'LOOP 4\nLOOP 4\nPF\nBF\nEND LOOP\nEND LOOP'; + console.log('Recursive loop test...'); + mscript.interpret(script, function (obj) { + if (obj.success === true + && obj.cam === 16 + && obj.proj === 16 + && obj.arr.length === 32) { + console.log('...Passed!'); + } else { + fail(script, obj); + } + }); + + //Lighting tests + script = 'L 255,255,255\nCF\nPF'; + console.log('Basic light test...'); + mscript.interpret(script, function (obj) { + if (obj.success === true + && obj.cam === 1 + && obj.proj === 1 + && obj.arr.length === 2 + && obj.light.length === 2 + && obj.light[0] === '255,255,255' + && obj.light[1] === '') { + console.log('...Passed!'); + } else { + fail(script, obj); + } + }); + script = 'L 255,255,255\nCF\nPF\nBF'; + console.log('Basic black test...'); + mscript.interpret(script, function (obj) { + if (obj.success === true + && obj.cam === 2 + && obj.proj === 1 + && obj.arr.length === 3 + && obj.light.length === 3 + && obj.light[0] === '255,255,255' + && obj.light[1] === '' + && obj.light[2] === mscript.black) { + console.log('...Passed!'); + } else { + fail(script, obj); + } + }); + script = 'LOOP 2\nL 1,1,1\nCF\nL 2,2,2\nCF\nEND'; + console.log('Basic light loop test...'); + mscript.interpret(script, function (obj) { + if (obj.success === true + && obj.cam === 4 + && obj.proj === 0 + && obj.arr.length === 4 + && obj.light.length === 4 + && obj.light[0] === '1,1,1' + && obj.light[3] === '2,2,2') { + console.log('...Passed!'); + } else { + fail(script, obj); + } + }); + + //LOOP W/ CAM and PROJ + script = 'LOOP 2\nCAM 4\nPROJ 4\nEND'; + console.log('Basic cam/proj loop test...'); + mscript.interpret(script, function (obj) { + if (obj.success === true + && obj.cam === 8 + && obj.proj === 8 + && obj.arr.length === 16 + && obj.light.length === 16 + && obj.light[0] === mscript.black) { + console.log('...Passed!'); + } else { + fail(script, obj); + } + }); +*/ \ No newline at end of file From a6a910c9093bc30e358d48625acc85a81a44cf5f Mon Sep 17 00:00:00 2001 From: mmcw-dev Date: Fri, 16 Mar 2018 12:22:34 -0400 Subject: [PATCH 04/21] Converted all mscript tests to Qunit tests. --- app/test/mscript_test.js | 170 +++++++++++++++++++------------------ app/tests/arduino_tests.js | 31 ------- app/tests/mscript_test.js | 3 - 3 files changed, 87 insertions(+), 117 deletions(-) delete mode 100644 app/tests/arduino_tests.js delete mode 100644 app/tests/mscript_test.js diff --git a/app/test/mscript_test.js b/app/test/mscript_test.js index c8d2e1c..325b148 100644 --- a/app/test/mscript_test.js +++ b/app/test/mscript_test.js @@ -3,87 +3,109 @@ const mscript = require('../lib/mscript'); QUnit.test(`Basic functions`, (assert) => { - const script = 'CF\nPF\nCB\nPB\nBF\nBB'; - let pass = false; - mscript.interpret(script, (obj) => { + const script1 = 'CF\nPF\nCB\nPB\nBF\nBB'; + const script2 = `CF 3\nPF 3` + assert.expect( 2 ); + + mscript.interpret(script1, (obj) => { + let pass = false; if (obj.success === true && obj.cam === 0 && obj.proj === 0 && obj.arr.length === 6) { pass = true; } - assert.ok(pass, `Simple script compiles`) + assert.ok(pass, `Simple script1 compiles`) + }); + mscript.interpret(script2, (obj) => { + let pass = false; + if (obj.success === true + && obj.cam === 3 + && obj.proj === 3 + && obj.arr.length === 6) { + pass = true; + } + assert.ok(pass, `Simple script2 compiles`) + }); +}); + +QUnit.test(`Commands with integers`, (assert) => { + const script = 'CF 5\nPF 5\nCB 5\nPB 5\nBF 3\nBB 3'; + assert.expect( 1 ); + mscript.interpret(script, (obj) => { + let pass = false; + if (obj.success === true + && obj.cam === 0 + && obj.proj === 0 + && obj.arr.length === 26) { + pass = true; + } + assert.ok(pass, `Script with integers cancels out count, but generates list of commands`) }); }) -/* - - console.log('Basic function test...'); - mscript.interpret(script, function (obj) { - if (obj.success === true - && obj.cam === 0 - && obj.proj === 0 - && obj.arr.length === 6) { - console.log('...Passed!'); - } else { - fail(script, obj); - } - }); - var script = 'CF\nPF\nCB\nPB\nBF\nBB'; - console.log('Functions with integers test...'); - mscript.interpret(script, function (obj) { - if (obj.success === true - && obj.cam === 0 - && obj.proj === 0 - && obj.arr.length === 6) { - console.log('...Passed!'); - } else { - fail(script, obj); - } - }); - script = 'CF 1000\nCB 1000\nSET PROJ 200\nPB 200'; - console.log('Basic state test...'); - mscript.interpret(script, function (obj) { +QUnit.test('State', (assert) => { + const script = 'CF 1000\nCB 1000\nSET PROJ 200\nPB 200'; + assert.expect(1); + mscript.interpret(script, (obj) => { + let pass = false; if (obj.success === true && obj.cam === 0 && obj.proj === 0) { - console.log('...Passed!'); - } else { - fail(script, obj); + pass = true; } + assert.ok(pass, `Basic state test`); }); +}); - script = 'LOOP 10\nCF 3\nPF 1\nEND LOOP'; - console.log('Basic loop test...'); - mscript.interpret(script, function (obj) { +QUnit.test('Loop', (assert) => { + const script1 = 'LOOP 10\nCF 3\nPF 1\nEND LOOP'; + assert.expect(3); + mscript.interpret(script1, (obj) => { + let pass = false; if (obj.success === true && obj.cam === 30 && obj.proj === 10 && obj.arr.length === 40) { - console.log('...Passed!'); - } else { - fail(script, obj); + pass = true; } - }); + assert.ok(pass, 'Basic loop'); - script = 'LOOP 4\nLOOP 4\nPF\nBF\nEND LOOP\nEND LOOP'; - console.log('Recursive loop test...'); - mscript.interpret(script, function (obj) { + }); + const script2 = 'LOOP 4\nLOOP 4\nPF\nBF\nEND LOOP\nEND LOOP'; + mscript.interpret(script2, (obj) => { + let pass = false; if (obj.success === true && obj.cam === 16 && obj.proj === 16 && obj.arr.length === 32) { - console.log('...Passed!'); - } else { - fail(script, obj); + pass = true; } + assert.ok(pass, 'Recursive loop'); }); + //LOOP W/ CAM and PROJ + const script3 = 'LOOP 2\nCAM 4\nPROJ 4\nEND'; + mscript.interpret(script3, (obj) => { + let pass = false; + if (obj.success === true + && obj.cam === 8 + && obj.proj === 8 + && obj.arr.length === 16 + && obj.light.length === 16 + && obj.light[0] === mscript.black) { + pass = true; + } + assert.ok(pass, 'Basic cam/proj loop'); + }); +}); +QUnit.test('Light', (assert) => { //Lighting tests - script = 'L 255,255,255\nCF\nPF'; - console.log('Basic light test...'); - mscript.interpret(script, function (obj) { + const script1 = 'L 255,255,255\nCF\nPF'; + assert.expect(3); + mscript.interpret(script1, (obj) => { + let pass = false; if (obj.success === true && obj.cam === 1 && obj.proj === 1 @@ -91,14 +113,14 @@ QUnit.test(`Basic functions`, (assert) => { && obj.light.length === 2 && obj.light[0] === '255,255,255' && obj.light[1] === '') { - console.log('...Passed!'); - } else { - fail(script, obj); + pass = true; } + assert.ok(pass, 'Basic light'); }); - script = 'L 255,255,255\nCF\nPF\nBF'; - console.log('Basic black test...'); - mscript.interpret(script, function (obj) { + + const script2 = 'L 255,255,255\nCF\nPF\nBF'; + mscript.interpret(script2, (obj) => { + let pass = false; if (obj.success === true && obj.cam === 2 && obj.proj === 1 @@ -107,14 +129,13 @@ QUnit.test(`Basic functions`, (assert) => { && obj.light[0] === '255,255,255' && obj.light[1] === '' && obj.light[2] === mscript.black) { - console.log('...Passed!'); - } else { - fail(script, obj); + pass = true; } + assert.ok(pass, 'Basic black'); }); - script = 'LOOP 2\nL 1,1,1\nCF\nL 2,2,2\nCF\nEND'; - console.log('Basic light loop test...'); - mscript.interpret(script, function (obj) { + const script3 = 'LOOP 2\nL 1,1,1\nCF\nL 2,2,2\nCF\nEND'; + mscript.interpret(script3, (obj) => { + let pass = false; if (obj.success === true && obj.cam === 4 && obj.proj === 0 @@ -122,25 +143,8 @@ QUnit.test(`Basic functions`, (assert) => { && obj.light.length === 4 && obj.light[0] === '1,1,1' && obj.light[3] === '2,2,2') { - console.log('...Passed!'); - } else { - fail(script, obj); + pass = true; } + assert.ok(pass, 'Basic light'); }); - - //LOOP W/ CAM and PROJ - script = 'LOOP 2\nCAM 4\nPROJ 4\nEND'; - console.log('Basic cam/proj loop test...'); - mscript.interpret(script, function (obj) { - if (obj.success === true - && obj.cam === 8 - && obj.proj === 8 - && obj.arr.length === 16 - && obj.light.length === 16 - && obj.light[0] === mscript.black) { - console.log('...Passed!'); - } else { - fail(script, obj); - } - }); -*/ \ No newline at end of file +}); diff --git a/app/tests/arduino_tests.js b/app/tests/arduino_tests.js deleted file mode 100644 index f227cbb..0000000 --- a/app/tests/arduino_tests.js +++ /dev/null @@ -1,31 +0,0 @@ -var fs = require('fs'), - mcopy = {}; - -mcopy.cfg = JSON.parse(fs.readFileSync('./cfg.json', 'utf8')); -mcopy.arduino = require('../lib/mcopy-arduino.js')(mcopy.cfg); - -mcopy.arduino.colorTest = function (color, cb) { - mcopy.arduino.send(mcopy.cfg.arduino.cmd.light, function () { - console.log('Light set to ' + color); - if (cb) setTimeout(cb, 20); - }); - mcopy.arduino.string(color); -}; - -mcopy.arduino.init(function (success) { - mcopy.arduino.connect(function () { - /* - mcopy.arduino.colorTest('255,140,70', function () { - mcopy.arduino.colorTest('5,0,0', function () { - mcopy.arduino.colorTest('255,255,255', function () { - mcopy.arduino.colorTest('160,14,250', function () { - mcopy.arduino.colorTest('5,32,200', function () { - - });//5 - });//4 - });//3 - });//2 - });//1 - */ - }); -}); \ No newline at end of file diff --git a/app/tests/mscript_test.js b/app/tests/mscript_test.js deleted file mode 100644 index 10b62a0..0000000 --- a/app/tests/mscript_test.js +++ /dev/null @@ -1,3 +0,0 @@ -var mscript = require('../lib/mscript.js'); - -mscript.tests(); \ No newline at end of file From df0806efa94f30abbae2650d9abece73f4f97d2b Mon Sep 17 00:00:00 2001 From: mmcw-dev Date: Fri, 16 Mar 2018 12:56:24 -0400 Subject: [PATCH 05/21] Add docs script for future use. --- app/docs.sh | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 app/docs.sh diff --git a/app/docs.sh b/app/docs.sh new file mode 100644 index 0000000..a4c254c --- /dev/null +++ b/app/docs.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +libs="./lib/*" +for l in $libs +do + echo "Generating documentation for $l" + ./node_modules/.bin/jsdoc2md $l/index.js > $l/Readme.md +done \ No newline at end of file From c1d5e52a1078877e9b8dbce96c4a81f2146d0801 Mon Sep 17 00:00:00 2001 From: mmcw-dev Date: Fri, 16 Mar 2018 12:57:02 -0400 Subject: [PATCH 06/21] Start mscript docs. Will describe each method to facilitate the addition of the "fade" feature. --- app/lib/mscript/Readme.md | 136 ++++++++++++++++++++++++++++++++++++++ app/lib/mscript/index.js | 79 ++++++++++++++++++++-- 2 files changed, 210 insertions(+), 5 deletions(-) create mode 100644 app/lib/mscript/Readme.md diff --git a/app/lib/mscript/Readme.md b/app/lib/mscript/Readme.md new file mode 100644 index 0000000..93bfafb --- /dev/null +++ b/app/lib/mscript/Readme.md @@ -0,0 +1,136 @@ + + +## lib/mscript + +* [lib/mscript](#module_lib/mscript) + * [~mscript](#module_lib/mscript..mscript) + * [.arg(shrt, lng)](#module_lib/mscript..mscript.arg) ⇒ boolean + * [.arg_pos(shrt, lng)](#module_lib/mscript..mscript.arg_pos) ⇒ boolean + * [.state_clear()](#module_lib/mscript..mscript.state_clear) + * [.alts_unique()](#module_lib/mscript..mscript.alts_unique) + * [.interpret()](#module_lib/mscript..mscript.interpret) + * [.last_loop()](#module_lib/mscript..mscript.last_loop) + * [.parent_loop()](#module_lib/mscript..mscript.parent_loop) + * [.state_update()](#module_lib/mscript..mscript.state_update) + * [.str_to_arr()](#module_lib/mscript..mscript.str_to_arr) + * [.light_state()](#module_lib/mscript..mscript.light_state) + * [.light_to_arr()](#module_lib/mscript..mscript.light_to_arr) + * [.loop_count()](#module_lib/mscript..mscript.loop_count) + * [.fail()](#module_lib/mscript..mscript.fail) + * [.output()](#module_lib/mscript..mscript.output) + * [.init()](#module_lib/mscript..mscript.init) + * [.tests()](#module_lib/mscript..mscript.tests) + + + +### lib/mscript~mscript +object mscript + +**Kind**: inner constant of [lib/mscript](#module_lib/mscript) + +* [~mscript](#module_lib/mscript..mscript) + * [.arg(shrt, lng)](#module_lib/mscript..mscript.arg) ⇒ boolean + * [.arg_pos(shrt, lng)](#module_lib/mscript..mscript.arg_pos) ⇒ boolean + * [.state_clear()](#module_lib/mscript..mscript.state_clear) + * [.alts_unique()](#module_lib/mscript..mscript.alts_unique) + * [.interpret()](#module_lib/mscript..mscript.interpret) + * [.last_loop()](#module_lib/mscript..mscript.last_loop) + * [.parent_loop()](#module_lib/mscript..mscript.parent_loop) + * [.state_update()](#module_lib/mscript..mscript.state_update) + * [.str_to_arr()](#module_lib/mscript..mscript.str_to_arr) + * [.light_state()](#module_lib/mscript..mscript.light_state) + * [.light_to_arr()](#module_lib/mscript..mscript.light_to_arr) + * [.loop_count()](#module_lib/mscript..mscript.loop_count) + * [.fail()](#module_lib/mscript..mscript.fail) + * [.output()](#module_lib/mscript..mscript.output) + * [.init()](#module_lib/mscript..mscript.init) + * [.tests()](#module_lib/mscript..mscript.tests) + + + +#### mscript.arg(shrt, lng) ⇒ boolean +Check for the presence of specific arguments in process +argv + +**Kind**: static method of [mscript](#module_lib/mscript..mscript) +**Returns**: boolean - Is flag present + +| Param | Type | Description | +| --- | --- | --- | +| shrt | string | Short version of argument or flag | +| lng | string | Long version of argument or flag | + + + +#### mscript.arg_pos(shrt, lng) ⇒ boolean +Check for the position of specific arguments in process +argv + +**Kind**: static method of [mscript](#module_lib/mscript..mscript) +**Returns**: boolean - Position of arg or flag, for locating input + +| Param | Type | Description | +| --- | --- | --- | +| shrt | string | Short version of argument or flag | +| lng | string | Long version of argument or flag | + + + +#### mscript.state_clear() +Clear the state object + +**Kind**: static method of [mscript](#module_lib/mscript..mscript) + + +#### mscript.alts_unique() +**Kind**: static method of [mscript](#module_lib/mscript..mscript) + + +#### mscript.interpret() +**Kind**: static method of [mscript](#module_lib/mscript..mscript) + + +#### mscript.last_loop() +**Kind**: static method of [mscript](#module_lib/mscript..mscript) + + +#### mscript.parent_loop() +**Kind**: static method of [mscript](#module_lib/mscript..mscript) + + +#### mscript.state_update() +**Kind**: static method of [mscript](#module_lib/mscript..mscript) + + +#### mscript.str_to_arr() +**Kind**: static method of [mscript](#module_lib/mscript..mscript) + + +#### mscript.light_state() +**Kind**: static method of [mscript](#module_lib/mscript..mscript) + + +#### mscript.light_to_arr() +**Kind**: static method of [mscript](#module_lib/mscript..mscript) + + +#### mscript.loop_count() +**Kind**: static method of [mscript](#module_lib/mscript..mscript) + + +#### mscript.fail() +**Kind**: static method of [mscript](#module_lib/mscript..mscript) + + +#### mscript.output() +**Kind**: static method of [mscript](#module_lib/mscript..mscript) + + +#### mscript.init() +**Kind**: static method of [mscript](#module_lib/mscript..mscript) + + +#### mscript.tests() +Legacy tests. To be deprecated in future releases. + +**Kind**: static method of [mscript](#module_lib/mscript..mscript) diff --git a/app/lib/mscript/index.js b/app/lib/mscript/index.js index 4a2ef53..8ab7a06 100644 --- a/app/lib/mscript/index.js +++ b/app/lib/mscript/index.js @@ -1,10 +1,22 @@ 'use strict'; +/** @module lib/mscript */ + let fs; let input; +/** object mscript */ const mscript = {}; +/** + * Check for the presence of specific arguments in process + * argv + * + * @param {string} shrt Short version of argument or flag + * @param {string} lng Long version of argument or flag + * + * @return {boolean} Is flag present + */ mscript.arg = function arg (shrt, lng) { if (process.argv.indexOf(shrt) !== -1 || process.argv.indexOf(lng) !== -1) { @@ -13,6 +25,15 @@ mscript.arg = function arg (shrt, lng) { return false; }; +/** + * Check for the position of specific arguments in process + * argv + * + * @param {string} shrt Short version of argument or flag + * @param {string} lng Long version of argument or flag + * + * @return {boolean} Position of arg or flag, for locating input + */ mscript.arg_pos = function arg_pos (shrt, lng) { var pos = -1; pos = process.argv.indexOf(shrt); @@ -21,6 +42,7 @@ mscript.arg_pos = function arg_pos (shrt, lng) { } return pos; }; + mscript.black = '0,0,0'; mscript.cmd = [ 'CF', @@ -33,13 +55,19 @@ mscript.cmd = [ mscript.alts = { 'CF' : ['CAMERA FORWARD', 'CAM FORWARD'], 'PF' : ['PROJECTOR FORWARD', 'PROJ FORWARD'], - 'BF': ['BLACK FORWARD'], + 'BF': ['BLACK FORWARD', 'BLACK', 'BLANK FORWARD', 'BLANK'], 'CB' : ['CAMERA BACKWARD', 'CAM BACKWARD', 'CAMERA BACK', 'CAM BACK'], 'PB' : ['PROJECTOR FORWARD', 'PROJ FORWARD', 'PROJECTOR BACK', 'PROJ BACK'], - 'BB' : ['BLACK BACKWARD', 'BLACK BACK'], - 'L ' : ['LIGHT', 'COLOR', 'LAMP'] + 'BB' : ['BLACK BACKWARD', 'BLACK BACK', 'BLANK BACK'], + 'L ' : ['LIGHT', 'COLOR', 'LAMP'], + 'F ' : ['FADE'] }; + mscript.state = {}; + +/** + * Clear the state object + */ mscript.state_clear = function state_clear () { mscript.state = { cam : 0, @@ -49,6 +77,9 @@ mscript.state_clear = function state_clear () { rec : -1 }; }; +/** + * + */ mscript.alts_unique = function alts_unique () { var ids = Object.keys(mscript.alts), all = []; @@ -60,6 +91,9 @@ mscript.alts_unique = function alts_unique () { } } }; +/** + * + */ mscript.interpret = function interpret (text, callback) { mscript.state_clear(); if (typeof text === 'undefined') { @@ -214,12 +248,21 @@ mscript.interpret = function interpret (text, callback) { return mscript.output(output); } }; +/** + * + */ mscript.last_loop = function last_loop () { return mscript.state.loops[mscript.state.loops.length - 1]; }; +/** + * + */ mscript.parent_loop = function parent_loop () { return mscript.state.loops[mscript.state.loops.length - 2]; }; +/** + * + */ mscript.state_update = function state_update (cmd, val) { if (cmd === 'END') { for (var i = 0; i < val; i++) { @@ -271,6 +314,9 @@ mscript.state_update = function state_update (cmd, val) { } }; +/** + * + */ mscript.str_to_arr = function str_to_arr (str, cmd) { var cnt = str.split(cmd), c = parseInt(cnt[1]), @@ -286,11 +332,17 @@ mscript.str_to_arr = function str_to_arr (str, cmd) { } return arr; }; +/** + * + */ mscript.light_state = function light_state (str) { //add parsers for other color spaces var color = str.replace('L ', '').trim(); mscript.state.color = color; }; +/** + * + */ mscript.light_to_arr = function light_to_arr (str, cmd) { var cnt = str.split(cmd), c = parseInt(cnt[1]), @@ -313,13 +365,25 @@ mscript.light_to_arr = function light_to_arr (str, cmd) { } return arr; }; +/** + * + */ mscript.loop_count = function loop_count (str) { - return parseInt(str.split('LOOP ')[1]); + return parseInt(str.split(' ')[1]); }; +mscript.fade_count = function fade_count (str) { + return parseInt(str.split(' ')[1]); +} +/** + * + */ mscript.fail = function fail (reason) { console.error(JSON.stringify({success: false, error: true, msg : reason})); if (process) process.exit(); }; +/** + * + */ mscript.output = function output (data) { var json = true; //default if (mscript.arg('-j', '--json')) { @@ -339,6 +403,9 @@ mscript.output = function output (data) { } } }; +/** + * + */ mscript.init = function init () { if (mscript.arg('-t', '--tests')) { return mscript.tests(); @@ -367,7 +434,9 @@ mscript.init = function init () { console.timeEnd('mscript'); } }; - +/** + * Legacy tests. To be deprecated in future releases. + */ mscript.tests = function tests () { console.log('Running mscript tests'); console.time('Tests took'); From fc73859f8f215b132bf42785979c94707de7e970 Mon Sep 17 00:00:00 2001 From: mmcw-dev Date: Fri, 16 Mar 2018 12:59:23 -0400 Subject: [PATCH 07/21] Use lighting steps to the GUI and when executing. --- app/lib/ui/light.js | 2 -- app/lib/ui/mscript.js | 19 ++++++++++++------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/app/lib/ui/light.js b/app/lib/ui/light.js index 04149b9..95c6852 100644 --- a/app/lib/ui/light.js +++ b/app/lib/ui/light.js @@ -124,8 +124,6 @@ light.set = function (rgb, callback) { //rgb = [0,0,0] rgb : rgb, id : uuid.v4() }; - console.log(rgb) - console.log(obj) ipcRenderer.sendSync('light', obj); if (typeof callback !== 'undefined') { diff --git a/app/lib/ui/mscript.js b/app/lib/ui/mscript.js index 6466716..8afdad2 100644 --- a/app/lib/ui/mscript.js +++ b/app/lib/ui/mscript.js @@ -60,11 +60,16 @@ mse.mscript.toGUI = function () { for (let i = 0; i < mse.mscript.data.arr.length; i++) { c = mse.mscript.data.arr[i]; mcopy.state.sequence.arr[i] = c; - //if (c === 'CF' || c === 'CB') { - mcopy.state.sequence.light[i] = light.color.join(','); - //} else { - //mcopy.state.sequence.light[i] = ''; - //} + console.dir(mse.mscript.data); + if (c === 'CF' || c === 'CB') { + if (typeof mse.mscript.data.light[i] !== 'undefined' && mse.mscript.data.light[i] !== '') { + mcopy.state.sequence.light[i] = mse.mscript.data.light[i]; + } else { + mcopy.state.sequence.light[i] = light.color.join(','); + } + } else { + mcopy.state.sequence.light[i] = ''; + } gui.grid.state(i); } }; @@ -114,11 +119,11 @@ mse.mscript.prepare = function () { obj = { cmd : mse.mscript.data.arr[i] }; - /*if (mse.mscript.data.light[i] !== '') { + if (typeof mse.mscript.data.light[i] !== 'undefined' && mse.mscript.data.light[i] !== '') { obj.light = mse.mscript.data.light[i]; } else { obj.light = light.color.join(','); - }*/ + } arr.push(obj); } return arr; From cb5e50792a3d82f1fc645e28c45beb504dabe402 Mon Sep 17 00:00:00 2001 From: mmcw-dev Date: Thu, 14 Jun 2018 11:38:17 -0400 Subject: [PATCH 08/21] Remove legacy tests from mscript. This has been migrated to proper tests in QUnit (which should work in the browser as well as the app) --- app/lib/mscript/index.js | 145 --------------------------------------- 1 file changed, 145 deletions(-) diff --git a/app/lib/mscript/index.js b/app/lib/mscript/index.js index 8ab7a06..bb05449 100644 --- a/app/lib/mscript/index.js +++ b/app/lib/mscript/index.js @@ -434,151 +434,6 @@ mscript.init = function init () { console.timeEnd('mscript'); } }; -/** - * Legacy tests. To be deprecated in future releases. - */ -mscript.tests = function tests () { - console.log('Running mscript tests'); - console.time('Tests took'); - - mscript.alts_unique(); //perform check only during tests - var fail = function (script, obj) { - console.log('...Failed :('); - console.log(script); - console.log(obj); - process.exit(); - }; - var script = 'CF\nPF\nCB\nPB\nBF\nBB'; - console.log('Basic function test...'); - mscript.interpret(script, function (obj) { - if (obj.success === true - && obj.cam === 0 - && obj.proj === 0 - && obj.arr.length === 6) { - console.log('...Passed!'); - } else { - fail(script, obj); - } - }); - - var script = 'CF\nPF\nCB\nPB\nBF\nBB'; - console.log('Functions with integers test...'); - mscript.interpret(script, function (obj) { - if (obj.success === true - && obj.cam === 0 - && obj.proj === 0 - && obj.arr.length === 6) { - console.log('...Passed!'); - } else { - fail(script, obj); - } - }); - - script = 'CF 1000\nCB 1000\nSET PROJ 200\nPB 200'; - console.log('Basic state test...'); - mscript.interpret(script, function (obj) { - if (obj.success === true - && obj.cam === 0 - && obj.proj === 0) { - console.log('...Passed!'); - } else { - fail(script, obj); - } - }); - - script = 'LOOP 10\nCF 3\nPF 1\nEND LOOP'; - console.log('Basic loop test...'); - mscript.interpret(script, function (obj) { - if (obj.success === true - && obj.cam === 30 - && obj.proj === 10 - && obj.arr.length === 40) { - console.log('...Passed!'); - } else { - fail(script, obj); - } - }); - - script = 'LOOP 4\nLOOP 4\nPF\nBF\nEND LOOP\nEND LOOP'; - console.log('Recursive loop test...'); - mscript.interpret(script, function (obj) { - if (obj.success === true - && obj.cam === 16 - && obj.proj === 16 - && obj.arr.length === 32) { - console.log('...Passed!'); - } else { - fail(script, obj); - } - }); - - //Lighting tests - script = 'L 255,255,255\nCF\nPF'; - console.log('Basic light test...'); - mscript.interpret(script, function (obj) { - if (obj.success === true - && obj.cam === 1 - && obj.proj === 1 - && obj.arr.length === 2 - && obj.light.length === 2 - && obj.light[0] === '255,255,255' - && obj.light[1] === '') { - console.log('...Passed!'); - } else { - fail(script, obj); - } - }); - script = 'L 255,255,255\nCF\nPF\nBF'; - console.log('Basic black test...'); - mscript.interpret(script, function (obj) { - if (obj.success === true - && obj.cam === 2 - && obj.proj === 1 - && obj.arr.length === 3 - && obj.light.length === 3 - && obj.light[0] === '255,255,255' - && obj.light[1] === '' - && obj.light[2] === mscript.black) { - console.log('...Passed!'); - } else { - fail(script, obj); - } - }); - script = 'LOOP 2\nL 1,1,1\nCF\nL 2,2,2\nCF\nEND'; - console.log('Basic light loop test...'); - mscript.interpret(script, function (obj) { - if (obj.success === true - && obj.cam === 4 - && obj.proj === 0 - && obj.arr.length === 4 - && obj.light.length === 4 - && obj.light[0] === '1,1,1' - && obj.light[3] === '2,2,2') { - console.log('...Passed!'); - } else { - fail(script, obj); - } - }); - - //LOOP W/ CAM and PROJ - script = 'LOOP 2\nCAM 4\nPROJ 4\nEND'; - console.log('Basic cam/proj loop test...'); - mscript.interpret(script, function (obj) { - if (obj.success === true - && obj.cam === 8 - && obj.proj === 8 - && obj.arr.length === 16 - && obj.light.length === 16 - && obj.light[0] === mscript.black) { - console.log('...Passed!'); - } else { - fail(script, obj); - } - }); - - console.log('All tests completed'); - console.timeEnd('Tests took'); -}; if (typeof document === 'undefined' && typeof module !== 'undefined' From 4565205aadc5cdbf9dd8433a82116f3b7be91ebc Mon Sep 17 00:00:00 2001 From: mmcw-dev Date: Thu, 14 Jun 2018 11:42:29 -0400 Subject: [PATCH 09/21] Install fs-extra for promise-based fs functionality --- app/package-lock.json | 3980 ++++++++++++++++++++--------------------- app/package.json | 5 +- 2 files changed, 1894 insertions(+), 2091 deletions(-) diff --git a/app/package-lock.json b/app/package-lock.json index 6ebf129..195c839 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -21,29 +21,31 @@ "integrity": "sha1-f7kSlwkoXK6oTrNyxOiCAxtxOOg=", "dev": true, "requires": { - "convert-source-map": "1.5.1", - "glob": "7.1.2", - "indx": "0.2.3", - "lodash.clone": "4.5.0", - "lodash.defaults": "4.2.0", - "lodash.flatten": "4.4.0", - "lodash.merge": "4.6.0", - "lodash.partialright": "4.2.1", - "lodash.pick": "4.4.0", - "lodash.uniq": "4.5.0", - "resolve": "1.5.0", - "semver": "5.4.1", - "uglify-js": "2.8.29", - "when": "3.7.8" + "convert-source-map": "^1.5.0", + "glob": "^7.0.5", + "indx": "^0.2.3", + "lodash.clone": "^4.3.2", + "lodash.defaults": "^4.0.1", + "lodash.flatten": "^4.2.0", + "lodash.merge": "^4.4.0", + "lodash.partialright": "^4.1.4", + "lodash.pick": "^4.2.1", + "lodash.uniq": "^4.3.0", + "resolve": "^1.3.3", + "semver": "^5.3.0", + "uglify-js": "^2.8.22", + "when": "^3.7.8" } }, "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "align-text": { @@ -52,9 +54,9 @@ "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" }, "dependencies": { "kind-of": { @@ -63,7 +65,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -89,7 +91,7 @@ "integrity": "sha512-v+0wW9Wezwsyb0uF4aBVCjmSqit3Ru7PZFziGF0o2KwTvN2zWfTi3BRLq9EkJFdg3eBbyERXGTntVpBxH1J68Q==", "dev": true, "requires": { - "array-back": "2.0.0" + "array-back": "^2.0.0" } }, "ansi-gray": { @@ -139,8 +141,8 @@ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "dev": true, "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" }, "dependencies": { "arr-diff": { @@ -149,7 +151,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "array-unique": { @@ -164,9 +166,9 @@ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "dev": true, "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" } }, "expand-brackets": { @@ -175,7 +177,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true, "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "extglob": { @@ -184,7 +186,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-extglob": { @@ -199,7 +201,7 @@ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "kind-of": { @@ -208,7 +210,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "micromatch": { @@ -217,19 +219,19 @@ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "dev": true, "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" } } } @@ -241,17 +243,17 @@ "dev": true, "optional": true, "requires": { - "async": "1.5.2", - "cp-file": "3.2.0", - "ds-store": "0.1.6", - "execa": "0.4.0", - "fs-temp": "1.1.2", - "fs-xattr": "0.1.17", - "image-size": "0.5.5", - "is-my-json-valid": "2.17.1", - "minimist": "1.2.0", - "parse-color": "1.0.0", - "repeat-string": "1.6.1" + "async": "^1.4.2", + "cp-file": "^3.1.0", + "ds-store": "^0.1.5", + "execa": "^0.4.0", + "fs-temp": "^1.0.0", + "fs-xattr": "^0.1.14", + "image-size": "^0.5.0", + "is-my-json-valid": "^2.13.1", + "minimist": "^1.1.3", + "parse-color": "^1.0.0", + "repeat-string": "^1.5.4" }, "dependencies": { "async": { @@ -279,8 +281,8 @@ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.3" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "argv-tools": { @@ -289,8 +291,8 @@ "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", "dev": true, "requires": { - "array-back": "2.0.0", - "find-replace": "2.0.1" + "array-back": "^2.0.0", + "find-replace": "^2.0.1" } }, "arr-diff": { @@ -317,7 +319,7 @@ "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", "dev": true, "requires": { - "typical": "2.6.1" + "typical": "^2.6.1" } }, "array-buffer-from-string": { @@ -375,13 +377,13 @@ "integrity": "sha512-l21mf5pG65qbtD5WhymthfbE7ash0goQ+5ayo3lIncxtFNYH1PVArqsGXoAUXOd877mJplWSD9nGumByzQqVSA==", "dev": true, "requires": { - "chromium-pickle-js": "0.2.0", - "commander": "2.12.2", - "cuint": "0.2.2", - "glob": "6.0.4", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "mksnapshot": "0.3.1", + "chromium-pickle-js": "^0.2.0", + "commander": "^2.9.0", + "cuint": "^0.2.1", + "glob": "^6.0.4", + "minimatch": "^3.0.3", + "mkdirp": "^0.5.0", + "mksnapshot": "^0.3.0", "tmp": "0.0.28" }, "dependencies": { @@ -391,11 +393,11 @@ "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", "dev": true, "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } } } @@ -406,16 +408,16 @@ "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" }, "assert-plus": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, "async": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", "requires": { - "lodash": "4.17.4" + "lodash": "^4.14.0" } }, "async-each": { @@ -448,14 +450,14 @@ "dev": true }, "aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=" + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz", + "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==" }, "babylon": { "version": "7.0.0-beta.19", @@ -475,13 +477,13 @@ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.5", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.0", - "pascalcase": "0.1.1" + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" } }, "base32-encode": { @@ -503,7 +505,7 @@ "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", "optional": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "beeper": { @@ -518,8 +520,8 @@ "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=", "dev": true, "requires": { - "buffers": "0.1.1", - "chainsaw": "0.1.0" + "buffers": "~0.1.1", + "chainsaw": "~0.1.0" } }, "binary-extensions": { @@ -538,7 +540,7 @@ "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz", "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=", "requires": { - "readable-stream": "2.3.3" + "readable-stream": "^2.0.5" } }, "block-stream": { @@ -547,7 +549,7 @@ "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", "dev": true, "requires": { - "inherits": "2.0.3" + "inherits": "~2.0.0" } }, "bluebird": { @@ -560,8 +562,9 @@ "version": "2.10.1", "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "dev": true, "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "bplist-creator": { @@ -571,7 +574,7 @@ "dev": true, "optional": true, "requires": { - "stream-buffers": "2.2.0" + "stream-buffers": "~2.2.0" } }, "brace-expansion": { @@ -580,7 +583,7 @@ "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -590,17 +593,17 @@ "integrity": "sha512-P4O8UQRdGiMLWSizsApmXVQDBS6KCt7dSexgLKBmH5Hr1CZq7vsnscFh8oR1sP1ab1Zj0uCHCEzZeV6SfUf3rA==", "dev": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "define-property": "1.0.0", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.1", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.1" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" } }, "buffer-from": { @@ -610,7 +613,7 @@ "dev": true, "optional": true, "requires": { - "is-array-buffer-x": "1.7.0" + "is-array-buffer-x": "^1.0.13" } }, "buffers": { @@ -630,15 +633,15 @@ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, "requires": { - "collection-visit": "1.0.0", - "component-emitter": "1.2.1", - "get-value": "2.0.6", - "has-value": "1.0.0", - "isobject": "3.0.1", - "set-value": "2.0.0", - "to-object-path": "0.3.0", - "union-value": "1.0.0", - "unset-value": "1.0.0" + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" } }, "cache-point": { @@ -647,9 +650,9 @@ "integrity": "sha512-4TgWfe9SF+bUy5cCql8gWHqKNrviufNwSYxLjf2utB0pY4+bdcuFwMmY1hDB+67Gz/L1vmhFNhePAjJTFBtV+Q==", "dev": true, "requires": { - "array-back": "2.0.0", - "fs-then-native": "2.0.0", - "mkdirp2": "1.0.3" + "array-back": "^2.0.0", + "fs-then-native": "^2.0.0", + "mkdirp2": "^1.0.3" } }, "cached-constructors-x": { @@ -668,8 +671,8 @@ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "requires": { - "camelcase": "2.1.1", - "map-obj": "1.0.1" + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" } }, "caseless": { @@ -683,7 +686,7 @@ "integrity": "sha1-mMyJDKZS3S7w5ws3klMQ/56Q/Is=", "dev": true, "requires": { - "underscore-contrib": "0.3.0" + "underscore-contrib": "~0.3.0" } }, "center-align": { @@ -692,8 +695,8 @@ "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", "dev": true, "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" }, "dependencies": { "lazy-cache": { @@ -710,7 +713,7 @@ "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=", "dev": true, "requires": { - "traverse": "0.3.9" + "traverse": ">=0.3.0 <0.4" } }, "chalk": { @@ -719,11 +722,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "chokidar": { @@ -732,15 +735,15 @@ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "dev": true, "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.1.3", - "glob-parent": "2.0.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0" + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" }, "dependencies": { "is-extglob": { @@ -755,7 +758,7 @@ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } } } @@ -777,11 +780,11 @@ "integrity": "sha1-F+eTEDdQ+WJ7IXbqNM/RtWWQPIA=", "dev": true, "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "lazy-cache": "2.0.2", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "lazy-cache": "^2.0.2", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { @@ -790,7 +793,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "is-descriptor": { @@ -799,9 +802,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" } }, "kind-of": { @@ -818,7 +821,7 @@ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "requires": { - "restore-cursor": "2.0.0" + "restore-cursor": "^2.0.0" } }, "cli-spinners": { @@ -833,9 +836,9 @@ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" } }, "clone": { @@ -862,9 +865,9 @@ "integrity": "sha1-pikNQT8hemEjL5XkWP84QYz7ARc=", "dev": true, "requires": { - "inherits": "2.0.3", - "process-nextick-args": "1.0.7", - "through2": "2.0.3" + "inherits": "^2.0.1", + "process-nextick-args": "^1.0.6", + "through2": "^2.0.1" }, "dependencies": { "through2": { @@ -873,8 +876,8 @@ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "dev": true, "requires": { - "readable-stream": "2.3.3", - "xtend": "4.0.1" + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" } } } @@ -895,8 +898,8 @@ "integrity": "sha512-0y0rBgoX8IzIjBAUnO73SEtSb4Mhk3IoceWJq5zZSxb9mWORhWH8xLYo4EDSOE1jRBk1LhmfjqWFFt10h/+MEA==", "dev": true, "requires": { - "stream-connect": "1.0.2", - "stream-via": "1.0.4" + "stream-connect": "^1.0.2", + "stream-via": "^1.0.4" } }, "collection-visit": { @@ -905,8 +908,8 @@ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "color-convert": { @@ -928,11 +931,11 @@ "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" }, "combined-stream": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "command-line-args": { @@ -941,11 +944,11 @@ "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", "dev": true, "requires": { - "argv-tools": "0.1.1", - "array-back": "2.0.0", - "find-replace": "2.0.1", - "lodash.camelcase": "4.3.0", - "typical": "2.6.1" + "argv-tools": "^0.1.1", + "array-back": "^2.0.0", + "find-replace": "^2.0.1", + "lodash.camelcase": "^4.3.0", + "typical": "^2.6.1" } }, "command-line-tool": { @@ -954,11 +957,11 @@ "integrity": "sha512-Xw18HVx/QzQV3Sc5k1vy3kgtOeGmsKIqwtFFoyjI4bbcpSgnw2CWVULvtakyw4s6fhyAdI6soQQhXc2OzJy62g==", "dev": true, "requires": { - "ansi-escape-sequences": "4.0.0", - "array-back": "2.0.0", - "command-line-args": "5.0.2", - "command-line-usage": "4.1.0", - "typical": "2.6.1" + "ansi-escape-sequences": "^4.0.0", + "array-back": "^2.0.0", + "command-line-args": "^5.0.0", + "command-line-usage": "^4.1.0", + "typical": "^2.6.1" } }, "command-line-usage": { @@ -967,10 +970,10 @@ "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", "dev": true, "requires": { - "ansi-escape-sequences": "4.0.0", - "array-back": "2.0.0", - "table-layout": "0.4.3", - "typical": "2.6.1" + "ansi-escape-sequences": "^4.0.0", + "array-back": "^2.0.0", + "table-layout": "^0.4.2", + "typical": "^2.6.1" } }, "commander": { @@ -1007,18 +1010,26 @@ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.3", - "typedarray": "0.0.6" + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, "concat-with-sourcemaps": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.0.4.tgz", - "integrity": "sha1-9Vs74q60dgGxCi1SWcz7cP0vHdY=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", + "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", "dev": true, "requires": { - "source-map": "0.5.7" + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, "config-master": { @@ -1027,7 +1038,7 @@ "integrity": "sha1-ZnZjWQUFooO/JqSE1oSJ10xUhdo=", "dev": true, "requires": { - "walk-back": "2.0.1" + "walk-back": "^2.0.1" }, "dependencies": { "walk-back": { @@ -1067,13 +1078,13 @@ "dev": true, "optional": true, "requires": { - "graceful-fs": "4.1.11", - "mkdirp": "0.5.1", - "nested-error-stacks": "1.0.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "readable-stream": "2.3.3" + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nested-error-stacks": "^1.0.1", + "object-assign": "^4.0.1", + "pify": "^2.3.0", + "pinkie-promise": "^2.0.0", + "readable-stream": "^2.1.4" } }, "cross-spawn": { @@ -1082,19 +1093,19 @@ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "4.1.1", - "shebang-command": "1.2.0", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" }, "dependencies": { "lru-cache": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", - "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } } } @@ -1106,8 +1117,8 @@ "dev": true, "optional": true, "requires": { - "lru-cache": "4.1.1", - "which": "1.3.0" + "lru-cache": "^4.0.0", + "which": "^1.2.8" }, "dependencies": { "lru-cache": { @@ -1117,18 +1128,29 @@ "dev": true, "optional": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } } } }, + "cross-spawn-promise": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/cross-spawn-promise/-/cross-spawn-promise-0.10.1.tgz", + "integrity": "sha1-25y0xQxgtyoVvgSbeBIs44LYexA=", + "dev": true, + "requires": { + "cross-spawn": "^5.1.0" + } + }, "cryptiles": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "dev": true, + "optional": true, "requires": { - "boom": "2.10.1" + "boom": "2.x.x" } }, "cuint": { @@ -1142,7 +1164,7 @@ "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "requires": { - "array-find-index": "1.0.2" + "array-find-index": "^1.0.1" } }, "cycle": { @@ -1155,14 +1177,7 @@ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } + "assert-plus": "^1.0.0" } }, "dateformat": { @@ -1196,12 +1211,12 @@ "integrity": "sha1-rjvLfjTGWHmt/nfhnDD4ZgK0vbA=", "dev": true, "requires": { - "binary": "0.3.0", - "graceful-fs": "4.1.11", - "mkpath": "0.1.0", - "nopt": "3.0.6", - "q": "1.5.1", - "readable-stream": "1.1.14", + "binary": "^0.3.0", + "graceful-fs": "^4.1.3", + "mkpath": "^0.1.0", + "nopt": "^3.0.1", + "q": "^1.1.2", + "readable-stream": "^1.1.8", "touch": "0.0.3" }, "dependencies": { @@ -1217,10 +1232,10 @@ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "string_decoder": { @@ -1231,18 +1246,13 @@ } } }, - "deep-extend": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", - "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=" - }, "defaults": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "dev": true, "requires": { - "clone": "1.0.3" + "clone": "^1.0.2" } }, "define-property": { @@ -1251,7 +1261,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.1" + "is-descriptor": "^1.0.0" } }, "delayed-stream": { @@ -1282,18 +1292,18 @@ "integrity": "sha512-Naq/y7ME1dG8e4u0IJ2jA/G2gtbm4ZQzAG0LldwE1BCUrVWzR9VY5ayvXYSd+p9fdh5ojxayABbelDRM32xIhg==", "dev": true, "requires": { - "array-back": "2.0.0", - "cache-point": "0.4.1", - "common-sequence": "1.0.2", - "file-set": "2.0.0", - "handlebars": "4.0.11", - "marked": "0.3.17", - "object-get": "2.1.0", - "reduce-flatten": "1.0.1", - "reduce-unique": "1.0.0", - "reduce-without": "1.0.1", - "test-value": "3.0.0", - "walk-back": "3.0.0" + "array-back": "^2.0.0", + "cache-point": "^0.4.1", + "common-sequence": "^1.0.2", + "file-set": "^2.0.0", + "handlebars": "^4.0.11", + "marked": "^0.3.16", + "object-get": "^2.1.0", + "reduce-flatten": "^1.0.1", + "reduce-unique": "^1.0.0", + "reduce-without": "^1.0.1", + "test-value": "^3.0.0", + "walk-back": "^3.0.0" } }, "ds-store": { @@ -1303,9 +1313,9 @@ "dev": true, "optional": true, "requires": { - "bplist-creator": "0.0.7", - "macos-alias": "0.2.11", - "tn1150": "0.1.0" + "bplist-creator": "~0.0.3", + "macos-alias": "~0.2.5", + "tn1150": "^0.1.0" } }, "duplexer2": { @@ -1314,7 +1324,7 @@ "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", "dev": true, "requires": { - "readable-stream": "1.1.14" + "readable-stream": "~1.1.9" }, "dependencies": { "isarray": { @@ -1329,10 +1339,10 @@ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "string_decoder": { @@ -1349,7 +1359,7 @@ "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", "optional": true, "requires": { - "jsbn": "0.1.1" + "jsbn": "~0.1.0" } }, "electron": { @@ -1357,9 +1367,9 @@ "resolved": "https://registry.npmjs.org/electron/-/electron-1.8.2-beta.4.tgz", "integrity": "sha1-GDayBO6s6dx3Bi7Ugg/bxsvZoZU=", "requires": { - "@types/node": "8.5.9", - "electron-download": "3.3.0", - "extract-zip": "1.6.6" + "@types/node": "^8.0.24", + "electron-download": "^3.0.1", + "extract-zip": "^1.0.3" }, "dependencies": { "electron-download": { @@ -1367,15 +1377,15 @@ "resolved": "https://registry.npmjs.org/electron-download/-/electron-download-3.3.0.tgz", "integrity": "sha1-LP1U1pZsAZxNSa1l++Zcyc3vaMg=", "requires": { - "debug": "2.6.9", - "fs-extra": "0.30.0", - "home-path": "1.0.5", - "minimist": "1.2.0", - "nugget": "2.0.1", - "path-exists": "2.1.0", - "rc": "1.2.3", - "semver": "5.4.1", - "sumchecker": "1.3.1" + "debug": "^2.2.0", + "fs-extra": "^0.30.0", + "home-path": "^1.0.1", + "minimist": "^1.2.0", + "nugget": "^2.0.0", + "path-exists": "^2.1.0", + "rc": "^1.1.2", + "semver": "^5.3.0", + "sumchecker": "^1.2.0" } }, "fs-extra": { @@ -1383,11 +1393,11 @@ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "2.4.0", - "klaw": "1.3.1", - "path-is-absolute": "1.0.1", - "rimraf": "2.2.8" + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" } }, "sumchecker": { @@ -1395,8 +1405,8 @@ "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-1.3.1.tgz", "integrity": "sha1-ebs7RFbdBPGOvbwNcDodHa7FEF0=", "requires": { - "debug": "2.6.9", - "es6-promise": "4.2.2" + "debug": "^2.2.0", + "es6-promise": "^4.0.5" } } } @@ -1407,15 +1417,15 @@ "integrity": "sha1-v5MsdG8vh//MCdHdRy8v9rkYeEU=", "dev": true, "requires": { - "debug": "2.6.9", - "env-paths": "1.0.0", - "fs-extra": "2.1.2", - "minimist": "1.2.0", - "nugget": "2.0.1", - "path-exists": "3.0.0", - "rc": "1.2.3", - "semver": "5.4.1", - "sumchecker": "2.0.2" + "debug": "^2.2.0", + "env-paths": "^1.0.0", + "fs-extra": "^2.0.0", + "minimist": "^1.2.0", + "nugget": "^2.0.0", + "path-exists": "^3.0.0", + "rc": "^1.1.2", + "semver": "^5.3.0", + "sumchecker": "^2.0.1" }, "dependencies": { "fs-extra": { @@ -1424,8 +1434,8 @@ "integrity": "sha1-BGxwFjzvmq1GsOSn+kZ/si1x3jU=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "2.4.0" + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0" } }, "path-exists": { @@ -1437,23 +1447,25 @@ } }, "electron-installer-debian": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/electron-installer-debian/-/electron-installer-debian-0.7.1.tgz", - "integrity": "sha1-oJ+DRYYf6STiWnFNSvLonEKLIrc=", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/electron-installer-debian/-/electron-installer-debian-0.8.1.tgz", + "integrity": "sha512-UkEk7d1L8gwaRnZMF1AcEb3WH5OStmUgv1AQUmTbKjvzGnAU9IZAZuDgFK/8hFClRJvhlWC6Xykv7WggC8jSxQ==", "dev": true, "requires": { - "asar": "0.14.0", - "async": "2.6.0", - "debug": "3.1.0", - "fs-extra": "4.0.3", - "get-folder-size": "1.0.0", - "glob": "7.1.2", - "lodash": "4.17.4", - "mkdirp": "0.5.1", - "semver": "5.4.1", - "temp": "0.8.3", - "word-wrap": "1.2.3", - "yargs": "10.0.3" + "asar": "^0.14.0", + "cross-spawn-promise": "^0.10.1", + "debug": "^3.1.0", + "fs-extra": "^4.0.2", + "get-folder-size": "^1.0.0", + "glob": "^7.1.2", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "nodeify": "^1.0.1", + "pify": "^3.0.0", + "semver": "^5.4.1", + "temp": "^0.8.3", + "word-wrap": "^1.2.3", + "yargs": "^10.0.3" }, "dependencies": { "ansi-regex": { @@ -1462,6 +1474,17 @@ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, "debug": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", @@ -1477,13 +1500,13 @@ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "dev": true, "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" } }, "find-up": { @@ -1492,7 +1515,7 @@ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "fs-extra": { @@ -1501,9 +1524,9 @@ "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "4.0.0", - "universalify": "0.1.1" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } }, "is-fullwidth-code-point": { @@ -1518,7 +1541,7 @@ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.6" } }, "npm-run-path": { @@ -1527,7 +1550,7 @@ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "os-locale": { @@ -1536,9 +1559,9 @@ "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "dev": true, "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" } }, "path-key": { @@ -1547,14 +1570,20 @@ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "strip-ansi": { @@ -1563,7 +1592,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "which-module": { @@ -1573,23 +1602,23 @@ "dev": true }, "yargs": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.0.3.tgz", - "integrity": "sha512-DqBpQ8NAUX4GyPP/ijDGHsJya4tYqLQrjPr95HNsr1YwL3+daCfvBwg7+gIC6IdJhR2kATh3hb61vjzMWEtjdw==", + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.1.2.tgz", + "integrity": "sha512-ivSoxqBGYOqQVruxD35+EyCFDYNEFL/Uo6FcOnz+9xZdZzK0Zzw4r4KhbrME1Oo2gOggwJod2MnsdamSG7H9ig==", "dev": true, "requires": { - "cliui": "3.2.0", - "decamelize": "1.2.0", - "find-up": "2.1.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "8.1.0" + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^8.1.0" } } } @@ -1600,9 +1629,9 @@ "integrity": "sha1-3oNfAgCbg/guQIA2rDFGLD1sskk=", "dev": true, "requires": { - "appdmg": "0.4.5", - "debug": "2.6.9", - "minimist": "1.2.0" + "appdmg": "^0.4.5", + "debug": "^2.2.0", + "minimist": "^1.1.1" } }, "electron-osx-sign": { @@ -1611,12 +1640,12 @@ "integrity": "sha1-HXVkeoJ0jqzUi+pwYW7IP/rePuU=", "dev": true, "requires": { - "bluebird": "3.5.1", - "compare-version": "0.1.2", - "debug": "2.6.9", - "isbinaryfile": "3.0.2", - "minimist": "1.2.0", - "plist": "2.1.0" + "bluebird": "^3.5.0", + "compare-version": "^0.1.2", + "debug": "^2.6.8", + "isbinaryfile": "^3.0.2", + "minimist": "^1.2.0", + "plist": "^2.1.0" } }, "electron-packager": { @@ -1625,24 +1654,24 @@ "integrity": "sha1-MWp/ossf/CYz9YBcn8IJE8vAnZQ=", "dev": true, "requires": { - "asar": "0.14.0", - "debug": "3.1.0", - "electron-download": "4.1.0", - "electron-osx-sign": "0.4.7", - "extract-zip": "1.6.6", - "fs-extra": "5.0.0", - "get-package-info": "1.0.0", - "mz": "2.7.0", - "nodeify": "1.0.1", - "parse-author": "2.0.0", - "pify": "3.0.0", - "plist": "2.1.0", - "pruner": "0.0.7", - "rcedit": "0.9.0", - "resolve": "1.5.0", - "sanitize-filename": "1.6.1", - "semver": "5.4.1", - "yargs-parser": "8.1.0" + "asar": "^0.14.0", + "debug": "^3.0.0", + "electron-download": "^4.0.0", + "electron-osx-sign": "^0.4.1", + "extract-zip": "^1.0.3", + "fs-extra": "^5.0.0", + "get-package-info": "^1.0.0", + "mz": "^2.6.0", + "nodeify": "^1.0.1", + "parse-author": "^2.0.0", + "pify": "^3.0.0", + "plist": "^2.0.0", + "pruner": "^0.0.7", + "rcedit": "^0.9.0", + "resolve": "^1.1.6", + "sanitize-filename": "^1.6.0", + "semver": "^5.3.0", + "yargs-parser": "^8.0.0" }, "dependencies": { "debug": { @@ -1660,9 +1689,9 @@ "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "4.0.0", - "universalify": "0.1.1" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } }, "jsonfile": { @@ -1671,7 +1700,7 @@ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.6" } }, "pify": { @@ -1688,15 +1717,15 @@ "integrity": "sha1-6NJvTY6f5TiN81hks2WOXP1Ny34=", "dev": true, "requires": { - "colors": "1.1.2", - "debug": "2.6.9", - "fs-extra": "3.0.1", - "node-abi": "2.1.2", - "node-gyp": "3.6.2", - "ora": "1.3.0", - "rimraf": "2.6.2", - "spawn-rx": "2.0.12", - "yargs": "7.1.0" + "colors": "^1.1.2", + "debug": "^2.6.3", + "fs-extra": "^3.0.1", + "node-abi": "^2.0.0", + "node-gyp": "^3.6.0", + "ora": "^1.2.0", + "rimraf": "^2.6.1", + "spawn-rx": "^2.0.10", + "yargs": "^7.0.2" }, "dependencies": { "camelcase": { @@ -1711,18 +1740,38 @@ "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", "dev": true }, + "fs-extra": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", + "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^3.0.0", + "universalify": "^0.1.0" + } + }, "glob": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "jsonfile": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", + "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" } }, "rimraf": { @@ -1731,7 +1780,7 @@ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "yargs": { @@ -1740,19 +1789,19 @@ "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", "dev": true, "requires": { - "camelcase": "3.0.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "1.4.0", - "read-pkg-up": "1.0.1", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "1.0.2", - "which-module": "1.0.0", - "y18n": "3.2.1", - "yargs-parser": "5.0.0" + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.0" } }, "yargs-parser": { @@ -1761,7 +1810,7 @@ "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", "dev": true, "requires": { - "camelcase": "3.0.0" + "camelcase": "^3.0.0" } } } @@ -1772,11 +1821,11 @@ "integrity": "sha512-5cWuQbI+p6KVGr8ZafIOFIwqhiIzynpPzVwTjJ5J5QTkgSvlqPP+PIJtZ5dJiLpNtU3eFgsHs+qpmSB4fGx8FA==", "dev": true, "requires": { - "debug": "3.1.0", - "fs-extra": "4.0.3", - "klaw": "2.1.1", - "lodash": "4.17.4", - "uuid": "3.1.0" + "debug": "^3.1.0", + "fs-extra": "^4.0.2", + "klaw": "^2.1.0", + "lodash": "^4.17.4", + "uuid": "^3.1.0" }, "dependencies": { "debug": { @@ -1794,9 +1843,9 @@ "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "4.0.0", - "universalify": "0.1.1" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } }, "jsonfile": { @@ -1805,7 +1854,7 @@ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.6" } }, "klaw": { @@ -1814,7 +1863,7 @@ "integrity": "sha1-QrdolHARacyRD9DRnOZ3tfs3ivE=", "dev": true, "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.9" } } } @@ -1825,7 +1874,7 @@ "integrity": "sha1-jhdyBsPICDfYVjLouTWd/osvbq8=", "dev": true, "requires": { - "once": "1.3.3" + "once": "~1.3.0" }, "dependencies": { "once": { @@ -1834,7 +1883,7 @@ "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } } } @@ -1858,7 +1907,7 @@ "dev": true, "optional": true, "requires": { - "prr": "1.0.1" + "prr": "~1.0.1" } }, "error-ex": { @@ -1866,7 +1915,7 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "es6-promise": { @@ -1887,12 +1936,12 @@ "dev": true, "optional": true, "requires": { - "cross-spawn-async": "2.2.5", - "is-stream": "1.1.0", - "npm-run-path": "1.0.0", - "object-assign": "4.1.1", - "path-key": "1.0.0", - "strip-eof": "1.0.0" + "cross-spawn-async": "^2.1.1", + "is-stream": "^1.1.0", + "npm-run-path": "^1.0.0", + "object-assign": "^4.0.1", + "path-key": "^1.0.0", + "strip-eof": "^1.0.0" } }, "exists-stat": { @@ -1907,13 +1956,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.0", - "snapdragon": "0.8.1", - "to-regex": "3.0.1" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -1922,7 +1971,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "is-descriptor": { @@ -1931,9 +1980,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" } }, "kind-of": { @@ -1950,20 +1999,20 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "dev": true, "requires": { - "fill-range": "2.2.3" + "fill-range": "^2.1.0" }, "dependencies": { "fill-range": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", - "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "dev": true, "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "1.1.7", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" } }, "is-number": { @@ -1972,7 +2021,7 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "isobject": { @@ -1990,7 +2039,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -2006,7 +2055,7 @@ "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", "dev": true, "requires": { - "homedir-polyfill": "1.0.1" + "homedir-polyfill": "^1.0.1" } }, "extend": { @@ -2020,7 +2069,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "extglob": { @@ -2029,14 +2078,14 @@ "integrity": "sha512-I0+eZBH+jFGL8F5BnIz2ON2nKCjTS3AS3H/5PeSmCp7UVC70Ym8IhdRiQly2juKYQ//f7z1aj1BRpQniFJoU1w==", "dev": true, "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.0", - "snapdragon": "0.8.1", - "to-regex": "3.0.1" + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" } }, "extract-zip": { @@ -2081,17 +2130,27 @@ "integrity": "sha1-9BEl49hPLn2JpD0G2VjI94vha+E=", "dev": true, "requires": { - "ansi-gray": "0.1.1", - "color-support": "1.1.3", - "time-stamp": "1.1.0" + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "time-stamp": "^1.0.0" } }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + }, "fd-slicer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", "requires": { - "pend": "1.2.0" + "pend": "~1.2.0" } }, "file-set": { @@ -2100,8 +2159,8 @@ "integrity": "sha512-cCWXfw+nrYoIoUVmEF7Xsw91lGWuObtSnTEZ7AmdvZou1A/6Xx237HfxdQyC/ayKRvQSMbNOBwg62OjN5JxbXw==", "dev": true, "requires": { - "array-back": "2.0.0", - "glob": "7.1.2" + "array-back": "^2.0.0", + "glob": "^7.1.2" } }, "filename-regex": { @@ -2116,10 +2175,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" } }, "find-index": { @@ -2134,8 +2193,8 @@ "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", "dev": true, "requires": { - "array-back": "2.0.0", - "test-value": "3.0.0" + "array-back": "^2.0.0", + "test-value": "^3.0.0" } }, "find-up": { @@ -2143,8 +2202,8 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "findup-sync": { @@ -2153,10 +2212,10 @@ "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", "dev": true, "requires": { - "detect-file": "1.0.0", - "is-glob": "3.1.0", - "micromatch": "3.1.4", - "resolve-dir": "1.0.1" + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" } }, "fined": { @@ -2165,11 +2224,11 @@ "integrity": "sha1-s33IRLdqL15wgeiE98CuNE8VNHY=", "dev": true, "requires": { - "expand-tilde": "2.0.2", - "is-plain-object": "2.0.4", - "object.defaults": "1.1.0", - "object.pick": "1.3.0", - "parse-filepath": "1.0.1" + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" } }, "first-chunk-stream": { @@ -2191,7 +2250,7 @@ "dev": true, "optional": true, "requires": { - "imul": "1.0.1" + "imul": "^1.0.0" } }, "for-in": { @@ -2206,7 +2265,7 @@ "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", "dev": true, "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "forever-agent": { @@ -2215,13 +2274,13 @@ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "form-data": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" + "asynckit": "^0.4.0", + "combined-stream": "1.0.6", + "mime-types": "^2.1.12" } }, "fragment-cache": { @@ -2230,27 +2289,25 @@ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "fs-extra": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", - "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", - "dev": true, + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz", + "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==", "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "3.0.1", - "universalify": "0.1.1" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" }, "dependencies": { "jsonfile": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", - "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", - "dev": true, + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.6" } } } @@ -2262,7 +2319,7 @@ "dev": true, "optional": true, "requires": { - "random-path": "0.1.1" + "random-path": "^0.1.0" } }, "fs-then-native": { @@ -2278,8 +2335,8 @@ "dev": true, "optional": true, "requires": { - "buffer-from": "0.1.1", - "nan": "2.8.0" + "buffer-from": "^0.1.1", + "nan": "^2.3.2" } }, "fs.realpath": { @@ -2289,39 +2346,29 @@ "dev": true }, "fsevents": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", - "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", + "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", "dev": true, "optional": true, "requires": { - "nan": "2.8.0", - "node-pre-gyp": "0.6.39" + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" }, "dependencies": { "abbrev": { - "version": "1.1.0", + "version": "1.1.1", "bundled": true, "dev": true, "optional": true }, - "ajv": { - "version": "4.11.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" - } - }, "ansi-regex": { "version": "2.1.1", "bundled": true, "dev": true }, "aproba": { - "version": "1.1.1", + "version": "1.2.0", "bundled": true, "dev": true, "optional": true @@ -2332,92 +2379,26 @@ "dev": true, "optional": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.2.9" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, - "asn1": { - "version": "0.2.3", - "bundled": true, - "dev": true, - "optional": true - }, - "assert-plus": { - "version": "0.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "asynckit": { - "version": "0.4.0", - "bundled": true, - "dev": true, - "optional": true - }, - "aws-sign2": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "aws4": { - "version": "1.6.0", - "bundled": true, - "dev": true, - "optional": true - }, "balanced-match": { - "version": "0.4.2", - "bundled": true, - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "tweetnacl": "0.14.5" - } - }, - "block-stream": { - "version": "0.0.9", - "bundled": true, - "dev": true, - "requires": { - "inherits": "2.0.3" - } - }, - "boom": { - "version": "2.10.1", - "bundled": true, - "dev": true, - "requires": { - "hoek": "2.16.3" - } - }, - "brace-expansion": { - "version": "1.1.7", - "bundled": true, - "dev": true, - "requires": { - "balanced-match": "0.4.2", - "concat-map": "0.0.1" - } - }, - "buffer-shims": { "version": "1.0.0", "bundled": true, "dev": true }, - "caseless": { - "version": "0.12.0", + "brace-expansion": { + "version": "1.1.11", "bundled": true, "dev": true, - "optional": true + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } }, - "co": { - "version": "4.6.0", + "chownr": { + "version": "1.0.1", "bundled": true, "dev": true, "optional": true @@ -2427,14 +2408,6 @@ "bundled": true, "dev": true }, - "combined-stream": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "requires": { - "delayed-stream": "1.0.0" - } - }, "concat-map": { "version": "0.0.1", "bundled": true, @@ -2448,35 +2421,11 @@ "core-util-is": { "version": "1.0.2", "bundled": true, - "dev": true - }, - "cryptiles": { - "version": "2.0.5", - "bundled": true, "dev": true, - "requires": { - "boom": "2.10.1" - } - }, - "dashdash": { - "version": "1.14.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } + "optional": true }, "debug": { - "version": "2.6.8", + "version": "2.6.9", "bundled": true, "dev": true, "optional": true, @@ -2485,16 +2434,11 @@ } }, "deep-extend": { - "version": "0.4.2", + "version": "0.5.1", "bundled": true, "dev": true, "optional": true }, - "delayed-stream": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, "delegates": { "version": "1.0.0", "bundled": true, @@ -2502,74 +2446,25 @@ "optional": true }, "detect-libc": { - "version": "1.0.2", + "version": "1.0.3", "bundled": true, "dev": true, "optional": true }, - "ecc-jsbn": { - "version": "0.1.1", + "fs-minipass": { + "version": "1.2.5", "bundled": true, "dev": true, "optional": true, "requires": { - "jsbn": "0.1.1" - } - }, - "extend": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "extsprintf": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "bundled": true, - "dev": true, - "optional": true - }, - "form-data": { - "version": "2.1.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.15" + "minipass": "^2.2.1" } }, "fs.realpath": { "version": "1.0.0", "bundled": true, - "dev": true - }, - "fstream": { - "version": "1.0.11", - "bundled": true, "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.1" - } - }, - "fstream-ignore": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fstream": "1.0.11", - "inherits": "2.0.3", - "minimatch": "3.0.4" - } + "optional": true }, "gauge": { "version": "2.7.4", @@ -2577,65 +2472,28 @@ "dev": true, "optional": true, "requires": { - "aproba": "1.1.1", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" - } - }, - "getpass": { - "version": "0.1.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" } }, "glob": { "version": "7.1.2", "bundled": true, "dev": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "graceful-fs": { - "version": "4.1.11", - "bundled": true, - "dev": true - }, - "har-schema": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "optional": true - }, - "har-validator": { - "version": "4.2.1", - "bundled": true, - "dev": true, "optional": true, "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "has-unicode": { @@ -2644,40 +2502,32 @@ "dev": true, "optional": true }, - "hawk": { - "version": "3.1.3", - "bundled": true, - "dev": true, - "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" - } - }, - "hoek": { - "version": "2.16.3", - "bundled": true, - "dev": true - }, - "http-signature": { - "version": "1.1.1", + "iconv-lite": { + "version": "0.4.21", "bundled": true, "dev": true, "optional": true, "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.0", - "sshpk": "1.13.0" + "safer-buffer": "^2.1.0" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" } }, "inflight": { "version": "1.0.6", "bundled": true, "dev": true, + "optional": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -2686,7 +2536,7 @@ "dev": true }, "ini": { - "version": "1.3.4", + "version": "1.3.5", "bundled": true, "dev": true, "optional": true @@ -2696,107 +2546,21 @@ "bundled": true, "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, - "is-typedarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, "isarray": { "version": "1.0.0", "bundled": true, - "dev": true - }, - "isstream": { - "version": "0.1.2", - "bundled": true, "dev": true, "optional": true }, - "jodid25519": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, - "jsbn": { - "version": "0.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "json-schema": { - "version": "0.2.3", - "bundled": true, - "dev": true, - "optional": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "jsonify": "0.0.0" - } - }, - "json-stringify-safe": { - "version": "5.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "jsonify": { - "version": "0.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "jsprim": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.0.2", - "json-schema": "0.2.3", - "verror": "1.3.6" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "mime-db": { - "version": "1.27.0", - "bundled": true, - "dev": true - }, - "mime-types": { - "version": "2.1.15", - "bundled": true, - "dev": true, - "requires": { - "mime-db": "1.27.0" - } - }, "minimatch": { "version": "3.0.4", "bundled": true, "dev": true, "requires": { - "brace-expansion": "1.1.7" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -2804,6 +2568,24 @@ "bundled": true, "dev": true }, + "minipass": { + "version": "2.2.4", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, "mkdirp": { "version": "0.5.1", "bundled": true, @@ -2818,23 +2600,40 @@ "dev": true, "optional": true }, - "node-pre-gyp": { - "version": "0.6.39", + "nan": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", + "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", + "dev": true, + "optional": true + }, + "needle": { + "version": "2.2.0", "bundled": true, "dev": true, "optional": true, "requires": { - "detect-libc": "1.0.2", - "hawk": "3.1.3", - "mkdirp": "0.5.1", - "nopt": "4.0.1", - "npmlog": "4.1.0", - "rc": "1.2.1", - "request": "2.81.0", - "rimraf": "2.6.1", - "semver": "5.3.0", - "tar": "2.2.1", - "tar-pack": "3.4.0" + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.10.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" } }, "nopt": { @@ -2843,20 +2642,36 @@ "dev": true, "optional": true, "requires": { - "abbrev": "1.1.0", - "osenv": "0.1.4" + "abbrev": "1", + "osenv": "^0.1.4" } }, - "npmlog": { - "version": "4.1.0", + "npm-bundled": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.1.10", "bundled": true, "dev": true, "optional": true, "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" } }, "number-is-nan": { @@ -2864,12 +2679,6 @@ "bundled": true, "dev": true }, - "oauth-sign": { - "version": "0.8.2", - "bundled": true, - "dev": true, - "optional": true - }, "object-assign": { "version": "4.1.1", "bundled": true, @@ -2881,7 +2690,7 @@ "bundled": true, "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { @@ -2897,53 +2706,37 @@ "optional": true }, "osenv": { - "version": "0.1.4", + "version": "0.1.5", "bundled": true, "dev": true, "optional": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "path-is-absolute": { "version": "1.0.1", "bundled": true, - "dev": true - }, - "performance-now": { - "version": "0.2.0", - "bundled": true, "dev": true, "optional": true }, "process-nextick-args": { - "version": "1.0.7", - "bundled": true, - "dev": true - }, - "punycode": { - "version": "1.4.1", - "bundled": true, - "dev": true, - "optional": true - }, - "qs": { - "version": "6.4.0", + "version": "2.0.0", "bundled": true, "dev": true, "optional": true }, "rc": { - "version": "1.2.1", + "version": "1.2.7", "bundled": true, "dev": true, "optional": true, "requires": { - "deep-extend": "0.4.2", - "ini": "1.3.4", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, "dependencies": { "minimist": { @@ -2955,64 +2748,48 @@ } }, "readable-stream": { - "version": "2.2.9", - "bundled": true, - "dev": true, - "requires": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "1.0.1", - "util-deprecate": "1.0.2" - } - }, - "request": { - "version": "2.81.0", + "version": "2.3.6", "bundled": true, "dev": true, "optional": true, "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.15", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.0.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.2", - "tunnel-agent": "0.6.0", - "uuid": "3.0.1" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "rimraf": { - "version": "2.6.1", + "version": "2.6.2", "bundled": true, "dev": true, + "optional": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-buffer": { - "version": "5.0.1", + "version": "5.1.1", "bundled": true, "dev": 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.3.0", + "version": "5.5.0", "bundled": true, "dev": true, "optional": true @@ -3029,69 +2806,31 @@ "dev": true, "optional": true }, - "sntp": { - "version": "1.0.9", - "bundled": true, - "dev": true, - "requires": { - "hoek": "2.16.3" - } - }, - "sshpk": { - "version": "1.13.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jodid25519": "1.0.2", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, "string-width": { "version": "1.0.2", "bundled": true, "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "string_decoder": { - "version": "1.0.1", + "version": "1.1.1", "bundled": true, "dev": true, + "optional": true, "requires": { - "safe-buffer": "5.0.1" + "safe-buffer": "~5.1.0" } }, - "stringstream": { - "version": "0.0.5", - "bundled": true, - "dev": true, - "optional": true - }, "strip-ansi": { "version": "3.0.1", "bundled": true, "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { @@ -3101,94 +2840,44 @@ "optional": true }, "tar": { - "version": "2.2.1", - "bundled": true, - "dev": true, - "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" - } - }, - "tar-pack": { - "version": "3.4.0", + "version": "4.4.1", "bundled": true, "dev": true, "optional": true, "requires": { - "debug": "2.6.8", - "fstream": "1.0.11", - "fstream-ignore": "1.0.5", - "once": "1.4.0", - "readable-stream": "2.2.9", - "rimraf": "2.6.1", - "tar": "2.2.1", - "uid-number": "0.0.6" + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.2.4", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.1", + "yallist": "^3.0.2" } }, - "tough-cookie": { - "version": "2.3.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "punycode": "1.4.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "bundled": true, - "dev": true, - "optional": true - }, - "uid-number": { - "version": "0.0.6", - "bundled": true, - "dev": true, - "optional": true - }, "util-deprecate": { "version": "1.0.2", "bundled": true, - "dev": true - }, - "uuid": { - "version": "3.0.1", - "bundled": true, "dev": true, "optional": true }, - "verror": { - "version": "1.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "extsprintf": "1.0.2" - } - }, "wide-align": { "version": "1.1.2", "bundled": true, "dev": true, "optional": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2" } }, "wrappy": { "version": "1.0.2", "bundled": true, "dev": true + }, + "yallist": { + "version": "3.0.2", + "bundled": true, + "dev": true } } }, @@ -3198,25 +2887,31 @@ "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.2.8" + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" } }, + "gar": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/gar/-/gar-1.0.3.tgz", + "integrity": "sha512-zDpwk/l3HbhjVAvdxNUTJFzgXiNy0a7EmE/50XT38o1z+7NJbFhp+8CDsv1Qgy2adBAwUVYlMpIX2fZUbmlUJw==", + "dev": true + }, "gauge": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" } }, "gaze": { @@ -3225,7 +2920,7 @@ "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=", "dev": true, "requires": { - "globule": "0.1.0" + "globule": "~0.1.0" } }, "generate-function": { @@ -3242,7 +2937,7 @@ "dev": true, "optional": true, "requires": { - "is-property": "1.0.2" + "is-property": "^1.0.0" } }, "get-caller-file": { @@ -3252,13 +2947,13 @@ "dev": true }, "get-folder-size": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-folder-size/-/get-folder-size-1.0.0.tgz", - "integrity": "sha1-E01mOg50VhG3L3HIOxPxsS8xuik=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-folder-size/-/get-folder-size-1.0.1.tgz", + "integrity": "sha1-gC+kIIQ03nEgUYKxWrfxNSCI5YA=", "dev": true, "requires": { - "async": "1.5.2", - "minimist": "1.2.0" + "async": "^1.4.2", + "gar": "^1.0.2" }, "dependencies": { "async": { @@ -3275,10 +2970,10 @@ "integrity": "sha1-ZDJ5ZWPigRPNlHTbvQAFKYWkmZw=", "dev": true, "requires": { - "bluebird": "3.5.1", - "debug": "2.6.9", - "lodash.get": "4.4.2", - "read-pkg-up": "2.0.0" + "bluebird": "^3.1.1", + "debug": "^2.2.0", + "lodash.get": "^4.0.0", + "read-pkg-up": "^2.0.0" }, "dependencies": { "find-up": { @@ -3287,7 +2982,7 @@ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "load-json-file": { @@ -3296,10 +2991,10 @@ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" } }, "path-type": { @@ -3308,7 +3003,7 @@ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "dev": true, "requires": { - "pify": "2.3.0" + "pify": "^2.0.0" } }, "read-pkg": { @@ -3317,9 +3012,9 @@ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "dev": true, "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.4.0", - "path-type": "2.0.0" + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" } }, "read-pkg-up": { @@ -3328,8 +3023,8 @@ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "dev": true, "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" } }, "strip-bom": { @@ -3362,14 +3057,7 @@ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } + "assert-plus": "^1.0.0" } }, "github-from-package": { @@ -3383,12 +3071,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "glob-base": { @@ -3397,8 +3085,8 @@ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "dev": true, "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" }, "dependencies": { "is-extglob": { @@ -3413,7 +3101,7 @@ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } } } @@ -3424,7 +3112,7 @@ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "dev": true, "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" }, "dependencies": { "is-extglob": { @@ -3439,7 +3127,7 @@ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } } } @@ -3450,12 +3138,12 @@ "integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=", "dev": true, "requires": { - "glob": "4.5.3", - "glob2base": "0.0.12", - "minimatch": "2.0.10", - "ordered-read-streams": "0.1.0", - "through2": "0.6.5", - "unique-stream": "1.0.0" + "glob": "^4.3.1", + "glob2base": "^0.0.12", + "minimatch": "^2.0.1", + "ordered-read-streams": "^0.1.0", + "through2": "^0.6.1", + "unique-stream": "^1.0.0" }, "dependencies": { "glob": { @@ -3464,10 +3152,10 @@ "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=", "dev": true, "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "2.0.10", - "once": "1.4.0" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^2.0.1", + "once": "^1.3.0" } }, "isarray": { @@ -3482,7 +3170,7 @@ "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", "dev": true, "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.0.0" } }, "readable-stream": { @@ -3491,10 +3179,10 @@ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "string_decoder": { @@ -3509,8 +3197,8 @@ "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", "dev": true, "requires": { - "readable-stream": "1.0.34", - "xtend": "4.0.1" + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" } } } @@ -3521,7 +3209,7 @@ "integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=", "dev": true, "requires": { - "gaze": "0.5.2" + "gaze": "^0.5.1" } }, "glob2base": { @@ -3530,7 +3218,7 @@ "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=", "dev": true, "requires": { - "find-index": "0.1.1" + "find-index": "^0.1.1" } }, "global-modules": { @@ -3539,9 +3227,9 @@ "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", "dev": true, "requires": { - "global-prefix": "1.0.2", - "is-windows": "1.0.1", - "resolve-dir": "1.0.1" + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" } }, "global-prefix": { @@ -3550,11 +3238,11 @@ "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", "dev": true, "requires": { - "expand-tilde": "2.0.2", - "homedir-polyfill": "1.0.1", - "ini": "1.3.5", - "is-windows": "1.0.1", - "which": "1.3.0" + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" } }, "globule": { @@ -3563,9 +3251,9 @@ "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=", "dev": true, "requires": { - "glob": "3.1.21", - "lodash": "1.0.2", - "minimatch": "0.2.14" + "glob": "~3.1.21", + "lodash": "~1.0.1", + "minimatch": "~0.2.11" }, "dependencies": { "glob": { @@ -3574,9 +3262,9 @@ "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", "dev": true, "requires": { - "graceful-fs": "1.2.3", - "inherits": "1.0.2", - "minimatch": "0.2.14" + "graceful-fs": "~1.2.0", + "inherits": "1", + "minimatch": "~0.2.11" } }, "graceful-fs": { @@ -3603,8 +3291,8 @@ "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", "dev": true, "requires": { - "lru-cache": "2.7.3", - "sigmund": "1.0.1" + "lru-cache": "2", + "sigmund": "~1.0.0" } } } @@ -3615,7 +3303,7 @@ "integrity": "sha1-f+DxmfV6yQbPUS/urY+Q7kooT8U=", "dev": true, "requires": { - "sparkles": "1.0.0" + "sparkles": "^1.0.0" } }, "graceful-fs": { @@ -3634,19 +3322,19 @@ "integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=", "dev": true, "requires": { - "archy": "1.0.0", - "chalk": "1.1.3", - "deprecated": "0.0.1", - "gulp-util": "3.0.8", - "interpret": "1.1.0", - "liftoff": "2.5.0", - "minimist": "1.2.0", - "orchestrator": "0.3.8", - "pretty-hrtime": "1.0.3", - "semver": "4.3.6", - "tildify": "1.2.0", - "v8flags": "2.1.1", - "vinyl-fs": "0.3.14" + "archy": "^1.0.0", + "chalk": "^1.0.0", + "deprecated": "^0.0.1", + "gulp-util": "^3.0.0", + "interpret": "^1.0.0", + "liftoff": "^2.1.0", + "minimist": "^1.1.0", + "orchestrator": "^0.3.0", + "pretty-hrtime": "^1.0.0", + "semver": "^4.1.0", + "tildify": "^1.0.0", + "v8flags": "^2.0.2", + "vinyl-fs": "^0.3.0" }, "dependencies": { "semver": { @@ -3663,9 +3351,9 @@ "integrity": "sha1-Yz0WyV2IUEYorQJmVmPO5aR5M1M=", "dev": true, "requires": { - "concat-with-sourcemaps": "1.0.4", - "through2": "2.0.3", - "vinyl": "2.1.0" + "concat-with-sourcemaps": "^1.0.0", + "through2": "^2.0.0", + "vinyl": "^2.0.0" }, "dependencies": { "clone": { @@ -3692,8 +3380,8 @@ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "dev": true, "requires": { - "readable-stream": "2.3.3", - "xtend": "4.0.1" + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" } }, "vinyl": { @@ -3702,12 +3390,12 @@ "integrity": "sha1-Ah+cLPlR1rk5lDyJ617lrdT9kkw=", "dev": true, "requires": { - "clone": "2.1.1", - "clone-buffer": "1.0.0", - "clone-stats": "1.0.0", - "cloneable-readable": "1.0.0", - "remove-trailing-separator": "1.1.0", - "replace-ext": "1.0.0" + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" } } } @@ -3718,13 +3406,13 @@ "integrity": "sha512-qRaENWGzZlzb5xDuocsS51y6An1LWjTmCitOSfCNLTGH2O3/owqAjF0z11wUvlYu7OV6bo7R1KV55vOiQtuEWw==", "dev": true, "requires": { - "accord": "0.27.3", - "less": "2.7.3", - "object-assign": "4.1.1", - "plugin-error": "0.1.2", - "replace-ext": "1.0.0", - "through2": "2.0.3", - "vinyl-sourcemaps-apply": "0.2.1" + "accord": "^0.27.3", + "less": "2.6.x || ^2.7.1", + "object-assign": "^4.0.1", + "plugin-error": "^0.1.2", + "replace-ext": "^1.0.0", + "through2": "^2.0.0", + "vinyl-sourcemaps-apply": "^0.2.0" }, "dependencies": { "replace-ext": { @@ -3739,8 +3427,8 @@ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "dev": true, "requires": { - "readable-stream": "2.3.3", - "xtend": "4.0.1" + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" } } } @@ -3751,24 +3439,24 @@ "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=", "dev": true, "requires": { - "array-differ": "1.0.0", - "array-uniq": "1.0.3", - "beeper": "1.1.1", - "chalk": "1.1.3", - "dateformat": "2.2.0", - "fancy-log": "1.3.2", - "gulplog": "1.0.0", - "has-gulplog": "0.1.0", - "lodash._reescape": "3.0.0", - "lodash._reevaluate": "3.0.0", - "lodash._reinterpolate": "3.0.0", - "lodash.template": "3.6.2", - "minimist": "1.2.0", - "multipipe": "0.1.2", - "object-assign": "3.0.0", + "array-differ": "^1.0.0", + "array-uniq": "^1.0.2", + "beeper": "^1.0.0", + "chalk": "^1.0.0", + "dateformat": "^2.0.0", + "fancy-log": "^1.1.0", + "gulplog": "^1.0.0", + "has-gulplog": "^0.1.0", + "lodash._reescape": "^3.0.0", + "lodash._reevaluate": "^3.0.0", + "lodash._reinterpolate": "^3.0.0", + "lodash.template": "^3.0.0", + "minimist": "^1.1.0", + "multipipe": "^0.1.2", + "object-assign": "^3.0.0", "replace-ext": "0.0.1", - "through2": "2.0.3", - "vinyl": "0.5.3" + "through2": "^2.0.0", + "vinyl": "^0.5.0" }, "dependencies": { "object-assign": { @@ -3783,8 +3471,8 @@ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "dev": true, "requires": { - "readable-stream": "2.3.3", - "xtend": "4.0.1" + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" } } } @@ -3795,7 +3483,7 @@ "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", "dev": true, "requires": { - "glogg": "1.0.0" + "glogg": "^1.0.0" } }, "handlebars": { @@ -3804,10 +3492,10 @@ "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", "dev": true, "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4", + "uglify-js": "^2.6" }, "dependencies": { "async": { @@ -3822,23 +3510,23 @@ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } }, "har-schema": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" }, "har-validator": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" + "ajv": "^5.1.0", + "har-schema": "^2.0.0" } }, "has-ansi": { @@ -3847,7 +3535,7 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-gulplog": { @@ -3856,7 +3544,7 @@ "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", "dev": true, "requires": { - "sparkles": "1.0.0" + "sparkles": "^1.0.0" } }, "has-own-property-x": { @@ -3866,9 +3554,9 @@ "dev": true, "optional": true, "requires": { - "cached-constructors-x": "1.0.0", - "to-object-x": "1.5.0", - "to-property-key-x": "2.0.2" + "cached-constructors-x": "^1.0.0", + "to-object-x": "^1.5.0", + "to-property-key-x": "^2.0.2" } }, "has-symbol-support-x": { @@ -3883,7 +3571,7 @@ "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", "dev": true, "requires": { - "has-symbol-support-x": "1.4.1" + "has-symbol-support-x": "^1.4.1" } }, "has-unicode": { @@ -3897,9 +3585,9 @@ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" } }, "has-values": { @@ -3908,8 +3596,8 @@ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "kind-of": { @@ -3918,7 +3606,7 @@ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -3927,17 +3615,20 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "dev": true, + "optional": true, "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" } }, "hoek": { "version": "2.16.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "dev": true }, "home-path": { "version": "1.0.5", @@ -3950,7 +3641,7 @@ "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", "dev": true, "requires": { - "parse-passwd": "1.0.0" + "parse-passwd": "^1.0.0" } }, "hosted-git-info": { @@ -3959,13 +3650,13 @@ "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==" }, "http-signature": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.1", - "sshpk": "1.13.1" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "humanize-duration": { @@ -3991,7 +3682,7 @@ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "indx": { @@ -4013,8 +3704,8 @@ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -4045,8 +3736,8 @@ "integrity": "sha1-IN5p89uULvLYe5wto28XIjWxtes=", "dev": true, "requires": { - "is-relative": "0.2.1", - "is-windows": "0.2.0" + "is-relative": "^0.2.1", + "is-windows": "^0.2.0" }, "dependencies": { "is-windows": { @@ -4063,7 +3754,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -4072,7 +3763,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -4084,11 +3775,11 @@ "dev": true, "optional": true, "requires": { - "attempt-x": "1.1.1", - "has-to-string-tag-x": "1.4.1", - "is-object-like-x": "1.6.0", - "object-get-own-property-descriptor-x": "3.2.0", - "to-string-tag-x": "1.4.2" + "attempt-x": "^1.1.0", + "has-to-string-tag-x": "^1.4.1", + "is-object-like-x": "^1.5.1", + "object-get-own-property-descriptor-x": "^3.2.0", + "to-string-tag-x": "^1.4.1" } }, "is-arrayish": { @@ -4102,7 +3793,7 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { - "binary-extensions": "1.11.0" + "binary-extensions": "^1.0.0" } }, "is-buffer": { @@ -4116,7 +3807,7 @@ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-data-descriptor": { @@ -4125,7 +3816,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -4134,7 +3825,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -4151,9 +3842,9 @@ "integrity": "sha512-G3fFVFTqfaqu7r4YuSBHKBAuOaLz8Sy7ekklUpFEliaLMP1Y2ZjoN9jS62YWCAPQrQpMUQSitRlrzibbuCZjdA==", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" }, "dependencies": { "kind-of": { @@ -4176,7 +3867,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "dev": true, "requires": { - "is-primitive": "2.0.0" + "is-primitive": "^2.0.0" } }, "is-extendable": { @@ -4197,7 +3888,7 @@ "integrity": "sha512-XWNZC4A+3FX1ECoMjspuEFgSdio82IWjqY/suE0gZ10QA7nzHd/KraRq7Tc5VEHtFRgTRyTdY6W+ykPrDnyoAQ==", "dev": true, "requires": { - "to-boolean-x": "1.0.1" + "to-boolean-x": "^1.0.1" } }, "is-finite": { @@ -4205,7 +3896,7 @@ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-finite-x": { @@ -4215,8 +3906,8 @@ "dev": true, "optional": true, "requires": { - "infinity-x": "1.0.0", - "is-nan-x": "1.0.1" + "infinity-x": "^1.0.0", + "is-nan-x": "^1.0.1" } }, "is-fullwidth-code-point": { @@ -4224,7 +3915,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-function-x": { @@ -4233,14 +3924,14 @@ "integrity": "sha512-SreSSU1dlgYaXR5c0mm4qJHKYHIiGiEY+7Cd8/aRLLoMP/VvofD2XcWgBnP833ajpU5XzXbUSpfysnfKZLJFlg==", "dev": true, "requires": { - "attempt-x": "1.1.1", - "has-to-string-tag-x": "1.4.1", - "is-falsey-x": "1.0.1", - "is-primitive": "2.0.0", - "normalize-space-x": "3.0.0", - "replace-comments-x": "2.0.0", - "to-boolean-x": "1.0.1", - "to-string-tag-x": "1.4.2" + "attempt-x": "^1.1.1", + "has-to-string-tag-x": "^1.4.1", + "is-falsey-x": "^1.0.1", + "is-primitive": "^2.0.0", + "normalize-space-x": "^3.0.0", + "replace-comments-x": "^2.0.0", + "to-boolean-x": "^1.0.1", + "to-string-tag-x": "^1.4.2" } }, "is-glob": { @@ -4249,7 +3940,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } }, "is-index-x": { @@ -4259,11 +3950,11 @@ "dev": true, "optional": true, "requires": { - "math-clamp-x": "1.2.0", - "max-safe-integer": "1.0.1", - "to-integer-x": "3.0.0", - "to-number-x": "2.0.0", - "to-string-symbols-supported-x": "1.0.0" + "math-clamp-x": "^1.2.0", + "max-safe-integer": "^1.0.1", + "to-integer-x": "^3.0.0", + "to-number-x": "^2.0.0", + "to-string-symbols-supported-x": "^1.0.0" } }, "is-my-json-valid": { @@ -4273,10 +3964,10 @@ "dev": true, "optional": true, "requires": { - "generate-function": "2.0.0", - "generate-object-property": "1.2.0", - "jsonpointer": "4.0.1", - "xtend": "4.0.1" + "generate-function": "^2.0.0", + "generate-object-property": "^1.1.0", + "jsonpointer": "^4.0.0", + "xtend": "^4.0.0" } }, "is-nan-x": { @@ -4291,8 +3982,8 @@ "integrity": "sha512-cfTKWI5iSR04SSCzzugTH5tS2rYG7kwI8yl/AqWkyuxZ7k55cbA47Y7Lezdg1N9aaELd+UxLg628bdQeNQ6BUw==", "dev": true, "requires": { - "lodash.isnull": "3.0.0", - "validate.io-undefined": "1.0.3" + "lodash.isnull": "^3.0.0", + "validate.io-undefined": "^1.0.3" } }, "is-number": { @@ -4301,7 +3992,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -4310,7 +4001,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -4322,8 +4013,8 @@ "dev": true, "optional": true, "requires": { - "is-function-x": "3.3.0", - "is-primitive": "2.0.0" + "is-function-x": "^3.3.0", + "is-primitive": "^2.0.0" } }, "is-odd": { @@ -4332,7 +4023,7 @@ "integrity": "sha1-O4qTLrAos3dcObsJ6RdnrM22kIg=", "dev": true, "requires": { - "is-number": "3.0.0" + "is-number": "^3.0.0" } }, "is-plain-object": { @@ -4341,7 +4032,7 @@ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" } }, "is-posix-bracket": { @@ -4375,7 +4066,7 @@ "integrity": "sha1-0n9MfVFtF1+2ENuEu+7yPDvJeqU=", "dev": true, "requires": { - "is-unc-path": "0.1.2" + "is-unc-path": "^0.1.1" } }, "is-stream": { @@ -4408,7 +4099,7 @@ "integrity": "sha1-arBTpyVzwQJQ/0FqOBTDUXivObk=", "dev": true, "requires": { - "unc-path-regex": "0.1.2" + "unc-path-regex": "^0.1.0" } }, "is-utf8": { @@ -4461,7 +4152,7 @@ "integrity": "sha1-P7YOqgicVED5MZ9RdgzNB+JJlzM=", "dev": true, "requires": { - "xmlcreate": "1.0.2" + "xmlcreate": "^1.0.1" } }, "jsbn": { @@ -4477,17 +4168,17 @@ "dev": true, "requires": { "babylon": "7.0.0-beta.19", - "bluebird": "3.5.1", - "catharsis": "0.8.9", - "escape-string-regexp": "1.0.5", - "js2xmlparser": "3.0.0", - "klaw": "2.0.0", - "marked": "0.3.17", - "mkdirp": "0.5.1", - "requizzle": "0.2.1", - "strip-json-comments": "2.0.1", + "bluebird": "~3.5.0", + "catharsis": "~0.8.9", + "escape-string-regexp": "~1.0.5", + "js2xmlparser": "~3.0.0", + "klaw": "~2.0.0", + "marked": "~0.3.6", + "mkdirp": "~0.5.1", + "requizzle": "~0.2.1", + "strip-json-comments": "~2.0.1", "taffydb": "2.6.2", - "underscore": "1.8.3" + "underscore": "~1.8.3" }, "dependencies": { "klaw": { @@ -4496,7 +4187,7 @@ "integrity": "sha1-WcEo4Nxc5BAgEVEZTuucv4WGUPY=", "dev": true, "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.9" } } } @@ -4507,15 +4198,15 @@ "integrity": "sha512-dfYq9JgB+XahY0XfSEw93PmXmocjwYcvJ5aMuQUJ/OdDRGWamf2SSOk3W06Bsj8qdjp/UdefzqpP/mpwsvHuvA==", "dev": true, "requires": { - "array-back": "2.0.0", - "cache-point": "0.4.1", - "collect-all": "1.0.3", - "file-set": "2.0.0", - "fs-then-native": "2.0.0", - "jsdoc": "3.5.5", - "object-to-spawn-args": "1.1.1", - "temp-path": "1.0.0", - "walk-back": "3.0.0" + "array-back": "^2.0.0", + "cache-point": "^0.4.1", + "collect-all": "^1.0.3", + "file-set": "^2.0.0", + "fs-then-native": "^2.0.0", + "jsdoc": "~3.5.5", + "object-to-spawn-args": "^1.1.1", + "temp-path": "^1.0.0", + "walk-back": "^3.0.0" } }, "jsdoc-parse": { @@ -4524,12 +4215,12 @@ "integrity": "sha512-btZLp4wYl90vcAfgk4hoGQbO17iBVrhh3LJRMKZNtZgniO3F8H2CjxXld0owBIB1XxN+j3bAcWZnZKMnSj3iMA==", "dev": true, "requires": { - "array-back": "2.0.0", - "lodash.omit": "4.5.0", - "lodash.pick": "4.4.0", - "reduce-extract": "1.0.0", - "sort-array": "2.0.0", - "test-value": "3.0.0" + "array-back": "^2.0.0", + "lodash.omit": "^4.5.0", + "lodash.pick": "^4.4.0", + "reduce-extract": "^1.0.0", + "sort-array": "^2.0.0", + "test-value": "^3.0.0" } }, "jsdoc-to-markdown": { @@ -4538,13 +4229,13 @@ "integrity": "sha512-LHJRoLoLyDdxNcColgkLoB/rFG5iRP+PNJjMILI0x+95IdEAtyjSt0wJ6ZlKxRpkhBYtQXTQQ119hMqPIUZzTQ==", "dev": true, "requires": { - "array-back": "2.0.0", - "command-line-tool": "0.8.0", - "config-master": "3.1.0", - "dmd": "3.0.11", - "jsdoc-api": "4.0.3", - "jsdoc-parse": "3.0.1", - "walk-back": "3.0.0" + "array-back": "^2.0.0", + "command-line-tool": "^0.8.0", + "config-master": "^3.1.0", + "dmd": "^3.0.10", + "jsdoc-api": "^4.0.1", + "jsdoc-parse": "^3.0.1", + "walk-back": "^3.0.0" } }, "json-schema": { @@ -4552,12 +4243,19 @@ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" + }, "json-stable-stringify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "dev": true, + "optional": true, "requires": { - "jsonify": "0.0.0" + "jsonify": "~0.0.0" } }, "json-stringify-safe": { @@ -4570,13 +4268,15 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.6" } }, "jsonify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true, + "optional": true }, "jsonpointer": { "version": "4.0.1", @@ -4594,13 +4294,6 @@ "extsprintf": "1.3.0", "json-schema": "0.2.3", "verror": "1.10.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } } }, "kind-of": { @@ -4614,7 +4307,7 @@ "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.9" } }, "lazy-cache": { @@ -4623,7 +4316,7 @@ "integrity": "sha1-uRkKT5EzVGlIQIWfio9whNiCImQ=", "dev": true, "requires": { - "set-getter": "0.1.0" + "set-getter": "^0.1.0" } }, "lcid": { @@ -4632,7 +4325,7 @@ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "less": { @@ -4641,14 +4334,128 @@ "integrity": "sha512-KPdIJKWcEAb02TuJtaLrhue0krtRLoRoo7x6BNJIBelO00t/CCdJQUnHW5V34OnHMWzIktSalJxRO+FvytQlCQ==", "dev": true, "requires": { - "errno": "0.1.6", - "graceful-fs": "4.1.11", - "image-size": "0.5.5", - "mime": "1.6.0", - "mkdirp": "0.5.1", - "promise": "7.3.1", + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "mime": "^1.2.11", + "mkdirp": "^0.5.0", + "promise": "^7.1.1", "request": "2.81.0", - "source-map": "0.5.7" + "source-map": "^0.5.3" + }, + "dependencies": { + "ajv": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "dev": true, + "optional": true, + "requires": { + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" + } + }, + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "dev": true, + "optional": true + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "dev": true, + "optional": true + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "dev": true, + "optional": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" + } + }, + "har-schema": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", + "dev": true, + "optional": true + }, + "har-validator": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "dev": true, + "optional": true, + "requires": { + "ajv": "^4.9.1", + "har-schema": "^1.0.5" + } + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "dev": true, + "optional": true, + "requires": { + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "performance-now": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", + "dev": true, + "optional": true + }, + "qs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "dev": true, + "optional": true + }, + "request": { + "version": "2.81.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "dev": true, + "optional": true, + "requires": { + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~4.2.1", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "performance-now": "^0.2.0", + "qs": "~6.4.0", + "safe-buffer": "^5.0.1", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.0.0" + } + } } }, "liftoff": { @@ -4657,14 +4464,14 @@ "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", "dev": true, "requires": { - "extend": "3.0.1", - "findup-sync": "2.0.0", - "fined": "1.1.0", - "flagged-respawn": "1.0.0", - "is-plain-object": "2.0.4", - "object.map": "1.0.0", - "rechoir": "0.6.2", - "resolve": "1.5.0" + "extend": "^3.0.0", + "findup-sync": "^2.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" } }, "load-json-file": { @@ -4672,11 +4479,11 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" } }, "locate-path": { @@ -4685,8 +4492,8 @@ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" }, "dependencies": { "path-exists": { @@ -4698,9 +4505,9 @@ } }, "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==" }, "lodash._basecopy": { "version": "3.0.1", @@ -4786,7 +4593,7 @@ "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", "dev": true, "requires": { - "lodash._root": "3.0.1" + "lodash._root": "^3.0.0" } }, "lodash.flatten": { @@ -4825,9 +4632,9 @@ "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", "dev": true, "requires": { - "lodash._getnative": "3.9.1", - "lodash.isarguments": "3.1.0", - "lodash.isarray": "3.0.4" + "lodash._getnative": "^3.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" } }, "lodash.merge": { @@ -4872,15 +4679,15 @@ "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", "dev": true, "requires": { - "lodash._basecopy": "3.0.1", - "lodash._basetostring": "3.0.1", - "lodash._basevalues": "3.0.0", - "lodash._isiterateecall": "3.0.9", - "lodash._reinterpolate": "3.0.0", - "lodash.escape": "3.2.0", - "lodash.keys": "3.1.2", - "lodash.restparam": "3.6.1", - "lodash.templatesettings": "3.1.1" + "lodash._basecopy": "^3.0.0", + "lodash._basetostring": "^3.0.0", + "lodash._basevalues": "^3.0.0", + "lodash._isiterateecall": "^3.0.0", + "lodash._reinterpolate": "^3.0.0", + "lodash.escape": "^3.0.0", + "lodash.keys": "^3.0.0", + "lodash.restparam": "^3.0.0", + "lodash.templatesettings": "^3.0.0" } }, "lodash.templatesettings": { @@ -4889,8 +4696,8 @@ "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", "dev": true, "requires": { - "lodash._reinterpolate": "3.0.0", - "lodash.escape": "3.2.0" + "lodash._reinterpolate": "^3.0.0", + "lodash.escape": "^3.0.0" } }, "lodash.uniq": { @@ -4905,7 +4712,7 @@ "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", "dev": true, "requires": { - "chalk": "1.1.3" + "chalk": "^1.0.0" } }, "longest": { @@ -4919,8 +4726,8 @@ "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "requires": { - "currently-unhandled": "0.4.1", - "signal-exit": "3.0.2" + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" } }, "lru-cache": { @@ -4936,7 +4743,7 @@ "dev": true, "optional": true, "requires": { - "nan": "2.8.0" + "nan": "^2.4.0" } }, "make-iterator": { @@ -4945,7 +4752,7 @@ "integrity": "sha1-V7713IXSOSO6I3ZzJNjo+PPZaUs=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.1.0" }, "dependencies": { "kind-of": { @@ -4954,7 +4761,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -4976,7 +4783,7 @@ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "marked": { @@ -4991,7 +4798,7 @@ "integrity": "sha512-nUCmzKipcJEwYsBVAFh5P+d7JBuhJaW1xs85Hara9xuMLqtCVUrW6DSC0JVIkluxEH2W45nPBM/wjHtBXa/tYA==", "dev": true, "requires": { - "minimatch": "3.0.4" + "minimatch": "^3.0.2" } }, "math-clamp-x": { @@ -5001,9 +4808,15 @@ "dev": true, "optional": true, "requires": { - "to-number-x": "2.0.0" + "to-number-x": "^2.0.0" } }, + "math-random": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", + "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", + "dev": true + }, "math-sign-x": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/math-sign-x/-/math-sign-x-3.0.0.tgz", @@ -5011,8 +4824,8 @@ "dev": true, "optional": true, "requires": { - "is-nan-x": "1.0.1", - "to-number-x": "2.0.0" + "is-nan-x": "^1.0.1", + "to-number-x": "^2.0.0" } }, "max-safe-integer": { @@ -5028,7 +4841,7 @@ "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "dev": true, "requires": { - "mimic-fn": "1.1.0" + "mimic-fn": "^1.0.0" } }, "meow": { @@ -5036,16 +4849,16 @@ "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "requires": { - "camelcase-keys": "2.1.0", - "decamelize": "1.2.0", - "loud-rejection": "1.6.0", - "map-obj": "1.0.1", - "minimist": "1.2.0", - "normalize-package-data": "2.4.0", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "redent": "1.0.0", - "trim-newlines": "1.0.0" + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" } }, "micromatch": { @@ -5054,19 +4867,19 @@ "integrity": "sha512-kFRtviKYoAJT+t7HggMl0tBFGNAKLw/S7N+CO9qfEQyisob1Oy4pao+geRbkyeEd+V9aOkvZ4mhuyPvI/q9Sfg==", "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.0", - "define-property": "1.0.0", - "extend-shallow": "2.0.1", - "extglob": "2.0.2", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.6", - "object.pick": "1.3.0", - "regex-not": "1.0.0", - "snapdragon": "0.8.1", - "to-regex": "3.0.1" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.0", + "define-property": "^1.0.0", + "extend-shallow": "^2.0.1", + "extglob": "^2.0.2", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.0", + "nanomatch": "^1.2.5", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" } }, "mime": { @@ -5077,16 +4890,16 @@ "optional": true }, "mime-db": { - "version": "1.30.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", - "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=" + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" }, "mime-types": { - "version": "2.1.17", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", - "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", "requires": { - "mime-db": "1.30.0" + "mime-db": "~1.33.0" } }, "mimic-fn": { @@ -5101,7 +4914,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -5115,8 +4928,8 @@ "integrity": "sha512-dgaCvoh6i1nosAUBKb0l0pfJ78K8+S9fluyIR2YvAeUD/QuMahnFnF3xYty5eYXMjhGSsB0DsW6A0uAZyetoAg==", "dev": true, "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -5125,7 +4938,7 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -5165,7 +4978,7 @@ "requires": { "decompress-zip": "0.3.0", "fs-extra": "0.26.7", - "request": "2.81.0" + "request": "^2.79.0" }, "dependencies": { "fs-extra": { @@ -5174,11 +4987,11 @@ "integrity": "sha1-muH92UiXeY7at20JGM9C0MMYT6k=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "2.4.0", - "klaw": "1.3.1", - "path-is-absolute": "1.0.1", - "rimraf": "2.2.8" + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" } } } @@ -5209,9 +5022,9 @@ "dev": true, "optional": true, "requires": { - "array-buffer-from-string": "0.1.0", - "fmix": "0.1.0", - "imul": "1.0.1" + "array-buffer-from-string": "^0.1.0", + "fmix": "^0.1.0", + "imul": "^1.0.0" } }, "mz": { @@ -5220,9 +5033,9 @@ "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", "dev": true, "requires": { - "any-promise": "1.3.0", - "object-assign": "4.1.1", - "thenify-all": "1.6.0" + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" } }, "nan": { @@ -5242,17 +5055,17 @@ "integrity": "sha512-WJ6XTCbvWXUFPbi/bDwKcYkCeOGUHzaJj72KbuPqGn78Ba/F5Vu26Zlo6SuMQbCIst1RGKL1zfWBCOGAlbRLAg==", "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "1.0.0", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "is-odd": "1.0.0", - "kind-of": "5.1.0", - "object.pick": "1.3.0", - "regex-not": "1.0.0", - "snapdragon": "0.8.1", - "to-regex": "3.0.1" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "is-odd": "^1.0.0", + "kind-of": "^5.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "kind-of": { @@ -5276,7 +5089,7 @@ "dev": true, "optional": true, "requires": { - "inherits": "2.0.3" + "inherits": "~2.0.1" } }, "node-abi": { @@ -5284,7 +5097,7 @@ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.1.2.tgz", "integrity": "sha512-hmUtb8m75RSi7N+zZLYqe75XDvZB+6LyTBPkj2DConvNgQet2e3BIqEwe1LLvqMrfyjabuT5ZOrTioLCH1HTdA==", "requires": { - "semver": "5.4.1" + "semver": "^5.4.1" } }, "node-gyp": { @@ -5293,19 +5106,19 @@ "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=", "dev": true, "requires": { - "fstream": "1.0.11", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "nopt": "3.0.6", - "npmlog": "4.1.2", - "osenv": "0.1.4", - "request": "2.81.0", - "rimraf": "2.2.8", - "semver": "5.3.0", - "tar": "2.2.1", - "which": "1.3.0" + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "2", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" }, "dependencies": { "glob": { @@ -5314,12 +5127,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "nopt": { @@ -5328,7 +5141,7 @@ "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", "dev": true, "requires": { - "abbrev": "1.1.1" + "abbrev": "1" } }, "semver": { @@ -5344,10 +5157,10 @@ "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.1.2.tgz", "integrity": "sha1-L6nhJgX6EACdRFSdb82KY93g5P8=", "requires": { - "growly": "1.3.0", - "semver": "5.4.1", - "shellwords": "0.1.1", - "which": "1.3.0" + "growly": "^1.3.0", + "semver": "^5.3.0", + "shellwords": "^0.1.0", + "which": "^1.2.12" } }, "nodeify": { @@ -5356,8 +5169,8 @@ "integrity": "sha1-ZKtpp7268DzhB7TwM1yHwLnpGx0=", "dev": true, "requires": { - "is-promise": "1.0.1", - "promise": "1.3.0" + "is-promise": "~1.0.0", + "promise": "~1.3.0" }, "dependencies": { "promise": { @@ -5366,7 +5179,7 @@ "integrity": "sha1-5cyaTIJ45GZP/twBx9qEhCsEAXU=", "dev": true, "requires": { - "is-promise": "1.0.1" + "is-promise": "~1" } } } @@ -5382,7 +5195,7 @@ "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", "dev": true, "requires": { - "abbrev": "1.1.1" + "abbrev": "1" } }, "normalize-package-data": { @@ -5390,10 +5203,10 @@ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "requires": { - "hosted-git-info": "2.5.0", - "is-builtin-module": "1.0.0", - "semver": "5.4.1", - "validate-npm-package-license": "3.0.1" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "normalize-path": { @@ -5402,7 +5215,7 @@ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "normalize-space-x": { @@ -5411,9 +5224,9 @@ "integrity": "sha512-tbCJerqZCCHPst4rRKgsTanLf45fjOyeAU5zE3mhDxJtFJKt66q39g2XArWhXelgTFVib8mNBUm6Wrd0LxYcfQ==", "dev": true, "requires": { - "cached-constructors-x": "1.0.0", - "trim-x": "3.0.0", - "white-space-x": "3.0.0" + "cached-constructors-x": "^1.0.0", + "trim-x": "^3.0.0", + "white-space-x": "^3.0.0" } }, "npm-run-path": { @@ -5423,7 +5236,7 @@ "dev": true, "optional": true, "requires": { - "path-key": "1.0.0" + "path-key": "^1.0.0" } }, "npmlog": { @@ -5431,10 +5244,10 @@ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" } }, "nugget": { @@ -5442,12 +5255,12 @@ "resolved": "https://registry.npmjs.org/nugget/-/nugget-2.0.1.tgz", "integrity": "sha1-IBCVpIfhrTYIGzQy+jytpPjQcbA=", "requires": { - "debug": "2.6.9", - "minimist": "1.2.0", - "pretty-bytes": "1.0.4", - "progress-stream": "1.2.0", - "request": "2.81.0", - "single-line-log": "1.1.2", + "debug": "^2.1.3", + "minimist": "^1.1.0", + "pretty-bytes": "^1.0.2", + "progress-stream": "^1.1.0", + "request": "^2.45.0", + "single-line-log": "^1.1.2", "throttleit": "0.0.2" } }, @@ -5472,9 +5285,9 @@ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" }, "dependencies": { "define-property": { @@ -5483,7 +5296,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "is-descriptor": { @@ -5492,9 +5305,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" }, "dependencies": { "kind-of": { @@ -5511,7 +5324,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5529,16 +5342,16 @@ "dev": true, "optional": true, "requires": { - "attempt-x": "1.1.1", - "has-own-property-x": "3.2.0", - "has-symbol-support-x": "1.4.1", - "is-falsey-x": "1.0.1", - "is-index-x": "1.1.0", - "is-primitive": "2.0.0", - "is-string": "1.0.4", - "property-is-enumerable-x": "1.1.0", - "to-object-x": "1.5.0", - "to-property-key-x": "2.0.2" + "attempt-x": "^1.1.0", + "has-own-property-x": "^3.1.1", + "has-symbol-support-x": "^1.4.1", + "is-falsey-x": "^1.0.0", + "is-index-x": "^1.0.0", + "is-primitive": "^2.0.0", + "is-string": "^1.0.4", + "property-is-enumerable-x": "^1.1.0", + "to-object-x": "^1.4.1", + "to-property-key-x": "^2.0.1" } }, "object-to-spawn-args": { @@ -5553,7 +5366,7 @@ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" } }, "object.defaults": { @@ -5562,10 +5375,10 @@ "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", "dev": true, "requires": { - "array-each": "1.0.1", - "array-slice": "1.1.0", - "for-own": "1.0.0", - "isobject": "3.0.1" + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" } }, "object.map": { @@ -5574,8 +5387,8 @@ "integrity": "sha1-kq74cc1ty87TH+KcCSHbg5ViRZc=", "dev": true, "requires": { - "for-own": "0.1.5", - "make-iterator": "1.0.0" + "for-own": "^0.1.4", + "make-iterator": "^1.0.0" }, "dependencies": { "for-own": { @@ -5584,7 +5397,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "dev": true, "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } } } @@ -5595,8 +5408,8 @@ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "dev": true, "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" }, "dependencies": { "for-own": { @@ -5605,7 +5418,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "dev": true, "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } } } @@ -5616,7 +5429,7 @@ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" } }, "once": { @@ -5624,7 +5437,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "onetime": { @@ -5633,7 +5446,7 @@ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "dev": true, "requires": { - "mimic-fn": "1.1.0" + "mimic-fn": "^1.0.0" } }, "optimist": { @@ -5642,8 +5455,8 @@ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { - "minimist": "0.0.10", - "wordwrap": "0.0.2" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" }, "dependencies": { "minimist": { @@ -5660,10 +5473,10 @@ "integrity": "sha1-gAeN0rkqk0r2ajrXKluRBpTt5Ro=", "dev": true, "requires": { - "chalk": "1.1.3", - "cli-cursor": "2.1.0", - "cli-spinners": "1.1.0", - "log-symbols": "1.0.2" + "chalk": "^1.1.1", + "cli-cursor": "^2.1.0", + "cli-spinners": "^1.0.0", + "log-symbols": "^1.0.2" } }, "orchestrator": { @@ -5672,9 +5485,9 @@ "integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=", "dev": true, "requires": { - "end-of-stream": "0.1.5", - "sequencify": "0.0.7", - "stream-consume": "0.1.0" + "end-of-stream": "~0.1.5", + "sequencify": "~0.0.7", + "stream-consume": "~0.1.0" } }, "ordered-read-streams": { @@ -5694,7 +5507,7 @@ "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", "dev": true, "requires": { - "lcid": "1.0.0" + "lcid": "^1.0.0" } }, "os-tmpdir": { @@ -5709,8 +5522,8 @@ "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", "dev": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "p-finally": { @@ -5725,7 +5538,7 @@ "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", "dev": true, "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { @@ -5734,7 +5547,7 @@ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "1.2.0" + "p-limit": "^1.1.0" } }, "p-try": { @@ -5749,7 +5562,7 @@ "integrity": "sha1-00YL8d3Q367tQtp1QkLmX7aEqB8=", "dev": true, "requires": { - "author-regex": "1.0.0" + "author-regex": "^1.0.0" } }, "parse-color": { @@ -5759,7 +5572,7 @@ "dev": true, "optional": true, "requires": { - "color-convert": "0.5.3" + "color-convert": "~0.5.0" } }, "parse-filepath": { @@ -5768,9 +5581,9 @@ "integrity": "sha1-FZ1hVdQ5BNFsEO9piRHaHpGWm3M=", "dev": true, "requires": { - "is-absolute": "0.2.6", - "map-cache": "0.2.2", - "path-root": "0.1.1" + "is-absolute": "^0.2.3", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" } }, "parse-glob": { @@ -5779,10 +5592,10 @@ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "dev": true, "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" }, "dependencies": { "is-extglob": { @@ -5797,7 +5610,7 @@ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } } } @@ -5808,10 +5621,10 @@ "integrity": "sha512-NIMm52gmd1+0qxJK8lV3OZ4zzWpRH1xcz9xCHXl+DNzddwUdS4NEtd7BmTeK7iCIXoaK5e6BoDMHgieH2eNIhg==", "dev": true, "requires": { - "cached-constructors-x": "1.0.0", - "nan-x": "1.0.0", - "to-string-x": "1.4.2", - "trim-left-x": "3.0.0" + "cached-constructors-x": "^1.0.0", + "nan-x": "^1.0.0", + "to-string-x": "^1.4.2", + "trim-left-x": "^3.0.0" } }, "parse-json": { @@ -5819,7 +5632,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.2.0" } }, "parse-passwd": { @@ -5839,7 +5652,7 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-is-absolute": { @@ -5865,7 +5678,7 @@ "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", "dev": true, "requires": { - "path-root-regex": "0.1.2" + "path-root-regex": "^0.1.0" } }, "path-root-regex": { @@ -5879,9 +5692,9 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pend": { @@ -5890,9 +5703,9 @@ "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" }, "performance-now": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, "pify": { "version": "2.3.0", @@ -5909,7 +5722,7 @@ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "plist": { @@ -5920,7 +5733,7 @@ "requires": { "base64-js": "1.2.0", "xmlbuilder": "8.2.2", - "xmldom": "0.1.27" + "xmldom": "0.1.x" } }, "plugin-error": { @@ -5929,11 +5742,11 @@ "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=", "dev": true, "requires": { - "ansi-cyan": "0.1.1", - "ansi-red": "0.1.1", - "arr-diff": "1.1.0", - "arr-union": "2.1.0", - "extend-shallow": "1.1.4" + "ansi-cyan": "^0.1.1", + "ansi-red": "^0.1.1", + "arr-diff": "^1.0.1", + "arr-union": "^2.0.1", + "extend-shallow": "^1.1.2" }, "dependencies": { "arr-diff": { @@ -5942,8 +5755,8 @@ "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=", "dev": true, "requires": { - "arr-flatten": "1.1.0", - "array-slice": "0.2.3" + "arr-flatten": "^1.0.1", + "array-slice": "^0.2.3" } }, "arr-union": { @@ -5964,7 +5777,7 @@ "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=", "dev": true, "requires": { - "kind-of": "1.1.0" + "kind-of": "^1.1.0" } }, "kind-of": { @@ -5986,19 +5799,19 @@ "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-2.4.1.tgz", "integrity": "sha512-99TyEFYTTkBWANT+mwSptmLb9ZCLQ6qKIUE36fXSIOtShB0JNprL2hzBD8F1yIuT9btjFrFEwbRHXhqDi1HmRA==", "requires": { - "expand-template": "1.1.0", + "expand-template": "^1.0.2", "github-from-package": "0.0.0", - "minimist": "1.2.0", - "mkdirp": "0.5.1", - "node-abi": "2.1.2", - "noop-logger": "0.1.1", - "npmlog": "4.1.2", - "os-homedir": "1.0.2", - "pump": "1.0.3", - "rc": "1.2.3", - "simple-get": "1.4.3", - "tar-fs": "1.16.0", - "tunnel-agent": "0.6.0", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "node-abi": "^2.1.1", + "noop-logger": "^0.1.1", + "npmlog": "^4.0.1", + "os-homedir": "^1.0.1", + "pump": "^1.0.1", + "rc": "^1.1.6", + "simple-get": "^1.4.2", + "tar-fs": "^1.13.0", + "tunnel-agent": "^0.6.0", "xtend": "4.0.1" } }, @@ -6013,8 +5826,8 @@ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=", "requires": { - "get-stdin": "4.0.1", - "meow": "3.7.0" + "get-stdin": "^4.0.1", + "meow": "^3.1.0" } }, "pretty-hrtime": { @@ -6033,8 +5846,8 @@ "resolved": "https://registry.npmjs.org/progress-stream/-/progress-stream-1.2.0.tgz", "integrity": "sha1-LNPP6jO6OonJwSHsM0er6asSX3c=", "requires": { - "speedometer": "0.1.4", - "through2": "0.2.3" + "speedometer": "~0.1.2", + "through2": "~0.2.3" } }, "promirepl": { @@ -6049,7 +5862,7 @@ "dev": true, "optional": true, "requires": { - "asap": "2.0.6" + "asap": "~2.0.3" } }, "property-is-enumerable-x": { @@ -6059,8 +5872,8 @@ "dev": true, "optional": true, "requires": { - "to-object-x": "1.5.0", - "to-property-key-x": "2.0.2" + "to-object-x": "^1.4.1", + "to-property-key-x": "^2.0.1" } }, "prr": { @@ -6076,7 +5889,7 @@ "integrity": "sha1-NF+8s+gHARY6HXrfVrrCKaWh5ME=", "dev": true, "requires": { - "fs-extra": "4.0.3" + "fs-extra": "^4.0.0" }, "dependencies": { "fs-extra": { @@ -6085,9 +5898,9 @@ "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "4.0.0", - "universalify": "0.1.1" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } }, "jsonfile": { @@ -6096,7 +5909,7 @@ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.6" } } } @@ -6112,8 +5925,8 @@ "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", "requires": { - "end-of-stream": "1.4.0", - "once": "1.4.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" }, "dependencies": { "end-of-stream": { @@ -6121,7 +5934,7 @@ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz", "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=", "requires": { - "once": "1.4.0" + "once": "^1.4.0" } } } @@ -6137,10 +5950,15 @@ "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", "dev": true }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, "qunit": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/qunit/-/qunit-2.5.1.tgz", - "integrity": "sha512-klS4J7rF5Zs6KxMgcCR6TV/eF2A94AhH9I1wKG6VSd4mfEbti8DN1PMpDr2RuGu9BX+NbeCq2JcGjvc7KNewyw==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/qunit/-/qunit-2.6.1.tgz", + "integrity": "sha512-AaILHe41G+fVC8h5wrp8U31iM2tRxLAVwH1tICtDkRbC1HDgJBjjYq0SMCZE8K3Z16MiZq3vhNhLu18KeDtS6Q==", "dev": true, "requires": { "chokidar": "1.7.0", @@ -6149,7 +5967,6 @@ "findup-sync": "2.0.0", "js-reporters": "1.2.1", "resolve": "1.5.0", - "shelljs": "0.2.6", "walk-sync": "0.3.2" } }, @@ -6160,40 +5977,45 @@ "dev": true, "optional": true, "requires": { - "base32-encode": "0.1.1", - "murmur-32": "0.1.0" + "base32-encode": "^0.1.0", + "murmur-32": "^0.1.0" } }, "randomatic": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", - "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz", + "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", "dev": true, "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" }, "dependencies": { - "kind-of": { + "is-number": { "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.6" - } + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true } } }, "rc": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.3.tgz", - "integrity": "sha1-UVdakA+N1oOBxxC0cSwhVMPiA1s=", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "requires": { - "deep-extend": "0.4.2", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + } } }, "rcedit": { @@ -6207,9 +6029,9 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, "read-pkg-up": { @@ -6217,8 +6039,8 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" } }, "readable-stream": { @@ -6226,13 +6048,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.0.3", + "util-deprecate": "~1.0.1" } }, "readdirp": { @@ -6241,10 +6063,10 @@ "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.3", - "set-immediate-shim": "1.0.1" + "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", + "readable-stream": "^2.0.2", + "set-immediate-shim": "^1.0.1" } }, "rechoir": { @@ -6253,7 +6075,7 @@ "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", "dev": true, "requires": { - "resolve": "1.5.0" + "resolve": "^1.1.6" } }, "redent": { @@ -6261,8 +6083,8 @@ "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "requires": { - "indent-string": "2.1.0", - "strip-indent": "1.0.1" + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" } }, "reduce-extract": { @@ -6271,7 +6093,7 @@ "integrity": "sha1-Z/I4W+2mUGG19fQxJmLosIDKFSU=", "dev": true, "requires": { - "test-value": "1.1.0" + "test-value": "^1.0.1" }, "dependencies": { "array-back": { @@ -6280,7 +6102,7 @@ "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", "dev": true, "requires": { - "typical": "2.6.1" + "typical": "^2.6.0" } }, "test-value": { @@ -6289,8 +6111,8 @@ "integrity": "sha1-oJE29y7AQ9J8iTcHwrFZv6196T8=", "dev": true, "requires": { - "array-back": "1.0.4", - "typical": "2.6.1" + "array-back": "^1.0.2", + "typical": "^2.4.2" } } } @@ -6313,7 +6135,7 @@ "integrity": "sha1-aK0OrRGFXJo31OglbBW7+Hly/Iw=", "dev": true, "requires": { - "test-value": "2.1.0" + "test-value": "^2.0.0" }, "dependencies": { "array-back": { @@ -6322,7 +6144,7 @@ "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", "dev": true, "requires": { - "typical": "2.6.1" + "typical": "^2.6.0" } }, "test-value": { @@ -6331,8 +6153,8 @@ "integrity": "sha1-Edpv9nDzRxpztiXKTz/c97t0gpE=", "dev": true, "requires": { - "array-back": "1.0.4", - "typical": "2.6.1" + "array-back": "^1.0.3", + "typical": "^2.6.0" } } } @@ -6343,7 +6165,7 @@ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "dev": true, "requires": { - "is-equal-shallow": "0.1.3" + "is-equal-shallow": "^0.1.3" } }, "regex-not": { @@ -6352,7 +6174,7 @@ "integrity": "sha1-Qvg+OXcWIt+CawKvF2Ul1qXxV/k=", "dev": true, "requires": { - "extend-shallow": "2.0.1" + "extend-shallow": "^2.0.1" } }, "remove-trailing-separator": { @@ -6378,7 +6200,7 @@ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "replace-comments-x": { @@ -6387,8 +6209,8 @@ "integrity": "sha512-+vMP4jqU+8HboLWms6YMNEiaZG5hh1oR6ENCnGYDF/UQ7aYiJUK/8tcl3+KZAHRCKKa3gqzrfiarlUBHQSgRlg==", "dev": true, "requires": { - "require-coercible-to-string-x": "1.0.0", - "to-string-x": "1.4.2" + "require-coercible-to-string-x": "^1.0.0", + "to-string-x": "^1.4.2" } }, "replace-ext": { @@ -6398,39 +6220,30 @@ "dev": true }, "request": { - "version": "2.81.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "version": "2.87.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", + "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.17", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.1.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.3", - "tunnel-agent": "0.6.0", - "uuid": "3.1.0" - }, - "dependencies": { - "qs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=" - } + "aws-sign2": "~0.7.0", + "aws4": "^1.6.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.1", + "forever-agent": "~0.6.1", + "form-data": "~2.3.1", + "har-validator": "~5.0.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.17", + "oauth-sign": "~0.8.2", + "performance-now": "^2.1.0", + "qs": "~6.5.1", + "safe-buffer": "^5.1.1", + "tough-cookie": "~2.3.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.1.0" } }, "require-coercible-to-string-x": { @@ -6439,8 +6252,8 @@ "integrity": "sha512-Rpfd4sMdflPAKecdKhfAtQHlZzzle4UMUgxJ01hXtTcNWMV8w9GeZnKhEyrT73kgrflBOP1zg41amUPZGcNspA==", "dev": true, "requires": { - "require-object-coercible-x": "1.4.1", - "to-string-x": "1.4.2" + "require-object-coercible-x": "^1.4.1", + "to-string-x": "^1.4.2" } }, "require-directory": { @@ -6461,7 +6274,7 @@ "integrity": "sha512-0YHa2afepsLfQvwQ1P2XvDZnGOUia5sC07ZijIRU2dnsRxnuilXWF6B2CFaKGDA9eZl39lJHrXCDsnfgroRd6Q==", "dev": true, "requires": { - "is-nil-x": "1.4.1" + "is-nil-x": "^1.4.1" } }, "requizzle": { @@ -6470,7 +6283,7 @@ "integrity": "sha1-aUPDUwxNmn5G8c3dUcFY/GcM294=", "dev": true, "requires": { - "underscore": "1.6.0" + "underscore": "~1.6.0" }, "dependencies": { "underscore": { @@ -6487,7 +6300,7 @@ "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", "dev": true, "requires": { - "path-parse": "1.0.5" + "path-parse": "^1.0.5" } }, "resolve-dir": { @@ -6496,8 +6309,8 @@ "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", "dev": true, "requires": { - "expand-tilde": "2.0.2", - "global-modules": "1.0.0" + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" } }, "resolve-url": { @@ -6512,8 +6325,8 @@ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "dev": true, "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" } }, "right-align": { @@ -6522,7 +6335,7 @@ "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", "dev": true, "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "rimraf": { @@ -6544,13 +6357,18 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, "sanitize-filename": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.1.tgz", "integrity": "sha1-YS2hyWRz+gLczaktzVtKsWSmdyo=", "dev": true, "requires": { - "truncate-utf8-bytes": "1.0.2" + "truncate-utf8-bytes": "^1.0.0" } }, "semver": { @@ -6570,12 +6388,12 @@ "integrity": "sha512-ohiyBppkW0rRbd7CksNSsH8kTx5Fdh1TRL0yp+Yoefgcz12x8j2x+CLsIi23OxSuCTf+tJ9SjJSh93wzTl6tEw==", "requires": { "bindings": "1.3.0", - "commander": "2.12.2", - "debug": "3.1.0", - "nan": "2.8.0", - "prebuild-install": "2.4.1", - "promirepl": "1.0.1", - "safe-buffer": "5.1.1" + "commander": "^2.11.0", + "debug": "^3.1.0", + "nan": "^2.6.2", + "prebuild-install": "^2.2.1", + "promirepl": "^1.0.1", + "safe-buffer": "^5.0.1" }, "dependencies": { "debug": { @@ -6599,7 +6417,7 @@ "integrity": "sha1-12nBgsnVpR9AkUXy+6guXoboA3Y=", "dev": true, "requires": { - "to-object-path": "0.3.0" + "to-object-path": "^0.3.0" } }, "set-immediate-shim": { @@ -6614,10 +6432,10 @@ "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" } }, "shebang-command": { @@ -6626,7 +6444,7 @@ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -6635,12 +6453,6 @@ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, - "shelljs": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.2.6.tgz", - "integrity": "sha1-kEktcv/MgVmXa6umL7D2iE8MM3g=", - "dev": true - }, "shellwords": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", @@ -6662,9 +6474,9 @@ "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-1.4.3.tgz", "integrity": "sha1-6XVe2kB+ltpAxeUVjJ6jezO+y+s=", "requires": { - "once": "1.4.0", - "unzip-response": "1.0.2", - "xtend": "4.0.1" + "once": "^1.3.1", + "unzip-response": "^1.0.0", + "xtend": "^4.0.0" } }, "single-line-log": { @@ -6672,7 +6484,7 @@ "resolved": "https://registry.npmjs.org/single-line-log/-/single-line-log-1.1.2.tgz", "integrity": "sha1-wvg/Jzo+GhbtsJlWYdoO1e8DM2Q=", "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.1" } }, "snapdragon": { @@ -6681,14 +6493,14 @@ "integrity": "sha1-4StUh/re0+PeoKyR6UAL91tAE3A=", "dev": true, "requires": { - "base": "0.11.2", - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "map-cache": "0.2.2", - "source-map": "0.5.7", - "source-map-resolve": "0.5.1", - "use": "2.0.2" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^2.0.0" }, "dependencies": { "define-property": { @@ -6697,7 +6509,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "is-descriptor": { @@ -6706,9 +6518,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" } }, "kind-of": { @@ -6725,9 +6537,9 @@ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" } }, "snapdragon-util": { @@ -6736,7 +6548,7 @@ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" }, "dependencies": { "kind-of": { @@ -6745,7 +6557,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -6754,8 +6566,10 @@ "version": "1.0.9", "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "dev": true, + "optional": true, "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "sort-array": { @@ -6764,9 +6578,9 @@ "integrity": "sha1-OKnG2if9fRR7QuYFVPKBGHtN9HI=", "dev": true, "requires": { - "array-back": "1.0.4", - "object-get": "2.1.0", - "typical": "2.6.1" + "array-back": "^1.0.4", + "object-get": "^2.1.0", + "typical": "^2.6.0" }, "dependencies": { "array-back": { @@ -6775,7 +6589,7 @@ "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", "dev": true, "requires": { - "typical": "2.6.1" + "typical": "^2.6.0" } } } @@ -6792,11 +6606,11 @@ "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", "dev": true, "requires": { - "atob": "2.0.3", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" + "atob": "^2.0.0", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-url": { @@ -6817,9 +6631,9 @@ "integrity": "sha512-gOPXiQQFQ9lTOLuys0iMn3jfxxv9c7zzwhbYLOEbQGvEShHVJ5sSR1oD3Daj88os7jKArDYT7rbOKdvNhe7iEg==", "dev": true, "requires": { - "debug": "2.6.9", - "lodash.assign": "4.2.0", - "rxjs": "5.5.5" + "debug": "^2.5.1", + "lodash.assign": "^4.2.0", + "rxjs": "^5.1.1" } }, "spdx-correct": { @@ -6827,7 +6641,7 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", "requires": { - "spdx-license-ids": "1.2.2" + "spdx-license-ids": "^1.0.2" } }, "spdx-expression-parse": { @@ -6851,7 +6665,7 @@ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, "requires": { - "extend-shallow": "3.0.1" + "extend-shallow": "^3.0.0" }, "dependencies": { "extend-shallow": { @@ -6860,7 +6674,7 @@ "integrity": "sha512-Fg1xXAv+qXKdwHiJFMcZSqsMcbPlkzsZtf8KkLJ2fqnP+lqg2RjEKgDcSfO9CO1+p4LZKgApDBUUUqKaaRhwZQ==", "dev": true, "requires": { - "is-extendable": "1.0.1" + "is-extendable": "^1.0.1" } }, "is-extendable": { @@ -6869,7 +6683,7 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -6879,8 +6693,8 @@ "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-3.1.13.tgz", "integrity": "sha512-JxXKPJnkZ6NuHRojq+g2WXWBt3M1G9sjZaYiHEWSTGijDM3cwju/0T2XbWqMXFmPqDgw+iB7zKQvnns4bvzXlw==", "requires": { - "nan": "2.7.0", - "node-pre-gyp": "0.6.38" + "nan": "~2.7.0", + "node-pre-gyp": "~0.6.38" }, "dependencies": { "abbrev": { @@ -6891,8 +6705,8 @@ "version": "4.11.8", "bundled": true, "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" } }, "ansi-regex": { @@ -6907,8 +6721,8 @@ "version": "1.1.4", "bundled": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.3" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "asn1": { @@ -6940,28 +6754,28 @@ "bundled": true, "optional": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "block-stream": { "version": "0.0.9", "bundled": true, "requires": { - "inherits": "2.0.3" + "inherits": "~2.0.0" } }, "boom": { "version": "2.10.1", "bundled": true, "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "brace-expansion": { "version": "1.1.8", "bundled": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -6981,7 +6795,7 @@ "version": "1.0.5", "bundled": true, "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "concat-map": { @@ -7000,14 +6814,14 @@ "version": "2.0.5", "bundled": true, "requires": { - "boom": "2.10.1" + "boom": "2.x.x" } }, "dashdash": { "version": "1.14.1", "bundled": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" }, "dependencies": { "assert-plus": { @@ -7040,7 +6854,7 @@ "bundled": true, "optional": true, "requires": { - "jsbn": "0.1.1" + "jsbn": "~0.1.0" } }, "extend": { @@ -7059,9 +6873,9 @@ "version": "2.1.4", "bundled": true, "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" } }, "fs.realpath": { @@ -7072,40 +6886,40 @@ "version": "1.0.11", "bundled": true, "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.2" + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" } }, "fstream-ignore": { "version": "1.0.5", "bundled": true, "requires": { - "fstream": "1.0.11", - "inherits": "2.0.3", - "minimatch": "3.0.4" + "fstream": "^1.0.0", + "inherits": "2", + "minimatch": "^3.0.0" } }, "gauge": { "version": "2.7.4", "bundled": true, "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" } }, "getpass": { "version": "0.1.7", "bundled": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" }, "dependencies": { "assert-plus": { @@ -7118,12 +6932,12 @@ "version": "7.1.2", "bundled": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "graceful-fs": { @@ -7138,8 +6952,8 @@ "version": "4.2.1", "bundled": true, "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" + "ajv": "^4.9.1", + "har-schema": "^1.0.5" } }, "has-unicode": { @@ -7150,10 +6964,10 @@ "version": "3.1.3", "bundled": true, "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" } }, "hoek": { @@ -7164,17 +6978,17 @@ "version": "1.1.1", "bundled": true, "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.1", - "sshpk": "1.13.1" + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "inflight": { "version": "1.0.6", "bundled": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -7189,7 +7003,7 @@ "version": "1.0.0", "bundled": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-typedarray": { @@ -7217,7 +7031,7 @@ "version": "1.0.1", "bundled": true, "requires": { - "jsonify": "0.0.0" + "jsonify": "~0.0.0" } }, "json-stringify-safe": { @@ -7252,14 +7066,14 @@ "version": "2.1.17", "bundled": true, "requires": { - "mime-db": "1.30.0" + "mime-db": "~1.30.0" } }, "minimatch": { "version": "3.0.4", "bundled": true, "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -7287,33 +7101,33 @@ "bundled": true, "requires": { "hawk": "3.1.3", - "mkdirp": "0.5.1", - "nopt": "4.0.1", - "npmlog": "4.1.2", - "rc": "1.2.1", + "mkdirp": "^0.5.1", + "nopt": "^4.0.1", + "npmlog": "^4.0.2", + "rc": "^1.1.7", "request": "2.81.0", - "rimraf": "2.6.2", - "semver": "5.4.1", - "tar": "2.2.1", - "tar-pack": "3.4.0" + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^2.2.1", + "tar-pack": "^3.4.0" } }, "nopt": { "version": "4.0.1", "bundled": true, "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.4" + "abbrev": "1", + "osenv": "^0.1.4" } }, "npmlog": { "version": "4.1.2", "bundled": true, "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" } }, "number-is-nan": { @@ -7332,7 +7146,7 @@ "version": "1.4.0", "bundled": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { @@ -7347,8 +7161,8 @@ "version": "0.1.4", "bundled": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "path-is-absolute": { @@ -7375,10 +7189,10 @@ "version": "1.2.1", "bundled": true, "requires": { - "deep-extend": "0.4.2", - "ini": "1.3.4", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "deep-extend": "~0.4.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, "dependencies": { "minimist": { @@ -7391,48 +7205,48 @@ "version": "2.3.3", "bundled": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.0.3", + "util-deprecate": "~1.0.1" } }, "request": { "version": "2.81.0", "bundled": true, "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.17", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.1.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.3", - "tunnel-agent": "0.6.0", - "uuid": "3.1.0" + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~4.2.1", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "performance-now": "^0.2.0", + "qs": "~6.4.0", + "safe-buffer": "^5.0.1", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.0.0" } }, "rimraf": { "version": "2.6.2", "bundled": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-buffer": { @@ -7455,21 +7269,21 @@ "version": "1.0.9", "bundled": true, "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "sshpk": { "version": "1.13.1", "bundled": true, "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "tweetnacl": "~0.14.0" }, "dependencies": { "assert-plus": { @@ -7482,16 +7296,16 @@ "version": "1.0.2", "bundled": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "string_decoder": { "version": "1.0.3", "bundled": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "stringstream": { @@ -7502,7 +7316,7 @@ "version": "3.0.1", "bundled": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { @@ -7513,37 +7327,37 @@ "version": "2.2.1", "bundled": true, "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" } }, "tar-pack": { "version": "3.4.0", "bundled": true, "requires": { - "debug": "2.6.9", - "fstream": "1.0.11", - "fstream-ignore": "1.0.5", - "once": "1.4.0", - "readable-stream": "2.3.3", - "rimraf": "2.6.2", - "tar": "2.2.1", - "uid-number": "0.0.6" + "debug": "^2.2.0", + "fstream": "^1.0.10", + "fstream-ignore": "^1.0.5", + "once": "^1.3.3", + "readable-stream": "^2.1.4", + "rimraf": "^2.5.1", + "tar": "^2.2.1", + "uid-number": "^0.0.6" } }, "tough-cookie": { "version": "2.3.3", "bundled": true, "requires": { - "punycode": "1.4.1" + "punycode": "^1.4.1" } }, "tunnel-agent": { "version": "0.6.0", "bundled": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -7567,9 +7381,9 @@ "version": "1.10.0", "bundled": true, "requires": { - "assert-plus": "1.0.0", + "assert-plus": "^1.0.0", "core-util-is": "1.0.2", - "extsprintf": "1.3.0" + "extsprintf": "^1.2.0" }, "dependencies": { "assert-plus": { @@ -7582,7 +7396,7 @@ "version": "1.1.2", "bundled": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2" } }, "wrappy": { @@ -7592,25 +7406,19 @@ } }, "sshpk": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", - "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", + "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" } }, "stack-trace": { @@ -7624,8 +7432,8 @@ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "dependencies": { "define-property": { @@ -7634,7 +7442,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "is-descriptor": { @@ -7643,9 +7451,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" } }, "kind-of": { @@ -7669,7 +7477,7 @@ "integrity": "sha1-GLyB8u2zW4tdmoAJIAqYUxRCipc=", "dev": true, "requires": { - "array-back": "1.0.4" + "array-back": "^1.0.2" }, "dependencies": { "array-back": { @@ -7678,7 +7486,7 @@ "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", "dev": true, "requires": { - "typical": "2.6.1" + "typical": "^2.6.0" } } } @@ -7700,9 +7508,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "string_decoder": { @@ -7710,20 +7518,22 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "stringstream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz", + "integrity": "sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==", + "dev": true, + "optional": true }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { @@ -7731,7 +7541,7 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-eof": { @@ -7745,7 +7555,7 @@ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "requires": { - "get-stdin": "4.0.1" + "get-stdin": "^4.0.1" } }, "strip-json-comments": { @@ -7759,7 +7569,7 @@ "integrity": "sha1-D0LBDl0F2l1C7qPlbDOZo31sWz4=", "dev": true, "requires": { - "debug": "2.6.9" + "debug": "^2.2.0" } }, "supports-color": { @@ -7780,17 +7590,17 @@ "integrity": "sha512-MIhflPM38ejKrFwWwC3P9x3eHvMo5G5AmNo29Qtz2HpBl5KD2GCcmOErjgNtUQLv/qaqVDagfJY3rJLPDvEgLg==", "dev": true, "requires": { - "array-back": "2.0.0", - "deep-extend": "0.5.0", - "lodash.padend": "4.6.1", - "typical": "2.6.1", - "wordwrapjs": "3.0.0" + "array-back": "^2.0.0", + "deep-extend": "~0.5.0", + "lodash.padend": "^4.6.1", + "typical": "^2.6.1", + "wordwrapjs": "^3.0.0" }, "dependencies": { "deep-extend": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz", - "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", + "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", "dev": true } } @@ -7807,9 +7617,9 @@ "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", "dev": true, "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" } }, "tar-fs": { @@ -7817,10 +7627,10 @@ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.0.tgz", "integrity": "sha512-I9rb6v7mjWLtOfCau9eH5L7sLJyU2BnxtEZRQ5Mt+eRKmf1F0ohXmT/Jc3fr52kDvjJ/HV5MH3soQfPL5bQ0Yg==", "requires": { - "chownr": "1.0.1", - "mkdirp": "0.5.1", - "pump": "1.0.3", - "tar-stream": "1.5.5" + "chownr": "^1.0.1", + "mkdirp": "^0.5.1", + "pump": "^1.0.0", + "tar-stream": "^1.1.2" } }, "tar-stream": { @@ -7828,10 +7638,10 @@ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.5.tgz", "integrity": "sha512-mQdgLPc/Vjfr3VWqWbfxW8yQNiJCbAZ+Gf6GDu1Cy0bdb33ofyiNGBtAY96jHFhDuivCwgW1H9DgTON+INiXgg==", "requires": { - "bl": "1.2.1", - "end-of-stream": "1.4.0", - "readable-stream": "2.3.3", - "xtend": "4.0.1" + "bl": "^1.0.0", + "end-of-stream": "^1.0.0", + "readable-stream": "^2.0.0", + "xtend": "^4.0.0" }, "dependencies": { "end-of-stream": { @@ -7839,7 +7649,7 @@ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz", "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=", "requires": { - "once": "1.4.0" + "once": "^1.4.0" } } } @@ -7850,8 +7660,8 @@ "integrity": "sha1-4Ma8TSa5AxJEEOT+2BEDAU38H1k=", "dev": true, "requires": { - "os-tmpdir": "1.0.2", - "rimraf": "2.2.8" + "os-tmpdir": "^1.0.0", + "rimraf": "~2.2.6" } }, "temp-path": { @@ -7866,8 +7676,8 @@ "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", "dev": true, "requires": { - "array-back": "2.0.0", - "typical": "2.6.1" + "array-back": "^2.0.0", + "typical": "^2.6.1" } }, "thenify": { @@ -7876,7 +7686,7 @@ "integrity": "sha1-5p44obq+lpsBCCB5eLn2K4hgSDk=", "dev": true, "requires": { - "any-promise": "1.3.0" + "any-promise": "^1.0.0" } }, "thenify-all": { @@ -7885,7 +7695,7 @@ "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", "dev": true, "requires": { - "thenify": "3.3.0" + "thenify": ">= 3.1.0 < 4" } }, "throttleit": { @@ -7898,8 +7708,8 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-0.2.3.tgz", "integrity": "sha1-6zKE2k6jEbbMis42U3SKUqvyWj8=", "requires": { - "readable-stream": "1.1.14", - "xtend": "2.1.2" + "readable-stream": "~1.1.9", + "xtend": "~2.1.1" }, "dependencies": { "isarray": { @@ -7917,10 +7727,10 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "string_decoder": { @@ -7933,7 +7743,7 @@ "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", "requires": { - "object-keys": "0.4.0" + "object-keys": "~0.4.0" } } } @@ -7944,7 +7754,7 @@ "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=", "dev": true, "requires": { - "os-homedir": "1.0.2" + "os-homedir": "^1.0.0" } }, "time-stamp": { @@ -7959,7 +7769,7 @@ "integrity": "sha1-Fyc1t/YU6nrzlmT6hM8N5OUV0SA=", "dev": true, "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.1" } }, "tn1150": { @@ -7969,7 +7779,7 @@ "dev": true, "optional": true, "requires": { - "unorm": "1.4.1" + "unorm": "^1.4.1" } }, "to-boolean-x": { @@ -7985,10 +7795,10 @@ "dev": true, "optional": true, "requires": { - "is-finite-x": "3.0.2", - "is-nan-x": "1.0.1", - "math-sign-x": "3.0.0", - "to-number-x": "2.0.0" + "is-finite-x": "^3.0.2", + "is-nan-x": "^1.0.1", + "math-sign-x": "^3.0.0", + "to-number-x": "^2.0.0" } }, "to-number-x": { @@ -7997,11 +7807,11 @@ "integrity": "sha512-lGOnCoccUoSzjZ/9Uen8TC4+VFaQcFGhTroWTv2tYWxXgyJV1zqAZ8hEIMkez/Eo790fBMOjidTnQ/OJSCvAoQ==", "dev": true, "requires": { - "cached-constructors-x": "1.0.0", - "nan-x": "1.0.0", - "parse-int-x": "2.0.0", - "to-primitive-x": "1.1.0", - "trim-x": "3.0.0" + "cached-constructors-x": "^1.0.0", + "nan-x": "^1.0.0", + "parse-int-x": "^2.0.0", + "to-primitive-x": "^1.1.0", + "trim-x": "^3.0.0" } }, "to-object-path": { @@ -8010,7 +7820,7 @@ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -8019,7 +7829,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -8030,8 +7840,8 @@ "integrity": "sha512-AKn5GQcdWky+s20vjWkt+Wa6y3dxQH3yQyMBhOfBOPldUwqwhgvlqcIg5H092ntNc+TX8/Cxzs1kMHH19pyCnA==", "dev": true, "requires": { - "cached-constructors-x": "1.0.0", - "require-object-coercible-x": "1.4.1" + "cached-constructors-x": "^1.0.0", + "require-object-coercible-x": "^1.4.1" } }, "to-primitive-x": { @@ -8040,14 +7850,14 @@ "integrity": "sha512-gyMY0gi3wjK3e4MUBKqv9Zl8QGcWguIkaUr2VJmoBEsOpDcpDZSEyljR773eVG4maS48uX7muLkoQoh/BA82OQ==", "dev": true, "requires": { - "has-symbol-support-x": "1.4.1", - "is-date-object": "1.0.1", - "is-function-x": "3.3.0", - "is-nil-x": "1.4.1", - "is-primitive": "2.0.0", - "is-symbol": "1.0.1", - "require-object-coercible-x": "1.4.1", - "validate.io-undefined": "1.0.3" + "has-symbol-support-x": "^1.4.1", + "is-date-object": "^1.0.1", + "is-function-x": "^3.2.0", + "is-nil-x": "^1.4.1", + "is-primitive": "^2.0.0", + "is-symbol": "^1.0.1", + "require-object-coercible-x": "^1.4.1", + "validate.io-undefined": "^1.0.3" } }, "to-property-key-x": { @@ -8056,9 +7866,9 @@ "integrity": "sha512-YISLpZFYIazNm0P8hLsKEEUEZ3m8U3+eDysJZqTu3+B9tQp+2TrMpaEGT8Agh4fZ5LSoums60/glNEzk5ozqrg==", "dev": true, "requires": { - "has-symbol-support-x": "1.4.1", - "to-primitive-x": "1.1.0", - "to-string-x": "1.4.2" + "has-symbol-support-x": "^1.4.1", + "to-primitive-x": "^1.1.0", + "to-string-x": "^1.4.2" } }, "to-regex": { @@ -8067,9 +7877,9 @@ "integrity": "sha1-FTWL7kosg712N3uh3ASdDxiDeq4=", "dev": true, "requires": { - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "regex-not": "1.0.0" + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "regex-not": "^1.0.0" }, "dependencies": { "define-property": { @@ -8078,7 +7888,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "is-descriptor": { @@ -8087,9 +7897,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" } }, "kind-of": { @@ -8106,8 +7916,8 @@ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" } }, "to-string-symbols-supported-x": { @@ -8117,9 +7927,9 @@ "dev": true, "optional": true, "requires": { - "cached-constructors-x": "1.0.0", - "has-symbol-support-x": "1.4.1", - "is-symbol": "1.0.1" + "cached-constructors-x": "^1.0.0", + "has-symbol-support-x": "^1.4.1", + "is-symbol": "^1.0.1" } }, "to-string-tag-x": { @@ -8128,8 +7938,8 @@ "integrity": "sha512-ytO9eLigxsQQLGuab0C1iSSTzKdJNVSlBg0Spg4J/rGAVrQJ5y774mo0SSzgGeTT4RJGGyJNfObXaTMzX0XDOQ==", "dev": true, "requires": { - "lodash.isnull": "3.0.0", - "validate.io-undefined": "1.0.3" + "lodash.isnull": "^3.0.0", + "validate.io-undefined": "^1.0.3" } }, "to-string-x": { @@ -8138,7 +7948,7 @@ "integrity": "sha512-/WP5arlwtCpAAexCCHiQBW0eXwse84osWyP1Qtaz71nsYSuUpOkT6tBm8nQ4IIUfSh5hji0hDupUCD2xbbOL6A==", "dev": true, "requires": { - "is-symbol": "1.0.1" + "is-symbol": "^1.0.1" } }, "touch": { @@ -8147,7 +7957,7 @@ "integrity": "sha1-Ua7z1ElXHU8oel2Hyci0kYGg2x0=", "dev": true, "requires": { - "nopt": "1.0.10" + "nopt": "~1.0.10" }, "dependencies": { "nopt": { @@ -8156,17 +7966,17 @@ "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", "dev": true, "requires": { - "abbrev": "1.1.1" + "abbrev": "1" } } } }, "tough-cookie": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", - "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", + "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", "requires": { - "punycode": "1.4.1" + "punycode": "^1.4.1" } }, "traverse": { @@ -8181,9 +7991,9 @@ "integrity": "sha512-+m6cqkppI+CxQBTwWEZliOHpOBnCArGyMnS1WCLb6IRgukhTkiQu/TNEN5Lj2eM9jk8ewJsc7WxFZfmwNpRXWQ==", "dev": true, "requires": { - "cached-constructors-x": "1.0.0", - "require-coercible-to-string-x": "1.0.0", - "white-space-x": "3.0.0" + "cached-constructors-x": "^1.0.0", + "require-coercible-to-string-x": "^1.0.0", + "white-space-x": "^3.0.0" } }, "trim-newlines": { @@ -8197,9 +8007,9 @@ "integrity": "sha512-iIqEsWEbWVodqdixJHi4FoayJkUxhoL4AvSNGp4FF4FfQKRPGizt8++/RnyC9od75y7P/S6EfONoVqP+NddiKA==", "dev": true, "requires": { - "cached-constructors-x": "1.0.0", - "require-coercible-to-string-x": "1.0.0", - "white-space-x": "3.0.0" + "cached-constructors-x": "^1.0.0", + "require-coercible-to-string-x": "^1.0.0", + "white-space-x": "^3.0.0" } }, "trim-x": { @@ -8208,8 +8018,8 @@ "integrity": "sha512-w8s38RAUScQ6t3XqMkS75iz5ZkIYLQpVnv2lp3IuTS36JdlVzC54oe6okOf4Wz3UH4rr3XAb2xR3kR5Xei82fw==", "dev": true, "requires": { - "trim-left-x": "3.0.0", - "trim-right-x": "3.0.0" + "trim-left-x": "^3.0.0", + "trim-right-x": "^3.0.0" } }, "truncate-utf8-bytes": { @@ -8218,7 +8028,7 @@ "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=", "dev": true, "requires": { - "utf8-byte-length": "1.0.4" + "utf8-byte-length": "^1.0.1" } }, "tunnel-agent": { @@ -8226,7 +8036,7 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -8252,9 +8062,9 @@ "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", "dev": true, "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" } }, "uglify-to-browserify": { @@ -8299,10 +8109,10 @@ "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "dev": true, "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" }, "dependencies": { "set-value": { @@ -8311,10 +8121,10 @@ "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" } } } @@ -8328,8 +8138,7 @@ "universalify": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", - "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", - "dev": true + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=" }, "unorm": { "version": "1.4.1", @@ -8344,8 +8153,8 @@ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { @@ -8354,9 +8163,9 @@ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" }, "dependencies": { "isobject": { @@ -8395,9 +8204,9 @@ "integrity": "sha1-riig1y+TvyJCKhii43mZMRLeyOg=", "dev": true, "requires": { - "define-property": "0.2.5", - "isobject": "3.0.1", - "lazy-cache": "2.0.2" + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "lazy-cache": "^2.0.2" }, "dependencies": { "define-property": { @@ -8406,7 +8215,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "is-descriptor": { @@ -8415,9 +8224,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" } }, "kind-of": { @@ -8456,7 +8265,7 @@ "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", "dev": true, "requires": { - "user-home": "1.1.1" + "user-home": "^1.1.1" } }, "validate-npm-package-license": { @@ -8464,8 +8273,8 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", "requires": { - "spdx-correct": "1.0.2", - "spdx-expression-parse": "1.0.4" + "spdx-correct": "~1.0.0", + "spdx-expression-parse": "~1.0.0" } }, "validate.io-undefined": { @@ -8479,16 +8288,9 @@ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { - "assert-plus": "1.0.0", + "assert-plus": "^1.0.0", "core-util-is": "1.0.2", - "extsprintf": "1.3.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } + "extsprintf": "^1.2.0" } }, "vinyl": { @@ -8497,8 +8299,8 @@ "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", "dev": true, "requires": { - "clone": "1.0.3", - "clone-stats": "0.0.1", + "clone": "^1.0.0", + "clone-stats": "^0.0.1", "replace-ext": "0.0.1" } }, @@ -8508,14 +8310,14 @@ "integrity": "sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY=", "dev": true, "requires": { - "defaults": "1.0.3", - "glob-stream": "3.1.18", - "glob-watcher": "0.0.6", - "graceful-fs": "3.0.11", - "mkdirp": "0.5.1", - "strip-bom": "1.0.0", - "through2": "0.6.5", - "vinyl": "0.4.6" + "defaults": "^1.0.0", + "glob-stream": "^3.1.5", + "glob-watcher": "^0.0.6", + "graceful-fs": "^3.0.0", + "mkdirp": "^0.5.0", + "strip-bom": "^1.0.0", + "through2": "^0.6.1", + "vinyl": "^0.4.0" }, "dependencies": { "clone": { @@ -8530,7 +8332,7 @@ "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", "dev": true, "requires": { - "natives": "1.1.1" + "natives": "^1.1.0" } }, "isarray": { @@ -8545,10 +8347,10 @@ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "string_decoder": { @@ -8563,8 +8365,8 @@ "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=", "dev": true, "requires": { - "first-chunk-stream": "1.0.0", - "is-utf8": "0.2.1" + "first-chunk-stream": "^1.0.0", + "is-utf8": "^0.2.0" } }, "through2": { @@ -8573,8 +8375,8 @@ "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", "dev": true, "requires": { - "readable-stream": "1.0.34", - "xtend": "4.0.1" + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" } }, "vinyl": { @@ -8583,8 +8385,8 @@ "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", "dev": true, "requires": { - "clone": "0.2.0", - "clone-stats": "0.0.1" + "clone": "^0.2.0", + "clone-stats": "^0.0.1" } } } @@ -8595,7 +8397,7 @@ "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", "dev": true, "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.1" } }, "walk-back": { @@ -8610,8 +8412,8 @@ "integrity": "sha512-FMB5VqpLqOCcqrzA9okZFc0wq0Qbmdm396qJxvQZhDpyu0W95G9JCmp74tx7iyYnyOcBtUuKJsgIKAqjozvmmQ==", "dev": true, "requires": { - "ensure-posix-path": "1.0.2", - "matcher-collection": "1.0.5" + "ensure-posix-path": "^1.0.0", + "matcher-collection": "^1.0.0" } }, "when": { @@ -8625,7 +8427,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -8645,7 +8447,7 @@ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2" } }, "window-size": { @@ -8659,12 +8461,12 @@ "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.0.tgz", "integrity": "sha1-gIBQuT1SZh7Z+2wms/DIJnCLCu4=", "requires": { - "async": "1.0.0", - "colors": "1.0.3", - "cycle": "1.0.3", - "eyes": "0.1.8", - "isstream": "0.1.2", - "stack-trace": "0.0.10" + "async": "~1.0.0", + "colors": "1.0.x", + "cycle": "1.0.x", + "eyes": "0.1.x", + "isstream": "0.1.x", + "stack-trace": "0.0.x" }, "dependencies": { "async": { @@ -8692,8 +8494,8 @@ "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", "dev": true, "requires": { - "reduce-flatten": "1.0.1", - "typical": "2.6.1" + "reduce-flatten": "^1.0.1", + "typical": "^2.6.1" } }, "wrap-ansi": { @@ -8702,8 +8504,8 @@ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" } }, "wrappy": { @@ -8752,9 +8554,9 @@ "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", "dev": true, "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", "window-size": "0.1.0" }, "dependencies": { @@ -8770,8 +8572,8 @@ "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", "dev": true, "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", + "center-align": "^0.1.1", + "right-align": "^0.1.1", "wordwrap": "0.0.2" } } @@ -8783,7 +8585,7 @@ "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" }, "dependencies": { "camelcase": { @@ -8799,7 +8601,7 @@ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", "requires": { - "fd-slicer": "1.0.1" + "fd-slicer": "~1.0.1" } } } diff --git a/app/package.json b/app/package.json index 6e8fb2b..337df23 100644 --- a/app/package.json +++ b/app/package.json @@ -26,7 +26,7 @@ }, "homepage": "https://github.com/sixteenmillimeter/mcopy#readme", "devDependencies": { - "electron-installer-debian": "^0.7.1", + "electron-installer-debian": "^0.8.1", "electron-installer-dmg": "^0.2.1", "electron-packager": "^10.1.1", "electron-rebuild": "^1.4.0", @@ -35,11 +35,12 @@ "gulp-concat": "^2.6.1", "gulp-less": "^3.4.0", "jsdoc-to-markdown": "^4.0.1", - "qunit": "^2.5.1" + "qunit": "^2.6.1" }, "dependencies": { "async": "^2.6.0", "electron": "^1.8.2-beta.4", + "fs-extra": "^6.0.1", "humanize-duration": "^3.12.1", "moment": "^2.17.1", "node-notifier": "^5.1.2", From e3b735ced3166636ef55432bd0e91fe9799d536e Mon Sep 17 00:00:00 2001 From: mmcw-dev Date: Sat, 16 Jun 2018 18:49:48 -0400 Subject: [PATCH 10/21] Update script to function as a class --- app/test/mscript_test.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/test/mscript_test.js b/app/test/mscript_test.js index 325b148..749f026 100644 --- a/app/test/mscript_test.js +++ b/app/test/mscript_test.js @@ -1,6 +1,7 @@ 'use strict'; -const mscript = require('../lib/mscript'); +const Mscript = require('../lib/mscript'); +const mscript = new Mscript(); QUnit.test(`Basic functions`, (assert) => { const script1 = 'CF\nPF\nCB\nPB\nBF\nBB'; @@ -93,7 +94,7 @@ QUnit.test('Loop', (assert) => { && obj.proj === 8 && obj.arr.length === 16 && obj.light.length === 16 - && obj.light[0] === mscript.black) { + && obj.light[0] === '0,0,0') { pass = true; } assert.ok(pass, 'Basic cam/proj loop'); @@ -128,7 +129,7 @@ QUnit.test('Light', (assert) => { && obj.light.length === 3 && obj.light[0] === '255,255,255' && obj.light[1] === '' - && obj.light[2] === mscript.black) { + && obj.light[2] === '0,0,0') { pass = true; } assert.ok(pass, 'Basic black'); From 374d08e6ea2407a799e52d9c9249cce7c969f45b Mon Sep 17 00:00:00 2001 From: mmcw-dev Date: Sat, 16 Jun 2018 18:50:01 -0400 Subject: [PATCH 11/21] Profile script for timing new vs old mscript --- app/test/mscript_profile.js | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 app/test/mscript_profile.js diff --git a/app/test/mscript_profile.js b/app/test/mscript_profile.js new file mode 100644 index 0000000..47f9c22 --- /dev/null +++ b/app/test/mscript_profile.js @@ -0,0 +1,26 @@ +'use strict'; + +//the purpose of this script is to test the performance of the +//mscript rewrite against the original + +const mscript = require('../lib/mscript'); +const mscriptOld = require('../lib/mscript/index.old.js'); + +mscriptOld.state_clear(); +console.time('mscript old str_to_arr'); + + +for (let i = 0; i < 100000; i++) { + mscriptOld.str_to_arr('BF 2222', 'BF'); +} + +console.timeEnd('mscript old str_to_arr') + +mscript.state_clear(); +console.time('mscript str_to_arr'); + +for (let i = 0; i < 100000; i++) { + mscript.str_to_arr('BF 2222', 'BF'); +} + +console.timeEnd('mscript str_to_arr'); \ No newline at end of file From 48d3952e3cafedfca00b86597292016c57dbc775 Mon Sep 17 00:00:00 2001 From: mmcw-dev Date: Sat, 16 Jun 2018 18:50:10 -0400 Subject: [PATCH 12/21] Save old mscript for comparison for now --- app/lib/mscript/index.old.js | 476 +++++++++++++++++++++++++++++++++++ 1 file changed, 476 insertions(+) create mode 100644 app/lib/mscript/index.old.js diff --git a/app/lib/mscript/index.old.js b/app/lib/mscript/index.old.js new file mode 100644 index 0000000..65e8d17 --- /dev/null +++ b/app/lib/mscript/index.old.js @@ -0,0 +1,476 @@ +'use strict'; + +/** @module lib/mscript */ + +let fs; +let input; + +/** object mscript */ +const mscript = {}; + +/** + * Check for the presence of specific arguments in process + * argv + * + * @param {string} shrt Short version of argument or flag + * @param {string} lng Long version of argument or flag + * + * @return {boolean} Is flag present + */ +mscript.arg = function arg (shrt, lng) { + if (process.argv.indexOf(shrt) !== -1 || + process.argv.indexOf(lng) !== -1) { + return true; + } + return false; +}; + +/** + * Check for the position of specific arguments in process + * argv + * + * @param {string} shrt Short version of argument or flag + * @param {string} lng Long version of argument or flag + * + * @return {boolean} Position of arg or flag, for locating input + */ +mscript.arg_pos = function arg_pos (shrt, lng) { + var pos = -1; + pos = process.argv.indexOf(shrt); + if (pos === -1) { + pos = process.argv.indexOf(lng); + } + return pos; +}; + +mscript.black = '0,0,0'; +mscript.cmd = [ + 'CF', + 'PF', + 'BF', + 'CB', + 'PB', + 'BB' +]; +mscript.alts = { + 'CF' : ['CAMERA FORWARD', 'CAM FORWARD'], + 'PF' : ['PROJECTOR FORWARD', 'PROJ FORWARD'], + 'BF' : ['BLACK FORWARD', 'BLACK', 'BLANK FORWARD', 'BLANK'], + 'CB' : ['CAMERA BACKWARD', 'CAM BACKWARD', 'CAMERA BACK', 'CAM BACK'], + 'PB' : ['PROJECTOR FORWARD', 'PROJ FORWARD', 'PROJECTOR BACK', 'PROJ BACK'], + 'BB' : ['BLACK BACKWARD', 'BLACK BACK', 'BLANK BACK'], + 'L ' : ['LIGHT', 'COLOR', 'LAMP'], + 'F ' : ['FADE'] +}; + +mscript.state = {}; + +/** + * Clear the state object + */ +mscript.state_clear = function state_clear () { + mscript.state = { + cam : 0, + proj : 0, + color : '', + loops : [], + rec : -1 + }; +}; +/** + * This is never used and doesn't do anything? + */ +mscript.alts_unique = function alts_unique () { + var ids = Object.keys(mscript.alts), + all = []; + for (var i = 0; i < ids.length; i++) { + if (all.indexOf(ids[i]) === -1) { + all.push(ids[i]); + } else { + mscript.fail("Can't compile"); + } + } +}; +/** + * + */ +mscript.interpret = function interpret (text, callback) { + mscript.state_clear(); + if (typeof text === 'undefined') { + mscript.fail('No input'); + } + var lines = text.split('\n'), + two = '', + arr = [], + light = [], + target = 0, + dist = 0, //? + output = {}; + for (var i = 0; i < lines.length; i++) { + lines[i] = lines[i].replace(/\t+/g, ""); //strip tabs + lines[i] = lines[i].trim(); //remove excess whitespace before and after command + two = lines[i].substring(0, 2); + if (mscript.cmd.indexOf(two) !== -1) { + + if (mscript.state.loops.length > 0) { + //hold generated arr in state loop array + mscript.state.loops[mscript.state.rec].arr + .push.apply(mscript.state.loops[mscript.state.rec].arr, + mscript.str_to_arr(lines[i], + two)); + mscript.state.loops[mscript.state.rec].light + .push.apply(mscript.state.loops[mscript.state.rec].light, + mscript.light_to_arr(lines[i], + two)); + } else { + arr.push.apply(arr, mscript.str_to_arr(lines[i], two)); + light.push.apply(light, mscript.light_to_arr(lines[i], two)) + } + + } else if (lines[i].substring(0, 4) === 'LOOP') { + mscript.state.rec++; + mscript.state.loops[mscript.state.rec] = { + arr : [], + light : [], + cam : 0, + proj : 0, + cmd : lines[i] + '' + }; + } else if (lines[i].substring(0, 2) === 'L ') { + mscript.light_state(lines[i]); + } else if (lines[i].substring(0, 3) === 'END') { + for (var x = 0; x < mscript.loop_count(mscript.state.loops[mscript.state.rec].cmd); x++) { + if (mscript.state.rec === 0) { + arr.push.apply(arr, mscript.state.loops[mscript.state.rec].arr); + light.push.apply(light, mscript.state.loops[mscript.state.rec].light); + } else if (mscript.state.rec >= 1) { + mscript.state.loops[mscript.state.rec - 1].arr + .push.apply(mscript.state.loops[mscript.state.rec - 1].arr, + mscript.state.loops[mscript.state.rec].arr); + mscript.state.loops[mscript.state.rec - 1].light + .push.apply(mscript.state.loops[mscript.state.rec - 1].light, + mscript.state.loops[mscript.state.rec].light); + } + } + mscript.state_update('END', mscript.loop_count(mscript.state.loops[mscript.state.rec].cmd)); + delete mscript.state.loops[mscript.state.rec]; + mscript.state.rec--; + } else if (lines[i].substring(0, 3) === 'CAM') { //directly go to that frame (black?) + target = parseInt(lines[i].split('CAM ')[1]); + if (mscript.state.loops.length > 0) { + if (target > mscript.state.cam) { + dist = target - mscript.state.cam; + for (var x = 0; x < dist; x++) { + mscript.state.loops[mscript.state.rec].arr.push('BF'); + mscript.state.loops[mscript.state.rec].light.push(mscript.black); + mscript.state_update('BF'); + } + } else { + dist = mscript.state.cam - target; + for (var x = 0; x < dist; x++) { + mscript.state.loops[mscript.state.rec].arr.push('BB'); + mscript.state.loops[mscript.state.rec].light.push(mscript.black); + mscript.state_update('BB'); + } + } + } else { + if (target > mscript.state.cam) { + dist = target - mscript.state.cam; + for (var x = 0; x < dist; x++) { + arr.push('BF'); + light.push(mscript.black); + mscript.state_update('BF'); + } + } else { + dist = mscript.state.cam - target; + for (var x = 0; x < dist; x++) { + arr.push('BB'); + light.push(mscript.black); + mscript.state_update('BB'); + } + } + } + } else if (lines[i].substring(0, 4) === 'PROJ') { //directly go to that frame + target = parseInt(lines[i].split('PROJ ')[1]); + if (mscript.state.loops.length > 0) { + if (target > mscript.state.proj) { + dist = target - mscript.state.proj; + for (var x = 0; x < dist; x++) { + mscript.state.loops[mscript.state.rec].arr.push('PF'); + mscript.state.loops[mscript.state.rec].light.push(''); + mscript.state_update('PF'); + } + } else { + dist = mscript.state.proj - target; + for (var x = 0; x < dist; x++) { + mscript.state.loops[mscript.state.rec].arr.push('PB'); + mscript.state.loops[mscript.state.rec].light.push(''); + mscript.state_update('PB'); + } + } + } else { + if (target > mscript.state.proj) { + dist = target - mscript.state.proj; + for (var x = 0; x < dist; x++) { + arr.push('PF'); + light.push(''); + mscript.state_update('PF'); + } + } else { + dist = mscript.state.proj - target; + for (var x = 0; x < dist; x++) { + arr.push('PB'); + light.push(''); + mscript.state_update('PB'); + } + } + } + } else if (lines[i].substring(0, 3) === 'SET') { //set that state + if (lines[i].substring(0, 7) === 'SET CAM') { + mscript.state.cam = parseInt(lines[i].split('SET CAM')[1]); + } else if (lines[i].substring(0, 8) === 'SET PROJ') { + mscript.state.proj = parseInt(lines[i].split('SET PROJ')[1]); + } + } else if (lines[i].substring(0, 1) === '#' || lines[i].substring(0, 2) === '//') { + //comments + //ignore while parsing + } + } + output.success = true; + output.arr = arr; + output.light = light; + output.cam = mscript.state.cam; + output.proj = mscript.state.proj; + if (typeof callback !== 'undefined') { + //should only be invoked by running mscript.tests() + callback(output); + } else { + return mscript.output(output); + } +}; +/** + * + */ +mscript.last_loop = function last_loop () { + return mscript.state.loops[mscript.state.loops.length - 1]; +}; +/** + * + */ +mscript.parent_loop = function parent_loop () { + return mscript.state.loops[mscript.state.loops.length - 2]; +}; +/** + * + */ +mscript.state_update = function state_update (cmd, val) { + if (cmd === 'END') { + for (var i = 0; i < val; i++) { + if (mscript.state.rec === 0) { + mscript.state.cam += mscript.state.loops[mscript.state.rec].cam; + mscript.state.proj += mscript.state.loops[mscript.state.rec].proj; + } else if (mscript.state.rec >= 1) { + mscript.state.loops[mscript.state.rec - 1].cam += mscript.state.loops[mscript.state.rec].cam; + mscript.state.loops[mscript.state.rec - 1].proj += mscript.state.loops[mscript.state.rec].proj; + } + } + } else if (cmd === 'CF') { + if (mscript.state.loops.length < 1) { + mscript.state.cam++; + } else { + mscript.state.loops[mscript.state.rec].cam++; + } + } else if (cmd === 'CB') { + if (mscript.state.loops.length < 1) { + mscript.state.cam--; + } else { + mscript.state.loops[mscript.state.rec].cam--; + } + } else if (cmd === 'PF') { + if (mscript.state.loops.length < 1) { + mscript.state.proj++; + } else { + mscript.state.loops[mscript.state.rec].proj++; + } + } else if (cmd === 'PB') { + if (mscript.state.loops.length < 1) { + mscript.state.proj--; + } else { + mscript.state.loops[mscript.state.rec].proj--; + } + } else if (cmd === 'BF') { + if (mscript.state.loops.length < 1) { + mscript.state.cam++; + } else { + mscript.state.loops[mscript.state.rec].cam++; + } + } else if (cmd === 'BB') { + if (mscript.state.loops.length < 1) { + mscript.state.cam--; + } else { + mscript.state.loops[mscript.state.rec].cam++; + } + } else if (cmd === 'L ') { + + } +}; +/** + * + */ +mscript.str_to_arr = function str_to_arr (str, cmd) { + var cnt = str.split(cmd), + c = parseInt(cnt[1]), + arr = []; + if (cnt[1] === '') { + c = 1; + } else { + c = parseInt(cnt[1]); + } + for (var i = 0; i < c; i++) { + arr.push(cmd); + mscript.state_update(cmd); + } + return arr; +}; +/** + * + */ +mscript.light_state = function light_state (str) { + //add parsers for other color spaces + var color = str.replace('L ', '').trim(); + mscript.state.color = color; +}; +/** + * + */ +mscript.light_to_arr = function light_to_arr (str, cmd) { + var cnt = str.split(cmd), + c = parseInt(cnt[1]), + arr = []; + if (cnt[1] === '') { + c = 1; + } else { + c = parseInt(cnt[1]); + } + for (var i = 0; i < c; i++) { + if (cmd === 'CF' + || cmd === 'CB') { + arr.push(mscript.state.color); + } else if (cmd === 'BF' + || cmd === 'BB') { + arr.push(mscript.black); + } else { + arr.push(''); + } + } + return arr; +}; +/** + * + */ +mscript.loop_count = function loop_count (str) { + return parseInt(str.split(' ')[1]); +}; +mscript.fade_count = function fade_count (str) { + return parseInt(str.split(' ')[1]); +} +/** + * + */ +mscript.fail = function fail (reason) { + console.error(JSON.stringify({success: false, error: true, msg : reason})); + if (process) process.exit(); +}; +/** + * + */ +mscript.output = function output (data) { + var json = true; //default + if (mscript.arg('-j', '--json')) { + json = true; + } + + if (mscript.arg('-t', '--text')) { + json = false; + } + + if (json) { + console.log(JSON.stringify(data)); + } else { + var ids = Object.keys(data); + for (var i = 0; i < ids.length; i++) { + console.log(ids[i] + ': ' + data[ids[i]]); + } + } +}; +/** + * + */ +mscript.init = function init () { + if (mscript.arg('-t', '--tests')) { + return mscript.tests(); + } + + if (mscript.arg('-v', '--verbose')) { + console.time('mscript'); + } + + if (mscript.arg('-c', '--cam')) { + mscript.state.cam = parseInt(process.argv[mscript.arg_pos('-c', '--cam') + 1]); + } + + if (mscript.arg('-p', '--proj')) { + mscript.state.proj = parseInt(process.argv[mscript.arg_pos('-p', '--proj') + 1]); + } + + if (mscript.arg('-f', '--file')) { + input = process.argv[mscript.arg_pos('-f', '--file') + 1]; + mscript.interpret(fs.readFileSync(input, 'utf8')); + } else { + mscript.interpret(input); + } + + if (mscript.arg('-v', '--verbose')) { + console.timeEnd('mscript'); + } +}; + +if (typeof document === 'undefined' + && typeof module !== 'undefined' + && !module.parent) { + //node script + fs = require('fs'); + input = process.argv[2]; + mscript.init(); +} else if (typeof module !== 'undefined' && module.parent) { + //module + fs = require('fs'); + module.exports = mscript; +} else { + //web +} + + +/* + +CAM # - go to camera frame # +PROJ # - go to projector frame # + +SET CAM # - sets camera count to # +SET PROJ # - sets projector count to # + +LOOP # - begin loop, can nest recursively, # times +END LOOP - (or END) closes loop + +L #RGB - sets light to rgb value + +FADE + +CF - Camera forwards +PF - Projector forwards +BF - Black forwards +CB - Camera backwards +PB - Projector backwards +BB - Black backwards + +*/ \ No newline at end of file From 5f736c0af4d5c37571faa69e286d4fba67ecc02b Mon Sep 17 00:00:00 2001 From: mmcw-dev Date: Sat, 16 Jun 2018 18:50:24 -0400 Subject: [PATCH 13/21] New mscript, much easier to read, uses a class --- app/lib/mscript/index.js | 707 ++++++++++++++++----------------------- 1 file changed, 296 insertions(+), 411 deletions(-) diff --git a/app/lib/mscript/index.js b/app/lib/mscript/index.js index bb05449..cf49273 100644 --- a/app/lib/mscript/index.js +++ b/app/lib/mscript/index.js @@ -2,49 +2,8 @@ /** @module lib/mscript */ -let fs; -let input; - -/** object mscript */ -const mscript = {}; - -/** - * Check for the presence of specific arguments in process - * argv - * - * @param {string} shrt Short version of argument or flag - * @param {string} lng Long version of argument or flag - * - * @return {boolean} Is flag present - */ -mscript.arg = function arg (shrt, lng) { - if (process.argv.indexOf(shrt) !== -1 || - process.argv.indexOf(lng) !== -1) { - return true; - } - return false; -}; - -/** - * Check for the position of specific arguments in process - * argv - * - * @param {string} shrt Short version of argument or flag - * @param {string} lng Long version of argument or flag - * - * @return {boolean} Position of arg or flag, for locating input - */ -mscript.arg_pos = function arg_pos (shrt, lng) { - var pos = -1; - pos = process.argv.indexOf(shrt); - if (pos === -1) { - pos = process.argv.indexOf(lng); - } - return pos; -}; - -mscript.black = '0,0,0'; -mscript.cmd = [ +const BLACK = '0,0,0'; +const CMD = [ 'CF', 'PF', 'BF', @@ -52,10 +11,10 @@ mscript.cmd = [ 'PB', 'BB' ]; -mscript.alts = { +const ALTS = { 'CF' : ['CAMERA FORWARD', 'CAM FORWARD'], 'PF' : ['PROJECTOR FORWARD', 'PROJ FORWARD'], - 'BF': ['BLACK FORWARD', 'BLACK', 'BLANK FORWARD', 'BLANK'], + 'BF' : ['BLACK FORWARD', 'BLACK', 'BLANK FORWARD', 'BLANK'], 'CB' : ['CAMERA BACKWARD', 'CAM BACKWARD', 'CAMERA BACK', 'CAM BACK'], 'PB' : ['PROJECTOR FORWARD', 'PROJ FORWARD', 'PROJECTOR BACK', 'PROJ BACK'], 'BB' : ['BLACK BACKWARD', 'BLACK BACK', 'BLANK BACK'], @@ -63,392 +22,318 @@ mscript.alts = { 'F ' : ['FADE'] }; -mscript.state = {}; +class Mscript { + constructor () { + this.output = {}; + } -/** - * Clear the state object - */ -mscript.state_clear = function state_clear () { - mscript.state = { - cam : 0, - proj : 0, - color : '', - loops : [], - rec : -1 - }; -}; -/** - * - */ -mscript.alts_unique = function alts_unique () { - var ids = Object.keys(mscript.alts), - all = []; - for (var i = 0; i < ids.length; i++) { - if (all.indexOf(ids[i]) === -1) { - all.push(ids[i]); - } else { - mscript.fail("Can't compile"); + /** + * Clear the state of the script + */ + clear () { + this.cam = 0; + this.proj = 0; + this.color = ''; + this.loops = []; + this.rec = -1; + this.output = {}; + } + /** + * Main function, accepts multi-line string, parses into lines + * and interprets the instructions from the text. Returns an array + * of steps to be fed into the mcopy. + */ + interpret (text, callback) { + this.clear() + + if (typeof text === 'undefined') { + return this.fail('No input'); } - } -}; -/** - * - */ -mscript.interpret = function interpret (text, callback) { - mscript.state_clear(); - if (typeof text === 'undefined') { - mscript.fail('No input'); - } - var lines = text.split('\n'), - two = '', - arr = [], - light = [], - target = 0, - dist = 0, //? - output = {}; - for (var i = 0; i < lines.length; i++) { - lines[i] = lines[i].replace(/\t+/g, ""); //strip tabs - lines[i] = lines[i].trim(); //remove excess whitespace before and after command - two = lines[i].substring(0, 2); - if (mscript.cmd.indexOf(two) !== -1) { - if (mscript.state.loops.length > 0) { - //hold generated arr in state loop array - mscript.state.loops[mscript.state.rec].arr - .push.apply(mscript.state.loops[mscript.state.rec].arr, - mscript.str_to_arr(lines[i], - two)); - mscript.state.loops[mscript.state.rec].light - .push.apply(mscript.state.loops[mscript.state.rec].light, - mscript.light_to_arr(lines[i], - two)); - } else { - arr.push.apply(arr, mscript.str_to_arr(lines[i], two)); - light.push.apply(light, mscript.light_to_arr(lines[i], two)) - } + //split string into lines, each containing a command + let lines = text.split('\n'); + + let two = ''; + + let arr = []; + + let light = []; + + let target = 0;// move to target using CAM # or PROJ # + + let dist = 0; //? - } else if (lines[i].substring(0, 4) === 'LOOP') { - mscript.state.rec++; - mscript.state.loops[mscript.state.rec] = { - arr : [], - light : [], - cam : 0, - proj : 0, - cmd : lines[i] + '' - }; - } else if (lines[i].substring(0, 2) === 'L ') { - mscript.light_state(lines[i]); - } else if (lines[i].substring(0, 3) === 'END') { - for (var x = 0; x < mscript.loop_count(mscript.state.loops[mscript.state.rec].cmd); x++) { - if (mscript.state.rec === 0) { - arr.push.apply(arr, mscript.state.loops[mscript.state.rec].arr); - light.push.apply(light, mscript.state.loops[mscript.state.rec].light); - } else if (mscript.state.rec >= 1) { - mscript.state.loops[mscript.state.rec - 1].arr - .push.apply(mscript.state.loops[mscript.state.rec - 1].arr, - mscript.state.loops[mscript.state.rec].arr); - mscript.state.loops[mscript.state.rec - 1].light - .push.apply(mscript.state.loops[mscript.state.rec - 1].light, - mscript.state.loops[mscript.state.rec].light); - } - } - mscript.state_update('END', mscript.loop_count(mscript.state.loops[mscript.state.rec].cmd)); - delete mscript.state.loops[mscript.state.rec]; - mscript.state.rec--; - } else if (lines[i].substring(0, 3) === 'CAM') { //directly go to that frame (black?) - target = parseInt(lines[i].split('CAM ')[1]); - if (mscript.state.loops.length > 0) { - if (target > mscript.state.cam) { - dist = target - mscript.state.cam; - for (var x = 0; x < dist; x++) { - mscript.state.loops[mscript.state.rec].arr.push('BF'); - mscript.state.loops[mscript.state.rec].light.push(mscript.black); - mscript.state_update('BF'); - } + for (let line of lines) { + line = line.replace(/\t+/g, ""); //strip tabs + line = line.trim(); //remove excess whitespace before and after command + two = line.substring(0, 2); + if (CMD.indexOf(two) !== -1) { + + if (this.loops.length > 0) { + //hold generated arr in state loop array + this.loops[this.rec].arr + .push.apply(this.loops[this.rec].arr, + this.str_to_arr(line, + two)); + this.loops[this.rec].light + .push.apply(this.loops[this.rec].light, + this.light_to_arr(line, + two)); } else { - dist = mscript.state.cam - target; - for (var x = 0; x < dist; x++) { - mscript.state.loops[mscript.state.rec].arr.push('BB'); - mscript.state.loops[mscript.state.rec].light.push(mscript.black); - mscript.state_update('BB'); + arr.push.apply(arr, this.str_to_arr(line, two)); + light.push.apply(light, this.light_to_arr(line, two)) + } + + } else if (line.substring(0, 4) === 'LOOP') { + this.rec++; + this.loops[this.rec] = { + arr : [], + light : [], + cam : 0, + proj : 0, + cmd : line + '' + }; + } else if (line.substring(0, 2) === 'L ') { + this.light_state(line); + } else if (line.substring(0, 3) === 'END') { + for (var x = 0; x < this.loop_count(this.loops[this.rec].cmd); x++) { + if (this.rec === 0) { + arr.push.apply(arr, this.loops[this.rec].arr); + light.push.apply(light, this.loops[this.rec].light); + } else if (this.rec >= 1) { + this.loops[this.rec - 1].arr + .push.apply(this.loops[this.rec - 1].arr, + this.loops[this.rec].arr); + this.loops[this.rec - 1].light + .push.apply(this.loops[this.rec - 1].light, + this.loops[this.rec].light); } } - } else { - if (target > mscript.state.cam) { - dist = target - mscript.state.cam; - for (var x = 0; x < dist; x++) { - arr.push('BF'); - light.push(mscript.black); - mscript.state_update('BF'); - } + this.update('END', this.loop_count(this.loops[this.rec].cmd)); + delete this.loops[this.rec]; + this.rec--; + } else if (line.substring(0, 3) === 'CAM') { //directly go to that frame (black?) + target = parseInt(line.split('CAM ')[1]); + if (this.loops.length > 0) { + if (target > this.cam) { + dist = target - this.cam; + for (var x = 0; x < dist; x++) { + this.loops[this.rec].arr.push('BF'); + this.loops[this.rec].light.push(BLACK); + this.update('BF'); + } + } else { + dist = this.cam - target; + for (var x = 0; x < dist; x++) { + this.loops[this.rec].arr.push('BB'); + this.loops[this.rec].light.push(BLACK); + this.update('BB'); + } + } } else { - dist = mscript.state.cam - target; - for (var x = 0; x < dist; x++) { - arr.push('BB'); - light.push(mscript.black); - mscript.state_update('BB'); + if (target > this.cam) { + dist = target - this.cam; + for (var x = 0; x < dist; x++) { + arr.push('BF'); + light.push(BLACK); + this.update('BF'); + } + } else { + dist = this.cam - target; + for (var x = 0; x < dist; x++) { + arr.push('BB'); + light.push(BLACK); + this.update('BB'); + } } } - } - } else if (lines[i].substring(0, 4) === 'PROJ') { //directly go to that frame - target = parseInt(lines[i].split('PROJ ')[1]); - if (mscript.state.loops.length > 0) { - if (target > mscript.state.proj) { - dist = target - mscript.state.proj; - for (var x = 0; x < dist; x++) { - mscript.state.loops[mscript.state.rec].arr.push('PF'); - mscript.state.loops[mscript.state.rec].light.push(''); - mscript.state_update('PF'); - } + } else if (line.substring(0, 4) === 'PROJ') { //directly go to that frame + target = parseInt(line.split('PROJ ')[1]); + if (this.loops.length > 0) { + if (target > this.proj) { + dist = target - this.proj; + for (var x = 0; x < dist; x++) { + this.loops[this.rec].arr.push('PF'); + this.loops[this.rec].light.push(''); + this.update('PF'); + } + } else { + dist = this.proj - target; + for (var x = 0; x < dist; x++) { + this.loops[this.rec].arr.push('PB'); + this.loops[this.rec].light.push(''); + this.update('PB'); + } + } } else { - dist = mscript.state.proj - target; - for (var x = 0; x < dist; x++) { - mscript.state.loops[mscript.state.rec].arr.push('PB'); - mscript.state.loops[mscript.state.rec].light.push(''); - mscript.state_update('PB'); - } + if (target > this.proj) { + dist = target - this.proj; + for (var x = 0; x < dist; x++) { + arr.push('PF'); + light.push(''); + this.update('PF'); + } + } else { + dist = this.proj - target; + for (var x = 0; x < dist; x++) { + arr.push('PB'); + light.push(''); + this.update('PB'); + } + } } + } else if (line.substring(0, 3) === 'SET') { //set that state + if (line.substring(0, 7) === 'SET CAM') { + this.cam = parseInt(line.split('SET CAM')[1]); + } else if (line.substring(0, 8) === 'SET PROJ') { + this.proj = parseInt(line.split('SET PROJ')[1]); + } + } else if (line.substring(0, 1) === '#' || line.substring(0, 2) === '//') { + //comments + //ignore while parsing + } + } + + + this.output.success = true; + this.output.arr = arr; //all instructions + this.output.light = light; //all light instructions + this.output.cam = this.cam; + this.output.proj = this.proj; + + + if (typeof callback !== 'undefined') { + //should only be invoked by running mscript.tests() + callback(this.output); + } + } + last_loop () { + return this.loops[this.loops.length - 1]; + } + parent_loop () { + return this.loops[this.loops.length - 2]; + } + loop_count (str) { + return parseInt(str.split(' ')[1]); + } + fade_count (str) { + return parseInt(str.split(' ')[1]); + } + /** + * Increase the state of a specific object, such as the camera/projector, + * by the value defined in val + */ + update (cmd, val = 1) { + if (cmd === 'END') { + //I don't understand this loop + for (let i = 0; i < val; i++) { + if (this.rec === 0) { + this.cam += this.loops[this.rec].cam; + this.proj += this.loops[this.rec].proj; + } else if (this.rec >= 1) { + this.loops[this.rec - 1].cam += this.loops[this.rec].cam; + this.loops[this.rec - 1].proj += this.loops[this.rec].proj; + } + } + } else if (cmd === 'CF') { + if (this.loops.length < 1) { + this.cam += val; } else { - if (target > mscript.state.proj) { - dist = target - mscript.state.proj; - for (var x = 0; x < dist; x++) { - arr.push('PF'); - light.push(''); - mscript.state_update('PF'); - } - } else { - dist = mscript.state.proj - target; - for (var x = 0; x < dist; x++) { - arr.push('PB'); - light.push(''); - mscript.state_update('PB'); - } - } + this.loops[this.rec].cam += val; } - } else if (lines[i].substring(0, 3) === 'SET') { //set that state - if (lines[i].substring(0, 7) === 'SET CAM') { - mscript.state.cam = parseInt(lines[i].split('SET CAM')[1]); - } else if (lines[i].substring(0, 8) === 'SET PROJ') { - mscript.state.proj = parseInt(lines[i].split('SET PROJ')[1]); + } else if (cmd === 'CB') { + if (this.loops.length < 1) { + this.cam -= val; + } else { + this.loops[this.rec].cam--; } - } else if (lines[i].substring(0, 1) === '#' || lines[i].substring(0, 2) === '//') { - //comments - //ignore while parsing - } - } - output.success = true; - output.arr = arr; - output.light = light; - output.cam = mscript.state.cam; - output.proj = mscript.state.proj; - if (typeof callback !== 'undefined') { - //should only be invoked by running mscript.tests() - callback(output); - } else { - return mscript.output(output); - } -}; -/** - * - */ -mscript.last_loop = function last_loop () { - return mscript.state.loops[mscript.state.loops.length - 1]; -}; -/** - * - */ -mscript.parent_loop = function parent_loop () { - return mscript.state.loops[mscript.state.loops.length - 2]; -}; -/** - * - */ -mscript.state_update = function state_update (cmd, val) { - if (cmd === 'END') { - for (var i = 0; i < val; i++) { - if (mscript.state.rec === 0) { - mscript.state.cam += mscript.state.loops[mscript.state.rec].cam; - mscript.state.proj += mscript.state.loops[mscript.state.rec].proj; - } else if (mscript.state.rec >= 1) { - mscript.state.loops[mscript.state.rec - 1].cam += mscript.state.loops[mscript.state.rec].cam; - mscript.state.loops[mscript.state.rec - 1].proj += mscript.state.loops[mscript.state.rec].proj; - } - } - } else if (cmd === 'CF') { - if (mscript.state.loops.length < 1) { - mscript.state.cam++; - } else { - mscript.state.loops[mscript.state.rec].cam++; - } - } else if (cmd === 'CB') { - if (mscript.state.loops.length < 1) { - mscript.state.cam--; - } else { - mscript.state.loops[mscript.state.rec].cam--; - } - } else if (cmd === 'PF') { - if (mscript.state.loops.length < 1) { - mscript.state.proj++; - } else { - mscript.state.loops[mscript.state.rec].proj++; - } - } else if (cmd === 'PB') { - if (mscript.state.loops.length < 1) { - mscript.state.proj--; - } else { - mscript.state.loops[mscript.state.rec].proj--; - } - } else if (cmd === 'BF') { - if (mscript.state.loops.length < 1) { - mscript.state.cam++; - } else { - mscript.state.loops[mscript.state.rec].cam++; - } - } else if (cmd === 'BB') { - if (mscript.state.loops.length < 1) { - mscript.state.cam--; - } else { - mscript.state.loops[mscript.state.rec].cam++; - } - } else if (cmd === 'L ') { + } else if (cmd === 'PF') { + if (this.loops.length < 1) { + this.proj += val; + } else { + this.loops[this.rec].proj += val; + } + } else if (cmd === 'PB') { + if (this.loops.length < 1) { + this.proj -= val; + } else { + this.loops[this.rec].proj--; + } + } else if (cmd === 'BF') { + if (this.loops.length < 1) { + this.cam += val; + } else { + this.loops[this.rec].cam += val; + } + } else if (cmd === 'BB') { + if (this.loops.length < 1) { + this.cam -= val; + } else { + this.loops[this.rec].cam -= val; + } + } else if (cmd === 'L ') { - } -}; -/** - * - */ -mscript.str_to_arr = function str_to_arr (str, cmd) { - var cnt = str.split(cmd), - c = parseInt(cnt[1]), - arr = []; - if (cnt[1] === '') { - c = 1; - } else { - c = parseInt(cnt[1]); - } - for (var i = 0; i < c; i++) { - arr.push(cmd); - mscript.state_update(cmd); - } - return arr; -}; -/** - * - */ -mscript.light_state = function light_state (str) { - //add parsers for other color spaces - var color = str.replace('L ', '').trim(); - mscript.state.color = color; -}; -/** - * - */ -mscript.light_to_arr = function light_to_arr (str, cmd) { - var cnt = str.split(cmd), - c = parseInt(cnt[1]), - arr = []; - if (cnt[1] === '') { - c = 1; - } else { - c = parseInt(cnt[1]); - } - for (var i = 0; i < c; i++) { - if (cmd === 'CF' - || cmd === 'CB') { - arr.push(mscript.state.color); - } else if (cmd === 'BF' - || cmd === 'BB') { - arr.push(mscript.black); - } else { - arr.push(''); } } - return arr; -}; -/** - * - */ -mscript.loop_count = function loop_count (str) { - return parseInt(str.split(' ')[1]); -}; -mscript.fade_count = function fade_count (str) { - return parseInt(str.split(' ')[1]); + /** + * Split string on command, extract any integers from string + */ + str_to_arr (str, cmd) { + const cnt = str.split(cmd); + let c = parseInt(cnt[1]); + let arr = []; + if (cnt[1] === '') { + c = 1; + } else { + c = parseInt(cnt[1]); + } + arr = new Array(c).fill(cmd); + this.update(cmd, c); + return arr; + } + /** + * + */ + light_to_arr (str, cmd) { + const cnt = str.split(cmd); + let c = parseInt(cnt[1]); + let arr = []; + if (cnt[1] === '') { + c = 1; + } else { + c = parseInt(cnt[1]); + } + for (var i = 0; i < c; i++) { + if (cmd === 'CF' + || cmd === 'CB') { + arr.push(this.color); + } else if (cmd === 'BF' + || cmd === 'BB') { + arr.push(BLACK); + } else { + arr.push(''); + } + } + return arr; + } + /** + * + */ + light_state (str) { + //add parsers for other color spaces + const color = str.replace('L ', '').trim(); + this.color = color; + } + + /** + * + */ + fail (msg) { + throw new Error(msg); + } } -/** - * - */ -mscript.fail = function fail (reason) { - console.error(JSON.stringify({success: false, error: true, msg : reason})); - if (process) process.exit(); -}; -/** - * - */ -mscript.output = function output (data) { - var json = true; //default - if (mscript.arg('-j', '--json')) { - json = true; - } - if (mscript.arg('-t', '--text')) { - json = false; - } - - if (json) { - console.log(JSON.stringify(data)); - } else { - var ids = Object.keys(data); - for (var i = 0; i < ids.length; i++) { - console.log(ids[i] + ': ' + data[ids[i]]); - } - } -}; -/** - * - */ -mscript.init = function init () { - if (mscript.arg('-t', '--tests')) { - return mscript.tests(); - } - - if (mscript.arg('-v', '--verbose')) { - console.time('mscript'); - } - - if (mscript.arg('-c', '--cam')) { - mscript.state.cam = parseInt(process.argv[mscript.arg_pos('-c', '--cam') + 1]); - } - - if (mscript.arg('-p', '--proj')) { - mscript.state.proj = parseInt(process.argv[mscript.arg_pos('-p', '--proj') + 1]); - } - - if (mscript.arg('-f', '--file')) { - input = process.argv[mscript.arg_pos('-f', '--file') + 1]; - mscript.interpret(fs.readFileSync(input, 'utf8')); - } else { - mscript.interpret(input); - } - - if (mscript.arg('-v', '--verbose')) { - console.timeEnd('mscript'); - } -}; - -if (typeof document === 'undefined' - && typeof module !== 'undefined' - && !module.parent) { - //node script - fs = require('fs'); - input = process.argv[2]; - mscript.init(); -} else if (typeof module !== 'undefined' && module.parent) { - //module - fs = require('fs'); - module.exports = mscript; -} else { - //web -} +module.exports = Mscript; /* From 67addbe7ab6777703abd355f4e826c2200b0c1b3 Mon Sep 17 00:00:00 2001 From: mmcw-dev Date: Sat, 16 Jun 2018 18:50:38 -0400 Subject: [PATCH 14/21] Todo for mscript --- app/lib/mscript/TODO.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 app/lib/mscript/TODO.md diff --git a/app/lib/mscript/TODO.md b/app/lib/mscript/TODO.md new file mode 100644 index 0000000..83bd4d7 --- /dev/null +++ b/app/lib/mscript/TODO.md @@ -0,0 +1,8 @@ +# TODO - mscript + +* Expand test coverage +* Profiling tests +* Simple refactor +* Add variables and simple evaluation +* Add "Fade" feature +* Add "Light" feature \ No newline at end of file From 8b08c35b960c65ab04a5268e37d437ae16a6ea7f Mon Sep 17 00:00:00 2001 From: mmcw-dev Date: Sat, 16 Jun 2018 19:30:15 -0400 Subject: [PATCH 15/21] Update profile script to use the new version of the mscript lib --- app/test/mscript_profile.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/test/mscript_profile.js b/app/test/mscript_profile.js index 47f9c22..4f84c45 100644 --- a/app/test/mscript_profile.js +++ b/app/test/mscript_profile.js @@ -3,7 +3,8 @@ //the purpose of this script is to test the performance of the //mscript rewrite against the original -const mscript = require('../lib/mscript'); +const Mscript = require('../lib/mscript'); +const mscript = new Mscript(); const mscriptOld = require('../lib/mscript/index.old.js'); mscriptOld.state_clear(); @@ -16,7 +17,7 @@ for (let i = 0; i < 100000; i++) { console.timeEnd('mscript old str_to_arr') -mscript.state_clear(); +mscript.clear() console.time('mscript str_to_arr'); for (let i = 0; i < 100000; i++) { From e0d426587564989849cf16e4780eed560c8bac0d Mon Sep 17 00:00:00 2001 From: mmcw-dev Date: Sat, 16 Jun 2018 19:30:50 -0400 Subject: [PATCH 16/21] Reactor command parsing into separate methods --- app/lib/mscript/TODO.md | 3 - app/lib/mscript/index.js | 308 ++++++++++++++++++++++----------------- 2 files changed, 176 insertions(+), 135 deletions(-) diff --git a/app/lib/mscript/TODO.md b/app/lib/mscript/TODO.md index 83bd4d7..84fd887 100644 --- a/app/lib/mscript/TODO.md +++ b/app/lib/mscript/TODO.md @@ -1,8 +1,5 @@ # TODO - mscript -* Expand test coverage -* Profiling tests -* Simple refactor * Add variables and simple evaluation * Add "Fade" feature * Add "Light" feature \ No newline at end of file diff --git a/app/lib/mscript/index.js b/app/lib/mscript/index.js index cf49273..4032541 100644 --- a/app/lib/mscript/index.js +++ b/app/lib/mscript/index.js @@ -36,6 +36,13 @@ class Mscript { this.color = ''; this.loops = []; this.rec = -1; + + this.two = ''; + this.arr = []; + this.light = []; + this.target = 0; //move to target using CAM # or PROJ # + this.dist = 0; + this.output = {}; } /** @@ -52,170 +59,207 @@ class Mscript { //split string into lines, each containing a command let lines = text.split('\n'); - - let two = ''; - - let arr = []; - - let light = []; - - let target = 0;// move to target using CAM # or PROJ # - - let dist = 0; //? for (let line of lines) { line = line.replace(/\t+/g, ""); //strip tabs line = line.trim(); //remove excess whitespace before and after command - two = line.substring(0, 2); - if (CMD.indexOf(two) !== -1) { - - if (this.loops.length > 0) { - //hold generated arr in state loop array - this.loops[this.rec].arr - .push.apply(this.loops[this.rec].arr, - this.str_to_arr(line, - two)); - this.loops[this.rec].light - .push.apply(this.loops[this.rec].light, - this.light_to_arr(line, - two)); - } else { - arr.push.apply(arr, this.str_to_arr(line, two)); - light.push.apply(light, this.light_to_arr(line, two)) - } - + line = line.toUpperCase(); + this.two = line.substring(0, 2); + if (CMD.indexOf(this.two) !== -1) { + this.basic_cmd(line); } else if (line.substring(0, 4) === 'LOOP') { - this.rec++; - this.loops[this.rec] = { - arr : [], - light : [], - cam : 0, - proj : 0, - cmd : line + '' - }; + this.new_loop(line); } else if (line.substring(0, 2) === 'L ') { this.light_state(line); + } else if (line.substring(0, 2) === 'F ') { + //fade } else if (line.substring(0, 3) === 'END') { - for (var x = 0; x < this.loop_count(this.loops[this.rec].cmd); x++) { - if (this.rec === 0) { - arr.push.apply(arr, this.loops[this.rec].arr); - light.push.apply(light, this.loops[this.rec].light); - } else if (this.rec >= 1) { - this.loops[this.rec - 1].arr - .push.apply(this.loops[this.rec - 1].arr, - this.loops[this.rec].arr); - this.loops[this.rec - 1].light - .push.apply(this.loops[this.rec - 1].light, - this.loops[this.rec].light); - } - } - this.update('END', this.loop_count(this.loops[this.rec].cmd)); - delete this.loops[this.rec]; - this.rec--; + this.end_loop(line); } else if (line.substring(0, 3) === 'CAM') { //directly go to that frame (black?) - target = parseInt(line.split('CAM ')[1]); - if (this.loops.length > 0) { - if (target > this.cam) { - dist = target - this.cam; - for (var x = 0; x < dist; x++) { - this.loops[this.rec].arr.push('BF'); - this.loops[this.rec].light.push(BLACK); - this.update('BF'); - } - } else { - dist = this.cam - target; - for (var x = 0; x < dist; x++) { - this.loops[this.rec].arr.push('BB'); - this.loops[this.rec].light.push(BLACK); - this.update('BB'); - } - } - } else { - if (target > this.cam) { - dist = target - this.cam; - for (var x = 0; x < dist; x++) { - arr.push('BF'); - light.push(BLACK); - this.update('BF'); - } - } else { - dist = this.cam - target; - for (var x = 0; x < dist; x++) { - arr.push('BB'); - light.push(BLACK); - this.update('BB'); - } - } - } + this.move_cam(line); } else if (line.substring(0, 4) === 'PROJ') { //directly go to that frame - target = parseInt(line.split('PROJ ')[1]); - if (this.loops.length > 0) { - if (target > this.proj) { - dist = target - this.proj; - for (var x = 0; x < dist; x++) { - this.loops[this.rec].arr.push('PF'); - this.loops[this.rec].light.push(''); - this.update('PF'); - } - } else { - dist = this.proj - target; - for (var x = 0; x < dist; x++) { - this.loops[this.rec].arr.push('PB'); - this.loops[this.rec].light.push(''); - this.update('PB'); - } - } - } else { - if (target > this.proj) { - dist = target - this.proj; - for (var x = 0; x < dist; x++) { - arr.push('PF'); - light.push(''); - this.update('PF'); - } - } else { - dist = this.proj - target; - for (var x = 0; x < dist; x++) { - arr.push('PB'); - light.push(''); - this.update('PB'); - } - } - } + this.move_proj(line); } else if (line.substring(0, 3) === 'SET') { //set that state - if (line.substring(0, 7) === 'SET CAM') { - this.cam = parseInt(line.split('SET CAM')[1]); - } else if (line.substring(0, 8) === 'SET PROJ') { - this.proj = parseInt(line.split('SET PROJ')[1]); - } + this.set_state(line); } else if (line.substring(0, 1) === '#' || line.substring(0, 2) === '//') { //comments //ignore while parsing } } - this.output.success = true; - this.output.arr = arr; //all instructions - this.output.light = light; //all light instructions + this.output.arr = this.arr; //all instructions + this.output.light = this.light; //all light instructions this.output.cam = this.cam; this.output.proj = this.proj; - if (typeof callback !== 'undefined') { //should only be invoked by running mscript.tests() callback(this.output); } } + /** + * Apply a basic two character command + */ + basic_cmd (line) { + if (this.loops.length > 0) { + //hold generated arr in state loop array + this.loops[this.rec].arr + .push.apply(this.loops[this.rec].arr, + this.str_to_arr(line, + this.two)); + this.loops[this.rec].light + .push.apply(this.loops[this.rec].light, + this.light_to_arr(line, + this.two)); + } else { + this.arr.push.apply(this.arr, this.str_to_arr(line, this.two)); + this.light.push.apply(this.light, this.light_to_arr(line, this.two)) + } + } + /** + * Start a new loop + */ + new_loop (line) { + this.rec++; + this.loops[this.rec] = { + arr : [], + light : [], + cam : 0, + proj : 0, + cmd : line + '' + }; + } + /** + * Close the most recent loop + */ + end_loop (line) { + for (let x = 0; x < this.loop_count(this.loops[this.rec].cmd); x++) { + if (this.rec === 0) { + this.arr.push.apply(this.arr, this.loops[this.rec].arr); + this.light.push.apply(this.light, this.loops[this.rec].light); + } else if (this.rec >= 1) { + this.loops[this.rec - 1].arr + .push.apply(this.loops[this.rec - 1].arr, + this.loops[this.rec].arr); + this.loops[this.rec - 1].light + .push.apply(this.loops[this.rec - 1].light, + this.loops[this.rec].light); + } + } + this.update('END', this.loop_count(this.loops[this.rec].cmd)); + delete this.loops[this.rec]; + this.rec--; + } + /** + * Move camera to explicitly-defined frame + */ + move_cam (line) { + this.target = parseInt(line.split('CAM ')[1]); + if (this.loops.length > 0) { + if (this.target > this.cam) { + this.dist = this.target - this.cam; + for (let x = 0; x < this.dist; x++) { + this.loops[this.rec].arr.push('BF'); + this.loops[this.rec].light.push(BLACK); + this.update('BF'); + } + } else { + this.dist = this.cam - this.target; + for (let x = 0; x < this.dist; x++) { + this.loops[this.rec].arr.push('BB'); + this.loops[this.rec].light.push(BLACK); + this.update('BB'); + } + } + } else { + if (target > this.cam) { + this.dist = this.target - this.cam; + for (let x = 0; x < this.dist; x++) { + this.arr.push('BF'); + this.light.push(BLACK); + this.update('BF'); + } + } else { + this.dist = this.cam - this.target; + for (let x = 0; x < this.dist; x++) { + this.arr.push('BB'); + this.light.push(BLACK); + this.update('BB'); + } + } + } + } + /** + * Move projector to explicitly-defined frame + */ + move_proj (line) { + this.target = parseInt(line.split('PROJ ')[1]); + if (this.loops.length > 0) { + if (this.target > this.proj) { + this.dist = this.target - this.proj; + for (let x = 0; x < this.dist; x++) { + this.loops[this.rec].arr.push('PF'); + this.loops[this.rec].light.push(''); + this.update('PF'); + } + } else { + this.dist = this.proj - this.target; + for (let x = 0; x < this.dist; x++) { + this.loops[this.rec].arr.push('PB'); + this.loops[this.rec].light.push(''); + this.update('PB'); + } + } + } else { + if (this.target > this.proj) { + this.dist = this.target - this.proj; + for (let x = 0; x < this.dist; x++) { + this.arr.push('PF'); + this.light.push(''); + this.update('PF'); + } + } else { + this.dist = this.proj - this.target; + for (let x = 0; x < this.dist; x++) { + this.arr.push('PB'); + this.light.push(''); + this.update('PB'); + } + } + } + } + /** + * Set the state of either the cam or projector + */ + set_state (line) { + if (line.substring(0, 7) === 'SET CAM') { + this.cam = parseInt(line.split('SET CAM')[1]); + } else if (line.substring(0, 8) === 'SET PROJ') { + this.proj = parseInt(line.split('SET PROJ')[1]); + } + } + /** + * Return the last loop + */ last_loop () { return this.loops[this.loops.length - 1]; } + /** + * Return the second-last loop + */ parent_loop () { return this.loops[this.loops.length - 2]; } + /** + * Extract the loop count integer from a LOOP cmd + */ loop_count (str) { return parseInt(str.split(' ')[1]); } + /** + * Extract the fade length integer from a FADE cmd + */ fade_count (str) { return parseInt(str.split(' ')[1]); } @@ -292,7 +336,7 @@ class Mscript { return arr; } /** - * + * Split a string on a command to extract data for light array */ light_to_arr (str, cmd) { const cnt = str.split(cmd); @@ -317,7 +361,7 @@ class Mscript { return arr; } /** - * + * Split a string to extract an rgb color value */ light_state (str) { //add parsers for other color spaces @@ -326,7 +370,7 @@ class Mscript { } /** - * + * Throw an error with specific message */ fail (msg) { throw new Error(msg); From 88175a93c0bc6f166cf3926945e9dc3acb34a22a Mon Sep 17 00:00:00 2001 From: mmcw-dev Date: Sat, 16 Jun 2018 21:33:53 -0400 Subject: [PATCH 17/21] Work on fade feature --- app/lib/mscript/index.js | 86 ++++++++++++++++++++++++++++++++++--- app/test/mscript_profile.js | 12 ++++++ 2 files changed, 93 insertions(+), 5 deletions(-) diff --git a/app/lib/mscript/index.js b/app/lib/mscript/index.js index 4032541..303d7e5 100644 --- a/app/lib/mscript/index.js +++ b/app/lib/mscript/index.js @@ -3,6 +3,7 @@ /** @module lib/mscript */ const BLACK = '0,0,0'; +const WHITE = '255,255,255'; const CMD = [ 'CF', 'PF', @@ -26,7 +27,6 @@ class Mscript { constructor () { this.output = {}; } - /** * Clear the state of the script */ @@ -35,7 +35,9 @@ class Mscript { this.proj = 0; this.color = ''; this.loops = []; + this.fades = []; this.rec = -1; + this.fade_rec = -1; this.two = ''; this.arr = []; @@ -72,7 +74,7 @@ class Mscript { } else if (line.substring(0, 2) === 'L ') { this.light_state(line); } else if (line.substring(0, 2) === 'F ') { - //fade + this.new_loop(line, true); } else if (line.substring(0, 3) === 'END') { this.end_loop(line); } else if (line.substring(0, 3) === 'CAM') { //directly go to that frame (black?) @@ -120,7 +122,7 @@ class Mscript { /** * Start a new loop */ - new_loop (line) { + new_loop (line, fade) { this.rec++; this.loops[this.rec] = { arr : [], @@ -129,22 +131,40 @@ class Mscript { proj : 0, cmd : line + '' }; + if (fade) { + this.fade(line); + } } /** * Close the most recent loop */ end_loop (line) { + let light_arr; + let start; + let end; + let len; + for (let x = 0; x < this.loop_count(this.loops[this.rec].cmd); x++) { + light_arr = this.loops[this.rec].light; + if (this.loops[this.rec].fade) { + start = this.loops[this.rec].start; + end = this.loops[this.rec].end; + len = this.loops[this.rec].fade_len; + light_arr = light_arr.map(l => { + return this.fade_rgb(start, end, len, x); + }) + } if (this.rec === 0) { this.arr.push.apply(this.arr, this.loops[this.rec].arr); - this.light.push.apply(this.light, this.loops[this.rec].light); + this.light.push.apply(this.light, light_arr); } else if (this.rec >= 1) { this.loops[this.rec - 1].arr .push.apply(this.loops[this.rec - 1].arr, this.loops[this.rec].arr); + this.loops[this.rec - 1].light .push.apply(this.loops[this.rec - 1].light, - this.loops[this.rec].light); + light_arr); } } this.update('END', this.loop_count(this.loops[this.rec].cmd)); @@ -256,6 +276,23 @@ class Mscript { */ loop_count (str) { return parseInt(str.split(' ')[1]); + } + /** + * Execute a fade of frame length, from color to another color + */ + fade (line) { + let len = this.fade_count(line); + let start = this.fade_start(line); + let end = this.fade_end(line); + + this.loops[this.rec].start = start; + this.loops[this.rec].end = end; + this.loops[this.rec].fade = true; + this.loops[this.rec].fade_count = 0; + this.loops[this.rec].fade_len = len; + } + end_fade (line) { + } /** * Extract the fade length integer from a FADE cmd @@ -263,6 +300,45 @@ class Mscript { fade_count (str) { return parseInt(str.split(' ')[1]); } + /** + * Extract the start color from a string + */ + fade_start (str) { + let color = str.split(' ')[2]; + return this.rgb(color.trim()) + } + /** + * Extract the end color from a string + */ + fade_end (str) { + let color = str.split(' ')[3]; + return this.rgb(color.trim()) + } + fade_rgb (start, end, len, x) { + let cur = []; + let diff; + for (let i = 0; i < 3; i++) { + if (start[i] >= end[i]) { + diff = start[i] - end[i]; + cur[i] = start[i] - Math.round((diff / len) * x); + } else { + diff = end[i] - start[i]; + cur[i] = start[i] + Math.round((diff / len) * x); + } + } + console.log(diff, len, x) + return this.rgb_str(cur); + + } + rgb (str) { + let rgb = str.split(','); + return rgb.map( char => { + return parseInt(char); + }) + } + rgb_str (arr) { + return arr.join(','); + } /** * Increase the state of a specific object, such as the camera/projector, * by the value defined in val diff --git a/app/test/mscript_profile.js b/app/test/mscript_profile.js index 4f84c45..6f6f62c 100644 --- a/app/test/mscript_profile.js +++ b/app/test/mscript_profile.js @@ -7,6 +7,18 @@ const Mscript = require('../lib/mscript'); const mscript = new Mscript(); const mscriptOld = require('../lib/mscript/index.old.js'); + +mscript.interpret(`F 20 100,100,100 50,255,0 +CF +END +CF +PF + `, (output) => { + console.dir(output) +}); + +process.exit() + mscriptOld.state_clear(); console.time('mscript old str_to_arr'); From 371c7afb25578f07609e3bf776bcf5b9176dd555 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Sat, 16 Jun 2018 22:48:11 -0400 Subject: [PATCH 18/21] Fix the fade feature and loop feature --- app/lib/mscript/index.js | 32 ++++++++++++++------------------ app/test/mscript_profile.js | 5 ++--- 2 files changed, 16 insertions(+), 21 deletions(-) diff --git a/app/lib/mscript/index.js b/app/lib/mscript/index.js index 303d7e5..d4bf42d 100644 --- a/app/lib/mscript/index.js +++ b/app/lib/mscript/index.js @@ -35,9 +35,7 @@ class Mscript { this.proj = 0; this.color = ''; this.loops = []; - this.fades = []; this.rec = -1; - this.fade_rec = -1; this.two = ''; this.arr = []; @@ -104,7 +102,7 @@ class Mscript { * Apply a basic two character command */ basic_cmd (line) { - if (this.loops.length > 0) { + if (this.rec !== -1) { //hold generated arr in state loop array this.loops[this.rec].arr .push.apply(this.loops[this.rec].arr, @@ -176,7 +174,7 @@ class Mscript { */ move_cam (line) { this.target = parseInt(line.split('CAM ')[1]); - if (this.loops.length > 0) { + if (this.rec !== -1) { if (this.target > this.cam) { this.dist = this.target - this.cam; for (let x = 0; x < this.dist; x++) { @@ -215,7 +213,7 @@ class Mscript { */ move_proj (line) { this.target = parseInt(line.split('PROJ ')[1]); - if (this.loops.length > 0) { + if (this.rec !== -1) { if (this.target > this.proj) { this.dist = this.target - this.proj; for (let x = 0; x < this.dist; x++) { @@ -290,9 +288,6 @@ class Mscript { this.loops[this.rec].fade = true; this.loops[this.rec].fade_count = 0; this.loops[this.rec].fade_len = len; - } - end_fade (line) { - } /** * Extract the fade length integer from a FADE cmd @@ -318,15 +313,16 @@ class Mscript { let cur = []; let diff; for (let i = 0; i < 3; i++) { - if (start[i] >= end[i]) { + if (x === len - 1) { + cur[i] = end[i]; + } else if (start[i] >= end[i]) { diff = start[i] - end[i]; - cur[i] = start[i] - Math.round((diff / len) * x); + cur[i] = start[i] - Math.round((diff / (len - 1)) * x); } else { diff = end[i] - start[i]; - cur[i] = start[i] + Math.round((diff / len) * x); + cur[i] = start[i] + Math.round((diff / (len - 1)) * x); } } - console.log(diff, len, x) return this.rgb_str(cur); } @@ -356,37 +352,37 @@ class Mscript { } } } else if (cmd === 'CF') { - if (this.loops.length < 1) { + if (this.rec === -1) { this.cam += val; } else { this.loops[this.rec].cam += val; } } else if (cmd === 'CB') { - if (this.loops.length < 1) { + if (this.rec === -1) { this.cam -= val; } else { this.loops[this.rec].cam--; } } else if (cmd === 'PF') { - if (this.loops.length < 1) { + if (this.rec === -1) { this.proj += val; } else { this.loops[this.rec].proj += val; } } else if (cmd === 'PB') { - if (this.loops.length < 1) { + if (this.rec === -1) { this.proj -= val; } else { this.loops[this.rec].proj--; } } else if (cmd === 'BF') { - if (this.loops.length < 1) { + if (this.rec === -1) { this.cam += val; } else { this.loops[this.rec].cam += val; } } else if (cmd === 'BB') { - if (this.loops.length < 1) { + if (this.rec === -1) { this.cam -= val; } else { this.loops[this.rec].cam -= val; diff --git a/app/test/mscript_profile.js b/app/test/mscript_profile.js index 6f6f62c..9d33f01 100644 --- a/app/test/mscript_profile.js +++ b/app/test/mscript_profile.js @@ -8,11 +8,10 @@ const mscript = new Mscript(); const mscriptOld = require('../lib/mscript/index.old.js'); -mscript.interpret(`F 20 100,100,100 50,255,0 +mscript.interpret(`F 72 0,0,0 10,20,30 CF END -CF -PF +PF 10 `, (output) => { console.dir(output) }); From db1128ab524bcfad10fa81760c5f6eed66a570ce Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Sat, 16 Jun 2018 23:13:14 -0400 Subject: [PATCH 19/21] Update documentation --- app/lib/exec/Readme.md | 15 +++ app/lib/mscript/Readme.md | 267 ++++++++++++++++++++++---------------- 2 files changed, 170 insertions(+), 112 deletions(-) create mode 100644 app/lib/exec/Readme.md diff --git a/app/lib/exec/Readme.md b/app/lib/exec/Readme.md new file mode 100644 index 0000000..7724e22 --- /dev/null +++ b/app/lib/exec/Readme.md @@ -0,0 +1,15 @@ + + +## exec(cmd, arg, opts) ⇒ Promise.<{stdout: string, stderr: stderr}> +Promisified child_process.exec + +**Kind**: global function + +| Param | Type | Description | +| --- | --- | --- | +| cmd | | | +| arg | | | +| opts | | See child_process.exec node docs | +| opts.stdout | stream.Writable | If defined, child process stdout will be piped to it. | +| opts.stderr | stream.Writable | If defined, child process stderr will be piped to it. | + diff --git a/app/lib/mscript/Readme.md b/app/lib/mscript/Readme.md index 93bfafb..cfb7fdb 100644 --- a/app/lib/mscript/Readme.md +++ b/app/lib/mscript/Readme.md @@ -3,134 +3,177 @@ ## lib/mscript * [lib/mscript](#module_lib/mscript) - * [~mscript](#module_lib/mscript..mscript) - * [.arg(shrt, lng)](#module_lib/mscript..mscript.arg) ⇒ boolean - * [.arg_pos(shrt, lng)](#module_lib/mscript..mscript.arg_pos) ⇒ boolean - * [.state_clear()](#module_lib/mscript..mscript.state_clear) - * [.alts_unique()](#module_lib/mscript..mscript.alts_unique) - * [.interpret()](#module_lib/mscript..mscript.interpret) - * [.last_loop()](#module_lib/mscript..mscript.last_loop) - * [.parent_loop()](#module_lib/mscript..mscript.parent_loop) - * [.state_update()](#module_lib/mscript..mscript.state_update) - * [.str_to_arr()](#module_lib/mscript..mscript.str_to_arr) - * [.light_state()](#module_lib/mscript..mscript.light_state) - * [.light_to_arr()](#module_lib/mscript..mscript.light_to_arr) - * [.loop_count()](#module_lib/mscript..mscript.loop_count) - * [.fail()](#module_lib/mscript..mscript.fail) - * [.output()](#module_lib/mscript..mscript.output) - * [.init()](#module_lib/mscript..mscript.init) - * [.tests()](#module_lib/mscript..mscript.tests) + * [~Mscript](#module_lib/mscript..Mscript) + * [.clear()](#module_lib/mscript..Mscript+clear) + * [.interpret()](#module_lib/mscript..Mscript+interpret) + * [.basic_cmd()](#module_lib/mscript..Mscript+basic_cmd) + * [.new_loop()](#module_lib/mscript..Mscript+new_loop) + * [.end_loop()](#module_lib/mscript..Mscript+end_loop) + * [.move_cam()](#module_lib/mscript..Mscript+move_cam) + * [.move_proj()](#module_lib/mscript..Mscript+move_proj) + * [.set_state()](#module_lib/mscript..Mscript+set_state) + * [.last_loop()](#module_lib/mscript..Mscript+last_loop) + * [.parent_loop()](#module_lib/mscript..Mscript+parent_loop) + * [.loop_count()](#module_lib/mscript..Mscript+loop_count) + * [.fade()](#module_lib/mscript..Mscript+fade) + * [.fade_count()](#module_lib/mscript..Mscript+fade_count) + * [.fade_start()](#module_lib/mscript..Mscript+fade_start) + * [.fade_end()](#module_lib/mscript..Mscript+fade_end) + * [.update()](#module_lib/mscript..Mscript+update) + * [.str_to_arr()](#module_lib/mscript..Mscript+str_to_arr) + * [.light_to_arr()](#module_lib/mscript..Mscript+light_to_arr) + * [.light_state()](#module_lib/mscript..Mscript+light_state) + * [.fail()](#module_lib/mscript..Mscript+fail) - + -### lib/mscript~mscript -object mscript +### lib/mscript~Mscript +class Mscript -**Kind**: inner constant of [lib/mscript](#module_lib/mscript) +**Kind**: inner class of [lib/mscript](#module_lib/mscript) -* [~mscript](#module_lib/mscript..mscript) - * [.arg(shrt, lng)](#module_lib/mscript..mscript.arg) ⇒ boolean - * [.arg_pos(shrt, lng)](#module_lib/mscript..mscript.arg_pos) ⇒ boolean - * [.state_clear()](#module_lib/mscript..mscript.state_clear) - * [.alts_unique()](#module_lib/mscript..mscript.alts_unique) - * [.interpret()](#module_lib/mscript..mscript.interpret) - * [.last_loop()](#module_lib/mscript..mscript.last_loop) - * [.parent_loop()](#module_lib/mscript..mscript.parent_loop) - * [.state_update()](#module_lib/mscript..mscript.state_update) - * [.str_to_arr()](#module_lib/mscript..mscript.str_to_arr) - * [.light_state()](#module_lib/mscript..mscript.light_state) - * [.light_to_arr()](#module_lib/mscript..mscript.light_to_arr) - * [.loop_count()](#module_lib/mscript..mscript.loop_count) - * [.fail()](#module_lib/mscript..mscript.fail) - * [.output()](#module_lib/mscript..mscript.output) - * [.init()](#module_lib/mscript..mscript.init) - * [.tests()](#module_lib/mscript..mscript.tests) +* [~Mscript](#module_lib/mscript..Mscript) + * [.clear()](#module_lib/mscript..Mscript+clear) + * [.interpret()](#module_lib/mscript..Mscript+interpret) + * [.basic_cmd()](#module_lib/mscript..Mscript+basic_cmd) + * [.new_loop()](#module_lib/mscript..Mscript+new_loop) + * [.end_loop()](#module_lib/mscript..Mscript+end_loop) + * [.move_cam()](#module_lib/mscript..Mscript+move_cam) + * [.move_proj()](#module_lib/mscript..Mscript+move_proj) + * [.set_state()](#module_lib/mscript..Mscript+set_state) + * [.last_loop()](#module_lib/mscript..Mscript+last_loop) + * [.parent_loop()](#module_lib/mscript..Mscript+parent_loop) + * [.loop_count()](#module_lib/mscript..Mscript+loop_count) + * [.fade()](#module_lib/mscript..Mscript+fade) + * [.fade_count()](#module_lib/mscript..Mscript+fade_count) + * [.fade_start()](#module_lib/mscript..Mscript+fade_start) + * [.fade_end()](#module_lib/mscript..Mscript+fade_end) + * [.update()](#module_lib/mscript..Mscript+update) + * [.str_to_arr()](#module_lib/mscript..Mscript+str_to_arr) + * [.light_to_arr()](#module_lib/mscript..Mscript+light_to_arr) + * [.light_state()](#module_lib/mscript..Mscript+light_state) + * [.fail()](#module_lib/mscript..Mscript+fail) - + -#### mscript.arg(shrt, lng) ⇒ boolean -Check for the presence of specific arguments in process -argv +#### mscript.clear() +Clear the state of the script -**Kind**: static method of [mscript](#module_lib/mscript..mscript) -**Returns**: boolean - Is flag present - -| Param | Type | Description | -| --- | --- | --- | -| shrt | string | Short version of argument or flag | -| lng | string | Long version of argument or flag | - - - -#### mscript.arg_pos(shrt, lng) ⇒ boolean -Check for the position of specific arguments in process -argv - -**Kind**: static method of [mscript](#module_lib/mscript..mscript) -**Returns**: boolean - Position of arg or flag, for locating input - -| Param | Type | Description | -| --- | --- | --- | -| shrt | string | Short version of argument or flag | -| lng | string | Long version of argument or flag | - - - -#### mscript.state_clear() -Clear the state object - -**Kind**: static method of [mscript](#module_lib/mscript..mscript) - - -#### mscript.alts_unique() -**Kind**: static method of [mscript](#module_lib/mscript..mscript) - +**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) + #### mscript.interpret() -**Kind**: static method of [mscript](#module_lib/mscript..mscript) - +Main function, accepts multi-line string, parses into lines +and interprets the instructions from the text. Returns an array +of steps to be fed into the mcopy. + +**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) + + +#### mscript.basic_cmd() +Apply a basic two character command + +**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) + + +#### mscript.new_loop() +Start a new loop + +**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) + + +#### mscript.end_loop() +Close the most recent loop + +**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) + + +#### mscript.move_cam() +Move camera to explicitly-defined frame + +**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) + + +#### mscript.move_proj() +Move projector to explicitly-defined frame + +**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) + + +#### mscript.set_state() +Set the state of either the cam or projector + +**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) + #### mscript.last_loop() -**Kind**: static method of [mscript](#module_lib/mscript..mscript) - +Return the last loop + +**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) + #### mscript.parent_loop() -**Kind**: static method of [mscript](#module_lib/mscript..mscript) - +Return the second-last loop -#### mscript.state_update() -**Kind**: static method of [mscript](#module_lib/mscript..mscript) - - -#### mscript.str_to_arr() -**Kind**: static method of [mscript](#module_lib/mscript..mscript) - - -#### mscript.light_state() -**Kind**: static method of [mscript](#module_lib/mscript..mscript) - - -#### mscript.light_to_arr() -**Kind**: static method of [mscript](#module_lib/mscript..mscript) - +**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) + #### mscript.loop_count() -**Kind**: static method of [mscript](#module_lib/mscript..mscript) - +Extract the loop count integer from a LOOP cmd + +**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) + + +#### mscript.fade() +Execute a fade of frame length, from color to another color + +**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) + + +#### mscript.fade_count() +Extract the fade length integer from a FADE cmd + +**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) + + +#### mscript.fade_start() +Extract the start color from a string + +**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) + + +#### mscript.fade_end() +Extract the end color from a string + +**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) + + +#### mscript.update() +Increase the state of a specific object, such as the camera/projector, +by the value defined in val + +**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) + + +#### mscript.str_to_arr() +Split string on command, extract any integers from string + +**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) + + +#### mscript.light_to_arr() +Split a string on a command to extract data for light array + +**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) + + +#### mscript.light_state() +Split a string to extract an rgb color value + +**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) + #### mscript.fail() -**Kind**: static method of [mscript](#module_lib/mscript..mscript) - +Throw an error with specific message -#### mscript.output() -**Kind**: static method of [mscript](#module_lib/mscript..mscript) - - -#### mscript.init() -**Kind**: static method of [mscript](#module_lib/mscript..mscript) - - -#### mscript.tests() -Legacy tests. To be deprecated in future releases. - -**Kind**: static method of [mscript](#module_lib/mscript..mscript) +**Kind**: instance method of [Mscript](#module_lib/mscript..Mscript) From 9e125e37d38129f2042faae01fb95aa95fcc6ee1 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Sat, 16 Jun 2018 23:16:13 -0400 Subject: [PATCH 20/21] Add comment for jsdoc --- app/lib/mscript/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/app/lib/mscript/index.js b/app/lib/mscript/index.js index d4bf42d..ccd6004 100644 --- a/app/lib/mscript/index.js +++ b/app/lib/mscript/index.js @@ -23,6 +23,7 @@ const ALTS = { 'F ' : ['FADE'] }; +/** class Mscript */ class Mscript { constructor () { this.output = {}; From 52350b232524d2127d2d3e376c3f993809fadac2 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Sat, 16 Jun 2018 23:19:58 -0400 Subject: [PATCH 21/21] Update mscript usage --- app/js/app.js | 2 +- app/lib/ui/mscript.js | 1 + app/src/index.js | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/js/app.js b/app/js/app.js index 9839dd2..5c5bf9c 100644 --- a/app/js/app.js +++ b/app/js/app.js @@ -2494,7 +2494,7 @@ const cmd = require('./lib/ui/cmd.js'); const log = require('./lib/ui/log.js'); const devices = require('./lib/ui/devices.js'); const mse = require('./lib/ui/mscript.js'); -const mscript = require('./lib/mscript'); +const Mscript = require('./lib/mscript'); diff --git a/app/lib/ui/mscript.js b/app/lib/ui/mscript.js index 8afdad2..63e93b7 100644 --- a/app/lib/ui/mscript.js +++ b/app/lib/ui/mscript.js @@ -100,6 +100,7 @@ mse.mscript.toSequence = function () { mse.mscript.compile = function (cb) { 'use strict'; const data = mse.mscript.editor.getValue(); + let mscript = new Mscript(); let output; mse.mscript.raw = data; mscript.interpret(data, (output) => { diff --git a/app/src/index.js b/app/src/index.js index e92ab1b..0244630 100644 --- a/app/src/index.js +++ b/app/src/index.js @@ -20,7 +20,7 @@ const cmd = require('./lib/ui/cmd.js'); const log = require('./lib/ui/log.js'); const devices = require('./lib/ui/devices.js'); const mse = require('./lib/ui/mscript.js'); -const mscript = require('./lib/mscript'); +const Mscript = require('./lib/mscript');